Wi-Fi Gestuurde FPV Rover Robot met Arduino & ESP8266 – DIY Handleiding
Onderdelen en benodigdheden
| Arduino UNO | × | 1 |
| Arduino Proto Shield | × | 1 |
| Espressif ESP8266 ESP-01 | × | 1 |
| 28BYJ Stappenmotor | × | 2 |
| ULN2003 stappenmotor-driver | × | 1 |
| Android-apparaat | × | 1 |
| Weerstand 1k ohm | × | 1 |
| Weerstand 100k ohm | × | 2 |
| Powerbank | × | 1 |
| 42x19mm wielen met rubberen loopband | × | 2 |
| 49x20x32mm staal bal omni-wiel | × | 1 |
| M2 x 10mm bouten | × | 12 |
| M2 x 1,5mm moeren | × | 12 |
| M3 x 10mm bouten | × | 8 |
| M3 x 1,5mm moeren | × | 8 |
| 5/32" x 1" bouten | × | 3 |
| 5/32" moeren | × | 6 |
| Handheld selfiestick-klem | × | 1 |
| 3 x 3 cm aluminium beugel | × | 2 |
| 2mm acrylaatplaat | × | 1 |
Nodige tools en machines
| Boormachine |
| Handzaag |
Apps en online diensten
| IP Webcam |
| Autodesk Fusion 360 |
| Draftsight |
| Arduino IDE |
| Notepad++ |
Over dit project




Deze tutorial laat zien hoe je een op afstand bestuurbare tweewielige robotische rover ontwerpt via een WiFi-netwerk, met een Arduino Uno verbonden met een ESP8266 WiFi-module en twee stappenmotoren. De robot kan worden bestuurd vanaf een gewone internetbrowser, met een HTML-interface. Een Android-smartphone wordt gebruikt om video en audio van de robot naar de bedieningsinterface van de operator te streamen.
Er zijn veel robotica-kits online beschikbaar met verschillende vormen, afmetingen en prijzen. Maar afhankelijk van je toepassing past geen van hen, en je kunt ontdekken dat ze te duur zijn voor je experimenten. Of misschien wil je gewoon je eigen mechanische structuur maken in plaats van een complete te kopen. Deze tutorial laat ook zien hoe je een low-cost acrylaat-frame ontwerpt en bouwt voor je eigen robotproject, met alleen gewone tools voor diegenen die geen toegang hebben tot dure 3D-printers of lasersnijders. Een simpel robotplatform wordt gepresenteerd.
Deze handleiding kan worden aangepast om de vorm of controle-interface te veranderen. Het was aangepast voor andere van mijn robotprojecten ("Robô da Alegria"), die je kunt bekijken in de links hieronder:
[Waarschuwing: sommige foto's zijn verouderd omdat het ontwerp verder verbeterd is. Echter, het hier gepresenteerde idee is nog steeds geldig.]
Stap 1: Tools
De volgende tools zijn nodig voor de constructie van dit prototype:
- Handzaag (voor initiële snijden van de acrylaatplaat)
- Schroevendraaier (voor bouten en moeren)
- Liniaal (voor afmetingen meten)
- Stanleymes (voor snijden van de acrylaatplaat)
- Boormachine (voor gaten maken voor de bouten)
- Schuurpapier (voor gladmaken van ruwe randen)

Stap 2: Mechanische structuur en materialen
Om een custom robot te bouwen, moet je eerst je mechanische structuur ontwerpen. Dat kan makkelijk zijn, afhankelijk van je toepassing, of vol details en beperkingen. Je moet het misschien in 3D CAD-software ontwerpen of gewoon in 2D tekenen, afhankelijk van de complexiteit.
Je kunt de complete structuur ook online kopen als je je eigen mechanische structuur niet wilt bouwen. Er zijn veel robotica-kits online. In dat geval kun je door naar Stap 6.
Voor deze tutorial is een low-cost acrylaat-frame ontworpen voor de bevestiging van de motoren en andere componenten. De structuur werd 3D ontworpen met 123D Design CAD-software. Elk onderdeel werd later omgezet in 2D met Draftsight-software.
De volgende materialen werden gebruikt:
- 2mm acrylaatplaat
- 42x19mm wielen met rubberen loopband (x2)
- 49x20x32mm staal bal omni-wiel (x1)
- M2 x 10mm bouten (x12)
- M2 x 1,5mm moeren (x12)
- M3 x 10mm bouten (x8)
- M3 x 1,5mm moeren (x8)
- 5/32" x 1" bouten (x3)
- 5/32" moeren (x6)
- Handheld selfiestick-klem
- 3 x 3 cm aluminium beugel (x4)
De constructie van de basisstructuur is verdeeld in de volgende stappen:
- Zaaq de acrylaatbasis volgens de afmetingen in de 2D-tekening
- Boor de gaten op de posities zoals in de 2D-tekening getoond
- Monteer de componenten met bouten en moeren volgens de 3D-tekening
Helaas is de diameter van de stappenmotor-as groter dan de opening op het wiel. Je zult waarschijnlijk lijm nodig hebben om die componenten te koppelen. Voor deze tutorial improviseerde ik een houten koppeling tussen de motor-as en het wiel.
FMAR9JBITKJE83H.123dx
F21RD24ITKJE8AJ.dwg
FPTGSODITKJE8AN.pdf
Stap 3: De structuur zagen
Eerst moet je de afmetingen van je model overbrengen naar de acrylaatplaat. Print je 2D-tekening met een gewone printer op zelfklevend papier, knip het papier in geschikte afmetingen en plak dat masker op het oppervlak van de acrylaat.
Je kunt een handzaag gebruiken om de acrylaat volgens je afmetingen te zagen of de breektechniek gebruiken die hieronder beschreven staat.
Met een stanleymes en een liniaal of schaal, snijd je de acrylaat in rechte lijnen. Je hoeft niet helemaal doorheen te zagen, alleen scoreren om sporen te maken waar het stuk later afgebroken wordt.
Plaats de acrylaat op een vlak oppervlak, houd het vast met klampen en oefen druk uit tot het blad in twee breekt. Herhaal dit proces tot alle sneden klaar zijn. Daarna kun je schuurpapier gebruiken om ruwe randen glad te maken.



Stap 4: De basis boren
Boor de gaten op de posities zoals in de 2D-tekening getoond (aangeduid in het masker) met een boormachine.
Acrylaat is relatief makkelijk te boren. Als je geen boormachine hebt, kun je de gaten handmatig boren met een scherp gereedschap zoals een stanleymes. Je kunt het ook gebruiken om kleine gaten te vergroten tot boutmatten.
Haal het masker eraf en je basis is klaar.



Stap 5: De structuur monteren
Monteer de componenten met bouten en moeren volgens de afbeeldingen, en je structuur is klaar.
M3-bouten worden gebruikt voor de installatie van de stappenmotoren, terwijl de 5/32" bouten gebruikt worden voor het voorwiel en de smartphone-klem.
Nu even pauze en ga in de volgende stap de circuit monteren...




Stap 6: Electronica
Je hebt de volgende elektronische componenten nodig:
- Arduino Uno
- ESP8266
- Protoshield (voor een compactere versie) of een gewoon breadboard
- 1 kohm weerstand (x2)
- 10 kohm weerstand (x1)
- Enkele draadjes
- Stappenmotor met ULN2003-driver (x2)
- Een computer (voor compileren en uploaden van Arduino-code)
- Powerbank
- USB-kabel
Je hebt geen specifieke tools nodig voor de montage van de circuit. Alle componenten zijn online te vinden bij je favoriete e-commerce winkel. De circuit wordt gevoed door een powerbank verbonden met de USB-poort van de Arduino.
Sluit alle componenten volgens het schema aan. Je hebt enkele draadjes nodig om de ESP-8266-module en de stappenmotoren te verbinden. Je kunt een protoshield gebruiken (voor een compactere circuit), een gewoon breadboard, of je eigen Arduino-shield ontwerpen. Steek de USB-kabel in de Arduino Uno en ga door naar de volgende stap.





Stap 7: Arduino-code
Installeer de nieuwste Arduino IDE. In dit project werd de Stepper.h-bibliotheek gebruikt voor de besturing van de stappenmotoren. Geen extra bibliotheek nodig voor communicatie met ESP-8266-module. Controleer de baudrate van je ESP8266 en stel hem correct in de code in.
Download Arduino-code (stepperRobot.ino) en vervang XXXXX door je WiFi-router SSID en YYYYY door routerwachtwoord. Verbind het Arduino-bord met de USB-poort van je computer en upload de code.
FG1K5KJITKJFW2R.ino
Stap 8: Android IP-cam
Een Android-smartphone werd gebruikt om video en audio van de robot naar de bedieningsinterface te streamen. Je vindt de app in de Google Play Store (https://play.google.com/store/apps/details?id=com.pas.webcam).
Installeer het en ga naar de volgende stap.

Stap 9: De circuits in de robot plaatsen
Installeer de circuits bovenaan de robot met enkele M1-bouten, zoals in de afbeeldingen getoond.
Daarna plak je je powerbank aan de achterkant van de robot met dubbelzijdig tape (omdat het makkelijk te verwijderen is), en plaats je je smartphone in de klem.



Stap 10: Web-based bedieningsinterface
Een HTML-interface is ontworpen voor de besturing van de robot.
Download interface.rar en pak alle bestanden uit in een gegeven map. Open het dan in Firefox.
Een tekstvak-formulier wordt gebruikt in die interface om IP-adressen van de ESP-module en van de video/audio-server (vanuit Android IP Webcam-app) in te voeren.
Er is een testknop, die de robot laat draaien tot een ander commando wordt ontvangen. Toetsenbordpijltjestoetsen worden gebruikt voor het bewegen van de robot vooruit of achteruit, en om links of rechts te draaien.
FQTAWF5ITKJFW4O.rar

Stap 11: Gebruik
Wanneer de Arduino herstart, probeert het automatisch verbinding te maken met je WiFi-netwerk. Gebruik de Seriële Monitor om te checken of de verbinding succesvol was, en om te zien welk IP-adres je router aan je ESP-8266 heeft toegewezen. Open het HTML-bestand in een internetbrowser (Firefox) en vul dit IP-adres in het tekstvak in.
Je kunt ook andere manieren gebruiken om te achterhalen welk IP-adres je router aan je apparaat heeft toegewezen.
Ontkoppel de Arduino Uno van je computer en verbind het met de powerbank. Wacht tot het weer verbonden is.
Start de IP Webcam-app in de smartphone die op de robot zit. Typ het video/audio-IP op je bedieningsinterface en verbind met de server en je bent klaar om te gaan. Je moet misschien de resolutie van de video in de app verlagen om de vertraging tijdens de transmissie te verminderen.
Klik en houd de pijltjestoetsen van je toetsenbord ingedrukt om de robot te laten draaien of vooruit/achteruit te bewegen en geniet van het verkennen van je omgeving.
Code
- Arduino
- HTML-bedieningsinterface
ArduinoArduino
//include libraries
#include <SoftwareSerial.h>
#include <Stepper.h>
SoftwareSerial esp8266(3, 2); //RX pin = 3, TX pin = 2
//definition of variables
#define DEBUG true //toon berichten tussen ESP8266 en Arduino in seriële poort
const int stepsPerRevolution = 500;
int state = 5;
Stepper rightStepper(stepsPerRevolution, 8,10,9,11);
Stepper leftStepper(stepsPerRevolution, 4,6,5,7);
//*****
//SETUP
//*****
void setup() {
Serial.begin(9600);
esp8266.begin(19200);
sendData("AT+RST\r\n", 2000, DEBUG); //reset module
sendData("AT+CWMODE=1\r\n", 1000, DEBUG); //set station mode
sendData("AT+CWJAP=\"XXXXX\",\"YYYYY\"\r\n", 2000, DEBUG); //connect wifi network
while(!esp8266.find("OK")) { //wacht op verbinding }
sendData("AT+CIFSR\r\n", 1000, DEBUG); //toon IP-adres
sendData("AT+CIPMUX=1\r\n", 1000, DEBUG); //sta meerdere verbindingen toe
sendData("AT+CIPSERVER=1,80\r\n", 1000, DEBUG); //start webserver op poort 80
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; } //vooruit
if(command == "cm2") { state = 2; } //achteruit
if(command == "cm3") { state = 3; } //rechts
if(command == "cm4") { state = 4; } //links
if(command == "cm5") { state = 5; } //niets
}
}
if (state == 1) { rightStepper.step(1); leftStepper.step(-1); }
if (state == 2) { rightStepper.step(-1); leftStepper.step(1); }
if (state == 3) { rightStepper.step(1); leftStepper.step(1); }
if (state == 4) { rightStepper.step(-1); leftStepper.step(-1); }
if (state == 5) { }
}
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-bedieningsinterfaceHTML
Geen preview (alleen downloaden).
Custom parts en behuizingen
123D ontwerpbestand.
robot.123dx
2D ontwerp van de basis.
base.dwg
Schema's
Circuitschema
Breadboard-aansluiting van de circuit
Fritzing-bestand van de circuit
wistepper%20-%20rev1.fzz
Productieproces
- Bouw een Bluetooth-gecontroleerde Raspberry Pi Robot met Audio Feedback
- Bouw een Internet-gecontroleerde Video-streamende Robot met Arduino & Raspberry Pi
- UV-desinfectierobot met Arduino Mega: Op afstand bestuurd germicidaal systeem
- Servo-gestuurde obstakelvermijdende robot: Bouw met Arduino & HC-SR04
- Een DFRobot Capacitieve Vingerafdruksensor integreren met Arduino of ESP8266
- Bestuur Je Roomba Create 2 Met Arduino En Android: Stapsgewijze Handleiding
- Arduino-gebaseerde 6-DoF Robotarm Gestoeerd met Wii Nunchuk
- Twee Stappenmotors Sturen met Arduino Nano & Joystick – Simpele Tutorial
- Bouw een Stemgecontroleerde Robot met Arduino Nano
- Plantengezondheid Beoordelen met TinyML: Een Praktische Gids
- Arduino & MPU6050: Precieze Servomotor Besturing met SG90 & MG996R