Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
U prvom dijelu ovog projekta izgradili smo hardver za prototip na 2 ploče.
U ovom dijelu ćemo preći preko koda, kako radi, a zatim ga isprobati.
Svakako pogledajte gornji videozapis 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 ploču i kod koji je samo za SLAVE ploču.
U osnovi, ako se pronađe definirani MASTER, tada će se prevesti bilo koji kôd koji se nalazi unutar bloka MASTER koda i svaki kôd izvan tog bloka bit će uklonjen u vrijeme prevođenja.
#ifdef MAJSTOR
// Ovdje je glavni kod
#drugo
#definiraj SLOVE
// Ovdje je specifičan kod za slave
#završi ako
Istu tehniku koristim i za #definiranje SLAVE -a kada se sastavlja MASTER pa se trebate samo brinuti oko definiranja MASTER -a ili ne dopustili definiranje SLAVE -a.
Korak 2: Moduli BLUETOOTH razgovaraju putem serijskog čitanja i pisanja
U ovom projektu samo SLAVE matična ploča razgovara s MASTER pločicom. MASTER nikad ne odgovara, on samo sluša, a zatim djeluje na podatke koji dolaze.
Moduli razgovaraju i slušaju koristeći ugrađenu serijsku klasu u ekosustavu kodiranja Arduino.
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 ();
Slušati serijski tok i čitati njegov sadržaj te ga pohraniti unutar varijable.
Korak 3: Kontrola utrke
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 IC senzori ne rade ništa, a MASTER će na zaslonu prikazati 8 crtica kako bi pokazao 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 njih.
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 određeni automobil, a zatim čeka da automobil prođe ispod odgovarajućeg IR senzora na ciljnoj crti.
Zaslon se ažurira svakih 50 ms kako bi prikazao trenutno vrijeme za svaki automobil u sekundama s 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 zaslonu kako bi označio pobjednika.
Korak 4: Ostatak koda
Ostatak koda je samo usluž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!
Kôd za ovaj projekt možete preuzeti iz mog github repoa.
Korak 5: Što je sljedeće?
To je to za sada … u trećem dijelu pogledat ćemo premještanje komponenti s matične ploče na nešto trajnije … ostanite s nama!
Nadam se da uživate u ovom projektu!
Prati me na:
www.youtube.com/c/unexpectedmaker
twitter.com/unexpectedmaker
www.facebook.com/unexpectedmaker
www.instagram.com/unexpectedmaker
www.tindie.com/stores/seonr/