Sisällysluettelo:

Arduino Hot Wheels Speed Track Osa #2 - Koodi: 5 vaihetta
Arduino Hot Wheels Speed Track Osa #2 - Koodi: 5 vaihetta

Video: Arduino Hot Wheels Speed Track Osa #2 - Koodi: 5 vaihetta

Video: Arduino Hot Wheels Speed Track Osa #2 - Koodi: 5 vaihetta
Video: High Density 2022 2024, Marraskuu
Anonim
Image
Image

Projektin ensimmäisessä osassa rakensimme prototyypin laitteiston kahdelle leipälevylle.

Ja tässä osassa käymme läpi koodin, miten se toimii ja sitten testataan sitä.

Muista katsoa yllä oleva video koko koodin tarkastelu ja esittely työkoodista.

Vaihe 1: Sekä MASTER että SLAVE samassa koodissa

Koodi on kahdessa osassa, mutta saman tiedoston sisällä. Käytän #define- ja #ifdef -ohjelmia määrittääkseni, mikä koodi kootaan tai jätetään huomiotta, jotta voin erottaa minkä tahansa koodin, joka on tarkoitettu vain MASTER -leipälevylle, ja koodin, joka on tarkoitettu vain SLAVE -leipälevylle.

Periaatteessa, jos MASTER -määritelmä löytyy, kaikki MASTER -koodilohkon sisällä olevat koodit kootaan ja kaikki lohkon ulkopuoliset koodit poistetaan käännösaikana.

#ifdef MASTER

// Pääkohtainen koodi on tässä

#muu

#määritä orja

// Orjakohtainen koodi on tässä

#loppu Jos

Käytän samaa tekniikkaa myös #define SLAVE: n määrittämiseen, kun MASTER kootaan, joten sinun tarvitsee vain huolehtia MASTERin määrittämisestä tai olla ottamatta käyttöön sallittua SLAVEa.

Vaihe 2: BLUETOOTH -moduulit puhuvat sarjaliikenteen luku- ja kirjoitustoiminnon kautta

Tässä projektissa vain SLAVE -leipälauta puhuu MASTER -leipälevylle. MASTER ei koskaan puhu takaisin, se vain kuuntelee ja toimii sitten saapuvien tietojen perusteella.

Moduulit puhuvat ja kuuntelevat Arduinon koodausekosysteemin sisäänrakennetun sarjaluokan avulla.

Bluetooth -moduulit kommunikoivat 38400 baudilla, joten molemmat koodipolut alustavat sarjaliikenteen käyttämällä:

Sarja.alku (38400);

Ja orja käyttää:

Serial.write (tiedot tässä);

Puhuminen MASTERille, ja MASTER käyttää:

data = Serial.read ();

Voit kuunnella sarjavirtaa ja lukea sen sisältöä ja tallentaa sen muuttujan sisälle.

Vaihe 3: Kilpailun hallinta

SLAVE ilmoittaa MASTERille, onko se kilpailussa enemmän tai valmiustilassa sen mikro-ohjaimeen liitetyn vihreän painikkeen kautta. Valmiustilassa IR -anturit eivät tee mitään ja MASTER näyttää 8 viivaa näytössä osoittaakseen olevansa valmiustilassa.

Kun SLAVE kertoo MASTERILLE, että kilpailu on alkamassa, SLAVE alkaa kyseenalaistaa sen puolella olevia IR -antureita (kilparadan alku) autojen ohittamiseksi alla.

Kun jokainen auto kulkee jokaisen IR -anturin alle, se lähettää A (auto 1) tai B (auto 2) MASTERille.

Kun MASTER vastaanottaa arvon A tai B, se ottaa ajastimen käyttöön kyseisessä autossa ja odottaa sitten auton kulkua vastaavan infrapuna -anturin alla maalissa.

Näyttö päivitetään 50 ms välein näyttämään kunkin auton nykyinen aika sekunteina 2 desimaalin tarkkuudella.

Kun molemmat autot ovat saavuttaneet maalilinjan, MASTER päättää, mikä auto oli nopein, ja vilkkuu tuolloin näytöllä voittajan osoittamiseksi.

Vaihe 4: Loput koodista

Loput koodista ovat vain apuohjelmakoodia, joka joko ohjaa tietojen näyttämistä 8 -numeroisessa näytössä tai käsittelee painikkeiden logiikkaa jne.

Tämän projektin johdanto -osan videon lopussa näytän esimerkin kahdella leipälevyllä toimivasta koodista, joten tarkista se!

Voit noutaa tämän projektin koodin github -repostani.

Vaihe 5: Mitä seuraavaksi?

Siinä se nyt … osassa 3 tarkastelemme komponenttien siirtämistä leipälevyltä ja jotain pysyvämpää… pysy kuulolla!

Toivottavasti pidät tästä projektista!

Seuraa minua:

www.youtube.com/c/unexpectedmaker

twitter.com/unexpectedmaker

www.facebook.com/unexpectedmaker

www.instagram.com/unexpectedmaker

www.tindie.com/stores/seonr/

Suositeltava: