WiFi蜘蛛机器人搭建教程:12舵机+ESP32网页遥控

2026-10-26 13:02:11 106阅读

最近看到一个特别适合周末动手的开源项目——用Arduino Nano加一块ESP32-C3 Super Mini,搭一只12自由度的WiFi蜘蛛机器人。不用装App,手机连上WiFi打开浏览器就能遥控,还能做挥手、握手、跳舞这些花样动作。Robot LK这个项目在2026年10月更新了新版,修了老版3D件和蓝牙控制的坑,整体完成度比之前高了不少。

准备材料:全套150到200元

先列核心器件。主控用Arduino Nano,扩展板配Nano IO Expansion Shield,12只MG90S金属齿轮舵机——金属齿比塑料齿耐用,这个钱别省。WiFi模块用ESP32-C3 Super Mini,体积小到能塞进机器人肚子里。供电走两节18650锂电加XL4015降压模块,输出调到5V。显示屏用0.96寸128×64的I2C OLED,做表情动画用。

3D打印件需要24个零件:胫骨左右各2、股骨4、基节左右各2、铰链8、上下壳体各1。打印参数层高0.2mm、填充15%,PLA就行。没打印机的话淘宝代打一套二三十块。此外还需要M3×30螺丝4套、M1.7×6螺丝16颗、热熔胶枪、电烙铁、万用表。

舵机归中:这步做错后面全废

组装之前有一个很多人忽略的步骤——舵机归中。原理很简单:让每只舵机先转到90度中立位置,然后再装舵机摇臂。跳过这步直接装,腿的方向就对不上,走起来会歪。

操作方法:12只舵机按引脚表接好,Nano扩展板的D2到D13对应12路PWM输出。上传归中代码,给机器人通电,舵机自动转到90度并保持住。引脚对应关系:腿0(左前)D3/D4/D2,腿1(右前)D6/D7/D5,腿2(左后)D9/D8/D10,腿3(右后)D12/D11/D13。每只腿三个舵机顺序是coxa(基节)、femur(股骨)、tibia(胫骨)。

//Robot Lk
#include "Servo.h"
Servo servo[4][3];
const int servo_pin[4][3] = {
  {3, 4, 2}, {6, 7, 5}, {9, 8, 10}, {12, 11, 13}
};
void setup() {
  for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 3; j++) {
      servo[i][j].attach(servo_pin[i][j]);
      delay(20);
    }
  }
}
void loop(void) {
  for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 3; j++) {
      servo[i][j].write(90);
      delay(20);
    }
  }
}

上传完成后保持通电状态,舵机需要供电才能保持位置。把舵机摇臂装上去,腿零件要对齐——左腿右腿零件是镜像的,搞反了走起来方向不对。

接线:三路信号分开走

整个电路分三路。第一路舵机供电:两节18650串联出7.4V,经XL4015降压到5V。接之前一定用万用表确认输出是5V——接错电压直接烧舵机。12只舵机同时动瞬间电流能到3A以上,降压模块额定电流要够。

第二路舵机信号线:12只舵机信号线全接Nano扩展板,每只对应独立PWM引脚。扩展板省去了面包板跳线的麻烦。

第三路ESP32-C3和Arduino Nano串口通信:ESP32-C3的GPIO4(TX)接Nano的D0(RX),GPIO5(RX)接Nano的D1(TX),共地。Arduino负责控制舵机,ESP32-C3负责WiFi和Web界面,两者串口传指令。OLED走I2C,接扩展板SDA/SCL,地址0x3C。

Arduino主控:逆运动学加串口接收

Arduino Nano跑的主程序核心逻辑分两块。一块是逆运动学计算——给定每条腿末端目标坐标(x, y, z),反推三个舵机各自应转角度。另一块是串口指令接收——收到ESP32-C3发来的单字符(F=前进、B=后退、L=左转、R=右转、U=握手、W=挥手、V=跳舞),调用对应运动函数。

逆运动学数学模型:每条腿三个关节长度分别是a=50mm(coxa)、b=77.1mm(femur)、c=27.5mm(tibia),腿间距side=71mm。代码用余弦定理把笛卡尔坐标转极坐标,再映射到舵机角度。步态用对角步态——左前右后同时抬腿,右前左后交替。FlexiTimer2库设20ms定时中断刷新舵机位置,保证步态平滑。

编译前装三个库:Servo(自带)、FlexiTimer2、Adafruit_SSD1306和Adafruit_GFX(OLED驱动),通过"项目→加载库→添加ZIP库"导入。完整项目文件在Robot LK官网下载页获取。

ESP32-C3固件:WiFi热点加网页控制

ESP32-C3 Super Mini固件比较简洁——开WiFi热点,SSID"SpiderRobot",密码"12345678",起HTTP服务器在80端口。网页有方向控制盘和三个动作按钮,按按钮发GET请求到"/command?cmd=X",ESP32-C3收到后串口转发单字符给Arduino。

#include "WiFi.h"
#include "WebServer.h"

const char* ssid = "SpiderRobot";
const char* password = "12345678";
WebServer server(80);
#define ESP_TX 4
#define ESP_RX 5
HardwareSerial RobotSerial(1);

void setup() {
  Serial.begin(9600);
  RobotSerial.begin(9600, SERIAL_8N1, ESP_RX, ESP_TX);
  WiFi.softAP(ssid, password);
  server.on("/command", []() {
    if (server.hasArg("cmd")) {
      String cmd = server.arg("cmd");
      RobotSerial.write(cmd.charAt(0));
      server.send(200, "text/plain", "OK");
    }
  });
  server.on("/", []() {
    server.send_P(200, "text/html", webpage);
  });
  server.begin();
}
void loop() { server.handleClient(); }

网页用PROGMEM存在ESP32 Flash里,包含完整CSS和JavaScript。方向键按住持续移动、松手停止,三个动作按钮点击触发一次。界面是深色赛博风,手机浏览器显示不错。ESP32-C3安装需先装ESP32 Board Package。

Web界面控制实测

两路固件都烧好后,手机搜WiFi找"SpiderRobot"热点连接(密码12345678)。浏览器地址栏输192.168.4.1,看到控制界面。上方方向盘——上前进、下后退、左右转向、中间红色STOP急停。下方三个按钮触发握手、挥手、跳舞。每按一个动作,OLED屏幕切换对应表情——前进笑、后退难过、左转右转生气。

实测控制延迟50ms左右,比老版蓝牙快不少。WiFi直连不需要装App,iOS/Android/Windows/Mac只要有浏览器就行。范围室内10-15米,够客厅玩。

踩坑总结

几个容易翻车的地方。第一,舵机归中顺序——必须先上传归中代码、通电转90度、再装摇臂,顺序反了白装。第二,XL4015降压模块出厂默认输出不一定是5V,接舵机前万用表量一下。第三,ESP32-C3串口引脚GPIO4和GPIO5是默认UART1,别接别的引脚。第四,3D件方向——左腿右腿基节零件镜像,装反腿方向不对。

整体完成度很高。12只金属齿轮舵机、WiFi直连网页控制、OLED表情动画,全套成本约150-200元(不含3D打印件)。适合有Arduino基础的玩家,周末两天搞定。项目完全开源,STL文件和代码在Robot LK官网可下载(10月20日查)。


作者:固件烧录仔
链接:https://www.aiddithome.com/p/1e3452f33959e6.html
本作版权归作者所有,未经允许请勿转载。若存在违规行为,您可以点击 “举报”。


登录 后发表评论
4条评论
第三次终于亮了
1楼 · 2026-10-26 13:08:13

XL4015降压模块出厂电压真的不一定是5V,我之前接过一个量出来6V多差点把舵机烧了

胶佬憨憨
2楼 · 2026-10-26 13:08:12

ESP32-C3 Super Mini这个方案比蓝牙好多了,之前用HC-05老是掉线,WiFi直连手机浏览器就能控延迟还低

电烙铁爱好者
3楼 · 2026-10-26 13:08:11

舵机归中这步确实容易忘,我第一次做的时候直接装摇臂,结果走起来腿是歪的,拆了重弄费了半天劲

PriTime
4楼 · 2026-10-26 13:07:36

118