Indholdsfortegnelse:

Arduino Hot Wheels Speed Track Part #2 - Kode: 5 trin
Arduino Hot Wheels Speed Track Part #2 - Kode: 5 trin

Video: Arduino Hot Wheels Speed Track Part #2 - Kode: 5 trin

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

I den første del af dette projekt opbyggede vi hardware til prototypen på 2 brødbrætter.

Og i denne del vil vi gå over koden, hvordan den fungerer og derefter teste den.

Sørg for at se videoen ovenfor for hele kodeoversigten og fremvisning af arbejdskoden.

Trin 1: Både MASTER og SLAVE i samme kode

Koden er i 2 dele, men inde i den samme fil. Jeg bruger #define og #ifdef til at bestemme, hvilken kode der skal kompileres eller ignoreres, så jeg kan adskille enhver kode, der kun er til MASTER -brødbrættet, og kode, der kun er til SLAVE -brødbrættet.

Grundlæggende, hvis definere MASTER findes, vil enhver kode, der sidder inde i MASTER -kodeblokken, blive kompileret, og enhver kode uden for denne blok vil blive fjernet på kompileringstidspunktet.

#ifdef MASTER

// Master specifik kode er her

#andet

#define SLAVE

// Slave -specifik kode er her

#Afslut Hvis

Jeg bruger også den samme teknik til at #define SLAVE, når MASTER er udarbejdet, så du behøver kun at bekymre dig om at definere MASTER eller ikke aktivere SLAVE, der skal defineres.

Trin 2: BLUETOOTH -moduler Tal via seriel læsning og skrivning

I dette projekt taler kun SLAVE breadboard til MASTER breadboard. MASTER taler aldrig tilbage, den lytter kun og handler derefter på de data, der kommer ind.

Modulerne taler og lytter ved hjælp af den indbyggede serielle klasse i Arduino -kodende økosystem.

Bluetooth -moduler kommunikerer med 38400 baud, så begge kodeveje initialiserer deres serielle kommunikation ved hjælp af:

Serial.begin (38400);

Og SLAVEN bruger:

Serial.write (data her);

At tale med MASTER, og MASTER bruger:

data = Serial.read ();

For at lytte til seriel stream og læse dens indhold og gemme den i en variabel.

Trin 3: Kontrol af løbet

SLAVEN fortæller MASTEREN, om den er i race mere eller klar-tilstand via den grønne knap, der er sluttet til dens mikro-controller. I klar -tilstand gør IR -sensorerne ikke noget, og MASTER viser 8 streger på displayet for at angive, at den er i klar -tilstand.

Når SLAVEN fortæller MASTEREN, at et løb skal begynde, begynder SLAVEN at afstemme IR -sensorerne på dens side (starten på racerbanen), så biler kan passere nedenunder.

Når hver bil passerer under hver IR -sensor, sender den en A (bil 1) eller B (bil 2) til MASTEREN.

Når MASTER modtager et A eller B, aktiverer det timeren for den specifikke bil og venter derefter på, at bilen passerer under den tilsvarende IR -sensor ved målstregen.

Displayet opdateres hver 50 ms for at vise den aktuelle tid for hver bil i sekunder med 2 decimaler.

Når begge biler har ramt målstregen, bestemmer MASTER hvilken bil der var den hurtigste og blinker den gang på displayet for at angive vinderen.

Trin 4: Resten af koden

Resten af koden er bare hjælpekode, der enten styrer visning af data på det 8 -cifrede display, eller håndterer knappetryk logik osv.

I slutningen af videoen i introduktionsafsnittet i dette projekt viser jeg et eksempel på koden, der kører på de 2 brødbrætter, så sørg for at tjekke det ud!

Du kan få koden til dette projekt fra min github -repo.

Trin 5: Hvad er det næste?

Det er det for nu … i del 3 vil vi se på at flytte komponenterne fra brødbrættet og over på noget mere permanent … følg med!

Jeg håber du nyder dette projekt!

Følg mig på:

www.youtube.com/c/unexpectedmaker

twitter.com/unexpectedmaker

www.facebook.com/unexpectedmaker

www.instagram.com/unexpectedmaker

www.tindie.com/stores/seonr/

Anbefalede: