Inhaltsverzeichnis:

Arduino Hot Wheels Speed Track Teil 2 - Code: 5 Schritte
Arduino Hot Wheels Speed Track Teil 2 - Code: 5 Schritte

Video: Arduino Hot Wheels Speed Track Teil 2 - Code: 5 Schritte

Video: Arduino Hot Wheels Speed Track Teil 2 - Code: 5 Schritte
Video: Transform Your Hot Wheels into a micro FPV RC Car! 2024, Juli
Anonim
Image
Image

Im ersten Teil dieses Projektes haben wir die Hardware für den Prototypen auf 2 Steckbrettern aufgebaut.

Und in diesem Teil werden wir den Code durchgehen, wie er funktioniert und ihn dann testen.

Sehen Sie sich das obige Video an, um die gesamte Codeüberprüfung und die Präsentation des funktionierenden Codes zu sehen.

Schritt 1: Sowohl MASTER als auch SLAVE im selben Code

Der Code besteht aus 2 Teilen, aber in derselben Datei. Ich verwende #define und #ifdef, um zu bestimmen, welcher Code kompiliert oder ignoriert wird, damit ich jeden Code trennen kann, der nur für das MASTER-Steckbrett und Code nur für das SLAVE-Steckbrett ist.

Grundsätzlich wird jeder Code, der sich innerhalb des MASTER-Codeblocks befindet, kompiliert, wenn der Define MASTER gefunden wird, und jeder Code außerhalb dieses Blocks wird zur Kompilierzeit entfernt.

#ifdef MEISTER

//Masterspezifischer Code ist hier drin

#anders

#sklave definieren

// Slave-spezifischer Code ist hier drin

#endif

Ich verwende die gleiche Technik auch, um SLAVE zu definieren, wenn MASTER kompiliert wird, sodass Sie sich nur darum kümmern müssen, MASTER zu definieren oder nicht, um SLAVE zu definieren.

Schritt 2: BLUETOOTH-Module sprechen über serielles Lesen und Schreiben

In diesem Projekt spricht nur das SLAVE-Steckbrett mit dem MASTER-Steckbrett. Der MASTER spricht nie zurück, er hört nur zu und reagiert dann auf die eingehenden Daten.

Die Module sprechen und hören mit der eingebauten Serial-Klasse im Arduino-Codierungsökosystem.

Bluetooth-Module kommunizieren mit 38400 Baud, daher initialisieren beide Codepfade ihre serielle Kommunikation mit:

Serial.begin (38400);

Und der SLAVE verwendet:

Serial.write (Daten hier);

Um mit dem MASTER zu sprechen, verwendet der MASTER:

Daten = Serial.read ();

Um den seriellen Stream abzuhören und seinen Inhalt zu lesen und ihn in einer Variablen zu speichern.

Schritt 3: Kontrolle des Rennens

Der SLAVE teilt dem MASTER über den mit seinem Mikrocontroller verbundenen grünen Knopf mit, ob er sich im Race-More- oder Ready-Modus befindet. Im Bereitschaftsmodus tun die IR-Sensoren nichts und der MASTER zeigt 8 Striche auf dem Display an, um anzuzeigen, dass er sich im Bereitschaftsmodus befindet.

Wenn der SLAVE dem MASTER mitteilt, dass ein Rennen beginnen wird, beginnt der SLAVE, die IR-Sensoren auf seiner Seite (dem Beginn der Rennstrecke) abzufragen, damit Autos darunter vorbeifahren können.

Wenn jedes Auto unter jedem IR-Sensor vorbeifährt, sendet es ein A (Auto 1) oder B (Auto 2) an den MASTER.

Wenn der MASTER ein A oder B erhält, aktiviert er den Timer für dieses spezifische Auto und wartet dann darauf, dass das Auto an der Ziellinie unter dem entsprechenden IR-Sensor vorbeifährt.

Die Anzeige wird alle 50 ms aktualisiert, um die aktuelle Uhrzeit für jedes Auto in Sekunden mit 2 Dezimalstellen anzuzeigen.

Sobald beide Autos die Ziellinie erreicht haben, entscheidet der MASTER, welches Auto das schnellste war und blinkt diese Zeit auf dem Display, um den Sieger anzuzeigen.

Schritt 4: Der Rest des Codes

Der Rest des Codes ist nur ein Utility-Code, der entweder die Anzeige von Daten auf dem 8-stelligen Display steuert oder die Tastendrucklogik usw.

Am Ende des Videos im Intro-Abschnitt dieses Projekts zeige ich ein Beispiel für den Code, der auf den 2 Steckbrettern ausgeführt wird, also überprüfen Sie das unbedingt!

Sie können den Code für dieses Projekt aus meinem Github-Repository abrufen.

Schritt 5: Was kommt als nächstes?

Das war's für den Moment… in Teil 3 werden wir uns ansehen, wie wir die Komponenten vom Steckbrett auf etwas Dauerhafteres verschieben… bleiben Sie dran!

Ich hoffe, Sie genießen dieses Projekt!

Folge mir auf:

www.youtube.com/c/unexpectedmaker

twitter.com/unexpectedmaker

www.facebook.com/unexpectedmaker

www.instagram.com/unexpectedmaker

www.tindie.com/stores/seonr/

Empfohlen: