资讯动态

Microduck开源双足机器人:从舵机步态原理到3D打印实操指南

发布时间:2026/10/26 9:37:44 来源:尧图企业网站定制
第一次在开源社区刷到 Microduck 的演示视频时我盯着屏幕愣了好一会儿一只 3D 打印的塑料鸭子全身能动的就两个舵机居然走得摇摇摆摆、左顾右盼还特别稳。作为常年折腾嵌入式小项目的创客我第一反应不是“哇”而是“这到底是怎么做到的”。后来我把这个开源双足机器鸭的项目完整薅下来自己打印、接线、烧录、带到公园遛了一圈从此它就成了我桌上最治愈的玩具之一。这篇文章就把 Microduck 从原理到实操的所有细节摊开来聊它是什么、硬件怎么选、步态算法到底怎么实现、上街遛鸭要注意什么、常见故障怎么排查以及后续能怎么改造成更“聪明”的机器鸭。无论你是刚入门嵌入式的小白还是想做个周末开源项目的硬件老手这份指南都能让你少踩几个坑。1. 先认识 Microduck这只开源鸭子的真实身份1.1 从双足机器人到桌面萌宠Microduck 本质上是一个双足步行机器人只是长了一副鸭子的外壳。它的开源仓库里包含了完整的 3D 打印模型、电路接线说明、控制固件甚至还有配套的手机遥控 App 源码。项目最初的定位是“低门槛的仿生机器人教学平台”但因为它外形讨喜、行为又呆又萌很快在创客圈里火成了“电子宠物”。和市面上那些动辄十几个自由度的人形机器人不同Microduck 全身只有两个舵机。每条腿由一个舵机独立驱动通过重心左右摇摆和腿部交替摆动实现前进、后退、原地转弯。这种设计非常取巧把双足步行中最复杂的“平衡控制”问题简化成了“重心转移 支撑腿切换”的机械规律所以它的固件完全不需要陀螺仪、加速度计更不需要复杂的姿态解算算法。两个舵机、一块主控、一节锂电池就能让鸭子在平地上走起来。1.2 开源范围与技术规格速览在动手之前我们先搞清楚这个开源项目到底给了我们什么。拿最常见的版本来说仓库里一般会包含3D 打印件鸭子身体左右外壳、头颈、翅膀、两条腿和脚掌全部是 STL 格式直接切片打印即可。电路设计原版主控常用 Seeed XIAO 系列nRF52840 或 ESP32带锂电池充电管理。不过我们完全可以用 Arduino Nano、ESP32 DevKit 甚至 STM32 来替代。固件源码基于 Arduino 框架写的里面封装了走路、转身、上下起伏、发呆、睡觉等几十个“动画”动作。手机控制端如果主控带蓝牙比如 nRF52840 或 ESP32可以用官方 App 无线控制鸭子前进、转弯、播放动作。核心硬件规格大致是这个水平部件常见选型数量主控Arduino Nano / ESP32 / XIAO nRF528401舵机SG90 9g 塑料舵机 / MG90S 金属齿舵机2电池3.7V 锂聚合物电池400mAh 左右1充电模块TP4056 或主控板载充电电路1骨架3D 打印 PLA 材质若干1.3 这项目适合谁折腾如果你完全是新手没焊过板子也没玩过舵机Microduck 也是一个很温和的起点。它的零件少、接线固定固件烧录也只需要 Arduino IDE 点一下按钮。但要注意它并不是“零基础到手玩”的产品你至少需要会一点 3D 打印切片参数调整或者愿意为打印件花钱去代打服务。如果你是有经验的嵌入式玩家那这只鸭子更像一个“骨架平台”。它的双足步态逻辑非常直白很适合拿来练手改步态、加传感器、做遥控、换大舵机、甚至给它装一只扑棱翅膀的机械结构都是很好的改造方向。换句话说Microduck 的终点不是复制而是魔改。2. 硬件搭建与选型从零攒齐一套 Microduck2.1 3D 打印件与耗材选择打印件是这只鸭子的“骨骼和皮肤”打印质量直接决定后续装配顺不顺利。我建议用 PLA 材料最好选白色或亮黄色方便后期上色。层高 0.2mm壁厚 2~3 层填充率 15% 就够。机身不需要承重填充过高反而让鸭子变重舵机负担变大。有一点特别容易忽略鸭子两条腿和身体连接处的孔位是整台机器精度要求最高的地方。如果打印机调校不好孔位会偏小导致腿装进去转不动偏大又会旷走路时腿晃。我自己的经验是在打印前先缩孔补偿调成 -0.1mm 左右打印完用直径合适的圆柱锉刀稍微修一下保证腿插进去能顺畅转动又不会左右松动。打印顺序也有讲究。先打印小件的腿、喙、翅膀再打身体外壳。遇到悬垂结构比如鸭肚子和头颈建议开支撑或者把模型拆分成可平放的零件分件打印。很多开源模型的 STL 文件已经做了平面分割你只需要按文件名区分别一股脑全选打印。2.2 电子元件清单与替代方案硬件清单不复杂但选型上几个点值得留意舵机原版推荐 SG90便宜、扭力 1.8kg·cm对一只总重不到 150g 的鸭子来说完全够用。但如果你的鸭子加了额外的翅膀、尾巴配件或者打算在草地、砖路上跑SG90 的塑料齿就容易扫齿。我建议直接上 MG90S 金属齿舵机也就贵几块钱耐用程度完全不是一个级别。主控这一个选择决定了你后面能不能用手机遥控。如果你只需要鸭子自己走Arduino Nano 是成本最低的选择大约十几块。想用手机蓝牙遥控那就用 ESP32 或者 XIAO nRF52840这两个都自带蓝牙而且 ESP32 性能强得多后续加传感器、加语音识别都方便。我实际用下来觉得 ESP32 是最平衡的选项开发资源多踩坑资料也丰富。电池与供电舵机瞬间峰值电流可能到 500mA~1A很多 USB 充电模块的输出撑不住导致舵机在走路时疯狂抖动甚至重启。我建议电池容量选 400~600mAh充电模块选最大输出电流 1A 以上的或者直接用带电源管理的主控板比如 XIAO nRF52840 配套电池扩展板省心很多。2.3 打印与装配的关键细节装配过程中有几个非常影响成品效果的点我列一下我的实战经验舵机臂安装角度两个舵机在身体里是对称放置的舵机臂的中位角度必须一致。否则鸭子摆好初始姿态后左右腿长度感观上就不对走起来会一瘸一拐。螺丝扭矩固定腿部和舵机臂的螺丝用“拧紧后再回退 30 度”的手感。太紧会把舵机输出轴憋住太松又会打滑空转。这里的“空转”特别坑鸭子在原地抖但死活不走新手排查半天都找不到原因。脚掌与地面夹角鸭子脚掌在 3D 打印模型里一般和腿是整体打印的。装配时注意左右脚掌的底面是在同一水平线上否则走路时身体会歪向一边。3. 核心原理两条腿怎么把一只鸭子送出去3.1 单自由度腿的秘密动态重心转移步态很多人第一次拿到 Microduck 时会想“就两条腿、每腿只有一个舵机腿都只能前后摆动不能抬腿它不是应该原地蹭着走吗” 这里的关键就在于它把“抬腿”这个动作转化成了“重心倾斜摆动”的组合效果。想象一个不倒翁当身体整体向右倾斜时左边的脚会自然离地。此时如果让左腿向前摆左脚就能在空中迈出一步。然后身体再向左倾斜右腿离地右腿向前摆右脚迈出一步。整个过程身体一直保持“单脚支撑 另一脚悬空”的状态这就是最简单的动态步行。鸭子走路时那种“左摇右摆”的姿态恰恰不是缺点而是步态特征本身。3.2 步态序列拆解重心、抬腿、摆腿、落地把 Microduck 的前进动作放慢能看到大致这样一个周期身体重心向左倾左舵机微微上抬左腿缩短支撑右腿悬空。右腿向前摆动右舵机转到一个更大的前摆角度。重心回中身体水平右脚落地。身体重心向右倾右舵机作为支撑腿微微下压左腿悬空。左腿向前摆动左舵机转到更大的前摆角度。重心回中左脚落地。这个循环里每个“摆腿动作”其实只是舵机从一个角度平滑转到了另一个角度而“重心倾斜”则通过两条腿的支撑姿态差来实现。固件里通常会用数组存放一系列关键角度再用 delay 或非阻塞定时器让舵机按节拍平滑过渡。如果某个角度值卡得不对鸭子就会原地转圈或者往一边偏。3.3 舵机中立点校准与初始姿态想让鸭子走得直第一步永远是校准舵机的中立点。大多数舵机的中位是 90 度脉冲信号固件里通过 write() 直接设置初始位置。我在第一次装的时候图省事直接用默认角度上舵机臂结果鸭子的两条腿一高一低走路像在跳秧歌。正确流程是先写一个简单的校准程序让两个舵机都转到 90 度然后再把舵机臂装到输出轴上。如果舵机臂上的花键孔和输出轴对不齐尽量不要硬塞换个方向装或者用锉刀修舵机臂。等左右腿在两脚完全着地的情况下保持对称这时候再装外壳后续调步态就省事多了。3.4 固件里的“鸭生”动画机制Microduck 好玩的地方在于它不只是“往前走”还有一系列预设动画。开源固件里通常会把这些动画组织成“动作库”比如 walkForward()、turnLeft()、nod()、sleep()、dance()。每个动作本质上就是一组舵机角度随时间变化的轨迹有些动作还会连续调用多个轨迹组合形成一连串似模似样的“鸭生”日常。我在深度阅读源码后发现它的动画引擎其实很轻量一个动作表结构体包含多少个时间帧、每帧两个舵机的目标角度、每帧持续时长。主循环里按时读取当前帧对舵机执行 write()。这种设计简单但扩展性很好。懂了这个机制之后你完全可以自己编一套“拍拍翅膀”、“低头吃食”的动作。4. 实操流程烧录、调试、上路遛鸭4.1 搭好开发环境烧录第一版固件Microduck 的固件基本是 Arduino 生态。你只需要安装 Arduino IDE在“开发板管理器”里把所用主控的支持包装好然后打开项目里的 .ino 文件选对端口和板型点上传。有一点要强调先别急着用最新版 IDE有些老项目用了旧版库新编译环境容易报错。我一般会先看仓库 README 里建议的 Arduino 版本按它的来。如果用的是 ESP32第一次烧录时需要按住板上的 BOOT 键再插 USB进入下载模式。Nano 和 XIAO 则没这么多讲究。烧录完先别装外壳直接看在桌面上鸭子能不能正常“热身”——舵机会先回中位然后自检一遍。4.2 舵机测试与双腿同步调整固件烧好后第一轮测试建议用一个小脚本逐个转动左腿和右腿确认两个舵机的方向一致。这个非常关键如果你的两个舵机一个正转一个反转鸭子就会在原地转圈还特别费电。遇到这种情况最简单的解决办法不是改代码而是直接把其中一个舵机的 PWM 信号线换到另一个引脚或者反接信号线不推荐反接最好改代码 set 成反向映射。舵机方向确认后再测中立点。把鸭子的两条腿装上让固件执行回中观察两脚是不是同时着地、身体是否水平。如果一只脚悬空先看舵机臂是不是装偏了如果舵机臂已经装正那就是左右舵机的脉冲扳机存在一致性差异可以在代码里加一个角度补偿宏比如 leftServo.write(90 OFFSET)。4.3 户外出巡前的检查清单很多玩家在桌上走得挺欢一到户外就“翻车”。我总结了出街前的几个检查项地面平整度Microduck 的脚底很平适合广场砖、木地板、水泥路。遇到碎石路和粗糙沥青它会一直摔舵机还容易过热。电池状态满电再出门电压低于 3.7V 后舵机扭矩会肉眼可见地下降鸭子会走成“醉汉步态”。底盘防草如果去公园草地鸭脚容易卷进草叶。出门前可以在鸭脚底贴一层薄橡胶垫或热缩管既增加摩擦力又防草。螺丝紧固走之前拿小螺丝刀把腿部、舵机臂螺丝全部按一遍确保没有松脱。备件带一根小螺丝刀和一把微型尖嘴钳现场处理各种卡脚和松脱。4.4 上街遛鸭现场的真实体验趁着一个周末傍晚我带着充满电的 Microduck 去了附近的广场。刚开始鸭子走在平整的广场砖上步伐相当稳吸引了不少人侧目。有个小朋友一路跟着一个劲问“这是真的鸭子吗”。小孩子们追着看它摇摇摆摆地移动越看越兴奋那场面确实很有“电子宠物”的感觉。走了一段之后问题也来了广场砖之间的缝隙有 3~5mm鸭脚掌一旦踩进缝隙里步态就会卡住。另外一群小孩跟着跑会无意中推挤鸭子舵机在被卡住时会持续堵转电流飙升电池掉电速度极快。我只遛了大概二十多分钟电池就报警了。总结下来人多的广场适合“慢速遛”找个人少的平整长跑道才能玩得尽兴。5. 常见问题排查速查表与避坑指南5.1 走不稳、不走直线、原地打转这类问题一多半出在装配和校准环节。我在调试时反复遇到过以下几种情况整理成表大家直接对照现象可能原因排查与处理走路向左偏左侧舵机中立点偏差、左脚装配角度偏大重新校准给左舵机加 2~5 度补偿原地逆时针打转两个舵机方向相反交换 PWM 引脚逻辑或代码里做反向映射一瘸一拐腿部螺丝太紧、舵机臂错位松螺丝重装舵机臂到中立位置前进时屁股拖地身体重心靠后、脚掌与地面夹角不对微调腿部前后安装位置检查打印公差5.2 舵机抖动、发热与断电舵机抖动是最常见的“软件没问题但硬件不开心”场景。多数是因为电池供电能力不够。SG90 这类舵机在静止时电流很低但一加速或堵转就会瞬间拉高电流。如果你用的是劣质充电模块输出电压在重载下会跌到 4V 以下舵机内部电路就会失控表现为高频抖动、咔咔响。想解决这个问题有几个实用方案一是换高质量锂电池不要用拆机旧电池二是加一个 470uF~1000uF 的电解电容并联在舵机电源两端能有效吸收瞬间尖峰三是干脆换独立舵机电源模块比如 5V 3A 的降压模块把主控和舵机分开供电。5.3 磕碰、跌撞与草叶卡脚鸭子毕竟是小玩具走路的时候经常会被小障碍物绊倒。一旦它侧翻在地舵机还在使劲往一边转很容易烧毁齿轮。所以玩的时候要养成一个习惯看到鸭子快摔倒时立刻按一下关机键或者直接把它拎起来。户外草地上的草叶和细树枝是“卡脚大户”建议在鸭脚掌外边包一层热缩管既减小缝隙又增加摩擦。另一处容易被忽略的是鸭腿根部的关节位。走路时地上溅起的小石子容易卡进去磨损塑料件。我自己的办法是在关节位里涂一点点硅脂既润滑又能防止小颗粒卡死。5.4 几件别做“聪明事”这里分享几个我踩过的大坑希望后来的人绕开不要一上来就改步态代码。原厂步态已经调得不错先把默认参数玩熟再动。不要用大扭矩舵机直接替换后不调螺丝。MG90S 和 SG90 的扭力差异会导致装配件的应力分布变化需要同步检查腿部结构。不要拿鸭子去涉水。虽然叫鸭子但它没有防水设计电机和舵机遇到水很快就报废。不要长时间堵转舵机。堵转电流很大几秒钟就可能烧驱动芯片哪怕金属齿舵机也扛不住。6. 进阶玩法把“玩具鸭”改造成“智能鸭”6.1 给它一双眼睛加装避障传感器Microduck 原版没有传感器属于“闭眼乱走”型选手。想让它在家里行走不撞墙最简单的改造是加一个 HC-SR04 超声波测距模块或者更小巧的 VL53L0X 激光测距模块。把传感器装到鸭子的胸前探测到前方 15cm 内有障碍物时就让舵机执行转弯动作。主控用 ESP32 的话逻辑非常顺手每隔 50ms 读一次距离小于阈值就调用 turnLeft() 或 turnRight()。这样改造后鸭子就成了一个能自主巡检的“巡逻鸭”放在家里桌上它能自己在边缘处掉头不会把自己摔下桌。6.2 让鸭子有“嗓子”加声音与鸭叫不说话的双足鸭总少点灵魂。你可以加一个 DFPlayer Mini 音频模块插上 MicroSD 卡里面放几段真实的鸭子叫或者自己合成的憨憨“嘎嘎”声。当鸭子走路时每隔几秒播放一次或者用手机遥控触发指定的叫声。音频模块和主控之间一般用串口通信Pin 接线也不复杂。如果你不想加硬件也可以直接用 ESP32 的 DAC 播放短音频或者用 SimpleTone 蜂鸣器发单调的“嘎”节奏那个效果聊胜于无。6.3 无线遥控与手机 App 控制玩过基础版后我最推荐的升级就是手机遥控。如果主控选了 ESP32 或 nRF52840官方仓库里基本都有对应的蓝牙遥控协议。你只需要在手机装一个配套 App开源仓库通常提供 APK 或源码连接后就能像遥控车一样控制鸭子。前进、后退、左转、右转、加速、播放动画全部通过 BLE 下发指令响应速度非常跟手。如果不习惯官方 App你也可以用串口蓝牙透传模块加自己的控制端或者直接用现成的“蓝牙串口助手”App 发送自定义指令。固件里一般会预留串口指令解析函数格式类似 F、B、L、R、S几行代码就能对接。6.4 结构改造换大舵机、变种双足、步态魔改硬件层面一条很容易走通的路是“放大”。把打印模型等比例放大 1.5 倍换用 MG996R 大舵机再配 2S 锂电池鸭子会从桌面萌宠变成“果园巡逻巨鸭”。但要注意放大之后材料和配重都会变化原版步态参数不能直接套用需要重新调。步态魔改是另一个有意思的方向。原版鸭子只会前后摆腿但你可以在腿部加一个额外的自由关节每个腿两个舵机让它能“抬腿”迈步走起来更像真正的动物。这种改造会让你对这个开源项目的理解直接上一个台阶也能更深入地体会双足步态领域里“步幅、步频、重心高度”这几个核心变量对稳定性的影响。最后再分享一个我个人的小偏好给鸭子喷一层“车漆”——用哑光白色打底黄色罩面最后喷一层透明消光漆。做完之后这只机器人鸭在阳光下特别好看遛起来自己也更愿意拍照分享。开源硬件的好处就在于它给你一个完整、可靠的起点后面的路怎么走全看你想让它成为什么样的鸭子。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑