Inhoudsopgave:
- Stap 1: Zowel MASTER als SLAVE in dezelfde code
- Stap 2: BLUETOOTH-modules praten via serieel lezen en schrijven
- Stap 3: Controle over de race
- Stap 4: De rest van de code
- Stap 5: Wat nu?
Video: Arduino Hot Wheels Speed Track Deel #2 - Code - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
In het eerste deel van dit project hebben we de hardware voor het prototype opgebouwd op 2 breadboards.
En in dit deel zullen we de code bespreken, hoe het werkt en het dan testen.
Bekijk zeker de video hierboven voor de volledige code review en showcase van de werkende code.
Stap 1: Zowel MASTER als SLAVE in dezelfde code
De code is in 2 delen, maar in hetzelfde bestand. Ik gebruik #define en #ifdef om te bepalen welke code wordt gecompileerd of genegeerd, zodat ik elke code kan scheiden die alleen voor het MASTER-broodbord is en code die alleen voor het SLAVE-broodbord is.
Kortom, als de gedefinieerde MASTER wordt gevonden, wordt elke code die zich in het MASTER-codeblok bevindt, gecompileerd en elke code buiten dat blok wordt tijdens het compileren verwijderd.
#ifdef MASTER
// Master-specifieke code staat hier
#anders
#define SLAVE
// Slave-specifieke code staat hier
#stop als
Ik gebruik dezelfde techniek ook om SLAVE te #definiëren wanneer MASTER is gecompileerd, dus je hoeft je alleen maar zorgen te maken over het definiëren van MASTER of het niet inschakelen van SLAVE om te worden gedefinieerd.
Stap 2: BLUETOOTH-modules praten via serieel lezen en schrijven
In dit project praat alleen het SLAVE breadboard met het MASTER breadboard. De MASTER praat nooit terug, hij luistert alleen en handelt vervolgens naar de binnenkomende data.
De modules praten en luisteren met behulp van de ingebouwde seriële klasse in het Arduino-coderingsecosysteem.
Bluetooth-modules communiceren op 38400 baud, dus beide codepaden initialiseren hun seriële communicatie met behulp van:
Serieel.begin(38400);
En de SLAVE gebruikt:
Serial.write (gegevens hier);
Om met de MASTER te praten, en de MASTER gebruikt:
data = Serieel.lezen();
Om naar de seriële stream te luisteren en de inhoud ervan te lezen en op te slaan in een variabele.
Stap 3: Controle over de race
De SLAVE vertelt de MASTER of hij in race more of ready-modus is via de groene knop die op zijn microcontroller is aangesloten. In de gereedmodus doen de IR-sensoren niets en de MASTER toont 8 streepjes op het display om aan te geven dat deze zich in de gereedmodus bevindt.
Wanneer de SLAVE de MASTER vertelt dat er een race gaat beginnen, begint de SLAVE de IR-sensoren aan zijn kant (het begin van de racebaan) te peilen om auto's eronder te laten passeren.
Terwijl elke auto onder elke IR-sensor door rijdt, stuurt deze een A (auto 1) of B (auto 2) naar de MASTER.
Wanneer de MASTER een A of B ontvangt, activeert hij de timer voor die specifieke auto en wacht hij tot de auto onder de corresponderende IR-sensor doorgaat bij de finish.
Het display wordt elke 50 ms bijgewerkt om de huidige tijd voor elke auto in seconden weer te geven met 2 decimalen.
Zodra beide auto's de finishlijn hebben bereikt, beslist de MASTER welke auto de snelste was en knippert die tijd op het display om de winnaar aan te geven.
Stap 4: De rest van de code
De rest van de code is slechts een hulpprogrammacode die ofwel de weergave van gegevens op het 8-cijferige display bestuurt, ofwel de logica van het indrukken van een knop enz.
Aan het einde van de video in het intro-gedeelte van dit project laat ik een voorbeeld zien van de code die op de 2 breadboards draait, dus zorg ervoor dat je dat eens bekijkt!
Je kunt de code voor dit project uit mijn github-repo halen.
Stap 5: Wat nu?
Dat was het voor nu … in deel 3 zullen we kijken naar het verplaatsen van de componenten van het breadboard naar iets meer permanents … blijf op de hoogte!
Ik hoop dat je geniet van dit project!
Volg me op:
www.youtube.com/c/unexpectedmaker
twitter.com/unexpectedmaker
www.facebook.com/unexpectedmaker
www.instagram.com/unexpectedmaker
www.tindie.com/stores/seonr/
Aanbevolen:
Arduino-tomation Deel 5: LE TUNNEL DE CHAUFFE: 4 stappen
Arduino-tomation Deel 5: LE TUNNEL DE CHAUFFE: Twee maanden geleden besloot ik een klein vergeten systeem uit te bouwen dat was opgeslagen in het magazijn van de plaats waar ik werk. Dit systeem is gemaakt om elektronische apparaten of wat dan ook op speciale hoge temperatuur te verwarmen en te verwarmen weersta de transportband. Dus ik heb een
Arduino draagbare werkbank deel 3: 11 stappen
Arduino Portable Workbench Deel 3: Als je delen 1, 2 en 2B hebt bekeken, dan is er tot nu toe niet veel Arduino in dit project geweest, maar slechts een paar borddraden enz. is niet waar dit over gaat en het infrastructuurgedeelte moet worden gebouwd voordat de rest werkt. Dit is de elektronica en A
Draagbare Arduino Workbench Deel 1: 4 Stappen
Draagbare Arduino Workbench Deel 1: Meerdere projecten in de lucht hebben betekent dat ik al snel ongeorganiseerd raak en de foto van mijn bureau laat zien wat er kan gebeuren. Niet alleen dit bureau, ik heb een hut die in een vergelijkbare staat eindigt en een houtwerkplaats voor, hoewel dat netter is, elektrisch gereedschap
Maak een goedkope sensored track in enkele minuten! 10 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Maak een goedkope sensored track in minuten!: In mijn vorige Instructable liet ik je zien hoe je een modeltreinlay-out kunt maken met geautomatiseerde opstelsporen. Het gebruikte een spoorsegment, genaamd 'sensored track'. Het is best handig om in een modelspoorbaan te hebben. Ik ben inzetbaar voor het volgende: Blokkeren
Track&trace voor kleine winkels: 9 stappen (met afbeeldingen)
Track&trace voor kleine winkels: dit is een systeem dat is gemaakt voor kleine winkels en dat op e-bikes of e-scooters moet worden gemonteerd voor leveringen op korte afstand, bijvoorbeeld een bakkerij die gebak wil bezorgen. Wat betekent Track en Trace?Track en trace is een systeem dat door ca