Arduino: semaforo (scuola media)

lezione
lezione
Arduino: semaforo (scuola media)
Tipo di risorsa Tipo: lezione
Materia di appartenenza Materia: Informatica per la scuola media 1
Avanzamento Avanzamento: lezione completa al 50%

Semaforo con Arduino

modifica

L'obiettivo di questa attività è costruire un semaforo con ArduinoVK e tre ledVK: rosso, giallo e verde.

Cose da sapere prima

modifica

Installare e testare Arduino

  • collegate la scheda Arduino al pc tramite cavo USB
  • installate Ide Arduino
    • su Linux Ubuntu: avviate Ubuntu Software Center, cercate Arduino, installate e avviate.
    • su Windows seguite la guida[1]
  • testate l'installazione e il collegamento
    • lanciate IDE-Arduino
    • scegliete File, Esempi, Basics, Blinck e caricatelo sulla scheda con il tasto Freccia, il led a bordo della scheda comincia a lampeggiare[2]
  • installate Visualino seguendo le guide dul sito

Hardware e software

modifica
  • Hardware: Arduino Uno, ma si può fare anche con Arduino 2009[3]
  • Software:
    • Visualino editor a blocchi per Arduino, simile a Scratch, che in più permette di vedere anche il codice,
    • IDE standard di Arduino (integrated development environment = ambiente di sviluppo integrato), per il quale è necessario scrivere in linguaggio processingVK.

Semaforo arduino

modifica
 
Semaforo Arduino con breadboard
 
Semaforo con i led innestati direttamente sulla scheda

Il tutorial ci guiderà nella produzione di un semaforo costruito con Arduino e i tre led.

E' possibile costruire il semaforo sia con una breadboard, immagine a sinistra, sia inserendo i led direttamente sulla scheda Arduino, immagine a destra.

Useremo l'immagine con i led innestati direttamente sulla sche Arduino come riferimento per il tutorial. Come è possibile osservare, eventualmente ingrandendo un po' l'immagine i tre led sono stati innestati sulle porte digital:

  • Led Verde catodo, pin corto, su GND e anodo, pin lungo, su Digital 13
  • Led Giallo catodo su GND e anodo su Digital 12
  • Led Rosso catodo su GND e anodo su Digital 13




Come funziona un semaforo

modifica
 
Semaforo animato italiano

Il semaforo funziona con tre luci: verde, rosso e giallo; e serve a regolare il traffico. Se è accesa la luce rossa si deve stare fermi, il segnale per poter passare corrisponde allo spegnimento della luce rossa e alla contemporanea accensione della luce verde. L'accensione della luce gialla, a verde ancora acceso, ci avverte che tra pochi secondi si accenderà la luce rossa, ed infatti passati pochi secondi si spengono verde e giallo e si accende il rosso. E così avanti. Come potete osservare nella gif animata qui a sinistra.


Primo script led blincking

modifica

Cominciamo con il fare lampeggiare a tempo il led verde.

Usando i blocchi di Visualino scriviamo il codice che farà accendere il led verde per un secondo, 1000 millisecondiVK, e poi lo terrà spento per un secondo:

 
Visualino codice di un led lampeggiante innestato su Digital13

Sulla destra della finestra di Visualino è possibile leggere il processing.


 
IDE Arduino codice per avere un led lampeggiante

Collegato[4] Arduino al computer, dovrebbe essere possibile inviare il codice ottenuto alla scheda direttamente dalla finestra di Visualino, tasto upload, cosa che comporta l'apertura dell'IDE. Se così non fosse basta lanciare l'IDE di Arduino e copiare nella finestra di input il codice e lanciare caricare da lì il codice sulla scheda. Dopo un attimo per il caricamento, verificabile osservando il lampeggiamento dei piccoli led TX e RX sulla scheda, il led verde dovrebbe cominciare a lampeggiare ad intervalli regolari di un secondo. Riportiamo qui sotto anche il codice processing.

void setup()
{
  pinMode(13,OUTPUT);
}
void loop()
{
    digitalWrite(13,HIGH);
    delay(1000);
    digitalWrite(13,LOW);
    delay(1000);
}


Script per il semaforo

modifica

A questo punto dovremmo con un minimo di attenzione produrre lo script per far funzionare il semaforo. La successione deve essere:

  • led verde acceso -digitalWrite(13,HIGH);-, si può passare, durata possibile due secondi -delay(2000);-
  • led verde e il led giallo accesi insieme, si ootiene accendendo il led giallo -digitalWrite(12,HIGH);- si può passare ma attenzione sta per arrivare lo stop, durata un secondo -delay(1000);-
  • led rosso acceso -digitalWrite(11,HIGH);- e contemporaneamente si spengono i led verde -digitalWrite(13,LOW);- e giallo -digitalWrite(12,LOW);-, stop, durata tre secondi -delay(3000);-
  • ricominciamo si spegne led rosso -digitalWrite(11,LOW);- e si accende quello verde...
 
Processing codice per un semplice semaforo, Visualino


 
Processing codice per un semplice semaforo

Ottenuto il codice procediamo a caricarlo sulla scheda con l'IDE di Arduino. I led di trasmissione lampeggeranno e se tutto va bene il nostro semaforo comincerà a funzionare.

void setup()
{
 pinMode(13,OUTPUT);
 pinMode(12,OUTPUT);
 pinMode(11,OUTPUT);
}
void loop()
{
   digitalWrite(13,HIGH);
   delay(2000);
   digitalWrite(12,HIGH);
   delay(1000);
   digitalWrite(13,LOW);
   digitalWrite(12,LOW);
   digitalWrite(11,HIGH);
   delay(3000);
   digitalWrite(11,LOW);
}


Il semaforo in funzione

modifica

Il semaforo si metterà a funzionare appena finito il caricamento del codice. A questo punto possiamo staccarlo dal pc ed alimentandolo con una batteria lo facciamo funzionare con il solo Arduino.

 
Arduino semaforo con batteria

Semaforo con scheda breadboard

modifica

E' possibile costruire il semaforo anche usando una scheda breadboard che facilita le connessioni dei led , nell'immagine qui sotto lo schema dei collegamenti.

 
Collegamenti sem con breadboard

In sintesi

modifica
Foto e video Spiegazione Visualino Codice processing

 
Arduino collegato al pc

Ecco come si presenta il nostro setup per il lavoro. Arduino è collegato al pc tramite cavo usb e sul pc abbiamo in funzione Visualino e l'IDE-Arduino.
 
Visualino
 
IDE-Arduino
 
Arduino con led collegati sulla scheda
Colleghiamo i led direttamente alla scheda Arduino, rispettando i numeri sulle porte. Spostando i blocchi in Visualino, aiutandovi con i colori, scriviamo il codice necessario e lo carichiamo sulla scheda.
 
Blocchi Visualino per semaforo
void setup() 
{ 
 pinMode(13,OUTPUT); 
 pinMode(12,OUTPUT); 
 pinMode(11,OUTPUT); 
} 
void loop() 
{   
 digitalWrite(13,HIGH);   
 delay(2000);   
 digitalWrite(12,HIGH);   
 delay(1000);   
 digitalWrite(13,LOW);   
 digitalWrite(12,LOW);   
 digitalWrite(11,HIGH);   
 delay(3000);   
 digitalWrite(11,LOW); 
}

Programmi usati

modifica

Videotutorial

modifica
  1. https://www.logicaprogrammabile.it/installare-arduino-uno-passo-passo/
  2. https://www.narom.no/undervisningsressurser/the-cansat-book/the-primary-mission/software-start-up-and-test-of-arduino-uno/
  3. https://it.wikipedia.org/wiki/Arduino_(hardware)#Versioni
  4. https://www.youtube.com/watch?v=aswW3n0Zyeo

Bibliografia

modifica

Collegamenti esterni

modifica