Cerca

modulo attività

modulo tecnica

Per riprodurre il funzonamento del semaforo è stata preparata una scheda con sei LED dei colori necessari a rappresentare il semaforo ad un incrocio fra due vie: via Alighieri e via Boccaccio, chiamati poi brevemente via A e via B.

shield sem1La scheda contiene anche altri componenti utili alla completa realizzazione della simulazione:

- un rilevatore di luce a LDR per comandare il passaggio dal funzionamento diurno al funzionamento notturno

- un interruttore per comandare il passaggio dal funzionamento automatico a quello manuale (quando il traffico deve essere regolato da un vigile e non da timer)

- un pulsante per il comando manuale

 

shield sem1a

Lo schema dei collegamenti è il seguente.

 

 

Per prima cosa si tratta di scrivere il software per fare funzionare le luci secondo lo schema che prevede quattro fasi (le luci a sinistra sono della via Alighieri, le luci a destra sono della via Boccaccio):

Ecco illustrate le quattro fasi del funzionamento diurno:

 

fase 1) verde A acceso, rosso B accesoF1

 

 

 

F2fase 2) come fase 1) e giallo A acceso

 

 

 

F3fase 3) rosso A acceso e verde B acceso

 

 

 

F4fase 4) come fase 3) e giallo B acceso

 

 

 

Se credi guarda questo video per ripassare le fasi (ci sono anche due momenti col doppo rosso ma non è indispensabile realizzarli).

 

La simulazione del funzionamento del semaforo ad un incrocio tra due vie A e B viene realizzata con sei sprites, tre luci (rosso, verde, giallo) per la via A e tre luci per la via B.

Il funzionamento diurno è illustrato nella scheda scaricabile a questo link. Di seguito una spiegazione dei comandi usati

 

Il funzionamento del singolo sprite si basa sull'utilizzo di due costumi per ciascuna lampadina per presentare i due stati; se guardiamo lo sprite della luce rossa della via A vediamo che ha due costumi:

sem onoff

- costume "RA on" (di colore rosso) per mostrare la luce rossa della via A accesa  e

- costume "RA off" (di colore grigio), per mostrare la luce rossa della via A spenta.

Facendo in questo modo è possibile simulare i due stati della lapadina (spenta o accesa) passando semplicemente al costume giusto per ciascuna delle sei luci .

L'attivazione di uno dei due stati è realizzata tramite messaggi che vengono inviati dal controllore al momento giusto.

 

 

Quando arriva il messaggio che ordina il comando sulla lampadina avviene un'assegnazione di costume.sem sprite

 In questo caso (la lampadina verde della via B) riceve i messaggi e ne elabora tre:

1) "quando ricevo resetta" lo sprite "lampadina verde della via B" viene posizionato con il centro nel punto di coordinate 50,0 e quindi viene passata  al costume "VB off" per vedere la lampadina spenta;

2) "quando ricevo accendi VB" si passa lo sprite al costume "VB on" per fare vedere la lampadina verde accesa;

3) "quando ricevo spegni tutte" si passa lo sprite al costume "VB off" per fare vedere la lampadina verde spenta.

 

Dopo avere sistemato i sei sprite in modo che elaborino il messaggio in modo appropriato al funzionamento del semaforo di giorno, si deve scrivere il programma che coordina tutte le funzioni copresi i tempi di attesa prima di cambiare lo stato delle luci.

sem controllo

Il controllore viene sistemato nello sprite presentato all'apertura della schermata di Snap4A (nota 1).

La funzine del controllore è quella di inviare messaggi al momento giusto per:

1) "invia a tutti resetta" per mettere tutte le cose al loro posto

2) "invia a tutti spegni tutte e attendi" per spegnere tutte le luci (nota 2)

3) vengono quindi impostati tutti i pin di Arduino come "uscita digitale"

Segue un loop o ciclo "per sempre" che serve fare funzionare indefinitamente il semaforo secodo lo schema delle fasi sopra definito.

 

 

L'accensione delle luci LED sulla scheda Arduino segue la stessa logica usata per gli sprite: elaborare gli stessi messaggi inviando un comando

sem comando LED"imposta il pin digitale 13 a vero" per accendere il Led Rosso della via A e 

"imposta il pin digitale 13 a falso" per spegnere il Led Rosso della via A 

 

 

 

 

 

 

 

 

  

Proposte di sviluppo

1) realizzare il doppio giallo lampeggiante tipico del funzionamento notturno;

2) prevedere la possibilità di passare dal funzionamento notturno al funzionamento diurno utilizzando un tasto a indicare che è notte (esempio premere il tasto spazio e tenerlo premuto significa che si è fatta notte e quindi si va in funzionamento giallo lampeggiante quando lo si rilascia passa al funzionamento diurno)

3) sostituire l'uso della tastiera con l'uso del rilevatore crepuscolare (la LDR è sensibile alla luce e pone sul'ingresso analogico A0 un valore tra 0 è 1023 in base alla luce che arriva; si può fare il passaggio dal funzionamento notturno a quello diurno utilizzando il valore all'ingresso analogico A0);

4) con l'uso dell'interruttore T, che pone un valore binario "vero" o "falso" sull'ingresso D3, si può decidere di fare avanzare automaticamente o manualmente le fasi premendo il tasto P1 posto sull'ingresso D2 (si usa per permettere ad un vigile di intervenire sui tempi di durata delle varie fasi).

 

 

note

nota 1: per avere accesso alla scheda Arduno occorre usare sempre lo sprite che si presenta all'inizio con una freccia (chiamata tartaruga o turtle) o una sua copia.

nota 2: l'invio dei messaggi ha due modalità: con e senza attesa. Prima di passare all'istruzione successiva si può scegliere se attendere che tutti gli script richiamati terminino la loro esecuzione oppure tutti i destinatari del messaggio avviano insieme il proprio script. Tocca al programmatore decidere cosa sia meglio fare.