WiFi-gesteuerter FPV-Rover-Roboter mit Arduino & ESP8266 – DIY-Anleitung
Komponenten und Zubehör
| Komponente | Menge |
|---|---|
| Arduino UNO | 1 |
| Arduino Proto Shield | 1 |
| Espressif ESP8266 ESP-01 | 1 |
| 28BYJ Schrittmotor | 2 |
| ULN2003 Schrittmotortreiber | 1 |
| Android-Gerät | 1 |
| Widerstand 1 kΩ | 1 |
| Widerstand 100 kΩ | 2 |
| Powerbank | 1 |
| 42×19 mm Räder mit Gummibereifung | 2 |
| 49×20×32 mm Stahlkugel-Omni-Rad | 1 |
| M2 × 10 mm Schrauben | 12 |
| M2 × 1,5 mm Muttern | 12 |
| M3 × 10 mm Schrauben | 8 |
| M3 × 1,5 mm Muttern | 8 |
| 5/32″ × 1″ Schrauben | 3 |
| 5/32″ Muttern | 6 |
| Handheld Selfie-Stick Clip | 1 |
| 3 × 3 cm Aluminiumwinkel | 2 |
| 2 mm Acrylglasplatte | 1 |
Benötigte Werkzeuge und Maschinen
- Bohrmaschine
- Handkreissäge
Apps und Online-Dienste
- IP Webcam (Android App)
- Autodesk Fusion 360
- DraftSight
- Arduino IDE
- Notepad++
Über dieses Projekt
Dieses Tutorial zeigt, wie man einen ferngesteuerten zweirädrigen Roboter-Rover über ein WLAN-Netzwerk baut, mit einem Arduino Uno, verbunden mit einem ESP8266 WiFi-Modul und zwei Schrittmotoren. Der Roboter kann über einen gewöhnlichen Internetbrowser mit einer HTML-basierten Oberfläche gesteuert werden. Ein Android-Smartphone überträgt Video und Audio vom Roboter zur Steuerungsoberfläche.
Es gibt viele Roboter-Bausätze online in verschiedenen Formen, Größen und Preisen. Aber je nach Anwendung passt keiner, und sie sind oft zu teuer für Experimente. Oder man möchte die mechanische Struktur selbst bauen statt einen Komplettbausatz zu kaufen. Dieses Tutorial zeigt auch, wie man einen kostengünstigen Acrylrahmen für das eigene Roboterprojekt entwirft und baut, mit ganz normalen Werkzeugen – für alle, die keinen Zugang zu teuren 3D-Druckern oder Lasercuttern haben. Eine einfache Roboterplattform wird vorgestellt.
Diese Anleitung kann angepasst werden, um Form oder Steueroberfläche zu ändern. Sie wurde für andere meiner Roboterprojekte adaptiert („Robô da Alegria“):
Warnung: Einige Fotos sind veraltet, da das Design weiter verbessert wurde. Die hier vorgestellte Idee ist jedoch weiterhin gültig.
Schritt 1: Werkzeuge
Folgende Werkzeuge werden für den Prototypenbau benötigt:
- Handkreissäge (für erste Schnitte der Acrylglasplatte)
- Schraubendreher (für Schrauben und Muttern)
- Lineal (für Maßnehmen)
- Cuttermesser (zum Schneiden der Acrylglasplatte)
- Bohrmaschine (für Bohrungen)
- Schleifpapier (zum Glätten rauer Kanten)






Schritt 2: Mechanische Struktur und Materialien
Für einen eigenen Roboter muss man zuerst die mechanische Struktur entwerfen. Je nach Anwendung kann dies einfach oder detailreich sein. Man kann sie in 3D-CAD-Software designen oder nur in 2D zeichnen.
Man kann auch die komplette Struktur online kaufen, wenn man nicht selbst bauen will. In diesem Fall zu Schritt 6 springen.
Für dieses Tutorial wurde ein kostengünstiger Acrylrahmen für die Montage der Motoren und Komponenten entworfen. Die Struktur wurde mit 123D Design CAD-Software 3D-designed. Jedes Teil wurde später mit DraftSight in 2D umgewandelt.
Verwendete Materialien:
- 2 mm Acrylglasplatte
- 42×19 mm Räder mit Gummibereifung (×2)
- 49×20×32 mm Stahlkugel-Omni-Rad (×1)
- M2 × 10 mm Schrauben (×12)
- M2 × 1,5 mm Muttern (×12)
- M3 × 10 mm Schrauben (×8)
- M3 × 1,5 mm Muttern (×8)
- 5/32″ × 1″ Schrauben (×3)
- 5/32″ Muttern (×6)
- Handheld Selfie-Stick Clip
- 3 × 3 cm Aluminiumwinkel (×4)
Der Bau der Basisstruktur gliedert sich in:
- Acrylbasis nach 2D-Zeichnung zuschneiden
- Bohrungen an den in der 2D-Zeichnung gezeigten Positionen bohren
- Komponenten gemäß 3D-Zeichnung mit Schrauben und Muttern montieren
Leider ist der Durchmesser der Schrittmotorwelle größer als die Bohrung im Rad. Man muss diese Komponenten wahrscheinlich verkleben. Für dieses Tutorial habe ich eine Holzverbindung zwischen Motorwelle und Rad improvisiert.
FMAR9JBITKJE83H.123dx (123D Design Datei)
F21RD24ITKJE8AJ.dwg (2D Zeichnung)
FPTGSODITKJE8AN.pdf
Schritt 3: Struktur zuschneiden
Zuerst die Maße des Modells auf die Acrylglasplatte übertragen. 2D-Zeichnung auf Klebepapier drucken, passend zuschneiden und als Maske auf die Acryloberfläche kleben.
Mit Handsäge nach Maßen schneiden oder die Bruchtechnik nutzen:
Mit Cuttermesser und Lineal die Acrylglasplatte in geraden Linien ritzen. Nicht ganz durchschneiden, nur Rillen erzeugen, an denen das Stück später bricht.
Acrylglas auf ebene Fläche legen, mit Schraubzwingen fixieren und Druck ausüben, bis die Platte in zwei Teile bricht. Prozess wiederholen bis alle Schnitte erledigt. Anschließend Schleifpapier für raue Kanten nutzen.



Schritt 4: Basis bohren
Bohrungen an den in der 2D-Zeichnung gezeigten Positionen (in der Maske markiert) mit Bohrmaschine bohren.
Acrylglas lässt sich relativ leicht bohren. Falls keine Bohrmaschine vorhanden, kann man Löcher manuell mit scharfem Werkzeug (Cuttermesser) bohren. Auch zum Vergrößern kleiner Löcher für Schraubengrößen nutzbar.
Maske entfernen – Basis ist fertig.



Schritt 5: Struktur zusammenbauen
Komponenten gemäß Bildern mit Schrauben und Muttern montieren – Struktur ist bereit.
M3-Schrauben für Schrittmotoren, 5/32″-Schrauben für Vorderrad und Smartphone-Clip.
Jetzt Pause machen und im nächsten Schritt die Elektronik zusammenbauen…




Schritt 6: Elektronik
Benötigte elektronische Komponenten:
- Arduino Uno
- ESP8266
- ProtoShield (für kompaktere Version) oder Steckbrett
- 1 kΩ Widerstand (×2)
- 10 kΩ Widerstand (×1)
- Einige Steckbrücken
- Schrittmotor mit ULN2003 Treiber (×2)
- Computer (zum Kompilieren und Hochladen)
- Powerbank
- USB-Kabel
Keine speziellen Werkzeuge für den Schaltungsaufbau nötig. Alle Komponenten online erhältlich. Die Schaltung wird über eine Powerbank am USB-Port des Arduino gespeist.
Alle Komponenten laut Schaltplan verbinden. Steckbrücken für ESP-8266 und Schrittmotoren nutzen. ProtoShield, Steckbrett oder eigenes Arduino-Shield designen. USB-Kabel an Arduino Uno anschließen und zum nächsten Schritt.





Schritt 7: Arduino-Code
Neueste Arduino IDE installieren. In diesem Projekt wurde die Stepper.h-Bibliothek für die Schrittmotorsteuerung verwendet. Keine zusätzliche Bibliothek für ESP8266-Kommunikation nötig. Baudrate des ESP8266 prüfen und im Code korrekt einstellen.
Arduino-Code (stepperRobot.ino) herunterladen, XXXXX durch WLAN-SSID und YYYYY durch Router-Passwort ersetzen. Arduino per USB mit Computer verbinden und Code hochladen.
FG1K5KJITKJFW2R.ino
Schritt 8: Android IP Cam
Ein Android-Smartphone überträgt Video und Audio vom Roboter zur Steueroberfläche. App im Google Play Store: IP Webcam.
Installieren und zum nächsten Schritt.

Schritt 9: Schaltungen in den Roboter einbauen
Schaltungen mit M1-Schrauben oben am Roboter befestigen (siehe Bilder).
Powerbank mit doppelseitigem Klebeband auf der Rückseite fixieren (leicht entfernbar). Smartphone in den Clip einsetzen.



Schritt 10: Webbasierte Steueroberfläche
Eine HTML-Oberfläche für die Robotersteuerung wurde entworfen.
interface.rar herunterladen, alle Dateien in einen Ordner entpacken und in Firefox öffnen.
Ein Textfeld-Formular dient zur Eingabe der IP-Adressen des ESP-Moduls und des Video/Audio-Servers (aus der Android IP Webcam App).
Ein Test-Button lässt den Roboter rotieren, bis ein anderer Befehl empfangen wird. Pfeiltasten der Tastatur steuern Vorwärts/Rückwärts und Links/Rechts-Drehung.
FQTAWF5ITKJFW4O.rar

Schritt 11: Nutzung
Beim Neustart des Arduino versucht er, sich automatisch mit Ihrem WLAN zu verbinden. Serielle Monitor nutzen, um zu prüfen, ob die Verbindung erfolgreich war, und welche IP der Router dem ESP-8266 zugewiesen hat. HTML-Datei im Browser (Firefox) öffnen und diese IP im Textfeld eingeben.
Man kann auch andere Methoden nutzen, um die zugewiesene IP herauszufinden.
Arduino Uno vom Computer trennen und an Powerbank anschließen. Warten, bis er sich wieder verbindet.
IP Webcam App auf dem Smartphone am Roboter starten. Video/Audio-IP in der Steueroberfläche eingeben, mit Server verbinden – los geht's. Eventuell Videoauflösung in der App reduzieren, um Übertragungsverzögerung zu verringern.
Pfeiltasten gedrückt halten, um Roboter zu drehen oder vorwärts/rückwärts zu bewegen. Viel Spaß beim Erkunden der Umgebung!
Code
Arduino
// Bibliotheken
#include <SoftwareSerial.h>
#include <Stepper.h>
SoftwareSerial esp8266(3, 2); // RX=3, TX=2
// Variablen
#define DEBUG true
const int stepsPerRevolution = 500;
int state = 5;
Stepper rightStepper(stepsPerRevolution, 8, 10, 9, 11);
Stepper leftStepper(stepsPerRevolution, 4, 6, 5, 7);
void setup() {
Serial.begin(9600);
esp8266.begin(19200);
sendData("AT+RST\r\n", 2000, DEBUG);
sendData("AT+CWMODE=1\r\n", 1000, DEBUG);
sendData("AT+CWJAP=\"XXXXX\",\"YYYYY\"\r\n", 2000, DEBUG);
while(!esp8266.find("OK")) { /* warten */ }
sendData("AT+CIFSR\r\n", 1000, DEBUG);
sendData("AT+CIPMUX=1\r\n", 1000, DEBUG);
sendData("AT+CIPSERVER=1,80\r\n", 1000, DEBUG);
rightStepper.setSpeed(60);
leftStepper.setSpeed(60);
}
void loop() {
if (esp8266.available()) {
if (esp8266.find("+IPD,")) {
String msg;
esp8266.find("?");
msg = esp8266.readStringUntil(' ');
String command = msg.substring(0, 3);
String valueStr = msg.substring(4);
int value = valueStr.toInt();
if (DEBUG) { Serial.println(command); Serial.println(value); }
if (command == "cm1") state = 1; // vorwärts
else if (command == "cm2") state = 2; // rückwärts
else if (command == "cm3") state = 3; // rechts
else if (command == "cm4") state = 4; // links
else if (command == "cm5") state = 5; // stop
}
}
// Bewegung ausführen
if (state == 1) { rightStepper.step(1); leftStepper.step(-1); }
else if (state == 2) { rightStepper.step(-1); leftStepper.step(1); }
else if (state == 3) { rightStepper.step(1); leftStepper.step(1); }
else if (state == 4) { rightStepper.step(-1); leftStepper.step(-1); }
// state 5: nichts tun
}
String sendData(String command, const int timeout, boolean debug) {
String response = "";
esp8266.print(command);
long int time = millis();
while ((time + timeout) > millis()) {
while (esp8266.available()) {
char c = esp8266.read();
response += c;
}
}
if (debug) Serial.print(response);
return response;
}
HTML Steueroberfläche
Keine Vorschau (nur Download).
Individuelle Teile und Gehäuse
123D Design Datei: robot.123dx
2D Design der Basis: base.dwg
Schaltpläne
Schaltplan, Steckbrett-Verdrahtung, Fritzing-Datei: wistepper%20-%20rev1.fzz
Herstellungsprozess
- Bluetooth-gesteuerter Raspberry Pi Roboter mit Audio-Feedback bauen
- Internet-gesteuerter Video-Streaming-Roboter mit Arduino & Raspberry Pi bauen
- UV-Desinfektionsroboter mit Arduino Mega: Fernsteuerbares Keimtötungssystem
- Servogesteuerter Hindernisvermeidungs-Roboter: Bauen mit Arduino & HC-SR04
- DFRobot Kapazitiver Fingerabdrucksensor mit Arduino oder ESP8266 einbinden
- Roomba Create 2 per Arduino & Android steuern – Schritt-für-Schritt
- Arduino-basierter 6-DoF Roboterarm mit Nunchuk-Steuerung
- Zwei Schrittmotoren mit Arduino Nano & Joystick steuern – Einfaches Tutorial
- Sprachgesteuerter Roboter mit Arduino Nano bauen
- Pflanzengesundheit mit TinyML bewerten: Praktischer Leitfaden