WiDC: Wi‑Fi FPV Roboter – Fernsteuerung mit Live-Video
Komponenten und Zubehör
| Arduino UNO | 1 |
| Espressif ESP8266 ESP-01 | 1 |
| Arduino Proto Shield | 1 |
| DC-Motor mit Rad | 2 |
| H-Brücke (Motortreiber) | 1 |
Apps und Online-Dienste
- Autodesk Fusion 360 (CAD-Software)
- Arduino IDE
Über dieses Projekt
Möchten Sie einen ferngesteuerten Roboter bauen, um Ihre Umgebung zu erkunden, unzugängliche Orte zu erreichen, zu überwachen, Fotos zu machen, Videos aufzunehmen oder Live-Video zu streamen? Dieses Tutorial zeigt, wie Sie einen kostengünstigen Roboter für all diese Zwecke bauen können.
Dieses Tutorial ist eine Verbesserung meines früheren Projekts (Wi‑Fi Controlled FPV Rover Robot), in dem ich einen schnelleren, selbstgebauten Roboter vorstellte. Es zeigt, wie man einen über WLAN ferngesteuerten Zweirad-Roboter entwirft und baut, der zwei DC-Motoren, einen Arduino Uno und ein ESP8266 WLAN-Modul verwendet.
Der Roboter lässt sich über einen gewöhnlichen Internetbrowser steuern, wobei eine HTML-basierte Benutzeroberfläche zum Einsatz kommt. Ein Android-Smartphone kann verwendet werden, um Video und Audio vom Roboter zur Steueroberfläche zu streamen.
Wie in meinem vorherigen Tutorial zeige ich, wie man einen kostengünstigen Rahmen für ein Robotik-Projekt entwirft und baut – nur mit gewöhnlichen Werkzeugen (kein 3D-Drucker, Lasercutter oder CNC-Fräse erforderlich).
Hinweis zur Komponentenwahl: Die hier verwendeten Komponenten sind nicht zwingend optimal. Ein NodeMCU könnte die Arduino‑ESP8266-Kombination ersetzen. Ein Raspberry Pi mit Kamera könnte das Smartphone ersetzen und gleichzeitig die Motoren steuern. Sogar ein Android-Smartphone könnte als „Gehirn“ des Roboters dienen. Dieses Tutorial basiert auf einem anderen Projekt, an dem ich beteiligt war: Joy Robot. Der Arduino Uno wurde gewählt, weil er sehr zugänglich und einfach zu bedienen ist, und wir einen einfachen Shield dafür entwerfen wollten. Im Originalprojekt steuern wir auch Servos und LED-Matrizen und kommunizieren mit dem ESP. Das Smartphone wird dort durch ein Tablet ersetzt, das weitere Anwendungen ausführt.
Schritt 1: Benötigte Werkzeuge
- Handkreissäge (zum Schneiden von Acrylplatten)
- Schraubendreher (für Schrauben und Muttern)
- Lineal (zum Messen der Abmessungen)
- Cuttermesser (zum Schneiden der Struktur und Bohren von Löchern)
- Bohrmaschine (zum Bohren der Acrylplatten für Schrauben)
- Schleifpapier (zum Glätten rauer Kanten)
- Lötkolben (zum Löten der Motoranschlüsse)
- Computer (zum Kompilieren und Hochladen des Arduino-Codes)
Diese Werkzeuge werden für den Bau der mechanischen Struktur, die Montage des Roboters und den Anschluss der elektronischen Komponenten benötigt. Einige Werkzeuge entfallen, wenn Sie einen fertigen Bausatz kaufen statt selbst zu bauen. Je nach Ausstattung Ihres Makerspaces können Sie auch andere Geräte (3D-Drucker, Lasercutter) verwenden.
Schritt 2: Mechanische Struktur und Materialien
Mechanische Materialien:
- 2 mm Acrylplatte
- DC-Getriebemotor mit Rad (×2)
- 30 mm Lenkrolle (×1)
- M2 × 10 mm Schrauben (×5)
- M2 × 1,5 mm Muttern (×5)
- M3 × 10 mm Schrauben (×9)
- M3 × 40 mm Schrauben (×4)
- M3 × 1,5 mm Muttern (×12)
- 5/32″ × 1″ Schrauben (×4)
- 5/32″ Muttern (×12)
- Universelle Smartphone-Halterung
- Stahl-Winkelprofil „L“ (30 × 30 mm) (×4)
Schritt 3: Elektronische Komponenten
- Arduino Uno
- ESP8266 (ESP-01)
- Proto Shield (für kompakte Bauweise) oder Steckbrett
- 1 kΩ Widerstand (×2)
- 10 kΩ Widerstand (×1)
- DC-Getriebemotor mit Rad (×2)
- H-Brücken-Modul (z. B. L9110)
- Jumper-Kabel
- 5 V USB-Powerbank
Alle Komponenten sind online leicht erhältlich. Die Wahl der Komponenten stammt aus einem anderen Projekt und kann optimiert werden (z. B. durch einen anderen Mikrocontroller).
Schritt 4: Struktur designen
Zunächst wurde die mechanische Struktur des Roboters entworfen. Alternativ können Sie einen kompletten Bausatz kaufen und direkt zu Schritt 6 springen. Für dieses Tutorial wurde ein kostengünstiger Acrylrahmen entworfen, der mit gewöhnlichen Werkzeugen gefertigt wird (kein 3D-Drucker, Lasercutter oder CNC-Fräse nötig). Die Struktur wurde in Fusion 360 als 3D-Modell designed und besteht aus drei Platten (Bodenplatte und zwei Seitenplatten), die über Winkelprofile verbunden sind.
3D-Modelle der Hauptkomponenten (Arduino Uno, Getriebemotor, H-Brücke, Powerbank, Smartphone-Halterung) wurden von der GrabCAD Community Library heruntergeladen, um den Platzbedarf zu ermitteln und eine stabile Anordnung von Motoren und Rädern zu planen.
Dateien: base.pdf, base.svg
Schritt 5: Struktur bauen und montieren
1. Acryl-Bodenplatte zuschneiden: Die Maße aus der 2D-Zeichnung auf die Acrylplatte übertragen (z. B. durch Aufkleben eines ausgedruckten Plans auf Klebefolie). Mit Cuttermesser und Lineal die Schnittlinien einritzen, nicht ganz durchschneiden. Die Platte auf einer flachen Fläche fixieren und durch Druck brechen. Kanten mit Schleifpapier glätten. Alternativ Handsäge verwenden.
2. Bohren der Löcher: An den in der Zeichnung markierten Positionen bohren. Acryl lässt sich relativ leicht bohren; notfalls geht es auch manuell mit einem scharfen Werkzeug (Cuttermesser). Kleine Löcher auf Schraubengröße aufbohren. Maske entfernen – die Bodenplatte ist fertig.
3. Komponenten montieren: Schrauben und Muttern gemäß 3D-Zeichnung/Video anbringen. M3-Schrauben für Winkelprofile und DC-Motoren, M2-Schrauben für Elektronik, 5/32″-Schrauben für Vorderrad und Smartphone-Clip.
Datei: base.pdf
Schritt 6: Elektronik zusammenbauen
Der Arduino Uno dient als Hauptcontroller und kommuniziert über SoftwareSerial (Pins 2 und 3) mit dem ESP8266 für WLAN. Die DC-Motoren werden über eine H-Brücke angesteuert, die zwei Motoren unabhängig in beide Richtungen drehen kann.
Eine Powerbank versorgt die Elektronik über den USB-Anschluss des Arduino – einfach aufzuladen, austauschbar und liefert sichere 5 V.
Alle Komponenten gemäß Schaltplan verbinden. Jumper-Kabel für ESP8266 (nicht breadboard-tauglich), H-Brücke und Motoren verwenden. Proto Shield, Steckbrett oder eigener Arduino-Shield möglich.
Dateien: wiDC_Schematic.pdf, wiDC.fzz, wiDC_bb.pdf
Schritt 7: Arduino-Code
Neueste Arduino IDE installieren. Keine zusätzlichen Bibliotheken für ESP8266-Kommunikation oder Motorsteuerung nötig. Baudrate des ESP8266 im Code anpassen (Standard oft 115200 Bd, SoftwareSerial funktioniert zuverlässig mit 9600 Bd).
Arduino-Code (WiDC.ino) herunterladen, XXXXX durch WLAN-SSID und YYYYY durch Passwort ersetzen. Arduino per USB anschließen und Code hochladen.
Code-Erklärung
Der Code nutzt einen Hardware-Serial-Port für die Kommunikation mit dem PC (Serial Monitor) und SoftwareSerial (Pins 3=RX, 2=TX) für den ESP8266. Im setup() werden beide Serial-Ports initialisiert (9600 Bd), dann sendet die Hilfsfunktion sendData() AT-Befehle an den ESP8266:
AT+RST– Modul zurücksetzenAT+CWMODE=1– Station-Modus (Client)AT+CWJAP="SSID","PASS"– Mit WLAN verbindenAT+CIFSR– IP-Adresse anzeigenAT+CIPMUX=1– Mehrere Verbindungen erlaubenAT+CIPSERVER=1,80– Webserver auf Port 80 starten
Im loop() wartet der Arduino auf eingehende Daten vom ESP8266. Erkannt wird das Präfix +IPD,, dann wird nach ? gesucht und der Befehl (erste 3 Zeichen) ausgelesen. Fünf Befehle sind definiert:
cm1– Vorwärts (State 1)cm2– Rückwärts (State 2)cm3– Rechts drehen (State 3)cm4– Links drehen (State 4)cm5– Stopp (State 5)
Jeder State setzt die Motor-Pins per PWM (analogWrite) bzw. digitalWrite. Die Geschwindigkeit ist über motorSpeed (0–255) einstellbar. Da die Motoren mit 3–6 V arbeiten, erlaubt PWM bei 5 V Versorgung eine grobe Geschwindigkeitsregelung.
Datei: WiDC.ino
Schritt 8: Webbasierte Steueroberfläche
Eine HTML-Oberfläche steuert den Roboter. interface.rar herunterladen, entpacken und index.html in Firefox öffnen. Zwei Eingabefelder: IP-Adresse des ESP-Moduls und IP-Adresse des Video/Audio-Servers (Android IP Webcam App). Ein Test-Button lässt den Roboter rotieren. Pfeiltasten steuern Vorwärts/Rückwärts und Links/Rechts.
Android-Smartphone mit IP Webcam App für Video/Audio-Stream.
HTML-Struktur
Zwei Bereiche: video_and_audio (Formular für Webcam-IP, <object> für Video/Audio) und commands (Formular für Arduino-IP, Tastatur-Hinweis). JavaScript (jquery.js, myscript.js) übernimmt die Steuerlogik.
JavaScript-Logik
readUrlAV()– liest Webcam-IP aus Formular und lädt Video/Audio in die Objects.checkKeyDown()– prüft gedrückte Pfeiltasten (37=Links, 38=Oben, 39=Rechts, 40=Unten), sendet per$.get()Befehl an Arduino-IP. Latch-Variable verhindert mehrfaches Senden.checkKeyUp()– bei Loslassen einer Pfeiltaste sendetdoNothing()nach 200 mscm5(Stopp) und setzt Latch zurück.
Datei: interface.rar
Schritt 9: Inbetriebnahme
- Arduino neu starten – verbindet sich automatisch mit WLAN. Im Serial Monitor prüfen, ob Verbindung erfolgreich und welche IP der Router dem ESP8266 zugewiesen hat.
- HTML-Datei im Browser (Firefox) öffnen, ESP-IP im Textfeld eingeben.
- Arduino vom PC trennen, an Powerbank anschließen. Warten bis WLAN-Verbindung steht.
- IP Webcam App auf dem Smartphone am Roboter starten. Video/Audio-IP in der Steueroberfläche eingeben und verbinden.
- Gegebenenfalls Videoauflösung in der App reduzieren, um Latenz zu verringern.
- Pfeiltasten gedrückt halten, um Roboter zu steuern.
Hinweis: Der Roboter läuft im Open-Loop-Betrieb – kleine Unterschiede zwischen Motoren, Ausrichtung etc. führen zu kumulativen Abweichungen, geradeaus fahren ist schwierig. Der Roboter behält den letzten Befehl bei, bis ein neuer eintrifft. Gelegentlich verliert der ESP8266 Nachrichten; wenn cm5 verloren geht, fährt der Roboter weiter. Dies ist ein bekanntes Problem – fühlen Sie sich frei, die Befehlsinterpretation anzupassen.
Code
- Arduino-Code (
WiDC.ino) - Web-Interface (
interface.rar)
CAD-Dateien
base_7JLgOpcox6.svg
Schaltplan
Siehe Schaltplan-Bereich im Originalprojekt.
Herstellungsprozess
- Bluetooth-gesteuerter Raspberry Pi Roboter mit Audio-Feedback bauen
- Arduino Digitaler Würfel: LCD-Würfel mit Zufallszahlen (1–6)
- DIY Arduino USB Gaming Controller – Bauen Sie Ihren eigenen High-Performance Gamepad
- Autonomer Linienfolger-Roboter mit Arduino UNO
- Sprachgesteuerter Roboter mit Arduino Nano bauen
- MobBob: Eigenen Arduino-Roboter bauen, per Android-Smartphone steuern
- Pixel Chaser: Interaktives One-Tap-LED-Spiel mit Arduino Nano
- Arduino-basierte abstoßende Magnetschwebung: Einfache Schaltung & DIY-Anleitung
- PiBot: Arduino-gesteuerter Klavierroboter für präzise Musikwiedergabe
- Autonomer Hausassistent-Roboter bauen: Komplette Teileliste & Setup-Anleitung