Projektübersicht
Das Projekt umfasst die Entwicklung eines ferngesteuerten Modellautos, das über ein Webinterface gesteuert wird. Es nutzt einen ESP32-Mikrocontroller, zwei DRV8833-Motortreiber für vier DC-Motoren, WS2812-LEDs für Beleuchtung und Blinker, sowie einen HC-SR04-Ultraschallsensor für Hinderniserkennung. Das Auto bietet Funktionen wie variable Geschwindigkeit, Lichteffekte (Normal, Warnblinklicht, Polizei, Aus), Helligkeitssteuerung der LEDs und einen Streckenrecorder zum Aufzeichnen und Wiedergeben von Fahrsequenzen. Die Steuerung erfolgt über ein Webinterface, das auf Mobilgeräten oder Computern zugänglich ist, und das Auto unterstützt OTA-Updates sowie mDNS für einfache Netzwerkerkennung.
Hardware-Komponenten
Siehe links, ganz unten auf dieser Seite
Anschlussplan
Komponente | Anschluss am ESP32 | Beschreibung |
---|---|---|
DRV8833 1 (Linke Motoren) | IN1: GPIO 12, IN2: GPIO 13, IN3: GPIO 14, IN4: GPIO 15 | Steuerung der linken Motoren (PWM für Geschwindigkeit). |
VCC, GND | 5V-Stromversorgung und Masse. | |
DRV8833 2 (Rechte Motoren) | IN1: GPIO 18, IN2: GPIO 19, IN3: GPIO 21, IN4: GPIO 22 | Steuerung der rechten Motoren (PWM für Geschwindigkeit). |
VCC, GND | 5V-Stromversorgung und Masse. | |
WS2812 LED-Streifen (Vorne) | GPIO 26 | Datenleitung für 7 vordere LEDs (Weiß, Blinker). |
5V, GND | Stromversorgung und Masse. | |
WS2812 LED-Streifen (Hinten) | GPIO 27 | Datenleitung für 7 hintere LEDs (Rot, Blinker). |
5V, GND | Stromversorgung und Masse. | |
HC-SR04 Ultraschallsensor | TRIG: GPIO 33, ECHO: GPIO 32 | Trigger- und Echo-Pins für Hinderniserkennung. |
VCC (5V), GND | Stromversorgung und Masse (kein Spannungsteiler nötig). | |
ESP32 Stromversorgung | VIN / 5V | 5V-Eingang für die Stromversorgung. |
GND | Masseverbindung für den Mikrocontroller. |
Hinweise
- HC-SR04: Funktioniert ohne Spannungsteiler für den Echo-Pin (GPIO 32), da der ESP32 in diesem Setup 5V-tolerant war.
- Stromversorgung: Eine stabile 5V-Quelle ist erforderlich, da LEDs und Motoren hohen Strom ziehen können.
- Motortreiber: DRV8833-Module unterstützen PWM für präzise Geschwindigkeitssteuerung.
- LEDs: WS2812-LEDs benötigen eine stabile 5V-Versorgung; Helligkeit ist über das Webinterface einstellbar.
Software
Die Software wurde in C++ für die Arduino-Plattform geschrieben und ist in drei Dateien aufgeteilt: main.ino
, ledsteuerung.ino
und streckenrecorder.ino
. Sie nutzt folgende Bibliotheken:
- WiFi: Für die Verbindung zum WLAN-Netzwerk.
- WebServer: Bereitstellung des Webinterfaces.
- ESPmDNS: Ermöglicht Zugriff über
http://modellauto.local
. - ArduinoOTA: Unterstützung für Over-the-Air-Updates.
- FastLED: Steuerung der WS2812-LEDs.
- FS und SPIFFS: Speicherung von aufgezeichneten Strecken in
/drive_log.txt
.
Funktionen
- Bewegungssteuerung: Vorwärts, Rückwärts, Links- und Rechtsdrehung über das Webinterface oder Tastatureingaben (Pfeiltasten).
- Geschwindigkeitsregelung: Einstellbar über einen Slider (0–255).
- Lichteffekte: Normal (Weiß vorne, Rot hinten), Warnblinklicht, Polizei (blaues Blinken), Aus, auswählbar über ein Dropdown-Menü.
- LED-Helligkeit: Einstellbar über einen Slider (0–255).
- Hinderniserkennung: Notstopp und Blockierung der Vorwärtsbewegung bei Hindernissen < 18 cm, mit rotem Blinken der mittleren hinteren LED.
- Streckenrecorder: Aufnahme, Wiedergabe, Pause, Löschen und Download von Fahrsequenzen, gespeichert in
/drive_log.txt
. Im Wiedergabemodus blinken die mittleren LEDs gelb. - OTA-Updates: Firmware-Updates über das Netzwerk mit Passwortschutz.
Besondere Funktionen
- Hinderniserkennung: Erfordert drei aufeinanderfolgende Messungen < 18 cm, um Fehlauslösungen zu vermeiden.
- Streckenrecorder: Nicht-blockierende Wiedergabe mit
millis()
, pausiert bei Hindernissen. - Webinterface: Responsives Design für Mobilgeräte und Desktop, mit Tastaturunterstützung.
- mDNS: Einfacher Zugriff ohne feste IP-Adresse.
Aufbau und Verkabelung
Die Komponenten sind wie im Anschlussplan verkabelt. Das Gehäuse (nicht spezifiziert, möglicherweise improvisiert) bietet Platz für:
- Motoren an den Rädern für präzise Bewegung.
- LED-Streifen vorne und hinten für sichtbare Beleuchtung.
- HC-SR04-Sensor an der Front für Hinderniserkennung.
- ESP32 und Motortreiber sicher im Inneren.
Installation und Inbetriebnahme
- Hardware-Montage: Komponenten gemäß Anschlussplan verkabeln und in einem stabilen Gehäuse befestigen.
- Software-Installation:
- Arduino IDE und ESP32-Board-Unterstützung installieren.
- Bibliotheken (WiFi, WebServer, ESPmDNS, ArduinoOTA, FastLED, FS, SPIFFS) herunterladen.
- Code (
main.ino
,ledsteuerung.ino
,streckenrecorder.ino
) in die Arduino IDE kopieren und auf den ESP32 laden. - SPIFFS-Partition aktivieren (z. B. „Default 4MB with spiffs“).
- Netzwerkkonfiguration:
- WLAN-Zugangsdaten in
main.ino
(ssid
,password
) anpassen. - Gerät einschalten; es verbindet sich mit dem WLAN und ist über
http://modellauto.local
erreichbar.
- WLAN-Zugangsdaten in
- Testen:
- Webinterface öffnen und Bewegungssteuerung (Vorwärts, Rückwärts, Links, Rechts) testen.
- Lichteffekte, Helligkeit und Geschwindigkeit überprüfen.
- Hinderniserkennung testen: Auto stoppt bei Hindernissen < 18 cm.
- Streckenrecorder testen: Aufnahme starten, Befehle ausführen, stoppen, wiedergeben, pausieren, löschen, und
.txt
-Datei herunterladen. - OTA-Update durchführen, um die Firmware zu aktualisieren.
Herausforderungen und Lösungen
- Hinderniserkennung: Fehlauslösungen durch unzuverlässige Sensorwerte wurden durch die Anforderung von drei aufeinanderfolgenden Messungen behoben.
- Webinterface-Reaktionsfähigkeit: Nicht-blockierende Wiedergabe mit
millis()
implementiert, um das Interface reaktionsfähig zu halten. - Speicherbeschränkung: Streckenrecorder auf 50 Befehle begrenzt, gespeichert in SPIFFS, um RAM zu sparen.
- Stabilität des Programms: Timeout in der Wiedergabe und vollständiges Zurücksetzen der Aufzeichnungslogik beim Löschen verhindern Hängenbleiben.
- HC-SR04-Spannung: Der Sensor funktionierte ohne Spannungsteiler, was die Verkabelung vereinfachte.
Fazit
Das Modellauto-Projekt demonstriert die Integration von Motorsteuerung, LED-Beleuchtung, Hinderniserkennung und Netzwerkfunktionalität in einem kompakten System. Das Webinterface bietet eine intuitive Steuerung, und der Streckenrecorder erweitert die Funktionalität durch automatisierte Fahrsequenzen. Das Projekt ist anpassbar durch Open-Source-Bibliotheken und OTA-Updates, was zukünftige Erweiterungen wie zusätzliche Sensoren oder Lichteffekte ermöglicht.
Achim (2025-06-09 23:05:37)
Cool 😎