🐕 Monogo:用 ESP32-C3 造一只会自平衡的四足机器狗

星期六, 5月 23, 2026 | 2分钟阅读 | 更新于 星期六, 5月 23, 2026

@
🐕 Monogo:用 ESP32-C3 造一只会自平衡的四足机器狗

有一阵子一直在玩 ESP32-C3,从小屏幕到四足机器人,这次搞了个大家伙——Monogo,一只 8 自由度(8-DOF)的四足机器狗 🐕。

它不像玩具一样只是简单回放舵机角度,而是基于逆运动学(Inverse Kinematics, IK)数学模型,结合 MPU6050 姿态传感器实现了实时的动态自平衡。成本可控,全部开源。


✨ 核心特性

  • 纯数学逆运动学引擎 📐:通过输入空间坐标 (X, Y) 精准控制足端轨迹,而非死板的舵机角度回放
  • 双轴自平衡 ⚖️:融合 MPU6050 传感器,实时进行 Roll(左右横滚)和 Pitch(前后俯仰)补偿
  • 平滑 Trot 步态 🏃:基于正弦曲线生成的对角步态,支持 1.0Hz~2.0Hz 稳定行走
  • 异步非阻塞架构 ⚡:全时钟周期无 delay() 卡死,保障 100Hz 级别的高速姿态刷新率
  • 大功率动力架构 🔋:专为 8 颗 MG996R 优化的 3S 锂电 + XL4016 降压强力供电方案
  • ESP-NOW 无线遥控 📡:双 ESP32-C3 方案,搭配摇杆实现低延迟遥控(开发中)

🛠️ 硬件清单(BOM)

组件类别 具体型号 数量
主控 ESP32-C3(WeAct Studio Core) 1
舵机驱动 PCA9685(16通道 12-bit) 1
姿态传感器 MPU6050 或 MPU6500 1
执行器 MG996R 180度模拟舵机 8
电池组 18650 动力电池(3S串联) 3
电池保护 3S 20A 锂电池 BMS 保护板 1
降压模块 XL4016(8A 或 12A) 1
稳压电容 2200µF - 4700µF 电解电容 1
机身结构 3D 打印件 + 连杆机构 1 套

大腿直驱,小腿通过连杆驱动,结构简洁可靠。


🔌 核心接线

⚠️ 关键警告:PCA9685 的 V+(绿色接线柱)和侧边排针的 VCC 是两条完全独立的供电线路!千万不要把 5V/6V 接入 VCC,否则会瞬间烧毁 ESP32 和 MPU 传感器!

动力系统

3S 电池包 → BMS 保护板 → XL4016 降压模块(输出调至 5.0V ~ 6.0V

  • XL4016 OUT+ → PCA9685 绿色接线柱 V+
  • XL4016 OUT- → PCA9685 绿色接线柱 GND
  • 2200µF 大电容并联锁在绿色接线柱上(长脚 V+,短脚 GND)
  • 从 XL4016 引出一根 5V/6V 正极接到 ESP32-C3 的 5V 引脚为其供电

逻辑与通讯

所有 GND 必须共地。ESP32-C3 的 3.3V 给 PCA9685 的 VCC 和 MPU6050 的 VCC 供电。

信号 ESP32-C3 PCA9685 MPU6050
I2C SDA GPIO 8 SDA SDA
I2C SCL GPIO 9 SCL SCL

舵机通道分配

腿部 大腿(Thigh) 小腿(Shin)
左前(LF) CH 0 CH 1
右前(RF) CH 2 CH 3
左后(LB) CH 4 CH 5
右后(RB) CH 6 CH 7

🧮 逆运动学原理

核心思路很简单:给定足端在空间中的坐标 (X, Y),通过几何关系反算出大腿和小腿的角度。

D = sqrt(X² + Y²)
cos(β) = (L1² + L2² - D²) / (2 × L1 × L2)
β = 180° - arccos(cos(β))
α = arctan(-X, Y) + arccos((L1² + D² - L2²) / (2 × L1 × D))

其中 L1、L2 是大腿和小腿的物理长度。计算出 α(大腿角)和 β(小腿角)后,加上每条腿的基准偏移值,输出到对应舵机即可。

四条腿独立运算,配合正弦曲线生成 Trot 对角步态,实现流畅行走。


🎮 串口控制指令

程序运行后,串口监视器(115200 波特率)发送以下指令:

按键 动作 说明
W 前进 触发 1.0Hz Trot 步态
S 后退 逆向 Trot 步态
M 原地踏步 验证对角线协同与重心稳定
U 站立 回到标准站立高度,激活自平衡
P 趴下 降低至贴地防卫姿态
X 紧急停止 停止所有步态,进入 IDLE

使用 ESP-NOW 无线遥控的方案也已在开发计划中,将来用第二个 ESP32-C3 配摇杆实现无线控制。


📄 开源许可证

MIT License。欢迎任何人 Fork、修改并用于自己的机器人项目。

📁 项目地址

🪐 GitHub: https://github.com/guitarliu/Monogo

如果这只 Monogo 让你觉得有趣,给它一颗 ⭐️ Star 就是最好的鼓励 🫶。

© 2026 MauDou 工坊

完整代码/模型文件请联系作者获取

关于 MauDou

🐈 MauDou 工坊主理人 —— guitarliu

一个用代码和焊锡创造东西的独立开发者,也是一个吉他爱好者。


👤 个人标签

  • 身份:独立开发者 / 工程师
  • 兴趣:编程、嵌入式硬件、工程计算工具、吉他
  • 人生小目标:做出更多真正好用的工具,有一天能组建自己的乐队

📖 关于我

欢迎来到 MauDou 工坊 🐈

我喜欢把工作和生活中的实际问题,用代码或硬件的方式解决掉。这里记录了我开发的各种实用工具、嵌入式小项目,以及一些折腾过程。

我不是专业的全职开源作者,但对把想法落地这件事充满热情。无论是工程计算软件、办公自动化工具,还是带屏幕的桌面小硬件,我都喜欢动手去做。


💻 技术方向

  • 主力语言:Python、C#
  • 其他语言:JavaScript / TypeScript、C++
  • 主要领域:污水处理工艺计算工具、BIM / Revit 二次开发、Office 文档自动化处理、ESP32 嵌入式开发、各种实用效率工具

🚀 代表项目

  • DwaCalctor —— 污水处理工艺计算工具(基于德国 DWA 标准)
  • Maodou Clock(毛豆时钟) —— 颜值较高的 ESP32 桌面天气时钟
  • LazyBot —— Revit 效率插件系列
  • PDF 批量处理工具 —— PDF 旋转、合并等小工具
  • HydroCalcter —— 污水处理相关计算平台

📬 联系方式


项目说明

  • 开源部分 — 博客里的原理图、思路、代码片段免费分享
  • 付费获取 — 完整源码、3D 打印模型文件、详细接线图可联系作者获取(邮箱:xiaotaiye@gmail.com)
  • 定制服务 — 接受定制开发,按需求报价

☕ 支持我

如果你觉得我的项目有帮助,可以请我喝杯咖啡 🐈

微信收款码

备注项目名称,看到后第一时间回复