1. 项目概述当创客精神遇见糖果的甜蜜几年前我在中学教科学课的时候就一直在想怎么能把那些看似枯燥的物理原理和电子知识变成孩子们眼里会发光的东西。后来我创办了自己的在线教育网站这个念头变得更加强烈项目必须有趣必须能“动”起来必须让完成它的那一刻充满“哇塞”的成就感。这个“无接触糖果机”就是这种想法下的一个产物。它看起来是个酷炫的火箭造型糖果机但内核是一次关于非接触式控制的完整实践。核心想法很简单你不需要按按钮也不需要拉摇杆只需要把手伸到火箭底部一颗糖果就会自动掉落到你手心。这背后是超声波传感器在默默工作它像蝙蝠一样发出听不见的声波通过计算回声的时间来感知你的手是否到位。一旦确认micro:bit这块小巧但功能强大的微控制器就会指挥伺服电机转动一个特定的角度释放一颗糖果。整个过程从感知到执行全部自动化。这不仅仅是一个玩具。对于刚接触硬件编程的学生或爱好者来说它完美串联了传感器输入、逻辑判断、执行器输出这三个物联网和智能设备最核心的环节。你会亲手处理信号、编写判断逻辑、控制机械运动并最终把它们封装在一个自己设计、自己制作的外壳里。无论你是想找一个周末亲子手工项目还是一个STEAM课堂上的经典案例或是单纯想体验从零搭建一个智能装置的乐趣这个项目都能提供一条清晰、有趣且收获满满的路径。2. 核心设计思路与物料选型解析2.1 为什么选择“无接触”交互在构思这个项目时我首先想摒弃传统的按钮或开关。一方面“无接触”本身带有一种科技感和趣味性能瞬间吸引注意力另一方面这迫使我们去使用传感器这才是现代智能设备的“眼睛”和“耳朵”。超声波传感器成为了不二之选。它价格低廉、原理直观声波测距、且不受环境光线影响在短距离本项目约2-15厘米检测上非常可靠。相比红外或光电传感器超声波不易被手掌颜色或反光干扰成功率高非常适合这个应用场景。2.2 主控与执行机构的选择考量主控芯片上micro:bit的优势太明显了。对于教育者和初学者它的图形化编程平台MakeCode极大降低了门槛拖拽积木就能完成逻辑同时也能切换为更高级的Python或JavaScript文本编程成长路径清晰。其板载的LED点阵和按键还能直接用于显示状态如笑脸、糖果图标和调试无需额外配件。执行机构选择270度舵机而非普通的180度舵机或直流电机是经过深思熟虑的。分发糖果需要一个精确的角度运动转动一定角度推开糖果然后精准复位。180度舵机角度范围可能不够而直流电机需要额外的编码器和复杂电路才能实现位置控制。舵机则不同给它一个角度信号它就会自己转到并保持那个位置控制简单粗暴有效。LEGO兼容的舵机更是锦上添花让我们能用乐高积木来制作机械传动部件省去了复杂的结构设计和加工。2.3 结构设计的核心重力与螺旋轨道整个机器的灵魂在于其机械结构设计。核心思路是利用重力作为糖果运输的动力源这既节能又可靠。我们设计了一个环绕中心柱的螺旋下降轨道。糖果从顶部的入口放入会沿着这个螺旋轨道一圈圈向下滚动。这个设计的妙处在于空间利用在有限的高度内延长了糖果的行走路径可以储存更多糖果。有序排队糖果会自然地在轨道上排成一列先进先出避免了在储料仓里乱作一团。缓冲与定位轨道末端有一个由舵机控制的LEGO横梁。当横梁处于水平位置时它恰好托住轨道上滚下来的第一颗糖果并阻止第二颗糖果继续前进。这实现了糖果的精准“排队”和“就位”。注意轨道坡度是关键。螺旋轨道的倾斜角度必须经过测试。太陡糖果会加速冲下可能飞出轨太缓糖果可能中途停止。我们的经验是以刚好能让糖果依靠自身重力缓慢、稳定滚下的角度为宜大约在15-20度之间。制作时需要用卡片或小木块进行多次实物测试。2.4 物料清单与备选方案以下是构建本项目所需的核心物料。请记住创客的精神在于灵活运用手边材料清单中的许多物品都有替代品。类别核心物料作用备选/替代方案电子部分micro:bit 主板项目的大脑处理传感器数据并控制舵机任何兼容MakeCode的微控制器如Arduino Uno但需重写代码超声波传感器 (HC-SR04常见)机器的“眼睛”非接触式检测手部红外距离传感器、TOF激光测距传感器精度更高成本也高270度舵机 (LEGO兼容为佳)机器的“手臂”精确转动以释放糖果180度舵机需测试角度是否够用 乐高零件或3D打印连接件扩展板/分线板方便连接传感器和舵机到micro:bit使用面包板和杜邦线手动连接但稳定性稍差3节AAA电池盒为整个系统供电任何能提供4.5V-5V的直流电源如USB移动电源结构部分硬质卡纸或瓦楞纸板制作火箭机身、轨道、底座的主要材料木板、亚克力板需切割工具、甚至厚实的快递纸箱透明塑料片如文件夹包裹螺旋轨道形成透明观察窗透明亚克力板、PET塑料板热熔胶枪/强力胶水结构粘合白乳胶慢干、双面胶强度可能不足美工刀、尺子、切割垫精准裁剪材料必备工具注意安全装饰部分喷漆银、红赋予火箭主题色彩丙烯颜料、彩色胶带、贴纸铝箔胶带/装饰胶带增加金属质感细节和螺旋线强调电镀胶带、彩色绝缘胶带3. 机械结构制作详解从图纸到实物3.1 核心螺旋轨道的精确制作这是整个项目中最需要耐心和精度的部分。轨道决定了糖果能否顺畅运行。第一步确定关键尺寸首先测量你所用糖果的直径。假设是标准的16mm口香糖球直径大约2厘米。我们需要为它留出一点活动空间防止卡住所以轨道宽度即螺旋片的宽度可以定为2.2厘米。 接着决定中心柱的直径。我们用一个胶带圈的内径约7.6厘米作为模具这个尺寸能提供足够的结构强度也能容纳舵机和走线。第二步制作螺旋片计算圆盘直径轨道宽度(2.2cm) * 2 中心柱直径(7.6cm) 12厘米。我们需要裁剪出一叠直径为12厘米的圆形卡纸。挖出中心孔在所有圆盘中心切出一个直径7.6厘米的圆孔。这样圆盘就变成了圆环。制作螺旋切口这是最关键的一步。拿起一个圆环用美工刀从外缘到内缘沿直线切一刀。现在这个环变成了一个“C”形开口环。将这个开口的一端相对于另一端轻轻旋转并抬高就形成了一个螺旋坡道的一段。你需要用多个这样的“片段”首尾相连用胶水粘接形成一个连续的螺旋。技巧是在粘接每个片段时使用一个糖果实物进行滚动测试确保其能自然下滑不会停滞或翻倒。粘接角度需要保持一致。第三步安装限位与出口在螺旋轨道的起点粘一小块卡纸作为挡板防止糖果直接从顶部掉进中心柱。 在轨道末端、舵机横梁的上方需要开一个让糖果掉落的出口。出口大小略大于糖果直径即可。 在出口下方轨道结束处也需要粘一个挡块防止糖果因惯性飞出去。3.2 底座与外壳的搭建赋予它“火箭”形态为了让项目更有主题趣味性我们将其设计成火箭造型。底座不仅是装饰也承载了传感器和手部空间。多边形底座的制作我们采用了16边形柱体来模拟圆柱形火箭机身这比制作一个真正的圆柱体要简单得多。制作纸模用两张纸分别剪出比轨道底部圆盘略大和更大的圆。将它们各自像折披萨一样均匀折叠16份展开后测量两条折痕之间直线段的长度。小的圆得到的是底座上边的边长大的圆得到的是底座下边的边长。这保证了底座上小下大更稳定。绘制梯形模板根据上一步测得的两个边长以及你期望的底座高度例如15厘米画出一个等腰梯形。这就是底座每一片“蒙皮”的形状。裁剪与组装用卡纸裁出16个这样的梯形每条边预留约0.5厘米的粘边。然后将它们首尾相连用粘边互相粘合最终围成一个16棱柱。最后用圆形卡纸封住顶部和底部。在顶部圆盘的中心切一个直径约5厘米的洞作为糖果最终掉落到手中的通道。传感器窗口与手部空间在底座朝向用户的一面切割出一个大的半圆形或拱形窗口。这个窗口有两个作用一是让用户能方便地伸手进去二是让我们能将超声波传感器隐藏在窗口的上沿内侧正对下方这样手一伸入传感器就能立刻检测到。3.3 传动机构集成舵机与横梁的安装机械控制的精髓在于将舵机的旋转运动转化为对糖果的“一次一颗”的释放控制。在中心柱上开孔在中心柱即那个用卡纸卷成的管子上距离底部约三分之一高度的位置开一个与舵机形状匹配的方孔。将舵机用热熔胶牢固地固定在里面确保其输出轴水平朝外。制作横梁使用一根乐高科技梁或类似硬质材料将其一端固定在舵机的舵盘上。横梁的长度要精心计算当舵机处于初始位置0度时横梁应水平伸入螺旋轨道末端下方恰好托住从轨道滚下来的第一颗糖果。动作测试编写一段简单的测试代码让舵机从0度转动到60度再转回来。观察横梁的运动轨迹。理想状态下转动时横梁会将托住的那颗糖果横向推离轨道使其从出口掉落同时横梁的臂身会抬起短暂地挡住轨道防止第二颗糖果紧随其后。当横梁复位时第二颗糖果滚下被重新托住等待下一次触发。实操心得舵机固定是关键。热熔胶固定虽然方便但在长时间或频繁使用后可能因震动而松动。我的经验是先用热熔胶初步定位然后在卡纸管内部用扎带或强力胶水加一层纤维胶带进行加固确保舵机在动作时纹丝不动。任何微小的位移都会导致释放机构失灵。4. 电路连接与编程逻辑实现4.1 硬件连接构建可靠的电气链路电路部分其实非常简洁。使用扩展板如Bit Board可以避免焊接让连接像拼插积木一样简单。如果没有扩展板你需要一个面包板和若干杜邦线母对公。连接步骤供电将3节AAA电池盒的输出线红正黑负连接到扩展板的电源输入端或面包板的电源轨。确保电压在4.5V-5V之间以满足舵机工作需求。连接micro:bit将micro:bit主板插入扩展板的对应插槽。连接舵机舵机通常有三根线棕色GND、红色VCC、橙色信号。将棕线和红线分别接到扩展板的GND和5V引脚。将橙色的信号线接到micro:bit的任何一个支持PWM输出的数字引脚例如P13。连接超声波传感器以HC-SR04为例它有四个引脚VCC、Trig触发、Echo回声、GND。将VCC和GND分别接到扩展板的5V和GND。将Trig引脚接到micro:bit的P0Echo引脚接到P1。注意电源功率。舵机在启动和堵转时电流很大可能瞬间达到500mA以上。如果和micro:bit、传感器共用电池可能导致电压瞬间被拉低造成micro:bit重启。一个稳妥的做法是使用独立的电池组为舵机供电或者使用能提供更大电流的电源如6V干电池组或锂电池。如果使用同一电源务必确保其容量充足如高质量的碱性电池或可充电电池。4.2 编程逻辑深度解析从感知到动作我们将使用MakeCode for micro:bit进行图形化编程。整个程序的逻辑流可以清晰地分为几个阶段第一阶段初始化与待机设备上电后程序首先进行初始化。当开机时积木块内设置舵机连接到P13并将其角度初始化为0度横梁处于水平托举状态。在无限循环中让LED点阵显示一个“笑脸”图标表示系统准备就绪等待触发。第二阶段持续测距与判断这是程序的核心循环。触发测距通过向超声波传感器的Trig引脚发送一个至少10微秒的高电平脉冲触发一次测距。读取距离传感器会自动发射超声波并接收回波micro:bit通过Echo引脚高电平的持续时间来计算距离。公式简化理解为距离(厘米) ≈ 回声时间(微秒) / 58。逻辑判断获取距离值后进行判断。我们的场景是手从下方伸入。因此当检测到的距离小于一个预设阈值例如10厘米时就判定为“手已到位”。// 伪代码逻辑 if (读取到的距离 10) { 执行分发糖果程序(); } else { 继续显示笑脸等待 }第三阶段执行分发序列一旦条件满足程序进入一个不可打断的动作序列。视觉反馈立即改变LED点阵显示比如显示一个“圆点”代表糖果或者一个“向下箭头”给用户一个“正在处理”的提示。驱动舵机控制P13引脚上的舵机从0度平滑转动到60度这个角度需要根据你的横梁实际安装位置微调然后立刻转回0度。这个“转动-返回”的动作就完成了一次推送和复位。加入延时防误触动作完成后程序不要立即回到测距循环。加入一个3-5秒的延时。在这段时间里即使手还在传感器下方程序也不会响应。这个延时至关重要它有两个作用一是给用户时间取走糖果二是防止舵机连续快速动作导致机械结构故障或糖果卡塞。第四阶段复位与循环延时结束后程序自动跳转回最初的“无限循环”显示笑脸继续测距等待下一次触发。你可以通过以下链接访问和下载我们为这个项目编写好的完整程序代码直接导入到MakeCode中即可使用 https://makecode.microbit.org/_7V6YC5eVPhxR 请确保网络环境允许访问此域名。5. 系统调试与故障排查指南即使按照教程一步步制作首次运行时也难免遇到问题。以下是常见故障及其排查思路几乎涵盖了所有你可能遇到的坑。5.1 传感器不工作或误触发现象手伸进去没反应或者没伸手就乱触发。排查步骤检查供电用万用表测量超声波传感器VCC和GND之间的电压确保在5V左右。电压不足会导致传感器工作不稳定。检查连接确认Trig和Echo线是否接反是否接触不良。可以轻轻晃动接头观察现象是否变化。调整阈值10厘米的阈值可能不适合你的安装环境。在MakeCode中添加一段调试代码将读取的距离值实时显示出来或者通过串口输出到电脑。观察手在不同位置时的实际读数据此调整判断阈值。环境干扰超声波传感器可能被底座内复杂的结构反射干扰。尝试在传感器前方的外壳上开一个干净、平整的窗口。确保传感器正对下方前方没有遮挡物。代码逻辑确认你的判断条件是“小于阈值”触发而不是“大于”。5.2 舵机不转动或转动异常现象舵机不动、抖动、或者转动角度不对。排查步骤电源问题最常见这是舵机问题的头号元凶。单独用一组电池直接连接舵机红接正黑接负信号线先不接听是否有“吱”的电流声或轻微抖动。如果单独供电正常但接上系统就不行说明系统主电源带载能力不足必须为舵机提供独立电源。信号线连接确认信号线连接到了正确的数字引脚如P13并且代码中控制的引脚号与之对应。机械卡死断开舵机与横梁的连接空载测试舵机是否能正常转动。如果不能可能是舵机损坏。如果能说明横梁或机械结构在某个位置被卡住需要调整机械安装确保运动路径畅通无阻。角度范围确认你使用的舵机是270度还是180度。在MakeCode中设置舵机角度的积木默认范围是0-180。对于270度舵机你需要使用模拟写入引脚积木通过PWM脉宽来精确控制。0.5ms脉宽对应0度2.5ms脉宽对应270度。5.3 糖果卡住或无法正常掉落现象舵机动作了但糖果没掉下来或者一次掉多颗。排查步骤轨道坡度与光滑度这是卡住的首要原因。用一颗糖果从轨道顶部自由释放观察其滚动是否顺畅。如有停顿用砂纸轻微打磨卡纸边缘或调整螺旋片粘接角度增加坡度。也可以在轨道表面粘贴一层光滑的胶带如透明胶带减少摩擦。横梁位置与形状初始位置舵机在0度时横梁必须恰好托住第一颗糖果且略高于轨道平面形成一个“小台阶”。动作轨迹舵机转动时横梁应先将糖果横向推离轨道而不是向上顶。用慢动作观察或用手慢慢转动舵机优化横梁的安装角度和长度。横梁形状使用乐高科技梁的“V”形槽面来承托糖果效果比平面更好能防止糖果滚动。出口尺寸糖果掉落出口的尺寸是否足够是否有可能被变形的卡纸边缘挂住用锉刀或美工刀将出口边缘修整圆滑。防连发机制确保在横梁转动推开第一颗糖果的过程中其臂身能有效挡住轨道上的第二颗糖果。如果挡不住可能需要加装一个小挡片。5.4 整体稳定性与优化建议结构加固卡纸模型时间长了容易变形。在所有关键受力点和接缝处内部用热熔胶或白乳胶粘贴三角形卡纸加强筋。线路整理将传感器和舵机的电线用扎带或胶带固定在中心柱内壁防止其缠绕到运动部件上。程序增加状态指示除了LED点阵可以让micro:bit通过串口向电脑发送日志比如“距离XX cm”、“触发动作”、“等待中”这在调试时非常有用。引入“状态机”思想进阶对于更复杂的逻辑可以定义几个状态如IDLE待机、DETECTED已检测、DISPENSING分发中、COOLDOWN冷却让程序在不同状态间清晰跳转避免逻辑混乱。这个项目从一张卡纸开始到最终一个能智能响应、自动分发糖果的装置每一步都充满了工程实践的乐趣和挑战。它教会你的远不止是连接几个模块更是如何系统地思考问题、动手验证、调试优化。当你把手伸过去糖果“咔哒”一声掉入手心时那种亲手创造智能的满足感是任何现成玩具都无法比拟的。希望你在制作过程中也能享受到这种解决问题的快乐和创造的喜悦。