Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Selle projekti esimeses osas ehitasime prototüübi riistvara 2 leivaplaadile.
Ja selles osas vaatame koodi üle, kuidas see töötab, ja seejärel katsetame seda.
Vaadake kindlasti ülaltoodud videot kogu koodi ülevaatamiseks ja töökoodi tutvustamiseks.
Samm: nii MASTER kui ka ORJAS samas koodis
Kood koosneb kahest osast, kuid samas failis. Kasutan #define ja #ifdef, et teha kindlaks, milline kood kompileeritakse või seda ignoreeritakse, et saaksin eraldada mis tahes koodi, mis on mõeldud ainult MASTER leivaplaadile, ja koodi, mis on mõeldud ainult SLAVE leivaplaadile.
Põhimõtteliselt, kui määratletakse MASTER, siis kompileeritakse kõik koodid, mis asuvad MASTER -koodiploki sees, ja kõik sellest väljaspool olevad koodid eemaldatakse kompileerimise ajal.
#ifdef MASTER
// Põhispetsiifiline kood on siin
#muidu
#määratle orjus
// Orjaspetsiifiline kood on siin
#endif
Kasutan sama tehnikat ka SLAVE määratlemiseks, kui MASTER on koostatud, nii et peate muretsema ainult MASTERi määratlemise pärast või mitte lubama SLAVE määratlemist.
2. samm: BLUETOOTH -moodulid räägivad jada lugemise ja kirjutamise kaudu
Selles projektis räägib MASTER leivaplaadiga ainult SLAVE leivalaud. MASTER ei räägi kunagi tagasi, ta ainult kuulab ja seejärel saabuvaid andmeid järgib.
Moodulid räägivad ja kuulavad, kasutades Arduino kodeeriva ökosüsteemi sisseehitatud seeriaklassi.
Bluetooth -moodulid suhtlevad 38400 baudiga, nii et mõlemad kooditeed initsialiseerivad oma jadaühenduse, kasutades järgmist:
Seriaalne algus (38400);
Ja orjus kasutab:
Serial.write (andmed siin);
MASTERiga rääkimiseks kasutab MASTER järgmist:
andmed = Serial.read ();
Sarjavoo kuulamiseks ja selle sisu lugemiseks ning muutuja sisse salvestamiseks.
3. samm: võistluse kontrollimine
SLAVE teatab MEISTRILE, kui see on võistlusrežiimis või valmisrežiimis, selle mikrokontrolleriga ühendatud rohelise nupu kaudu. Valmisrežiimis ei tee infrapunaandurid midagi ja MASTER näitab ekraanil 8 kriipsu, mis näitab, et see on valmisrežiimis.
Kui SLAVE ütleb MEISTRILE, et võistlus algab, hakkab SLAVE küsitlema küljel asuvaid IR -andureid (võistlusraja algus), et autod alt läbi sõidaksid.
Kui iga auto läbib iga IR -anduri, saadab ta A (auto 1) või B (auto 2) MASTERile.
Kui MASTER saab tähe A või B, lubab ta selle konkreetse auto taimerit ja ootab seejärel, kuni auto möödub finišijoonel vastava IR -anduri alt.
Ekraani uuendatakse iga 50 ms järel, et kuvada iga auto praegune aeg sekundites kahe komakoha täpsusega.
Kui mõlemad autod on finišisse jõudnud, otsustab MASTER, milline auto oli kiireim, ja vilgub sel ajal ekraanil, et näidata võitjat.
4. samm: ülejäänud kood
Ülejäänud kood on lihtsalt utiliidikood, mis kontrollib andmete kuvamist 8 -kohalisel ekraanil või tegeleb nupuvajutuse loogikaga jne.
Selle projekti sissejuhatava osa video lõpus näitan näite kahe leivalaual töötava koodi kohta, seega kontrollige seda kindlasti!
Selle projekti koodi saate hankida minu githubi repost.
5. samm: mis saab edasi?
See on nüüd… 3. osas vaatleme komponentide teisaldamist leivaplaadilt ja millegi püsivama poole … olge lainel!
Loodan, et naudite seda projekti!
Jälgi mind:
www.youtube.com/c/unexpectedmaker
twitter.com/unexpectedmaker
www.facebook.com/unexpectedmaker
www.instagram.com/unexpectedmaker
www.tindie.com/stores/seonr/