Sisukord:

Arduino Hot Wheelsi kiirrada, osa 2 - kood: 5 sammu
Arduino Hot Wheelsi kiirrada, osa 2 - kood: 5 sammu

Video: Arduino Hot Wheelsi kiirrada, osa 2 - kood: 5 sammu

Video: Arduino Hot Wheelsi kiirrada, osa 2 - kood: 5 sammu
Video: CS50 2015 - Week 4 2024, Juuli
Anonim
Image
Image

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/

Soovitan: