Innholdsfortegnelse:

Arduino Hot Wheels Speed Track Del #2 - Kode: 5 trinn
Arduino Hot Wheels Speed Track Del #2 - Kode: 5 trinn

Video: Arduino Hot Wheels Speed Track Del #2 - Kode: 5 trinn

Video: Arduino Hot Wheels Speed Track Del #2 - Kode: 5 trinn
Video: Before safety was invented... 2024, Juli
Anonim
Image
Image

I den første delen av dette prosjektet bygde vi opp maskinvaren til prototypen på 2 brødbrett.

Og i denne delen vil vi gå over koden, hvordan den fungerer og deretter teste den ut.

Sørg for å se videoen ovenfor for hele kodeanmeldelsen og fremvisningen av arbeidskoden.

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

Koden er i 2 deler, men inne i den samme filen. Jeg bruker #define og #ifdef til å bestemme hvilken kode som skal kompileres eller ignoreres, slik at jeg kan skille hvilken som helst kode som bare er for MASTER -brødbrettet og kode som bare er for SLAVE -brødbrettet.

I utgangspunktet, hvis definere MASTER blir funnet, vil enhver kode som sitter inne i MASTER -kodeblokken bli kompilert og enhver kode utenfor den blokken vil bli fjernet ved kompileringstidspunktet.

#ifdef MASTER

// Master -spesifikk kode er her

#ellers

#define SLAVE

// Slave -spesifikk kode er her

#slutt om

Jeg bruker også den samme teknikken for å #definere SLAVE når MASTER er utarbeidet, så du trenger bare å bekymre deg for å definere MASTER eller ikke for å aktivere SLAVE som skal defineres.

Trinn 2: BLUETOOTH -moduler Snakk via seriell les og skriv

I dette prosjektet snakker bare SLAVE -brødbrettet til MASTER -brødbrettet. MASTER snakker aldri tilbake, den lytter bare og handler deretter etter dataene som kommer inn.

Modulene snakker og lytter ved hjelp av den innebygde serieklassen i Arduino -kodingsøkosystemet.

Bluetooth -moduler kommuniserer med 38400 baud, så begge kodebanene initialiserer seriell kommunikasjon ved hjelp av:

Serial.begin (38400);

Og SLAVEN bruker:

Serial.write (data her);

For å snakke med MASTER, og MASTER bruker:

data = Serial.read ();

For å lytte til seriestrømmen og lese innholdet og lagre den i en variabel.

Trinn 3: Kontroll av løpet

SLAVEN forteller MASTEREN om den er i race more eller klar-modus via den grønne knappen som er koblet til mikrokontrolleren. I klar -modus gjør ikke IR -sensorene noe, og MASTER viser 8 streker på displayet for å indikere at den er i klar -modus.

Når SLAVEN forteller MASTEREN at et løp skal begynne, begynner SLAVEN å avstemme IR -sensorene på siden (Starten på racerbanen) for at biler skal passere under.

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

Når MASTER mottar en A eller B, aktiverer den timeren for den spesifikke bilen og venter deretter på at bilen passerer under den tilsvarende IR -sensoren ved målstreken.

Displayet oppdateres hver 50. ms for å vise gjeldende tid for hver bil i sekunder med 2 desimaler.

Når begge bilene har kommet i mål, bestemmer MASTER hvilken bil som var raskest og blinker den gangen på displayet for å indikere vinneren.

Trinn 4: Resten av koden

Resten av koden er bare verktøykode som enten styrer visning av data på det 8 -sifrede displayet, eller håndterer knappetrykklogikk etc.

På slutten av videoen i introduksjonsdelen av dette prosjektet, viser jeg et eksempel på koden som kjører på de 2 brødbrettene, så sørg for å sjekke det ut!

Du kan hente koden for dette prosjektet fra min github -repo.

Trinn 5: Hva er neste?

Det er det for nå … i del 3 vil vi se på å flytte komponentene fra brødbrettet og over på noe mer permanent … følg med!

Jeg håper du liker dette prosjektet!

Følg meg på:

www.youtube.com/c/unexpectedmaker

twitter.com/unexpectedmaker

www.facebook.com/unexpectedmaker

www.instagram.com/unexpectedmaker

www.tindie.com/stores/seonr/

Anbefalt: