Innehållsförteckning:

Arduino Hot Wheels Speed Track Part #2 - Kod: 5 steg
Arduino Hot Wheels Speed Track Part #2 - Kod: 5 steg

Video: Arduino Hot Wheels Speed Track Part #2 - Kod: 5 steg

Video: Arduino Hot Wheels Speed Track Part #2 - Kod: 5 steg
Video: HotWheels Speed ​​Track — Часть №2 — Код и тестирование 2024, November
Anonim
Image
Image

I den första delen av detta projekt byggde vi upp hårdvaran för prototypen på 2 brödbrädor.

Och i den här delen kommer vi att gå igenom koden, hur den fungerar och sedan testa den.

Se till att titta på videon ovan för hela kodgranskningen och presentationen av arbetskoden.

Steg 1: Både MASTER och SLAVE i samma kod

Koden är i två delar, men inne i samma fil. Jag använder #define och #ifdef för att avgöra vilken kod som ska sammanställas eller ignoreras så att jag kan skilja alla koder som bara är för MASTER -brödbrädan och koden som är bara för SLAVE -brödbrädet.

I grund och botten, om definiera MASTER hittas, kommer varje kod som sitter inuti MASTER -kodblocket att kompileras och eventuell kod utanför det blocket kommer att tas bort vid kompileringstidpunkten.

#ifdef MASTER

// Master specifik kod finns här

#annan

#define SLAVE

// Slavspecifik kod finns här

#endif

Jag använder också samma teknik för att #definera SLAVE när MASTER är sammanställd så du behöver bara oroa dig för att definiera MASTER eller inte för att aktivera SLAVE ska definieras.

Steg 2: BLUETOOTH -moduler Tal via seriell läsning och skrivning

I detta projekt talar bara SLAVE -brödbrädan till MASTER -brödbrädan. MASTERN pratar aldrig tillbaka, den lyssnar bara och agerar sedan på data som kommer in.

Modulerna pratar och lyssnar med den inbyggda serieklassen i Arduino -kodningens ekosystem.

Bluetooth -moduler kommunicerar med 38400 baud, så båda kodvägarna initierar sin seriella kommunikation med:

Serial.begin (38400);

Och SLAVEN använder:

Serial.write (data här);

För att prata med MASTER, och MASTER använder:

data = Serial.read ();

För att lyssna på serieströmmen och läsa dess innehåll och lagra den i en variabel.

Steg 3: Kontrollera loppet

SLAVEN berättar för MASTERN om den är i tävlingsläge eller klarläge via den gröna knappen som är ansluten till dess mikrokontroller. I redo -läget gör IR -sensorerna ingenting och MASTER visar 8 streck på displayen för att indikera att den är i redo -läge.

När SLAVEN säger till MASTERN att ett lopp kommer att börja, SLAVEN börjar polla IR -sensorerna på dess sida (starten på racerbanan) för bilar att passera under.

När varje bil passerar under varje IR -sensor skickar den en A (bil 1) eller B (bil 2) till MASTER.

När MASTER får ett A eller B, aktiverar det timern för den specifika bilen och väntar sedan på att bilen ska passera under motsvarande IR -sensor vid mållinjen.

Displayen uppdateras var 50: e ms för att visa aktuell tid för varje bil i sekunder med 2 decimaler.

När båda bilarna har nått mållinjen bestämmer MASTER vilken bil som var snabbast och blinkar den gången på displayen för att indikera vinnaren.

Steg 4: Resten av koden

Resten av koden är bara verktygskod som antingen styr visning av data på den 8 -siffriga displayen, eller hanterar knapptryckningslogik etc.

I slutet av videon i introduktionsavsnittet i detta projekt visar jag ett exempel på koden som körs på de två brödbrädorna, så se till att kolla in det!

Du kan hämta koden för detta projekt från min github -repo.

Steg 5: Vad är nästa?

Det är det för nu … i del 3 kommer vi att titta på att flytta komponenterna från brödbrädan och över till något mer permanent … håll utkik!

Jag hoppas att du gillar det här projektet!

Följ mig på:

www.youtube.com/c/unexpectedmaker

twitter.com/unexpectedmaker

www.facebook.com/unexpectedmaker

www.instagram.com/unexpectedmaker

www.tindie.com/stores/seonr/

Rekommenderad: