Sommario:

Arduino Hot Wheels Speed Track Parte #2 - Codice: 5 Passaggi
Arduino Hot Wheels Speed Track Parte #2 - Codice: 5 Passaggi

Video: Arduino Hot Wheels Speed Track Parte #2 - Codice: 5 Passaggi

Video: Arduino Hot Wheels Speed Track Parte #2 - Codice: 5 Passaggi
Video: L’unico video delle medie che abbiamo insieme🤣💕 #miglioriamici #miglioreamica #miglioreamico 2024, Dicembre
Anonim
Image
Image

Nella prima parte di questo progetto abbiamo realizzato l'hardware per il prototipo su 2 breadboard.

E in questa parte esamineremo il codice, come funziona e poi lo testeremo.

Assicurati di guardare il video qui sopra per l'intera revisione del codice e la presentazione del codice funzionante.

Passaggio 1: sia MASTER che SLAVE nello stesso codice

Il codice è in 2 parti, ma all'interno dello stesso file. Uso #define e #ifdef per determinare quale codice verrà compilato o ignorato in modo da poter separare qualsiasi codice solo per la breadboard MASTER e il codice solo per la breadboard SLAVE.

Fondamentalmente, se viene trovato il define MASTER, verrà compilato qualsiasi codice che si trova all'interno del blocco di codice MASTER e qualsiasi codice esterno a quel blocco verrà rimosso in fase di compilazione.

#ifdef MASTER

//Il codice specifico del master è qui

#altro

#define SLAVE

// Il codice specifico dello slave è qui

#finisci se

Sto anche usando la stessa tecnica per #define SLAVE quando MASTER viene compilato, quindi devi solo preoccuparti di definire MASTER o non abilitare SLAVE da definire.

Passaggio 2: i moduli BLUETOOTH parlano tramite lettura e scrittura seriale

In questo progetto solo la breadboard SLAVE parla con la breadboard MASTER. Il MASTER non risponde mai, ascolta solo e poi agisce sui dati in arrivo.

I moduli parlano e ascoltano utilizzando la classe Serial integrata nell'ecosistema di codifica Arduino.

I moduli Bluetooth comunicano a 38400 baud, quindi entrambi i percorsi di codice inizializzano le loro comunicazioni seriali utilizzando:

Serial.begin(38400);

E lo SLAVE usa:

Serial.write (dati qui);

Per parlare con il MASTER, e il MASTER usa:

data = Serial.read();

Per ascoltare il flusso seriale e leggerne il contenuto e memorizzarlo all'interno di una variabile.

Passaggio 3: controllare la gara

Lo SLAVE comunica al MASTER se è in modalità gara more o ready tramite il pulsante verde collegato al suo microcontrollore. In modalità ready i sensori IR non fanno nulla e il MASTER visualizzerà 8 trattini sul display per indicare che è in modalità ready.

Quando lo SLAVE dice al MASTER che sta per iniziare una gara, lo SLAVE inizia a interrogare i sensori IR sul suo lato (l'inizio della pista) per far passare le auto sotto.

Quando ogni auto passa sotto ogni sensore IR, invia un A (auto 1) o B (auto 2) al MASTER.

Quando il MASTER riceve un A o B, abilita il timer per quella specifica auto e poi attende che l'auto passi sotto il corrispondente sensore IR al traguardo.

Il display viene aggiornato ogni 50 ms per visualizzare l'ora corrente per ogni vettura in secondi con 2 decimali.

Una volta che entrambe le vetture hanno tagliato il traguardo, il MASTER decide quale vettura è stata la più veloce e lampeggia quel tempo sul display per indicare il vincitore.

Passaggio 4: il resto del codice

Il resto del codice è solo un codice di utilità che controlla la visualizzazione dei dati sul display a 8 cifre o gestisce la logica della pressione dei pulsanti, ecc.

Alla fine del video nella sezione introduttiva di questo progetto, mostro un esempio del codice in esecuzione sulle 2 breadboard, quindi assicurati di controllarlo!

Puoi prendere il codice per questo progetto dal mio repository github.

Passaggio 5: cosa c'è dopo?

Per ora è tutto… nella terza parte vedremo come spostare i componenti dalla breadboard a qualcosa di più permanente… restate sintonizzati!

Spero che questo progetto vi piaccia!

Seguimi su:

www.youtube.com/c/unexpectedmaker

twitter.com/unexpectedmaker

www.facebook.com/unexpectedmaker

www.instagram.com/unexpectedmaker

www.tindie.com/stores/seonr/

Consigliato: