Sadržaj:

Arduino Hot Wheels Speed Track, dio #2 - Kod: 5 koraka
Arduino Hot Wheels Speed Track, dio #2 - Kod: 5 koraka

Video: Arduino Hot Wheels Speed Track, dio #2 - Kod: 5 koraka

Video: Arduino Hot Wheels Speed Track, dio #2 - Kod: 5 koraka
Video: 35 видео со страшными призраками: мегасборник 2023 года [V1] 2024, Juli
Anonim
Image
Image

U prvom dijelu ovog projekta izgradili smo hardver za prototip na 2 ploče.

U ovom dijelu ćemo proći kroz kod, kako funkcionira, a zatim ga testirati.

Obavezno pogledajte gornji video zapis za cijeli pregled koda i prikaz radnog koda.

Korak 1: I MASTER i SLAVE u istom kodu

Kôd se sastoji od 2 dijela, ali unutar iste datoteke. Koristim #define i #ifdef da odredim koji će se kod sastaviti ili zanemariti, tako da mogu odvojiti bilo koji kôd koji je samo za MASTER matičnu ploču i kod koji je samo za SLAVE matičnu ploču.

U osnovi, ako se pronađe definirani MASTER, tada će se prevesti bilo koji kôd koji se nalazi unutar bloka koda MASTER, a bilo koji kôd izvan tog bloka bit će uklonjen u vrijeme kompajliranja.

#ifdef MASTER

// Ovdje je glavni kod

#else

#define SLAVE

// Ovdje je specifičan kod za slave

#endif

Istu tehniku koristim i za #definiranje SLAVE -a kada se sastavlja MASTER, tako da morate brinuti samo o definiranju MASTER -a ili o onemogućavanju definiranja SLAVE -a.

Korak 2: Moduli BLUETOOTH razgovaraju putem serijskog čitanja i pisanja

U ovom projektu samo SLAVE matična ploča razgovara s MASTER matičnom pločom. MASTER nikada ne odgovara, on samo sluša, a zatim reagira na podatke koji dolaze.

Moduli govore i slušaju koristeći ugrađenu serijsku klasu u Arduino kodirajućem ekosistemu.

Bluetooth moduli komuniciraju brzinom od 38400 baud, pa oba puta koda inicijaliziraju svoju serijsku komunikaciju koristeći:

Serial.begin (38400);

I SLAVE koristi:

Serial.write (podaci ovdje);

Za razgovor s MASTER -om, a MASTER koristi:

data = Serial.read ();

Da biste slušali serijski tok i čitali njegov sadržaj i spremili ga u varijablu.

Korak 3: Kontrola trke

SLAVE govori MASTER-u ako je u utrci više ili u stanju pripravnosti putem zelenog gumba spojenog na mikrokontroler. U pripravnom načinu rada, IR senzori ne rade ništa, a MASTER će prikazati 8 crtica na zaslonu kako bi označio da je u načinu rada spreman.

Kad SLAVE kaže MASTER -u da će utrka početi, SLAVE počinje anketirati IR senzore sa svoje strane (početak trkaće staze) kako bi automobili prošli ispod.

Kako svaki automobil prolazi ispod svakog IR senzora, šalje MASTERU A (automobil 1) ili B (automobil 2).

Kad MASTER primi A ili B, on omogućuje mjerač vremena za taj automobil, a zatim čeka da automobil prođe ispod odgovarajućeg IC senzora na ciljnoj liniji.

Zaslon se ažurira svakih 50 ms kako bi prikazao trenutno vrijeme za svaki automobil u sekundama sa 2 decimalna mjesta.

Nakon što su oba automobila stigla na cilj, MASTER odlučuje koji je automobil bio najbrži i treperi to vrijeme na ekranu kako bi označio pobjednika.

Korak 4: Ostatak koda

Ostatak koda je samo pomoćni kod koji ili kontrolira prikaz podataka na osmeroznamenkastom zaslonu ili upravlja logikom pritiskanja gumba itd.

Na kraju videa u uvodnom dijelu ovog projekta pokazujem primjer koda koji se izvodi na dvije ploče, pa provjerite to!

Kod za ovaj projekt možete preuzeti iz mog github repoa.

Korak 5: Šta je sljedeće?

To je to za sada … u trećem dijelu ćemo pogledati premještanje komponenti s matične ploče na nešto trajnije … ostanite s nama!

Nadam se da uživate u ovom projektu!

Pratite me na:

www.youtube.com/c/unexpectedmaker

twitter.com/unexpectedmaker

www.facebook.com/unexpectedmaker

www.instagram.com/unexpectedmaker

www.tindie.com/stores/seonr/

Preporučuje se: