基于凸轮从动件机制的自动化装置:从机械原理到软硬件实现
1. 项目概述与核心价值如果你对机械传动和自动化控制感兴趣想亲手制作一个能“动起来”的装置那么这个基于凸轮从动件机制的自动化项目绝对值得一试。它不是什么高深莫测的工业设备而是一个用纸板、木棍和开源硬件就能搭建的趣味机械装置。其核心魅力在于它将一个经典的机械原理——凸轮机构从教科书和图纸中“请”了出来让你能亲眼看到、亲手触摸旋转如何被精确地转化为上下跳动。整个过程就像在解构一个复杂的音乐盒但这次你是那个从零开始的设计师和建造者。这个项目不仅仅是一个手工制作它是一次从机械设计、结构搭建到电子控制、软件编程的完整工程实践。你会用到Adafruit的Crickit控制板和Circuit Playground Express主板通过图形化的MakeCode进行编程从而用代码去“指挥”一个直流电机最终驱动整个机械结构。无论你是机械工程的学生想验证课堂理论是创客爱好者寻找一个综合性的周末项目还是教育工作者想设计一个生动的STEM教学案例这个项目都能提供从原理到实操的完整闭环体验。它解决的正是“如何将抽象原理转化为具体可动的实体”这一核心问题让你在动手的过程中深刻理解运动转换、减速传动、电机控制以及软硬件交互这些工程领域的基础概念。2. 凸轮从动件机制深度解析2.1 机构原理旋转与直线运动的转换艺术凸轮从动件机构堪称机械设计中的“经典咏流传”。它的工作原理直观而巧妙一个具有特定轮廓形状的盘状零件凸轮围绕其中心轴旋转另一个零件从动件在重力、弹簧或其它外力作用下始终与凸轮的轮廓表面保持接触。由于凸轮轮廓各点到旋转中心的距离即向径是变化的当凸轮匀速转动时从动件就会被强制地推着做非匀速的直线往复运动。在这个项目中我们主要依赖重力来保证从动件与凸轮始终接触。这意味着凸轮必须安装在从动件的下方并且从动件及其上方的负载比如我们粘上去的卡通角色需要有一定的重量。这种设计简单可靠无需额外的弹簧非常适合我们这种低速、轻载的演示装置。整个系统的运动链非常清晰电机驱动凸轮轴旋转 - 凸轮轮廓推动从动件 - 从动件带动导杆 - 导杆最终将运动传递给顶部的“角色”。每一个环节的位移和速度都存在着严格的数学关系凸轮的轮廓曲线直接决定了从动件最终的运动规律。2.2 凸轮轮廓设计从简单波形到复杂动作凸轮的设计是整个装置的“灵魂”它的形状直接决定了顶上那个小人或动物会如何运动。项目里提到了两种基本形状这为我们打开了设计的大门椭圆形凸轮这是最基础的凸轮之一。当凸轮是标准的椭圆形时从动件的运动轨迹近似一个正弦波。这意味着上升和下降的过程都是平滑、对称且连续的。如果你的装置想模拟呼吸的起伏、波浪的涌动或者某种温和的周期性点头椭圆凸轮是绝佳选择。它的运动平稳对机构的冲击小。不规则梨形凸轮这种凸轮的特点是轮廓不对称。通常它有一段较长的“基圆”弧段半径最小和一段较短的“凸起”弧段半径变化剧烈。这种形状能产生“快速上升-短暂停留-缓慢下降”或“缓慢上升-快速下降”等非对称运动。项目示例中用它来模拟“跳跃”动作从动件在大部分时间处于低位对应跳跃前的蹲伏或落地后的停顿然后在很短的旋转角度内迅速被顶到最高点对应起跳的瞬间接着可能以中等速度回落。通过精心设计梨形凸轮轮廓的曲线你几乎可以模拟出任何你想要的运动节奏感。设计心得在实际用纸板切割凸轮时不必过于纠结数学上的精确曲线。你可以先用手绘出大致的形状然后在组装后手动旋转凸轮轴观察从动件的运动是否流畅、有无卡顿并据此微调凸轮的轮廓。这种“迭代设计”的方法非常直观有效。2.3 系统构成与选型考量一个完整的自动化装置需要机械、电子、软件三部分协同工作。本项目选择了一套非常适合创客和教育的组合机械部分结构本体框架选用瓦楞纸板箱。理由是其易于切割、打孔、粘合并且材料成本极低方便进行反复的修改和试验。纸板也足够坚固能够承受本项目中很小的载荷。轴与导杆使用木棍或铅笔。它们笔直、易于获取并且与纸板孔洞形成的滑动轴承摩擦系数适中。木棍的直径也便于与热熔胶固定其他零件。轴承一段吸管。这是一个巧妙的“低技术”解决方案。塑料吸管内壁光滑能为木棍导杆提供良好的直线导向同时有效限制其旋转确保运动严格是上下的。传动轮用纸板自制大直径轮。这是实现减速的关键。直流电机转速太高例如项目用的200RPM直接驱动凸轮会使运动过快而失去观赏性。通过小电机轮摩擦驱动大轮形成了一个简单的减速器将转速降低到合适的范围。电子控制部分大脑与肌肉主控板Adafruit Circuit Playground Express (CPX)。它内置了多种传感器、按钮和LED且完美支持图形化的MakeCode编程极大降低了编程门槛。驱动板Adafruit CRICKIT for CPX。这是项目的“力量扩展坞”。CPX本身无法直接驱动电机Crickit提供了电机驱动、伺服控制、大功率数字输出等接口将主控板的信号安全地转换为能驱动执行机构的功率。执行器TT减速电机200RPM。选择减速电机而非普通直流电机是因为它本身已经具备了一定的低转速和高扭矩特性更适合直接驱动负载。3-6V的工作电压也与电池盒匹配。能源3节AA电池盒。提供稳定的4.5V电压足够为整个系统供电且便于更换和开关。软件部分逻辑与交互编程环境Microsoft MakeCode。采用积木块拖拽的编程方式让注意力集中在逻辑而非语法上。它对于实现电机启停、速度控制、按钮交互等基础功能非常高效直观。这套选型的核心思路是在满足功能的前提下最大化地降低制作难度和成本同时保证足够的可玩性和教育性。每一个组件都是开源硬件生态中的常见产品资料丰富社区支持好。3. 机械结构搭建详述3.1 框架制作与关键尺寸确定框架是整个装置的骨架其尺寸决定了运动范围。我建议使用一个尺寸大约在15cm x 10cm x 10cm长宽高左右的结实纸盒。第一步是切割前后面板上的“从动件导槽”。这个矩形缺口至关重要它允许从动件上下运动但阻止其前后摆动或旋转。确定导槽高度这个高度H直接定义了从动件及顶部角色的最大行程。你可以根据你想让角色“跳”多高来决定。例如如果你希望最大升降幅度是4厘米那么导槽从顶部开口向下延伸的高度就应该略大于4厘米比如4.5厘米为安装和运动留出余量。用尺子仔细测量并画线然后用美工刀沿内侧切割保持切口平整。确定凸轮轴孔位凸轮轴需要水平穿过盒子两侧。轴心的高度位置是另一个关键参数。它必须低于从动件在最低位置时的底部。一个简单的方法是先将做好的从动件组件不带凸轮插入顶部的吸管轴承让其自然下垂到底。在盒子侧面标记出从动件底部此刻下方约1-2厘米的位置。这个位置就是凸轮轴的中心。用“画对角线找中心”的方法在盒子两侧精确找到这个点然后用尖头工具如锥子或螺丝刀小心地戳出圆孔。孔洞大小应以木棍能轻松插入并转动为宜不宜过紧。安装吸管轴承在盒子顶部中心钻孔插入一段长约2-3厘米的吸管并用热熔胶在外部固定一圈。确保吸管与顶面垂直。这个轴承的长度足以防止导杆倾斜或转动是保证运动直线性的关键。3.2 凸轮与从动件的制作与优化凸轮制作计算最大半径这是防止运动干涉的安全红线。最大半径R_max必须小于“凸轮轴中心到导槽上边缘的垂直距离”。用尺子量出这个距离它就是你的凸轮轮廓上任何一点都不能超过的极限值。绘制轮廓在硬纸板上以一点为圆心用圆规画出半径为R_max的“极限圆”。再在同一圆心画一个半径小得多的“基圆”例如R_max的一半。基圆半径决定了从动件的最低位置。设计形状连接这两个圆设计你的凸轮外形。对于梨形凸轮你可以让轮廓从基圆某一点开始平滑地过渡到极限圆形成一个“隆起”然后再平滑地回到基圆。隆起部分的曲线形状决定了“跳起”动作的快慢。可以用曲线板或徒手绘制力求过渡平滑没有尖角否则运动时会卡顿或产生冲击。加固与安装将画好的形状剪下复制出完全相同的两片。将三片纸板用白胶或热熔胶对齐粘牢形成足够厚度的凸轮。在中心钻出与木棍轴紧密配合的孔。最后将凸轮套在轴上用热熔胶将其与轴牢固粘死确保它们一体旋转。从动件制作 从动件是一个在导槽内滑动的“滑块”。它的宽度应略小于导槽宽度确保能自由上下但无明显左右晃动。用多层纸板粘合成一个厚实的长方体。关键步骤是最底层与凸轮接触的那一面不要钻孔保持完整光滑以减少摩擦和磨损。上面几层中心钻孔用于紧配插入作为导杆的木棍。从动件的总高度要足够使其在最低位置时底部仍能可靠地落在凸轮的最小半径处。3.3 减速轮系统与摩擦传动装配这是将电机高速旋转转换为凸轮轴低速旋转的核心减速环节。制作大轮大轮的直径决定了最终的减速比。减速比 ≈ 大轮直径 / 电机小轮直径。例如电机小轮直径约2厘米如果你想要最终凸轮转速约为10-20 RPM这样动作才看得清就需要一个直径10-20厘米的大轮。用圆规或大盘子做模板在纸板上画出两个相同的圆盘作为轮子的两侧。制作轮缘将一个大纸箱展开裁切出一条长长的纸板条。其长度必须等于轮子的周长π × 直径。这里有一个重要技巧裁切时长度要预留出约1-2厘米的余量因为纸板有厚度粘合时会消耗一些长度。最好的方法是先不剪断用圆盘在纸板条上滚动一整圈来精确标记长度。预弯曲与粘合将纸板条在一个比轮盘略细的圆柱体如保温杯上紧紧卷一会儿使其产生“形状记忆”这样更容易弯成圆环。先在一个轮盘边缘涂胶将纸板条一端固定然后慢慢环绕粘合。粘合接近结束时插入第二片轮盘调整对齐最后粘合末端。用轴穿过中心孔来帮助对齐。安装与传动将大轮套在凸轮轴上靠近盒子固定。电机的安装是另一个巧思采用单点铰接悬挂。用一根牙签穿过电机外壳上的安装孔然后插在盒子侧面预先戳好的小孔里。这样电机和它的小轮就可以像钟摆一样依靠自身重力自然下垂压在大轮上。重力提供了足够的正压力来产生摩擦驱动力同时这种柔性连接能自适应大轮表面的轻微不平传动更平稳可靠。调整牙签的位置确保电机小轮与大轮边缘接触良好。4. 电路连接与控制系统搭建4.1 硬件连接与布局规划正确的电路连接和合理的物理布局是装置稳定运行的基础。连接步骤核心连接将Circuit Playground Express (CPX) 通过其专用的短排线插座严丝合缝地扣在Crickit主板中央的对应接口上。这是两者通信的桥梁务必确认插紧。电机连接将TT电机的两根导线插入Crickit板上标有“Motor 1”的接线端子。电机的转向可以通过交换这两根线来改变。在后续编程中我们可以设定正转或反转。电源连接将3节AA电池盒的输出线连接到Crickit板上标有“DC”或“外部电源”的接线端子上注意正负极通常红线为正黑线为负。Crickit上的电源开关控制整个系统的供电。布局与配重 这是一个容易被忽视但至关重要的细节。电机和大轮集中在装置的一侧会产生不小的重量。如果不加以平衡整个装置容易向一侧倾倒。解决方案就是将较重的Crickit主板、CPX和电池盒集中安装在盒子的另一侧。可以用扎带、绳子或穿过纸板的螺丝螺母将其固定。安装好后用手轻轻推一下装置检查它是否能够稳定站立不会自己歪倒。良好的配重能让装置运行更平稳减少振动。4.2 MakeCode编程逻辑实现编程赋予了装置“智能”和交互性。我们使用MakeCode for Adafruit测试版来添加Crickit支持。基础电机驱动 在“Crickit”模块中找到crickit run motor 1 at 50 %积木块。将其放入forever循环中上电后电机就会以50%功率持续旋转。但这并不实用我们首先需要控制启停。按钮启停控制从“输入”模块拖出on button A click事件块。将crickit run motor 1 at 50 %从forever中移出放入on button A click事件块内。这样点击A键就启动电机。再拖出一个on button B click事件块。从“Crickit”模块找到crickit stop motor 1积木块放入on button B click中。这样点击B键就停止电机。可以删除空的forever循环。双速控制与状态指示 我们希望用CPX上的滑动开关来切换两个预设速度并用板载的NeoPixel LED环显示当前速度状态。创建变量在“变量”类别中创建一个名为速度的变量。初始化速度从“逻辑”模块拖出on start事件块。在里面放入set 速度 to 40。这设定了启动时的默认速度40%功率。修改电机驱动块将on button A click事件块中的crickit run motor 1 at 50 %里的数字50删除从“变量”类别中将圆形的速度变量块拖过来填入。现在启动电机时将使用变量速度的值。开关切换速度拖入on switch moved left事件块在里面放入set 速度 to 40。复制这个事件块右键点击选择复制将复制的块中“left”改为“right”并将set 速度 to 40改为set 速度 to 80。现在当开关拨到左侧速度变为40拨到右侧速度变为80。注意改变开关位置后需要再次按下A键新的速度才会生效。因为电机运行指令只在按下A键时执行一次。自动应用速度进阶优化为了让速度切换即时生效我们可以修改逻辑。将on button A click中的crickit run motor 1 at 速度 %块移出放入一个我们新建的function函数中命名为“更新电机”。然后在on switch moved left和on switch moved right事件块中在设置速度变量后紧接着调用这个“更新电机”函数。同时在on button A click中也可以调用此函数。这样无论是按A键还是拨动开关电机状态都会立即更新。NeoPixel视觉反馈在on switch moved left事件块中加入NeoPixel模块中的set all pixels to 颜色块比如设置为蓝色表示低速。在on switch moved right事件块中设置为红色表示高速。这样速度状态一目了然。完成编程后点击下载将生成的.uf2文件拖入连接电脑后出现的CPLAYBOOT磁盘中程序便会自动烧录。5. 调试、优化与创意扩展5.1 机械调试与常见问题排查组装完成后先不要通电手动旋转大轮进行测试和调试。问题运动卡顿或不流畅检查凸轮轮廓用手慢慢旋转凸轮观察从动件底部是否始终贴合凸轮边缘滑动。如果某处突然被顶起或落下说明那里轮廓不光滑有尖角或突变。用砂纸或小刀小心修整凸轮边缘使其过渡圆滑。检查各部件摩擦确保凸轮轴在两侧板孔中转动顺畅确保导杆在吸管轴承中上下运动顺滑无过紧或歪斜。可以在木棍轴和吸管内侧涂一点点蜡烛蜡或干性润滑剂如石墨粉来减小摩擦。检查从动件与导槽从动件在纸板导槽中运动时两侧间隙应均匀不能有刮擦。如有刮擦稍微打磨从动件两侧或修整导槽边缘。问题电机打滑或无法带动大轮增加压力检查电机是否依靠重力充分压在大轮上。可以稍微增加电机一侧的重量如贴一小块配重或调整电机悬挂点使其更“用力”地压向大轮。增加摩擦力清洁电机小轮通常是橡胶轮和大轮纸板边缘的接触面确保无灰尘油污。可以在大轮边缘用热熔胶粘一圈粗糙的胶带或薄橡胶片来增加摩擦系数。检查电源电机动力不足也可能是因为电池电量下降。尝试更换新电池。问题装置运行时振动或噪音大动平衡检查纸板大轮可能质量分布不均。将装置侧放轻轻拨动大轮让它自由旋转停下标记最低点。在对面位置粘贴一些小配重如硬币、小夹子反复测试直到大轮能在任意位置停下。紧固所有连接检查凸轮与轴、大轮与轴、从动件与导杆等所有用热熔胶粘接的部位是否牢固。松动的部件是振动和噪音的主要来源。优化传动接触确保电机小轮与大轮在整个圆周上都能良好接触没有时而脱离的现象。5.2 电子与软件问题排查问题电机不转供电检查确认Crickit电源开关已打开电池盒开关已打开电池电量充足。程序检查确认.uf2文件已正确烧录到CPX。可以编写一个最简单的测试程序如让板载LED闪烁来验证CPX是否工作正常。连接检查确认电机线是否牢固插入Crickit的Motor1端口CPX是否稳固插在Crickit上。软件配置在MakeCode中确认你使用的是支持Crickit的测试版编辑器并且已正确添加了“Crickit”扩展。问题按钮或开关控制失灵事件逻辑检查检查MakeCode中事件块如on button A click是否被正确放置并且内部包含了相应的执行积木。变量作用域确保控制电机速度的变量在需要用到它的所有事件块中都能被访问通常是全局变量。硬件接触虽然不常见但检查CPX上的按钮和开关是否有物理损坏或接触不良。5.3 创意扩展与项目升华基础装置运行稳定后你就可以发挥创意让它变得更加生动和复杂。角色设计不要只粘一个平面剪纸。尝试用铁丝、管道清洁器毛根制作有关节的角色比如一只挥手的小人或一只点头的小鸟。将关节活动部位与导杆连接凸轮的运动就能转化为更富表现力的肢体动作。多凸轮系统在同一个轴上安装多个不同形状、不同角度的凸轮每个凸轮驱动一个独立的从动件和导杆。这样一个电机就能驱动多个角色做出不同步、不同模式的复杂组合动作例如一个场景中有人在上蹿下跳有人在左右摇摆。传感器互动利用CPX上丰富的传感器。例如使用光线传感器让装置在环境变暗时自动开始运动使用声音传感器让它对拍手或声音做出反应使用加速度计在装置被拿起倾斜时改变运动模式。编程进阶尝试更复杂的运动模式。例如让电机不是匀速转动而是变速转动通过编程让电机速度随时间正弦变化从而让角色的运动在“快慢”上也有节奏。或者编写一个序列让装置运动一段时间后自动停止等待下一次触发。材料与结构升级如果你对效果满意可以用激光切割的亚克力板或层压木板替换纸板制作更精密、更耐久的版本。用轴承代替纸板孔用金属杆代替木棍整个装置的精度和寿命将大幅提升。这个项目最迷人的地方在于它像一个活的“画布”。机械部分是骨架电子部分是神经程序是灵魂而最后的角色和场景则是你赋予它的个性。从理解一个简单的物理原理开始到最终创造出一个充满生趣的自动机械整个过程充满了工程实践的成就感和创造的快乐。每一次调试优化每一次功能添加都是对跨学科知识的一次深度融合与应用。

相关新闻

最新新闻

日新闻

周新闻

月新闻