eSkateboard mit VESC-Speedcontroller
Seite 4: Sender
Da die Modellauto-Fernsteuerung etwas unhandlich ist, sollte auch hier eine andere Lösung gefunden werden. Einfach geht es mit dem Analog-Joystick und dem Gehäuse eines alten, defekten Wii Kama Controllers, wobei prinzipiell jeder Nunchuk als Teilespender geeignet sein sollte. Darüberhinaus gibt es die perfekte Software für unsere Fernsteuerung auf GitHub.
Neues Nunchuck-Innenleben
Die neue Fernsteuerung basiert auf dem Mikrocontroller Arduino Nano. Er wertet die Signale des Steuerkreuzes und der Taster aus und gibt sie über den Funk-Chip NRF24L01+ an einen Empfänger weiter, der ebenfalls auf Nano und NRF24L01+ basiert. Da die Funktransmitter etwas anfällig sind, kriegen sie einen Linearregler und einen Elko für stabile Spannungsversorgung.
Die Software (hier als ZIP-Datei zum Herunterladen) ist fĂĽr unser Board angepasst, so dass nur die Libraries aus dem Download-Ordner installiert werden und die Datei ArduBoardControler_Tx.ino
kompliert und auf den Arduino Nano geschrieben werden muss. Online gibt es zahlreiche Hilfe beim Einrichten der Arduino-Entwicklungsumgebung und Installieren von Libraries. Die notwendigen Header-Dateien (erkennbar an der Dateiendung .h) sind ebenfalls im Download enthalten.
Zu Beginn wird im Gehäuse des Nunchuk alles bis auf den Joystick und die Taster entfernt und die Platine mit einem Seitenschneider passend gekürzt.
Um die Signale des Steuerkreuzes auszuwerten werden Masse und 5 V der X- und Y-Achse wie auf der Abbildung parallel geschaltet, und die Signale fĂĽr die Achsen werden ĂĽber den grĂĽnen Draht (X-Achse) bzw. gelben Draht (Y-Achse) an einen Arduino angeschlossen: X an Pin A0 und Y an Pin A1. Die Taster werden an Pin 2 (Taster C) und Pin 3 (Taster Z) angeschlossen.
LEDs einbauen
Als Feedback für den Fahrer kommen drei 8 mm WS2812 RGB-LEDs zum Einsatz. Zur Montage werden diese, wie auf der Abbildung des Controllers zu erkennen, einfach in 8,5-mm-Bohrungen im Gehäuse gesteckt und von unten mit Heißkleber fixiert. Das ist nicht sehr elegant, aber schnell gemacht.
Die erste LED wird mit dem Daten-Eingang (Din) an Pin 4 des Arduinos angeschlossen. Die LEDs zwei und drei jeweils mit ihrem Eingang an den Daten-Ausgang (Dout) der vorhergehenden. GND und Betriebsspannung (Vdd) werden parallel an alle LEDs angeschlossen.
Generell sieht die RollingGecko Software den Einsatz von vier LEDs vor. Da jedoch nur die ersten drei verständliche Informationen liefern, wurde auf die vierte verzichtet. Es ist möglich vom Pin A3 des Arduinos einen kleinen Vibrationsmotor anzusteuern, um ein haptisches Feedback zu erhalten. Dafür ist aber zusätzlicher Transistor oder MOSFET zur Ansteuerung nötig. Aus Platzgründen haben wir darauf verzichtet.
Die erste LED (LED_TX 0 //TX-Voltage
) zeigt den Ladezustand des Akkus des Fernsteuersenders an. Ist die LED grün, ist die Fernsteuerung einsatzbereit und bei rotem Licht der Akku leer. Um den Ladezustand zu erfassen, wird die Akkuspannung über einen Spannungsteiler an den Analogeingang A2 des Arduinos angeschlossen. Da dessen A/D-Wandler bis zu 5 Volt misst, verwenden wir für einen 2S-Akku mit maximal 8,4 Volt einen Spannungsteiler mit den Widerständen R1 = 10 kΩ und R2 = 13 kΩ.
Die zweite (LED_TRANS 1 //Transmission
) zeigt durch rotes und grünes Blinken die Kommunikation mit dem Empfänger an. Die dritte LED (LED_VOLTAGE 2
) signalisiert, wie voll der 8S-Akku auf dem Board ist. Bei einem Ladezustand von mehr als 80 Prozent leuchtet sie grĂĽn, im Bereich von 80 bis 60 Prozent gelbgrĂĽn, von 60 bis 30 Prozent orange und darunter rot. Um die Akkus zu schonen sollte Fahren im roten Bereich vermieden werden.
Ohne zusätzlichen Schalter wird die Fernbedienung an- bzw. ausgeschaltet, indem im Batteriefach der Akku an- bzw. abgesteckt wird. Genauso kommt man an den Balancer-Anschluss, um den Akku laden. Wer einen Nunchuck ohne Batteriefach verwendet, kann natürlich Schalter und Ladebuchse montieren.
Arduino trifft NRF
Als letztes muss das NRF24-Board an den Arduino angeschlossen und ĂĽber den 3,3-V-Linearegler mit Strom versorgt werden.
Arduino Nano | NRF25L01+ | |
GND | GND | |
9 | CE | |
10 | CSN | |
11 | MOSI | |
12 | MISO | |
13 | SCK | |
IRQ | bleibt frei | |
3,3 V | Ausgang des Stabis und Plus des Elkos | |
GND | Ausgang des Stabis und Masse des Elkos | |
Nunchuck | ||
5 V | +5V | |
GND | GND | |
A0 | Joystick X Ausgang | |
A1 | Joystick Y Ausgang | |
2 | C Knopf | |
3 | Z Knopf | |
Sonstiges | ||
A2 | Ausgang Spannungsteiler | |
4 | Dateneingang der ersten LED | |
(A3) | (Vibrationsmotor) | |
GND | Masse des 2S LiPos | |
Vin | 8,4 V des LiPos |
Am NRF-Board wird direkt auf der Unterseite ein kleiner Elko (etwa 10 bis 22 µF) an die Kontakte der Spannungsversorgung angelötet und mit Heisskleber fixiert.
Nachdem alle Verbindungen hergestellt wurden, sollten die Komponenten in Schrumpfschlauch eingeschrumpft werden, um KurzschlĂĽssen vorzubeugen.
Lässt man die Leitungen nicht zu lang und arbeitet sorgfältig, passt später alles inklusive des kleinen 2S 450mAh LiPos des Senders in ein Gehäuse. Wird der Sender nun mit Strom versorgt, sollten die LEDs farbig aufleuchten und grün strahlen.
Strecke erfassen
Da wir kein OLED-Display nutzen, braucht die Software nicht auf korrekte Erfassung der Wegstrecke eingestellt zu werden. Der Absatz //Calculation Parameter
in der Datei Config.h ist angepasst, kann aber auch ignoriert werden.