RC Auto, Truck, Monstertruck aus Holz (DIY) Anleitung mit ESP32 & Arduino

Content Holz RC Truck

Wir zeigen Ihnen in dieser Anleitung, wie unser Holz Truck mit folgenden Komponenten hergestellt wird:

  • Lasercutter
  • Verleimen
  • Elektronik: Arduino installieren und ESP32 board files.
  • Verlöten
  • Der Truck in Action

Herstellung Holz Truck Template:

Nicht jeder hat einen Lasercutter im Keller stehen, überlegen Sie doch gerne, ob Sie den Bausatz auf unserer Seite kaufen möchten und damit ein Ehepärchen aus Deutschland dabei unterstützen ihren Shop zu betreiben. Wir bieten auch schöne Personalisierungsmöglichkeiten zu fairen Preisen :).
Das Lasern des Trucks dauert ca. 1.20h und ist im Video unten im  Zeitraffer dargestellt:
YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden

Holz-Truck Verleimen:

Hier zeigen wir Ihnen, wie man unseren Holz-Truck verleimt und zusammenbaut. Sie können jeden beliebigen Holzleim verwenden, bitte achten Sie nur auf die Gebrauchshinweise (vor allem Trockenzeit), auf die Farbe (weiß oder transparent) and ggf. ausreichend Belüftung zum Trocknen. Der Zusammenbau des Trucks gelingt in der Regel zwischen 1-2h.

Elektronik Zubehör:

Der Truck wird über einen ESP32 von Espressif Microcontroller, eine Schrittmotorkarte (L298N micro Version) und 4 Schrittmotoren über eine Bluetooth App gesteuert. Der ESP32 wird über die Arduino IDE programmiert, die App wurde mit dem MIT App Inventor gebaut.

Für die Elektronik und Software benötigen Sie folgende Komponenten:

Klicken Sie bitte auf die jeweiligen Links, um zu den Produktvorschlägen (daran verdienen wir nichts) zu gelangen.

Elektronik: Installation Arduino

Bitte folgen Sie dem offiziellen Arduino tutorial zur Installation der Arduino IDE:

https://www.arduino.cc/en/Guide/Windows

Elektronik: ESP32 Microcontroller installieren

Bitte folgen Sie diesem Tutorial, um die Board files für den ESP32 zu installieren – wir haben extra auf eine Anleitung hier verzichtet, weil randomnerdtutorials das schon so gut gemacht hat:

Klicken Sie auf den unteren Button, um den Inhalt von randomnerdtutorials.com zu laden.

Inhalt laden

Elektronik: ESP32 programmieren

Pinmapping des ESP32

Es ist immer hilfreich, einen Blick auf das Pinmapping der verwendeten Komponenten zu werfen. Den digital-to-analog Converter auf den GPIO Pins 25 und 26 kann man als Signalquelle für die Soundkarte verwenden. Die übrigen GPIO Pins können sehr einfach Aufgaben erfüllen wie digital low or high (entweder 0V oder 3V3) schreiben erfüllen.

ESP32-38PIN-DEVBOARD-pinmapping

Pinmapping L298N und Mini L298N

Die Mini-Version des L298N ist wirklich deutlich kleiner. Bei der Mini-Version wird ein ähnlicher Chip verwendet, der lediglich weniger Strom aufnehmen kann, aber für RC-Modelle wirklich völlig – also absolut völlig – ausreichend. Die größere Version hat jedoch leichte Vortgeile (abgesehen von der Größe). Das größere Board verfügt über einen 5V Abwärtswandler, was die ideale Spannung für den ESP32 ist. Der ESP32 selbst verfügt auch über einen 3.3V Abwärtswandler, den AMS1117, welcher in einem Bereich von 5-12V problemlos betrieben werden kann. Allerdings handelt es sich bei dem Abwärtswandler um einen Linear Regulatur und keinen Switching Converter (einach mal googeln), wodurch die Effizienz bei Spannungen deutlich höher als 5V auch deutlich abnimmt.

  • Jeder Motor wird über zwei GPIO Pins gesteuert, welche mit IN1 und IN2 für Motor A verbunden sind und mit IN3 und IN4 für Motor B. Die Pins müssen lediglich digital Low und High schreiben können, also 0V und +3.3V Spannung.
  • Die einphasigen Schrittmotoren werden an den Ausgängen Motor-A und Motor-B angeschlossen. An den Ausgängen können auch mehrere Motoren gemeinsam angeschlossen werden. So können z.B. die linken Räder bei Motor-A angeschlossen werden und die rechten Räder bei Motor-B.
  • Die Motoren können beliebig gepolt angeschlossen werden, allerdings gilt es die Umlaufrichtung zu berücksichtigen, damit der Truck auch das umsetzt, was man möchte :).
  • Für die richtige Umlaufrichtung bitte GPIO Pinbelegung etwas weiter unten beachten.

Dem besonders interessierten Leser empfehlen wir, einen Blick auf das Datenblatt des L298N zu werfen, aber besser nicht zu lange, es kann doch etwas sehr langweilig sein.

l298n_large_and_micro
l298n_micro

Pinout PAM8302 Soundkarte

Über die Soundkarte muss man eigentlich nur wissen, dass man nur Standardlautsprecher mit einem Widerstand von 4-8Ohm (die gängigsten) anschließen sollte und die Pinbelegung wie folgt aussieht:

  • Ground: GND bzw. 0V anschließen
  • 2-5VDC: Betriebsspannung von 3.3V, was der ESP32 ausgibt anschließen.
  • Shutdown: Wenn auf GND gezogen, dann wird der Lautsprecher abgeschaltet. Das würde ich immer empfehlen, weil der Verstärker schlecht abgeschirmt ist und oft mal Signale auffängt, die dann nur als Rauschen ausgegeben werden.
  • Nur Audio In+ wird verwendet, weil wir Mono WAV files abspielen.

Wer es noch etwas genauer wissen möchte, kann sich unten das Datenblatt vom PAM8302 herunterladen.

pam8302_front
pam8302_back-rotated

Programmieren Sie Ihren ESP32 mit einem USB-Kabel (und dem korrekt ausgewählten Port) mit dem unten stehenden Code (Version 29.12.2020). Der Code ist Open Source und wurde  von Lasercut24 geschrieben, wenn sie diesen weiter verwenden, geben Sie bitte die Quelle an. Der Truck empfängt dadurch seine Kommandos. Aufgrund des Langen Codes werden hier nur einige Snippets vorgestellt:

Hinweise zum Code-Release wie Pinbelegung:

/*Pin assignment:
* GPIO16: Mute PM8302 sound card on SD (Shutdown PIN)
* GPIO25: DAC (digital-to-analog-converter) on A+ pin on PM8302
* VCC of PM8302 on 3.3V
* L298N Micro stepper card: right wheels on MOTOR A output of L298N
* L298N Micro stepper card: LEFT wheels on MOTOR B output of L298N
* Right Motor: rmotorpinA = 25; rmotorpinB = 33;
* Left motor: lmotorpinA = 26; lmotorpinB = 27;
*/
/*
F: Forward : 70
B: Back : 66
S: Stop : 83
L: Left : 76
R: Right : 82
I: Forward right : 73
J: Back right : 74
H: back left : 72
G: forward left : 71
u: u-turn : 117
t: u-turn : 116
M: Sound1 77
N: Sound2 78
O: Sound3 79
K: Light off 75
Z: light on 90
*/

Empfangen und speichern der Bluetooth-Befehle vom Smartphone in einer Variable:

if (SerialBT.available()) {
incoming = SerialBT.read();
Serial.println(incoming);
counter = 0;
}

Verarbeiten der Kommandos:

if (incoming == 83)
{
Serial.println(„Stopping now“);
SerialBT.println(„Stopping“);
digitalWrite(rmotorpinA, LOW);
digitalWrite(rmotorpinB, LOW);
digitalWrite(lmotorpinA, LOW);
digitalWrite(lmotorpinB, LOW);
}

Sound Daten selbst erzeugen und hochladen

  • Laden Sie sich zur Bearbeitung der Sounddateien am besten die Freeware Audacity herunter: https://www.audacity.de/
  • Der ESP32 verfügt nur über eine 8bit digital-to-analog Konverter, das ist etwas schlechter als moderne Studiotechnik :)…., aber für den Spaß hier völlig ausreichend.
  • Folgen Sie dem unten stehenden YouTube-Video, um die Sounddateien zu erzeugen und auf den ESP32 zu laden:
YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden

Nachdem Sie die WAV-Dateien erzeugt haben, müssen diese noch in das hexadezimal-Format umgewandelt werden.

Laden Sie sich dazu den GVIM-Texteditor für Windows herunter:

https://www.vim.org/download.php

Und öffnen Ihre Command Shell / Eingabeconsole in Windows und geben Sie den Befehl ein: xxd -i mycrazywavfile.wav mycrazyhexfile.h

command shell hupen

Windows wird Ihnen jetzt wahrscheinlich eine Fehlermeldung bringen, weil die Eingabekonsole nicht auf die VIM EXE zugreifen kann. Dazu muss erst noch eine Path Variable gesetzt werden. Geben Sie dazu bei Windows10 unten links Edit the system environment variables oder path variable ein und öffnen Sie den Vorschlag. Folgen Sie dann einfach diesem Tutorial:

https://superuser.com/questions/1026685/setting-up-vim-under-win-10

Elektronik: Verlöten

Falls Sie nicht so viel Übung im Löten haben, schauen Sie sich doch vielleicht einen kurzen Lötkurs bei YouTube an – das wird nicht notwendig sein, ist aber sehr hilfreich. Achten Sie bitte immer darauf, dass die Lötstellen schon vorgewärmt sind, bevor Sie Lötzinn dazugeben. Flussmittel hilft, wird aber nicht nötig sein. Die Lötspitze oxidiert nach längerem Gebrauch gerne mal, verwenden Sie Stahlwolle, einen Lötspitzenreaktivator oder einfach eine neue Lötspitze von Zeit zu Zeit.

YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden

Schematic wie alle Komponenten verlötet werden:

soldering_schematic
Das Verlöten der einzelnen Komponenten für den RC Truck kann etwas Zeit in Anspruch nehmen – wahrscheinlich wird es auch vorkommen, dass Sie sich mal verlöten oder ggf. die Pinbelegung in der Arduino IDE ändenr müssen. Das ist nicht schlimm und erfordert nur etwas Geduld. Zur Übersichtlichkeit wurde auf der Schematic nicht mehr der Anschluss externer LEDs gezeigt, das folgt später noch. Bei der Verschaltung gibt es folgende Punkte zu beachten:
  • ESP32 und Schrittmotorkarte werden separat über jeweils einen 9V-Block bestromt. Die Motoren ziehen beim Starten so viel Strom, dass die Versorgungsspannung am ESP32 einbrechen würde und die Bluetoothverbindung verloren geht, weil sich der Controller resettet.
  • GND der Schrittmotor-Karte sollte mit GND vom ESP32 verbunden werden. Das gilt in der Elektrotechnik als Best Practice, um keine ungewollten Spannungsdifferenzen in der Schaltung zu haben.
  • Bei dem Verlöten der Motoren etwas aufpassen, aber die Laufrichtung kann später in der Arduino IDE immernoch geändert werden.
 

Elektronik: RC Control App für den Holz Truck

Unsere Holz Truck RC Control App ist derzeit nur für Android-Geräte auf dem Google Play Store erhältlich. Wir aktualisieren die Funktionen der App regelmäßig. Die App verfügt bisher über folgende Funktionen:

  • Connect Bluetooth, disconnect
  • Link auf unsere Help Page
  • Pfeilsteuerung des Trucks
  • Joystick-Steuerung
  • U-Turn im und gegen Uhrzeigersinn
  • Custom-Befehle senden
  • Licht an/aus (nächstes Release)
  • Musik abspielen (nächstes Release)

Entwickelt wurde die App mit dem MIT App Inventor von Lasercut24

https://appinventor.mit.edu/