基于CircuitPlayground Express的桌面双足行走机器人制作全攻略

📅 2026/8/19 4:36:48
基于CircuitPlayground Express的桌面双足行走机器人制作全攻略
1. 项目概述用CircuitPlayground打造你的第一个桌面行走机器人如果你手边正好有一块Adafruit出品的CircuitPlayground Express开发板并且对机器人、电子制作或者互动艺术感兴趣但又觉得从头开始设计电路和编程门槛太高那么这个项目就是为你量身定做的。我们将利用这块功能强大的小板子配合一些极其常见的材料——比如冰棒棍、微型舵机和几节电池——制作一个结构简单、动作却相当有趣的桌面级双足行走机器人。它不需要复杂的3D打印件或精密加工核心在于如何巧妙地利用开发板内置的传感器和输出功能通过编程赋予一堆“废料”以生命感。这个项目的魅力在于其“低门槛高上限”的特性。CircuitPlayground Express后面我们简称CPX本身集成了加速度计、光线传感器、温度传感器、多个可编程RGB LED灯甚至还有麦克风和扬声器。这意味着你的机器人不仅能走还能根据环境光线改变步态、听到声音后做出反应或者用炫彩的灯光表达自己的“情绪”。我们这次聚焦于最核心的行走功能但我会在关键节点为你留出扩展接口让你清楚知道未来可以从哪里入手把它变成一个更智能、更互动的伙伴。整个过程你收获的将不仅仅是一个会动的小玩具更是一套从硬件连接到图形化/代码编程再到机械结构调试的完整创客思维。2. 核心硬件选型与设计思路拆解2.1 为什么是CircuitPlayground Express在开始动手之前有必要深入理解我们选择CPX作为机器人“大脑”的原因。市面上单片机开发板种类繁多从经典的Arduino Uno到功能更强的ESP32。CPX的核心优势在于其极致的“开箱即用”体验和丰富的内置外设。首先它省去了繁琐的面包板连线。我们需要控制两个舵机来实现腿部的交替摆动在传统Arduino项目中你需要连接舵机信号线到数字引脚并为舵机单独供电。而CPX板载了多个支持PWM脉冲宽度调制的输出引脚并且其电源管理可以直接为小型舵机供电需注意总电流限制。更重要的是板载的加速度计是我们实现机器人平衡感知和步态调整的关键。想象一下你可以编写程序让机器人在即将倾倒时自动调整步伐——这在不额外添加传感器的情况下用其他基础板卡是很难实现的。其次其编程环境的友好性无与伦比。我们将主要使用Microsoft MakeCode这是一个基于Blocks积木块的图形化编程环境。你只需要像搭积木一样拖拽逻辑块就能完成对舵机控制、传感器读取和灯光控制的所有编程。这对于初学者和快速原型开发来说效率极高。当然它也完全支持CircuitPython和Arduino IDE为后续进阶提供了平滑的路径。2.2 机械结构设计简约而不简单行走机器人的机械部分是其灵魂。为了确保在家就能轻松制作我们采用“冰棒棍热熔胶”的经典创客方案。这里的设计核心是将旋转运动转化为近似直线的往复运动。我们采用“曲柄滑块机构”的简化变体。舵机的输出轴做圆周运动我们通过一个短连杆可以用较硬的铜线或另一截冰棒棍将其与机器人的“大腿”连接。当舵机旋转时会带动大腿前后摆动。关键在于两个舵机分别控制左腿和右腿的运动必须是交替且相位相反的。即当左腿前摆时右腿后摆如此循环才能产生向前的推力。结构设计上需要注意几个要点重心管理机器人的重心必须尽可能低并且落在两条腿支撑形成的多边形区域内。我们将电池通常是3节AAA电池盒安装在机身底部CPX主板安装在电池盒上方这能有效降低重心。腿部长度的权衡腿越长步幅可能越大但机器人也越不稳定对舵机的扭矩要求越高。对于微型9克舵机建议腿部从舵机轴到“脚”的垂直距离长度控制在5-7厘米。脚的抓地力在冰棒棍的末端脚部粘贴一小块橡胶如旧自行车内胎或粗糙的砂纸能显著增加摩擦力防止打滑空转。注意热熔胶连接速度快但脆性大不耐冲击。在连接舵机臂和连杆等关键受力部位时可以先用胶固定位置再用细线或棉线缠绕捆绑最后滴上胶水加固形成“复合”连接强度会高很多。3. 材料清单与核心电路连接3.1 详细物料清单以下是制作所需的所有材料绝大多数都可以在电商平台或电子市场轻松购得类别物品名称规格/说明数量备注核心控制Adafruit CircuitPlayground Express必须是Express版Classic版功能不足1块项目的大脑动力执行微型舵机9克标准舵机工作电压4.8-6V2个建议购买配套的舵机臂和固定螺丝机械结构木质冰棒棍标准尺寸10-15根主要结构材料热熔胶枪及胶棒普通规格1套快速粘接细铜线或竹签用于制作连杆2根长度约3-4厘米橡皮擦或海绵块小块2块用作“脚”以增加摩擦供电系统AAA电池盒可装3节AAA电池带开关和DC插头1个输出约4.5VAAA电池碱性或可充电电池3节为整个系统供电连接线材舵机延长线公对母约15-20厘米2根方便布线非必需但推荐双面胶或尼龙扎带-若干固定主板和电池盒3.2 电路连接详解CPX的连接非常直观。请务必在断开电源的情况下进行所有操作。舵机连接两个舵机是主要的动力部件。每个舵机有三根线棕色GND地线、红色VCC电源正极和橙色Signal信号线。我们将使用CPX板上的A1和A2引脚。这两个引脚不仅支持数字输入输出也支持模拟输出PWM非常适合驱动舵机。将第一个舵机的信号线橙连接到A1第二个舵机的信号线连接到A2。舵机的红色电源线VCC和棕色地线GND不需要连接到CPX的对应引脚上这是因为微型舵机工作瞬间电流较大直接使用CPX的板载稳压器供电可能导致其重启或工作不稳定。独立供电方案为了解决上述供电问题我们采用舵机与主板共享电池盒但电源并联的可靠方案。将电池盒输出的正极红线同时连接到1) CPX的VOUT引脚2) 两个舵机的红色VCC线可以将它们拧在一起焊接或使用分线板。将电池盒输出的负极黑线同时连接到1) CPX的GND引脚2) 两个舵机的棕色GND线。这样电池盒直接为整个系统供电CPX的VOUT引脚此时是输入模式接收电池的电力。舵机有了独立且充足的电流供应CPX的逻辑电路也不会被干扰。最终检查连接完成后你的接线应该是电池盒输出线一分为三正极接CPX VOUT和两舵机VCC负极接CPX GND和两舵机GND。两舵机的信号线分别接CPX的A1和A2。务必检查无误后再通电。4. 图形化编程与步态算法实现4.1 搭建MakeCode编程环境打开浏览器访问Microsoft MakeCode for Adafruit网站。选择“新建项目”然后在硬件选择中找到并点击“CircuitPlayground Express”。你会看到一个基于积木块的编程界面左侧是模拟器中间是积木分类区右侧是编程工作区。首先我们需要添加对舵机控制的扩展。点击积木分类区最底部的“扩展”按钮在搜索框中输入“servo”然后选择“servo”扩展通常是pxt-servo包。添加后左侧分类中会出现一个新的“舵机”类别。4.2 编写核心行走程序行走的本质是让两个舵机在一定的角度范围内以固定的周期和相位差进行往复运动。初始化设置从“输入”类别中拖出一个“当开机时”积木。在这个初始化块里我们需要设置舵机。从“舵机”类别拖出“设置舵机连接在 [P1] 角度为 [90]”积木将其放入“当开机时”块内。点击“P1”下拉菜单将其改为“A1”。角度保持90度这是舵机的中间位置。复制这个积木块将第二个的引脚改为“A2”。这样开机后两个舵机都回中。创建交替摆动逻辑我们的目标是让左腿假设接A1和右腿接A2交替前后摆动。从“循环”类别中拖出“无限循环”积木。在循环内我们先控制左腿前摆同时右腿后摆。拖入“设置舵机连接在 [A1] 角度为 [120]”和“设置舵机连接在 [A2] 角度为 [60]”。这里120度是前摆极限60度是后摆极限假设90度是垂直中立位具体需根据你的机械安装调整。然后需要让这个姿态保持一段时间以产生推力。从“基础”类别拖入“暂停(ms) [100]”积木放在后面。100毫秒是一个不错的起步值。接着让双腿运动到相反的位置左腿后摆60度右腿前摆120度。再次添加一个“暂停(ms) [100]”。这样一个完整的步态周期就完成了。机器人会在此循环驱动下前进。参数调优与步态平滑上面的程序能让机器人动起来但动作可能很生硬。我们可以引入更平滑的运动和变量控制。使用变量在“变量”类别中创建几个变量如左腿中位、右腿中位、摆动幅度、步态周期。将舵机角度设置为左腿中位 摆动幅度这样的形式。这样我们只需在程序开头修改变量的值就能快速调整机器人姿态和步幅无需翻找每一个角度数字。平滑运动与其让舵机瞬间跳到目标角度不如让它逐步移动。我们可以写一个for循环让角度从当前值逐步增加到目标值每次循环增加1度并暂停几毫秒。这能大大减少机械冲击让行走更流畅稳定。加入传感器反馈进阶从“输入”类别找到“加速度计”相关的积木。你可以读取Y轴或X轴的加速度值。当检测到机器人倾斜角度过大即将摔倒时可以中断正常行走循环触发一个“恢复平衡”的动作序列例如快速摆动另一条腿以找回重心。4.3 下载与测试程序编程完成后点击界面左下角的“下载”按钮。用USB数据线将CPX连接到电脑。CPX会显示为一个名为“CPLAYBOOT”的U盘。将下载好的.uf2文件直接拖入这个U盘。拷贝完成后CPX会自动重启并运行新程序。将机器人放在平整的桌面或地板上打开电池盒开关。观察它的行走情况。十有八九它不会立刻走得很好可能会原地踏步、打转或者摔倒。这完全是正常的接下来就是关键的调试阶段。5. 机械组装与系统调试实战5.1 分步组装指南制作腿部机构取两根冰棒棍作为“大腿”。在每根大腿的一端用热熔胶将舵机牢固粘合。确保舵机的输出轴大致位于大腿长度的三分之一处更靠近身体这样能获得更好的力矩。将舵机臂安装到舵机上并用小螺丝固定。制作身体框架用4-5根冰棒棍粘成一个长方形或H形的框架作为机器人的身体。这个框架需要有足够的强度并且要在中间留出位置安装电池盒和CPX主板。整合腿部与身体将两个带有舵机的“大腿”分别粘在身体框架的两侧。这是最关键的一步必须确保两个舵机的输出轴同轴且高度一致。你可以借助直角尺或靠在书本边缘进行校准。粘接时让舵机处于90度回中位置并确保大腿垂直于桌面。安装电子部件用双面胶或尼龙扎带将电池盒固定在身体框架的底部中央。同样方式将CPX主板固定在电池盒上方。确保所有连接线整理好避免缠绕到运动部件中。制作脚与连杆在两根大腿的自由端脚部粘上橡皮擦以增加摩擦。用铜线弯折成“L”形作为连杆一端连接在舵机臂的外孔另一端连接在大腿上距离舵机轴约2-3厘米处。这个连接点需要用热熔胶仔细加固。5.2 系统调试与问题排查组装完成后上电测试。你可能会遇到以下典型问题及解决方案问题现象可能原因排查与解决思路完全不动舵机有啸叫声1. 供电不足或接触不良。2. 舵机机械卡死。1. 检查电池是否电量充足所有电源连接点特别是并联处是否牢固。可用万用表测量舵机供电端电压是否在4.5V以上。2. 断电用手轻轻转动舵机臂检查是否被结构件卡住。重新调整粘接位置。原地抖动或只向一边转1. 两个舵机运动方向相同同相。2. 舵机中位角90度与实际机械中立位不符。1. 检查程序确保控制两个舵机的角度值是“一加一减”。例如一个中位幅度另一个中位-幅度。2.这是最常见问题在程序中修改舵机初始化角度。先让一个舵机转到你认为的“垂直”位置记录角度值如87度将其设为该舵机的中位变量。另一个舵机同理。行走不稳容易侧翻1. 重心太高或偏斜。2. 步幅太大或步频太快。3. 双脚摩擦力不一致。1. 尝试在身体框架底部增加配重如硬币并确保电池盒安装居中。2. 在程序中减小摆动幅度变量如从30度减到20度或增加暂停时间如从100ms增到150ms让动作慢下来。3. 检查两只脚的橡皮擦是否都粘贴牢固接触面是否平整。走直线性差总是转弯1. 两条腿长度或连杆长度有细微差异。2. 两个舵机性能有微小差异。3. 地面不平。1. 精细测量并调整确保左右完全对称。2. 在程序中为左右腿设置不同的摆动幅度或中位角进行微调补偿。例如如果总是右转可以略微减小左腿的摆动幅度或让左腿的中位角稍微靠后。3. 在非常平整光滑的表面上测试。走几步后就程序紊乱或重启1. 舵机堵转电流过大导致系统电压被拉低CPX复位。2. 电池电量耗尽。1.务必确保舵机供电与主板供电是并联关系而不是通过主板供电。检查机械结构避免任何可能导致舵机卡死的点。2. 更换全新电池。碱性电池在舵机负载下电压下降很快建议使用优质的镍氢充电电池。调试是一个需要耐心和观察的过程。我的经验是一次只调整一个变量。比如先调平站稳再调走直线最后优化步态流畅度。用手机慢动作视频拍摄机器人的运动能帮你更清晰地分析问题所在。6. 功能扩展与创意玩法当你的机器人能够稳定行走后CPX板载的丰富传感器就派上用场了这能让你的项目从“能动”升级到“能互动”。光感寻迹利用板载的光线传感器在板子中央。你可以编写程序让机器人寻找光源。逻辑是循环读取左右两侧的光感值CPX有多个光感可模拟左右如果左侧更亮就让机器人向右转一点反之亦然。这样它就能追着你的手电筒光跑了。声控启动/停止利用板载麦克风。设置一个声音阈值当你拍一下手时声音强度超过阈值就触发一个布尔变量让机器人开始或停止行走。这比按开关酷多了。情绪灯光反馈10个可编程的RGB NeoPixel LED是绝佳的状态指示灯。你可以让它们在正常行走时显示流水灯效果。在检测到倾斜快要摔倒时全部闪烁红色作为“警告”。在电量低时通过检测供电电压显示黄色呼吸灯。这些灯光效果在MakeCode中都有现成的积木块非常容易实现。遥控与交互通过CPX的蓝牙功能需额外模块或红外接收器你可以让它接收遥控器信号实现前进、后退、左转、右转的遥控操作。更进一步可以尝试用另一块CPX制作一个简易的“手势遥控器”通过其加速度计识别手势来控制机器人。这个项目的边界完全由你的想象力决定。核心的行走框架搭建起来后你可以更换更坚固的材料如亚克力板激光切割、使用更强大的舵机、甚至增加更多的自由度如可摆动的头部或手臂。每一次调试和解决问题的过程都是对硬件、软件和机械知识最深刻的实践学习。最重要的是享受这个从无到有赋予一堆零件以生命和个性的创造过程。当你看到自己亲手制作的机器人在桌面上蹒跚前行时那种成就感是无可替代的。