Obsah:

Speed Track Arduino Hot Wheels časť #2 - kód: 5 krokov
Speed Track Arduino Hot Wheels časť #2 - kód: 5 krokov

Video: Speed Track Arduino Hot Wheels časť #2 - kód: 5 krokov

Video: Speed Track Arduino Hot Wheels časť #2 - kód: 5 krokov
Video: 35 видео со страшными призраками: мегасборник 2023 года [V1] 2024, November
Anonim
Image
Image

V prvej časti tohto projektu sme pre 2 prototypy vybudovali hardvér pre prototyp.

A v tejto časti si prejdeme kód, ako funguje, a potom ho vyskúšame.

Nezabudnite si pozrieť vyššie uvedené video, kde nájdete celú kontrolu kódu a ukážku pracovného kódu.

Krok 1: MASTER aj SLAVE v rovnakom kóde

Kód je rozdelený na 2 časti, ale vnútri rovnakého súboru. Na určenie, ktorý kód bude kompilovaný alebo ignorovaný, používam #define a #ifdef, aby som mohol oddeliť ľubovoľný kód, ktorý je len pre tabuľu MASTER, a kód, ktorý je len pre tabuľu SLAVE.

V zásade, ak sa nájde define MASTER, potom bude skompilovaný akýkoľvek kód, ktorý sa nachádza v bloku kódu MASTER, a akýkoľvek kód mimo tohto bloku bude pri kompilácii odstránený.

#ifdef MAJSTER

// Tu je kód špecifický pre majstra

#inak

#definuj OTROK

// Je tu kód špecifický pre slave

#koniec Ak

Rovnakú techniku používam aj na #define SLAVE, keď je zostavený MASTER, takže sa musíte starať iba o definovanie MASTER alebo o to, či nie je povolené definovať SLAVE.

Krok 2: Moduly BLUETOOTH komunikujú prostredníctvom sériového čítania a zápisu

V tomto projekte hovorí iba panel SLAVE o paneli MASTER. MASTER nikdy nehovorí, iba počúva a potom koná podľa prichádzajúcich dát.

Moduly hovoria a počúvajú pomocou vstavanej triedy Serial v kódovacom ekosystéme Arduino.

Moduly Bluetooth komunikujú rýchlosťou 38 400 baudov, takže obe cesty kódu inicializujú svoju sériovú komunikáciu pomocou:

Serial.begin (38400);

A SLAVE používa:

Serial.write (údaje sú tu);

Na rozhovor s MASTEROM a MASTER používa:

data = Serial.read ();

Počúvajte sériový stream, čítajte jeho obsah a uložte ho do premennej.

Krok 3: Ovládanie závodu

SLAVE informuje MASTERA, či je v pretekoch alebo v režime pripravenosti, a to prostredníctvom zeleného tlačidla pripojeného k jeho mikrokontroléru. V pohotovostnom režime infračervené senzory nerobia nič a MASTER zobrazí na displeji 8 čiarok, ktoré znamenajú, že je v pohotovostnom režime.

Keď SLAVE oznámi MAJSTROVI, že sa začnú preteky, SLAVE začne dotazovať infračervené senzory na svojej strane (začiatok pretekárskej dráhy), aby autá prechádzali pod ním.

Keď každé auto prejde pod každý infračervený senzor, vyšle A (auto 1) alebo B (auto 2) na MASTER.

Keď MASTER dostane A alebo B, aktivuje časovač pre konkrétne auto a potom počká, kým auto prejde pod zodpovedajúcim infračerveným senzorom v cieľovej čiare.

Displej sa aktualizuje každých 50 ms, aby sa v sekundách zobrazoval aktuálny čas v sekundách s 2 desatinnými miestami.

Hneď ako obe autá dorazia do cieľa, MASTER rozhodne, ktoré auto bolo najrýchlejšie, a na displeji potom bliká, aby označil víťaza.

Krok 4: Zvyšok kódu

Zvyšok kódu je iba obslužný kód, ktorý buď ovláda zobrazovanie údajov na 8 -miestnom displeji, alebo spracováva logiku stlačenia tlačidiel atď.

Na konci videa v úvodnej časti tohto projektu uvádzam príklad kódu spusteného na 2 doskách, takže si to určite overte!

Kód pre tento projekt môžete získať z môjho github repo.

Krok 5: Čo bude ďalej?

To je zatiaľ všetko … v časti 3 sa pozrieme na premiestnenie komponentov z dosky na niečo trvalejšie … zostaňte naladení!

Dúfam, že sa vám tento projekt páči!

Nasleduj ma:

www.youtube.com/c/unexpectedmaker

twitter.com/unexpectedmaker

www.facebook.com/unexpectedmaker

www.instagram.com/unexpectedmaker

www.tindie.com/stores/seonr/

Odporúča: