ESP 32 Roboter
In diesem Projekt wird ein ferngesteuerter Roboter auf Basis des ESP32 entwickelt. Die mechanische Struktur besteht aus einem 2WD-Chassis
Für die Ansteuerung der Motoren wird eine H-Brücke verwendet. Zusätzlich werden LEDs zur Simulation von Scheinwerfern sowie ein Buzzer als Hupe integriert. Die Steuerung des Roboters erfolgt vollständig drahtlos über eine entwickelte Web-Oberfläche. Dadurch kann das System effizient und direkt über einen Browser bedient werden, ohne dass zusätzliche Fernbedienungsmodule benötigt werden.
Benötigte Komponenten
- ESP32 NodeMcu Entwicklungsboard
- Breadboard 400
- Leuchtdiode LED 5mm
- Widerstand 330Ω
- Aktiver Piezo Buzzer
- L298N Motortreiber
- 2WD Smart Car Chassis
- Jumper Wire Kabel im Set
- Jumper Kabel Buchse-Stecker 20 cm
- Jumper Kabel Buchse-Buchse
- Batteriehalter 3x 18650 Batterie.
Zusammenbau des Chassis
Für den Zusammenbau des Chassis wird die beiliegende Bedienungsanleitung des Bausatzes befolgt. Aufgrund des hohen Energiebedarfs des Roboters wird die Verwendung von drei 18650-Lithium-Ionen-Akkus empfohlen. Diese liefern zusammen 12 Volt, was für den stabilen Betrieb des Projekts ausreichend ist.
Aufgrund der Abmessungen muss die Halterung für die 18650-Akkus im vorderen unteren Bereich des Chassis montiert werden. Um ein Vornüberkippen des Roboters zu verhindern, kann die Installation eines Gegengewichts im hinteren Bereich erforderlich sein. Als Alternative kann anstelle der Kunststoffhalterung ein kompaktes Akkupack verwendet werden, welches die Montage im hinteren Teil des Roboters ermöglicht (wie im Demonstrationsvideo gezeigt).
Für die Platzierung der LEDs und Widerstände wird das Breadboard im vorderen Bereich des fertig montierten Chassis befestigt. Die Fixierung erfolgt einfach, indem die Schutzfolie auf der Rückseite des Breadboards entfernt und dieses direkt auf die Struktur geklebt wird.
Um die Konfiguration mit dem Akkupack im hinteren Bereich zu sehen, sollte das Video angesehen werden.
Schaltung
Für die korrekte Montage des Schaltkreises müssen die folgenden Verbindungen befolgt werden:
| Komponente | Pin (Modul) | Anschluss (ESP32 / System) |
|---|---|---|
| L298N Motortreiber | ENA | GPIO 32 |
| IN1 | GPIO 33 | |
| IN2 | GPIO 25 | |
| IN3 | GPIO 26 | |
| IN4 | GPIO 27 | |
| ENB | GPIO 14 | |
| LED (Rechts) | (+) | GPIO 13 |
| (-) | GND | |
| LED (Links) | (+) | GPIO 12 |
| (-) | GND | |
| Hupe (Buzzer) | (+) | GPIO 4 |
| (-) | GND |
Software
Für den ESP32 wird die Arduino IDE (mit installiertem ESP32-Boardpaket) verwendet.
Code
Um das Projekt professionell und übersichtlich zu halten, wird die Software in zwei Dateien aufgeteilt: Die eigentliche Steuerungslogik für den ESP32 (C++) und das moderne, responsive Web-Dashboard für die Fernsteuerung (HTML/CSS/JS in der Datei pag.h). Anstatt hier hunderte Zeilen Code einzufügen, wird ein fertiges, sofort einsatzbereites Software-Paket bereitgestellt.
Hier klicken, um den vollständigen Quellcode herunterzuladen.
Achtung: Eine gleichzeitige Verbindung des Boards über USB und mit dem Akku muss vermieden werden.
Funktionsweise und Bedienung
Nach dem Einschalten des Roboters muss eine Verbindung mit dem von ihm generierten WLAN-Netzwerk hergestellt werden. Der Netzwerkname (SSID) lautet „Roboter_ESP32“ und das Passwort ist „roboter32“.Sobald die Netzwerkverbindung besteht, muss über einen Webbrowser die folgende IP-Adresse aufgerufen werden: 192.168.4.1. Dadurch wird die Fernsteuerung zugänglich gemacht, wodurch die Bewegung des Roboters, das Einschalten der LEDs, das Betätigen der Hupe sowie die Anpassung der Geschwindigkeit ermöglicht werden.
Die Benutzeroberfläche der Web-Fernsteuerung sieht wie folgt aus:
Fazit
Mit dem Abschluss der physischen Montage und dem Hochladen des Codes wird das Roboterprojekt erfolgreich abgeschlossen. Das implementierte System bietet eine stabile Fernsteuerung aller Funktionen über das vom ESP32 generierte WLAN-Netzwerk. Diese aufgebaute Struktur dient als solide Grundlage für das Verständnis von Robotik-Konzepten und ermöglicht zukünftige Erweiterungen, wie beispielsweise die Integration zusätzlicher Sensoren oder die Programmierung autonomer Navigationsroutinen.