Sommario:
- Forniture
- Passaggio 1: definire come funziona: semaforo pedonale
- Passaggio 2: costruisci il circuito
- Passaggio 3: creazione della macchina a stati
- Passaggio 4: eseguire l'esempio
- Passaggio 5: codice C++ generato
- Passaggio 6: ottenere l'esempio
Video: State Machine su Arduino - Un Semaforo Pedonale: 6 Passaggi (con Immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Ehilà! Ti mostrerò come programmare un semaforo pedonale per Arduino in C++ con una macchina a stati finiti utilizzando YAKINDU Statechart Tools. Ciò dimostrerà la potenza delle macchine statali e può essere utilizzato come progetto per ulteriori progetti.
Forniture
Hai solo bisogno di un Arduino, alcuni pulsanti, LED, Jumper e resistori.
Hardware
- 2x pulsante
- 2x semafori o puoi usare LED con resistori da 220 Ohm
- 2x resistori da 10k Ohm
- tagliere
- Maglione
- Arduino Uno/Mega (o qualsiasi altro, che abbia almeno 8 GPIO)
Software
- Strumenti per diagrammi di stato YAKINDU
- Eclipse C++ IDE per Arduino
Passaggio 1: definire come funziona: semaforo pedonale
Per prima cosa, dobbiamo specificare come dovrebbe funzionare il semaforo pedonale. Ho provato a riassumere i punti elenco:
- Vengono utilizzati due semafori: uno per le auto, l'altro per i pedoni
- Il semaforo può essere acceso utilizzando un pulsante
- Il pedone può richiedere di attraversare la strada premendo un pulsante
- Il semaforo spento è segnalato dal lampeggio di entrambi i led gialli
- Dopo l'accensione, il semaforo attende 10 secondi in modalità provvisoria
- Dopo la modalità provvisoria, le auto hanno sempre una fase verde fino a quando un pedone non avvia una richiesta
- La richiesta di attraversamento pedonale è segnalata dall'accensione del LED giallo
Inoltre, ci sono alcuni eventi temporali che dipendono dal modo in cui funziona un semaforo.
Passaggio 2: costruisci il circuito
Iniziamo a configurare il circuito. Nel mio esempio, come puoi vedere nell'immagine di anteprima, ho usato un Arduino Mega 2560, ma ogni altro Arduino con almeno otto GPIO dovrebbe andare bene. Inoltre, ho acquistato alcuni semafori 5V su Amazon. Basta cercare semaforo Arduino. Altrimenti, puoi semplicemente utilizzare sei LED diversi. Inoltre, sono necessari due pulsanti e due resistori da 10k Ohm.
I tre led di sinistra sono utilizzati per il traffico automobilistico ei tre led di destra per i pedoni, dove quello giallo può indicare una richiesta.
Passaggio 3: creazione della macchina a stati
Quindi, come puoi vedere, ci sono due stati principali con membri compositi: stato attivo e stato spento. È possibile passare da uno stato all'altro utilizzando l'evento onOff, che è collegato al pulsante ON/OFF. Nello stato iniziale, lo stato spento, entrambi i LED gialli iniziano a lampeggiare ogni secondo. Una volta che il semaforo è stato acceso, inizia nel Safestate. Dopo 10 secondi verrà gestito il comportamento tipico dei semafori. Nello stato StreetPrepare si accendono i LED rosso e giallo e il semaforo diventa verde dopo altri 2 secondi. D'ora in poi, la macchina a stati attende l'evento pedonalRequest, che è cablato al secondo pulsante. Dopo l'invio dell'evento la richiesta verrà segnalata commutando ogni secondo il LED giallo nello stato PedWating. 7 secondi dopo il semaforo passerà prima al giallo e poi al rosso finché i pedoni non riceveranno il segnale per passare allo stato PedestrianGreen. Successivamente, viene attivato il Rosso Pedone e il ciclo si ripete. Questo può essere interrotto solo spegnendo nuovamente il semaforo.
Passaggio 4: eseguire l'esempio
Passaggio 5: codice C++ generato
Il codice C++ generato è un classico switch-case per gestire la logica della macchina a stati. Questo è solo un frammento di codice di come appare:
void TrafficLightCtrl::runCycle(){ clearOutEvents(); for (stateConfVectorPosition = 0; stateConfVectorPosition < maxOrthogonalStates; stateConfVectorPosition++) { switch (stateConfVector[stateConfVectorPosition]) { case main_region_on_r1_StreetGreen: { main_region_on_r1_StreetGreen_react(true); rottura; } case main_region_on_r1_PedWaiting_r1_waitOn: { main_region_on_r1_PedWaiting_r1_waitOn_react(true); rottura; } predefinito: interruzione; } clearInEvents(); }
Passaggio 6: ottenere l'esempio
L'intero esempio è pronto per essere compilato ed eseguito. Viene fornito con YAKINDU Statechart Tools, che è gratuito per uso non commerciale. Dopo il download, puoi importare l'esempio direttamente nello strumento:
File -> Nuovo -> Esempio -> Esempi di diagrammi di stato YAKINDU -> Avanti -> Semaforo (C++) per Arduino
> QUI puoi scaricare gli strumenti YAKINDU Statechart <<
Puoi iniziare con una prova di 30 giorni. Successivamente, devi ottenere una licenza, che è gratuita per uso non commerciale!
Consigliato:
Semaforo Arduino: 3 passaggi (con immagini)
Semaforo Arduino: questo istruibile deriva da: Arduino-Traffic-Light-Simulator Ho usato il disegno di questo istruibile, per creare un semaforo separato. Ho apportato le seguenti modifiche: i fori per i LED sono più piccoli, per i LED da 5 mm (invece dei LED da 10 mm)
Progetto Semaforo Arduino [Con Attraversamento Pedonale]: 3 Passaggi
Progetto semaforo Arduino [con attraversamento pedonale]: se stai cercando qualcosa di facile, semplice e allo stesso tempo vuoi stupire tutti con il tuo Arduino, allora il progetto semaforo è probabilmente la scelta migliore soprattutto quando sei un principiante nel mondo di Arduino. Vedremo prima come
Simulazione intelligente del semaforo con DragonBoard 410c: 7 passaggi (con immagini)
Simulazione intelligente del semaforo con DragonBoard 410c: |MATERIALI: MDF 1,20 Mts. x 1,20 mt.8 LED:· 2 Verdi · 2 puntini gialli 2 rossi· 2 WhitesUn pezzo di cartone.Dragon Board 410c BladeWiresSilicone Silicone GunMacchinina ProtoboardPush buttonInfrarossi
Semaforo Arduino: 8 passaggi (con immagini)
Arduino Traffic Light: questo progetto è stato realizzato con LED da 5 mm e hardware di montaggio per LED T1-3/4 Clear Standard per una migliore visualizzazione, quindi utilizzando 3 LED per mostrare separatamente i suoi colori Rosso, Giallo e amp; Rispettivamente verde
Un semaforo con pattern di tipo Braille controllato dalla voce: 4 passaggi (con immagini)
Un semaforo a controllo vocale, di tipo Braille: "Lord Vetinari era in piedi alla sua finestra a guardare la torre del semaforo dall'altra parte del fiume. Tutte e otto le grandi persiane di fronte a lui stavano lampeggiando furiosamente: nero, bianco, nero, bianco, nero, bianco… Le informazioni volavano nel