GO! Box – DIY Arduino LED Drag Race Startlicht

Vor Kurzem kam das Thema RC-Autos bei uns mal wieder hoch und im Rahmen der ersten paar Rennen kam schnell die Frage nach einer kleinen Start-Ampel auf. Schaut man sich am Markt um, so findet man lediglich das Traxxas TRX6595 Startlicht, das toll ausschaut aber nur über eine weisse LED verfügt und daher leider nicht DAS verkörpert, was WIR uns so vorgestellt haben.

Aus diesem Grunde haben wir uns im Netz mal einige ECHTE Drag-Races angeschaut und sind (mit weniger kleinen Unterschieden) stets auf dieselbe Art „Weihnachtsbaum“ gestoßen:

Quelle: Wikipedia

Auf YouTube kann man sich unzählige Videos zur Animation und den zeitlichen Abläufen der einzelnen Lichter anschauen. Alle etwas unterschiedlich und so haben wir beschlossen, einfach unsere eigene Version zu realisieren und zwar in einem netten 3D-Gehäuse. Für den privaten Gebrauch muss es auch kein Zwillingslicht sein. EINE Reihe LEDs sollte reichen. Die Animation selbst soll über einen Arduino Nano realisiert werden. Soundausgabe optional. Die Aufstellung am Boden „könnte“ über eine Art Stativ erfolgen aber das klären wir noch, wenn das Gehäuse fertig ist und bevor das Ganze überhaupt in Druck geht, widmen wir uns zuerst der Schaltung und Programmierung. Ideal für Arduino-Beginner, die die Basics lernen möchten.

Aufbau und Schaltung

Um zu beginnen, installieren wir auf dem PC die Arduino IDE (engl. Integrated Development Environment = Entwicklungsumgebung). Diese gibt es kostenlos auf der Arduino-Homepage. Meine Version zum Zeitpunkt der Umsetzung ist die 1.8.19. Ist die Software installiert, nehmen wir ein Experimentier-Steckboard oder auch Breadboard genannt und stecken den Arduino Nano im unteren Bereich mittig auf.

Die LEDs, den Taster und Buzzer platzieren wir im oberen Bereich und konnektieren die Komponenten an die Ports des Arduino Nano wie folgt:

LED WEISS (Kathode(-) an GND, Anode(+) mit Widerstand 62 Ohm an Port 9)
LED GELB1 (Kathode: GND, Anode: Port 8)
LED GELB2 (Kathode: GND, Anode: Port 7)
LED GELB3 (Kathode: GND, Anode: Port 6)
LED GRUEN (Kathode: GND, Anode: Port 4)
LED ROT (Kathode: GND, Anode: Port 2)

9V-Clip (Minus: GND des Arduino, Plus: VIN Port)

BUZZER (Minus: GND, Plus: Port 10)

Beim TASTER ist es etwas komplexer, weil hier drei Dinge gemacht werden müssen. Der erste Pin des Tasters (egal welcher) wird an den 5V-Port konnektiert. Der zweite Pin wird doppelt verbunden und zwar einmal an Port 5 und zusätzlich über den 10k Ohm Widerstand an GND.

Wichtiger Hinweis: Wie aus obiger Liste leicht zu entnehmen, werden alle Komponenten an GND konnektiert. Der Arduino Nano hat aber nur zwei GND-Ports. Einer davon dient uns oben schon der Übersichtlichkeit halber als Minus für den 9V-Block. Aus diesem Grunde haben wir uns überlegt, eine Duplikatorplatine zu entwerfen und diese auch bereits im Vorfeld für alle Interessenten relaisiert. Ursprünglich war sie dazu gedacht, dem Anwender PLUS- und MINUS-Port 5fach zu klonen. In unserem Falle brauchen wir aber lediglich eine Menge GND-Anschlussmöglichkeiten und so haben wir das kleine Mini-Breadboard einfach an einer Seite gejumpert, um so auf allen Pins den GND zu haben. Man kann hier natürlich auch eine Lötbrücke setzen.

Am Ende sollte Dein Breadboard in etwa so aussehen:

Arduino programmieren

Untenstehender Sketch bezieht sich mit seinen Portangaben auf das o. g. Beispiel. Wir haben absichtlich sprechende Namen gewählt, um allen Neulingen das Verstehen zu erleichtern.

Der geplante Ablauf soll wie folgt sein:

  • Über den Kippschalter wird die GO! Box eingeschaltet und leuchtet dauerhaft ROT (Strecke gesperrt!)
  • Drückt der User auf den TASTER, wird der Startlauf iniziiert.
  • Zuerst leuchtet WEISS (Strecke klar) für 3sec.
  • Danach leuchten die GELBEN Countdown-LEDs schrittweise je 1sec. auf.
  • Anschließend kommt GRÜN (Start!) für 5sec. und die Teilnehmer fahren los.
  • Darauf folgendend leuchtet ROT wieder dauerhaft und es kann erneut gedrückt werden.

Die BUZZER-Töne runden die einzelnen Steps dabei sinnvoll in verschiedenen Frequenzen ab. Optisch-akustische Signale sind einfach cooler.

Folgender Code kam dabei heraus:

int ROT = 2;
int GRUEN = 4;
int TASTER = 5;
int GELB3 = 6;
int GELB2 = 7;
int GELB1 = 8;
int WEISS = 9;

int BEEPER = 10;

void setup() {
  
pinMode(ROT, OUTPUT);
pinMode(GRUEN, OUTPUT);
pinMode(GELB3, OUTPUT);
pinMode(GELB2, OUTPUT);                                                                                                                                                                                          
pinMode(GELB1, OUTPUT);
pinMode(WEISS, OUTPUT);

pinMode(TASTER, INPUT);
pinMode(BEEPER, INPUT);

}

void loop() {

if (digitalRead(TASTER)) {
  
    digitalWrite(ROT, LOW);
    delay(1000);

    digitalWrite(WEISS, HIGH);
    BUZZER(100, 1500);
    delay(3000);
    digitalWrite(WEISS, LOW);
    
    digitalWrite(GELB3, HIGH);
    BUZZER(100, 1500);
    delay(1000);
    digitalWrite(GELB2, HIGH);
    BUZZER(100, 1500);
    delay(1000);
    digitalWrite(GELB1, HIGH);
    BUZZER(100, 1500);
    delay(1000);
    
    digitalWrite(GELB3, LOW);
    digitalWrite(GELB2, LOW);
    digitalWrite(GELB1, LOW);
    
    digitalWrite(GRUEN, HIGH);
    BUZZER(1000, 2000);
    delay(3000);
    digitalWrite(GRUEN, LOW);

    BUZZER(100, 100);
    delay(100);
    BUZZER(100, 100);
    delay(100);
    BUZZER(1000, 100);
    delay(100);

  }

digitalWrite(ROT, HIGH);

}

void BUZZER(int DAUER, int KILOHERTZ) {

    tone(BEEPER, KILOHERTZ);
    delay(DAUER);
    noTone(BEEPER);

}

Obigen Code kannst Du einfach kopieren und ihn bzw. Deinen eigenen Code anschließend auf Deinen Arduino Nano überspielen und testen. Die Leuchtreihenfolge und Zeiten lassen sich flexibel an Deine Vorstellungen anpassen. Wenn Du zufrieden mit der Funktionsweise bist, kannst Du zum nächsten Schritt übergehen.

Gehäuse entwerfen und drucken

Wenn man sich anschaut, wieviele Komponenten bei diesem kleinen Projekt bereits zusammen gekommen sind, dann sollte das Gehäuse für die GO! Box nicht zu klein ausfallen. Mein Entwurf sieht z. B. so aus:

Er wurde anschließend aus PLA+ (gelb/schwarz) gedruckt und die Komponenten sind hier als kostenloser Download verfügbar. Beim Druck bitte darauf achten, dass das Gehäuse mit den LED-Löchern nach UNTEN auf dem Druckbett liegt.

Die Löcher in der Front sind 8mm groß und eigenen sich daher für 5mm LEDs, die in Halteclips sitzen. Diese haben aufgrund ihrer konkaven Form den Vorteil, dass die LEDs nicht nach innen zurück gedrückt werden, wenn das Gehäuse mal mit den LEDs nach unten abgelegt wird oder die GO! Box mal nach vorne umkippt. Schadensbegrenzung!

Die Beschriftungen habe ich allesamt ins Gehäuse eingelassen. Aufdrucke und Aufkleber halten ja eher nicht so lange, gerade bei Außenanwendungen. So können auch nicht-eingewiesene User nichts falsch machen.

Der Buzzer findet im Deckel Platz, wo er in eine Vertiefung eingesetzt/eingeklebt werden kann. Sie verfügt über ein kleines Loch, wodurch der Schall in die Umgebung austreten kann. Hast Du keinen einzelnen Buzzer als Bauteil zur Hand, kannst Du optional auch ein Buzzermodul verwenden und dieses mit in die Box packen.

Darüber hinaus sollte man Folgendes bedenken: Stellt man das Startlicht auf den Boden zwischen die Rennwagen, dann wird eine Person wahrscheinlich nicht viel von den LEDs sehen, weil sie ihr Licht entlang der Fahrbahn abstrahlen, also nicht direkt Richtung Teilnehmer. Somit wäre ein Gehäuse, welches sich situationsabhängig zum Teilnehmer neigen liesse, sicherlich von größerem Vorteil. Aber wie kann man das realisieren?

Ich habe in meiner Fototasche noch so ein günstiges Mini-Stativ mit 1/4″-Gewinde gefunden. Im Netz bekommt man so ein Ding für unter 10,-€. Wenn man sich nun einer passenden Schmelzmutter bedient und diese in die bereits vorgesehene Öffnung an der Unterseite des Gehäuses einbringt, dann hat man eine stabile Verbindung zwischen Stativ und Gehäuse.

Hierzu setzt man die Mutter mit dem glatten Ende in das 8mm Loch an der Unterseite des Gehäuses ein und verwendet einen aufgeheizten Lötkolben zum Erhitzen. Sobald die Schmelzmutter heiss genug ist, kann sie unter leichtem Druck im 90° Winkel in das Gehäuse gedrückt werden. Bitte achte darauf, die Schmelzmutter gerade und nicht zu weit ins Gehäuse zu drücken. Die Komponenten sind zudem sehr heiss (auch noch einige Zeit NACH dem Einbringen!), also bitte aufpassen, dass Du Dich nicht verbrennst. Hinterher sollte es in etwa so aussehen:

Montage und Fertigstellung

Nun kannst Du alle Komponenten ins Gehäuse einbauen. Um den Arduino Nano wiederverwenden zu können, habe ich mich GEGEN ein Verlöten am Arduino Nano entschieden und statt dessen komplett auf kleine Buchsen-Verbindungskabel gesetzt, die sich reversibel auf die bereits angelöteten Stiftleisten des Controllers stecken lassen.

Ich habe sprechende Kabelfarben gewählt, was bedeutet, dass zum Beispiel alle MINUS-Pole mit schwarzen Kabeln und alls PLUS-Pole in unterschiedlichen Farben bzw. den Leuchtfarben gekennzeichnet sind:

PLUS der WEISSEN LED in WEISS
PLUS der ROTEN LED in ROT
usw. usf.

Dies macht eine evtl. Fehlersuche und spätere Erweiterung leichter. Das kleine Mini-Breadboard erweisst sich hier als große Erleichterung zwecks GND-Vervielfachung. Schliesse zum Schluss den 9V-Block an und teste die Anwendung mehrfach. Läuft alles wie gewünscht, kannst Du nun die Komponenten vorsichtig ins Gehäuse schieben.

Der Buzzer findet seinen Platz mittig im Deckel und wurde dort mit etwas Modellkleber fixiert (siehe Bild oben), sodass er seine Töne durch das kleine Loch im Deckel nach hinten ausgibt. Je nachdem, welchen Buzzer Du kaufst, kann der schon mal ziemlich schrill sein und da ist es besser, wenn der Ton nach hinten raus geht.

Außerdem habe ich darauf geachtet, den Arduino Nano mit dem USB-Port nach außen hinein zu setzen, damit ich später einfach dran komme, falls es noch was zu ändern gibt. Danach den Deckel schließen und mit den 4 Schrauben sogsam verschließen und die Schrauben bitte nicht zu fest anziehen.

Finaler Test

Im Anschluss ernteten wir den Ruhm für unsere Anstrengungen, luden die Kids und Väter der Nachbarschaft ein und starteten das erste Drag-Race.

Die GO! Box funktioniert wie geplant und die Sounds sind in Natura noch etwas kräftiger als in dem Video. Die Kids finden’s super und jeder will mal den Startknopf drücken 🙂 The Kids love it!

Have Fun und bis bald

Stefan vom
MakerTeam

Materialliste

1x stl-Datei Gehäuse
1x stl-Datei Deckel
1x Arduino Nano
1x Breadboard
1x Mini-Breadboard als GND-Verteiler
1x Experimentierkabel / Jumper Wire

1x weisse 5mm LED
3x gelbe 5mm LEDs
1x grüne 5mm LED
1x rote 5mm LED
6x LED-Clips

4x 120 Ohm Widerstand (gelb, rot)
2x 62 Ohm Widerstand (weiss, grün)
1x 10k Ohm Widerstand (Taster)

1x Taster
1x ON/OFF Schalter
1x Buzzermodul
1x 9V Clip
1x 9V Block
4x 4mm Inbus-Schrauben (max. 16mm lang)

optional:

1x Jumper für obiges Mini-Breadboard
1x Mini-Stativ mit 1/4″ Schraube
1x 8mm Schmelzmutter mit 1/4″ Gewinde

Disclaimer: Anwendung und Durchführung aller beschriebenen Vorgänge erfolgen stets auf eigene Gefahr. MakerTeam haftet nicht für Schäden an Material, Maschinen oder Personen, die direkt oder indirekt mit diesem Blogbeitrag zusammen hängen. Handwerkliche Tätigkeiten sind von geschultem Fachpersonal durch zuführen.


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert