Cuprins:
- Pasul 1: Atât MASTER, cât și SLAVE în același cod
- Pasul 2: modulele BLUETOOTH vorbesc prin citire și scriere în serie
- Pasul 3: Controlul cursei
- Pasul 4: Restul codului
- Pasul 5: Ce urmează?
Video: Arduino Hot Wheels Speed Track Partea # 2 - Cod: 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
În prima parte a acestui proiect am construit hardware-ul pentru prototip pe 2 panouri.
Și în această parte vom trece peste cod, cum funcționează și apoi îl vom testa.
Asigurați-vă că urmăriți videoclipul de mai sus pentru întreaga revizuire a codului și prezentarea codului de lucru.
Pasul 1: Atât MASTER, cât și SLAVE în același cod
Codul este în 2 părți, dar în interiorul aceluiași fișier. Folosesc #define și #ifdef pentru a determina codul care va fi compilat sau ignorat, astfel încât să pot separa orice cod care este doar pentru panoul MASTER și codul care este doar pentru panoul SLAVE.
Practic, dacă se găsește definirea MASTER, atunci orice cod care se află în interiorul blocului de cod MASTER va fi compilat și orice cod din afara acelui bloc va fi eliminat la momentul compilării.
#ifdef MASTER
// Codul master specific este aici
#else
#define SLAVE
// Codul specific pentru sclav este aici
#endif
De asemenea, folosesc aceeași tehnică pentru a #define SLAVE când MASTER este compilat, deci trebuie doar să vă faceți griji cu privire la definirea MASTER sau să nu activați SLAVE.
Pasul 2: modulele BLUETOOTH vorbesc prin citire și scriere în serie
În acest proiect, numai placa de discurs SLAVE vorbește cu placa de masă MASTER. MASTER nu vorbește niciodată, doar ascultă și apoi acționează asupra datelor care intră.
Modulele vorbesc și ascultă folosind clasa Serial încorporată din ecosistemul de codare Arduino.
Modulele Bluetooth comunică la 38400 baud, astfel încât ambele căi de cod inițializează comunicațiile seriale utilizând:
Serial.begin (38400);
Iar SLAVE folosește:
Serial.write (date aici);
Pentru a vorbi cu MASTER, iar MASTER folosește:
date = Serial.read ();
Pentru a asculta fluxul serial și a citi conținutul acestuia și a-l stoca într-o variabilă.
Pasul 3: Controlul cursei
SLAVE îi spune MASTER-ului dacă este în cursă mai mult sau gata prin butonul verde conectat la microcontrolerul său. În modul gata, senzorii IR nu fac nimic și MASTER va afișa 8 liniuțe pe afișaj pentru a indica faptul că este în modul gata.
Când SLAVE îi spune lui MASTER că va începe o cursă, SLAVE începe să sondeze senzorii IR de pe partea laterală (Startul pistei de curse) pentru ca mașinile să treacă pe dedesubt.
Pe măsură ce fiecare mașină trece sub fiecare senzor IR, trimite un A (mașina 1) sau B (mașina 2) către MASTER.
Când MASTER primește un A sau B, acesta activează cronometrul pentru mașina respectivă și apoi așteaptă ca mașina să treacă sub senzorul IR corespunzător la linia de sosire.
Afișajul este actualizat la fiecare 50 ms pentru a afișa ora curentă pentru fiecare mașină în câteva secunde, cu 2 zecimale.
Odată ce ambele mașini au ajuns la linia de sosire, MASTER decide care mașină a fost cea mai rapidă și afișează momentul pe afișaj pentru a indica câștigătorul.
Pasul 4: Restul codului
Restul codului este doar un cod utilitar care fie controlează afișarea datelor pe afișajul de 8 cifre, fie gestionează logica apăsării butonului etc.
La sfârșitul videoclipului din secțiunea introductivă a acestui proiect, vă arăt un exemplu de cod care rulează pe cele două panouri, așa că asigurați-vă că verificați acest lucru!
Puteți prelua codul pentru acest proiect din repo-ul meu github.
Pasul 5: Ce urmează?
Asta e deocamdată … în partea a 3-a ne vom uita la mutarea componentelor de pe panou și pe ceva mai permanent … rămâneți la curent!
Sper că vă place acest proiect!
Urmăriți-mă pe:
www.youtube.com/c/unexpectedmaker
twitter.com/unexpectedmaker
www.facebook.com/unexpectedmaker
www.instagram.com/unexpectedmaker
www.tindie.com/stores/seonr/
Recomandat:
BLE ușor de putere foarte mică în Arduino Partea 2 - Monitor de temperatură / umiditate - Rev. 3: 7 pași
BLE ușor de putere foarte mică în Arduino Partea 2 - Monitor de temperatură / umiditate - Rev. 3: Actualizare: 23 noiembrie 2020 - Prima înlocuire a 2 baterii AAA începând cu 15 ianuarie 2019, adică 22 de luni pentru 2xAAA alcaline Actualizare: 7 aprilie 2019 - Rev. 3 din lp_BLE_TempHumidity, adaugă graficele de dată / oră, utilizând pfodApp V3.0.362 + și limitarea automată a
Arduino-tomation Partea 5: LE TUNNEL DE CHAUFFE: 4 pași
Arduino-tomation Partea 5: LE TUNNEL DE CHAUFFE: Acum două luni am decis să modernizez un mic sistem uitat depozitat în casa de război a locului în care lucrez. Acest sistem a fost făcut pentru a încălzi și încălzi dispozitivele electronice sau orice altceva pus la temperaturi speciale speciale. rezista la banda transportoare. Deci, am creat câteva
Arduino-tomation Partea 4: TRI DE BRIQUE: 5 pași
Arduino-tomation Partea 4: TRI DE BRIQUE: În acest Instructables vă voi vorbi despre o altă mașină modernizată și controlată de o placă de clonare Arduino formată dintr-un Atmega1284p. Această placă poate suporta un scut ethernet și poate fi supravegheată de un SCADA (AdvancedHMI, Unigo) sau un industrial
Cum se modifică Hot Wheels standard la Hot Wheels R / C: D: 6 pași (cu imagini)
Cum se modifică Hot Wheels standard la Hot Wheels R / C: D: De când eram copil, îmi plac mașinile Hot Wheels. Mi-a dat inspirație pentru vehiculele fanteziste de design. De data aceasta s-au întrecut cu Star Wars Hot Wheels, C-3PO. Cu toate acestea, vreau mai mult decât să împing sau să călătoresc pe o pistă, am decis, „L
Arduino Hot Wheels Speed Track - Partea 1 - Prototip: 4 pași
Arduino Hot Wheels Speed Track - Partea 1 - Prototip: Nu ar trebui să fie o surpriză faptul că fiul meu iubește roțile fierbinți și își conduce cursele peste tot în casă! Unul dintre lucrurile sale preferate de făcut este să alerge toate mașinile sale (peste 100 acum) pentru a stabili care este cea mai rapidă mașină. Chiar acum face totul cu ochiul și