Wi-Fi 控制 FPV 履带/轮式机器人:Arduino + ESP8266 全攻略
项目特色
- 自制低成本亚克力底盘,无需 3D 打印/激光切割
- 双 28BYJ-48 步进电机 + ULN2003 驱动,扭矩大、定位准
- ESP8266 建立 Web Server,浏览器键盘/按钮控制前进/后退/原地旋转
- 安卓手机运行 IP Webcam 实现 FPV 视频/音频回传
机械结构制作
- 用 2 mm 亚克力板,按 2D 图纸(附件
base.dwg)划线、划刻、折断、打磨 - 钻孔安装:M3 螺丝固定两步进电机,5/32″ 螺丝装万向球轮与自拍杆手机夹
- 电机轴径大于轮孔,需胶水或木质联轴器连接

电子电路
- Arduino UNO + Proto Shield(或面包板)
- ESP8266 ESP-01:TX/RX → D3/D2 (SoftwareSerial 19200 波特率),CH_PD 接 3.3V,分压电阻 1k/2k
- 两路 ULN2003 分别接 D4~D7、D8~D11
- 移动电源供电(USB 口直插 Arduino)

Arduino 固件要点
#include
#include
SoftwareSerial esp(3,2); // RX,TX
Stepper L(500, 4,6,5,7), R(500, 8,10,9,11);
void setup() {
Serial.begin(9600); esp.begin(19200);
send("AT+RST\r\n",2000);
send("AT+CWMODE=1\r\n",1000);
send("AT+CWJAP=\"SSID\",\"PASS\"\r\n",5000);
send("AT+CIPMUX=1\r\n",1000);
send("AT+CIPSERVER=1,80\r\n",1000);
L.setSpeed(60); R.setSpeed(60);
}
void loop() {
if(esp.find("+IPD,")) {
esp.find("?"); String cmd=esp.readStringUntil(' ');
if(cmd=="cm1") state=1; // 前进
else if(cmd=="cm2") state=2; // 后退
else if(cmd=="cm3") state=3; // 右转
else if(cmd=="cm4") state=4; // 左转
else state=5;
}
switch(state){
case 1: R.step(1); L.step(-1); break;
case 2: R.step(-1); L.step(1); break;
case 3: R.step(1); L.step(1); break;
case 4: R.step(-1); L.step(-1); break;
}
}
网页控制界面
- 解压
interface.rar,用 Firefox 打开index.html - 输入 ESP IP 与手机 IP Webcam 地址,点击 Connect
- 键盘方向键 / 屏幕按钮控制;测试按钮可原地自旋
使用技巧
- 串口监视器确认 ESP 连上路由并获取 IP
- 手机开启 IP Webcam,调低分辨率(如 320×240)减少延迟
- 断开 USB,改用移动电源供电,即可自由漫游
项目已迁移应用于 “Robô da Alegria” 等后续机器人,代码与结构复用性强。
制造工艺
- 蓝牙控制树莓派机器人:语音反馈功能构建指南
- Arduino与树莓派构建互联网控制视频流机器人完整指南
- Arduino Mega 驱动紫外线消毒机器人:远程遥控杀菌系统
- 舵机驱动避障机器人:基于 Arduino 与 HC-SR04 构建
- DFRobot 电容指纹传感器 (ID809) 接入 Arduino/ESP8266 完整教程
- Arduino + Android 蓝牙控制 Roomba Create 2 扫地机器人完整指南
- Arduino Mega 驱动 Wii Nunchuk 控制 6 自由度机械臂
- Arduino Nano + 摇杆控制双步进电机:Visuino 图形化教程
- Arduino Nano 语音控制机器人:蓝牙 + 手机 APP 实现
- TinyML 植物健康评估:Arduino Nano 33 BLE Sense + 步进电机扫描建模
- Arduino + MPU6050 姿态控制舵机:SG90 与 MG996R 精准跟随实战
- PiBot:Arduino驱动的88键钢琴机器人,精准演奏MIDI乐曲