Innholdsfortegnelse:
- Trinn 1: Både MASTER og SLAVE i samme kode
- Trinn 2: BLUETOOTH -moduler Snakk via seriell les og skriv
- Trinn 3: Kontroll av løpet
- Trinn 4: Resten av koden
- Trinn 5: Hva er neste?
Video: Arduino Hot Wheels Speed Track Del #2 - Kode: 5 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
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:
Stepper Speed Control Menu drevet for Arduino: 6 trinn
Stepper Speed Control Menu drevet for Arduino: Dette SpeedStepper -biblioteket er en omskriving av AccelStepper -biblioteket for å tillate hastighetskontroll av trinnmotoren. Med SpeedStepper -biblioteket kan du endre den angitte motorhastigheten og deretter akselerere/senke hastigheten til den nye innstilte hastigheten ved å bruke den samme algoritmen
Arduino Multi-track MIDI Loop Station: 6 trinn
Arduino Multi-track MIDI Loop Station: En sløyfestasjon, eller en looper, er i hovedsak et verktøy for å spille av instrumentalriffene (looper) i sanntid. Det er ikke ment som et opptaksmedium, men et instrument for å forme inspirasjonen uten distraksjon (og til slutt utføre live …). Ther
Slik endrer du Standard Hot Wheels til R/C Hot Wheels: D: 6 trinn (med bilder)
Slik endrer du Standard Hot Wheels til R/C Hot Wheels: D: Siden jeg var liten, elsker jeg Hot Wheels Cars. Det ga meg inspirasjon til å designe fantasybiler. Denne gangen overgikk de seg selv med Star War Hot Wheels, C-3PO. Imidlertid vil jeg ha mer enn bare å skyve eller reise på et spor, jeg bestemte meg: "L
Arduino Hot Wheels Speed Track - Del 1 - Prototype: 4 trinn
Arduino Hot Wheels Speed Track - Del 1 - Prototype: Det burde ikke være noen overraskelse at sønnen min elsker varme hjul og kjører bilene sine over hele huset! En av hans favoritt ting å gjøre er å løpe av alle bilene sine (over 100 nå) for å finne ut hvilken som er den raskeste bilen. Akkurat nå gjør han alt med øyet, og
RC Power Wheels for My Son's 2nd Birthday !: 13 trinn (med bilder)
RC Power Wheels til min sønns 2-årsdag !: Jeg har hatt en drøm om å RC-ify et Power Wheel siden jeg var omtrent 10 år gammel. For noen måneder siden ga en venn meg et gammelt slått, brukt-som-tygge-leketøy, knapt funksjonelt krafthjul. Jeg bestemte meg for å gjøre en barndomsdrøm til virkelighet og fullstendig revidere