Turinys:

„Arduino Hot Wheels“greičio stebėjimo dalis Nr. 2 - Kodas: 5 žingsniai
„Arduino Hot Wheels“greičio stebėjimo dalis Nr. 2 - Kodas: 5 žingsniai

Video: „Arduino Hot Wheels“greičio stebėjimo dalis Nr. 2 - Kodas: 5 žingsniai

Video: „Arduino Hot Wheels“greičio stebėjimo dalis Nr. 2 - Kodas: 5 žingsniai
Video: DC motor's speed Controller | Electronics 2024, Lapkritis
Anonim
Image
Image

Pirmoje šio projekto dalyje mes sukūrėme prototipo techninę įrangą ant 2 lentų.

Ir šioje dalyje apžvelgsime kodą, kaip jis veikia, ir tada išbandysime.

Būtinai žiūrėkite aukščiau esantį vaizdo įrašą, kad peržiūrėtumėte visą kodą ir parodytumėte darbo kodą.

1 žingsnis: MASTER ir SLAVE tame pačiame kode

Kodas sudarytas iš dviejų dalių, bet to paties failo viduje. Aš naudoju #define ir #ifdef, kad nustatyčiau, kuris kodas bus sukompiliuotas arba ignoruojamas, kad galėčiau atskirti bet kokį kodą, skirtą tik MASTER duonos lentai, ir kodą, skirtą tik SLAVE duonos lentai.

Iš esmės, jei apibrėžimas MASTER yra rastas, tada visas kodas, esantis MASTER kodo bloke, bus sukompiliuotas ir bet koks už to bloko esantis kodas bus pašalintas kompiliavimo metu.

#ifdef MASTER

// Pagrindinis specifinis kodas yra čia

#Kitas

#define VERGĖ

// Slave specifinis kodas yra čia

#endif

Aš taip pat naudoju tą pačią techniką #define SLAVE, kai sudaromas MASTER, todėl jums reikia tik nerimauti dėl MASTER apibrėžimo arba neleisti įjungti SLAVE.

2 veiksmas: „BLUETOOTH“moduliai kalba serijiniu skaitymu ir rašymu

Šiame projekte tik „SLAVE“duonos lenta kalba su „MASTER“duonos lenta. Meistras niekada nekalba atgal, jis tik klauso ir veikia pagal gaunamus duomenis.

Moduliai kalba ir klausosi naudodamiesi „Arduino“kodavimo ekosistemoje įdiegta serijine klase.

„Bluetooth“moduliai bendrauja 38400 baudų dažniu, todėl abu kodo keliai inicijuoja nuoseklųjį ryšį naudodami:

Serial.begin (38400);

O vergas naudoja:

Serial.write (duomenys čia);

Norėdami pasikalbėti su MASTER, ir MASTER naudoja:

duomenys = Serial.read ();

Norėdami klausytis nuoseklaus srauto ir skaityti jo turinį bei saugoti jį kintamajame.

3 žingsnis: lenktynių valdymas

„SLAVE“per žalią mygtuką, prijungtą prie jo mikrovaldiklio, praneša MASTER, jei jis yra lenktynėse daugiau ar yra pasirengęs. Parengties režimu IR jutikliai nieko nedaro, o MASTER ekrane parodys 8 brūkšnelius, rodančius, kad jis yra parengties režime.

Kai VERGAS praneša MASTERIUI, kad prasidės lenktynės, VERGAS pradeda apklausti savo pusėje esančius IR jutiklius (lenktynių trasos pradžia), kad automobiliai pravažiuotų po juo.

Kai kiekvienas automobilis praeina po kiekvienu IR jutikliu, jis siunčia A (1 automobilis) arba B (2 automobilis) į MASTER.

Kai MASTER gauna A arba B, jis įjungia tam tikro automobilio laikmatį ir tada laukia, kol automobilis praeis po atitinkamu IR jutikliu finišo tiesiojoje.

Ekranas atnaujinamas kas 50 ms, kad būtų parodytas dabartinis kiekvieno automobilio laikas sekundėmis su 2 skaičiais po kablelio.

Kai abu automobiliai pasiekia finišo tiesiąją, MASTER nusprendžia, kuris automobilis buvo greičiausias, ir tuo metu mirksi ekrane, kad nurodytų nugalėtoją.

4 žingsnis: likusi kodekso dalis

Likusi kodo dalis yra tik naudingumo kodas, kuris kontroliuoja duomenų rodymą 8 skaitmenų ekrane arba tvarko mygtukų paspaudimo logiką ir pan.

Šio projekto įžanginės dalies vaizdo įrašo pabaigoje parodau kodo, veikiančio 2 duonos lentose, pavyzdį, todėl būtinai tai patikrinkite!

Šio projekto kodą galite paimti iš mano „github“repo.

5 žingsnis: kas toliau?

Kol kas viskas … 3 dalyje apžvelgsime komponentų perkėlimą iš duonos lentos į kažką pastovesnio … sekite naujienas!

Tikiuosi, kad jums patinka šis projektas!

Sek mane:

www.youtube.com/c/unexpectedmaker

twitter.com/unexpectedmaker

www.facebook.com/unexpectedmaker

www.instagram.com/unexpectedmaker

www.tindie.com/stores/seonr/

Rekomenduojamas: