告诉Claude:“设计一个成本控制在100美元以内的ESP32-C3蓝牙六足机器人”
目标很明确:用 ESP32‑C3 + 蓝牙 做一个 六足机器人,并且把总成本压在 100 美元以内。下面给一条可执行的路径:从选型、采购、接线、固件,到校准与走路。你按步骤做,第一版就能动起来;后续再迭代步态、结构强度和续航。
先定范围:为什么第一版要“能走”,不是“走得优雅”
100 美元内做六足,最容易翻车的不是控制算法,而是三件事:
- 舵机数量和供电撑不住(抖、重启、烧线)
- 机械装配误差导致“每条腿都不一样”
- 校准缺失,软件再聪明也白搭
因此第一版的成功标准只设一个:稳定地前进/后退/转向。步态优雅、速度、复杂地形,都留到第二版。
Step 1:选架构(先决定舵机数量与成本)
最常见的入门六足有两种:
方案A(推荐起步):12舵机(每条腿2自由度)
- 每腿:髋关节(前后摆)+ 膝关节(抬落)
- 优点:结构简单、材料少、控制容易
- 缺点:地形适应一般,但足够入门
方案B:18舵机(每条腿3自由度)
- 成本和复杂度基本超出 100 美元约束
- 不建议第一版上
结论:用 12 舵机。
Step 2:BOM(把 100 美元拆成能买到的零件)
下面是一份“能跑的低成本清单”(按常见电商价格估算,最终以你能买到的为准):
核心控制与驱动
- ESP32‑C3 开发板 ×1
- 要求:带 USB 串口、3.3V 逻辑
- PCA9685 16路舵机驱动板 ×1
- I2C 控制,多路 PWM,省掉 ESP32 的 PWM 资源与抖动问题
执行机构
- 9g 微型舵机 ×12(SG90/MG90S 同级)
- 预算建议:舵机是大头,优先买一致性好的一批
- SG90:便宜但齿轮塑料,易磨损
- MG90S:略贵但更耐用(若预算允许更建议)
供电
- 2S 锂电(7.4V)×1 或 2×18650 电池盒 ×1
- 降压模块(7.4V → 6V/5V)×1(舵机供电)
- 降压模块(7.4V → 5V)×1(给 ESP32 供电,或用开发板 USB 供电)
- 大电容 470µF~2200µF ×1(并在舵机电源端抗瞬态电流)
- 电源开关、线材、杜邦线若干
结构件
- 3D 打印件(机身、腿部连杆)+ 螺丝/铜柱/扎带
如果你要严格控价:优先压结构件和电池规格,不要压“供电稳定性”和“舵机一致性”。
Step 3:电气连接(按这个接线,先保证不重启)
供电原则(非常关键)
- 舵机电源 和 ESP32 电源 分开供给,但必须 共地(GND 相连)
- 舵机电源端并联大电容,减少起步瞬间掉压导致 ESP32 重启
- 舵机电源建议 6V(或 5V),看舵机规格与驱动板支持
连接清单
1)ESP32‑C3 ↔ PCA9685(I2C)
- ESP32 SDA → PCA9685 SDA
- ESP32 SCL → PCA9685 SCL
- ESP32 3.3V → PCA9685 VCC(逻辑电源)
- ESP32 GND → PCA9685 GND
2)舵机供电 → PCA9685 的 V+(舵机电源端)
- 降压模块 6V/5V 输出 + → PCA9685 V+
- 降压模块 GND → PCA9685 GND
- 大电容并在 V+ 与 GND 之间(靠近驱动板)
3)舵机信号线
- 舵机 3 线:信号(黄/橙)→ PCA9685 通道 PWM
- 舵机电源红线 → V+
- 舵机地线棕/黑 → GND
注意:不要用 ESP32 的 3.3V 给舵机供电。
Step 4:固件第一版(只做四个动作:连上、单舵机动、整机站立、慢速行走)
建议用 Arduino 框架(最快),或 ESP-IDF(更正规但更慢)。
你需要的模块
- BLE:接收手机指令(例如:F/B/L/R/STOP)
- I2C 驱动 PCA9685:设置舵机角度
- 舵机映射表:12 个舵机的编号、方向、零位偏置、限幅
- 步态:最简单的 tripod gait(3 条腿一组交替)
舵机“角度→PWM”映射(关键)
不同舵机差异大,必须做统一映射:
- 定义每个舵机的
center_pwm(中位) - 定义
min_pwm/max_pwm(机械限位保护) - 用偏置表修正装配误差
你先写一个 set_servo(id, angle_deg),内部转换成 PCA9685 的 PWM 值。
Step 5:校准(没有校准,六足永远走不直)
校准分两层:电气校准 与 机械校准。
电气校准(保证每个舵机都可控)
- 写一个“单通道测试模式”
- 逐个舵机从 -30° → 0° → +30° 缓慢摆动
- 观察是否抖动/卡死/供电掉压重启
- 有问题先解决供电和接触不良,别急着改算法
机械校准(保证“中位就是中位”)
建议流程:
1)所有舵机先设定到“中位角”(例如 90°) 2)断电,装上舵臂,尽量让几何中位对齐 3)上电微调偏置值,让每条腿达到对称姿态 4)把每个舵机的偏置写入 EEPROM/NVS
校准完成的标志:机器人“站立姿态”左右对称、六条腿落点差不多,机身不明显倾斜。
Step 6:步态第一版(用最稳的三脚架步态)
最简单可用的走法:tripod gait
- A 组腿:左前 + 右中 + 左后
- B 组腿:右前 + 左中 + 右后
一个周期分两相:
- 相位1:A 组抬起向前摆→落下;B 组支撑向后推
- 相位2:B 组抬起向前摆→落下;A 组支撑向后推
第一版要控制两个参数就够了:
- 步幅(摆动角度大小)
- 速度(周期时间)
不要追求速度,先追求“稳定不抖不摔”。
Step 7:手机控制(最省事的实现方式)
第一版你不需要做 App:
- 用一个通用 BLE 调试 App
- 发送简单字符命令:
F/B/L/R/S - ESP32 收到命令切换运动模式即可
你要的是“控制链路通了”,不是 UI。
Step 8:常见故障排除(按现象定位)
现象A:一走就重启
- 99% 是供电问题:舵机拉电流导致 ESP32 掉压
- 解决:舵机电源独立;加大电容;检查降压模块电流能力;线材加粗;共地
现象B:舵机抖/乱跳
- I2C 干扰或舵机供电噪声
- 解决:I2C 线短;共地可靠;舵机电源端电容;必要时给 ESP32 单独稳压
现象C:走不直、转圈、左右偏
- 机械装配与偏置没校准
- 解决:重新做“中位装配 + 偏置表”,不要靠步态算法硬补
现象D:某条腿总是卡住
- 舵机限位撞结构、连杆干涉
- 解决:先加限幅,再改结构;不要让舵机长期憋死
你做到哪一步,就算完成标题目标了?
完成标准我给你一个可验收的版本:
- 蓝牙可连接
- 手机发
F/B/L/R/S有响应 - 机器人能站立 30 秒不重启
- 在平地上能连续前进 1 米不摔
满足这四条,标题目标就达成了。之后再谈升级:更强舵机、更轻结构、更好电源、IMU 姿态控制、闭环步态。