
1. 项目概述与核心价值如果你家里也有一个对刷牙三心二意、总是想蒙混过关的“小神兽”那么这个项目可能就是为你量身定做的。我最近用一块小小的 Circuit Playground Express 开发板结合一些毛毡布和导电材料亲手做了一个名叫“鳄鱼Alex”的儿童刷牙计时器。这不仅仅是一个手工玩具更是一个融合了嵌入式编程、基础电路和创意设计的综合性项目。它的核心功能很简单孩子按下鳄鱼身上的“按钮”Alex就会播放一段两分钟的音乐同时板载的LED灯带会亮起绿色的跑马灯效果。音乐结束灯光停止刷牙时间到。整个过程充满趣味性把原本枯燥的“任务”变成了一个有趣的互动游戏。这个项目的价值是多维度的。对于家长而言它是一个低成本、高定制化的行为引导工具能有效解决孩子刷牙时间不足的普遍难题。对于创客或电子爱好者它是一个绝佳的入门实践涵盖了从图形化编程MakeCode到物理计算、再到软硬件结合的完整流程。而对于孩子来说Alex是一个由父母亲手制作的、独一无二的伙伴这种情感连接是任何市售计时器都无法替代的。整个制作过程不需要焊接工具以剪刀、热熔胶枪为主安全系数高非常适合亲子共同完成。接下来我将从设计思路、材料准备、编程核心、手工制作细节到问题排查完整拆解这个充满爱意的智能小装置。2. 核心硬件选型与设计思路解析2.1 为什么选择 Circuit Playground Express在众多微控制器中选择 Adafruit 的 Circuit Playground Express后文简称 CPX作为核心是经过深思熟虑的。首先它是一款“All-in-One”的开发板板载了10个可编程的NeoPixel RGB LED、一个运动传感器、一个温度传感器、一个光传感器、一个声音传感器、一个蜂鸣器还有多个触摸感应引脚。这意味着我们实现计时、灯光和音乐功能完全不需要外接任何额外的模块极大简化了电路设计和制作难度。其次CPX对初学者极其友好。它支持微软的MakeCode图形化编程环境你可以像搭积木一样编写代码这让孩子也能参与部分逻辑设计理解“如果按下按钮那么就播放音乐”这样的因果关系。同时它也完全兼容Arduino IDE为想要深入学习的开发者留足了空间。最后它的外形小巧圆润没有尖锐的引脚通过板子边缘的孔洞可以方便地用线缝合固定非常适合嵌入到毛毡这类软性材料中安全又稳固。2.2 整体机械与电路设计考量项目的物理形态是一个可以挂在浴室镜子上的毛毡挂饰。这个设计有几个关键考量点安全性所有电子部件被包裹在毛毡内部仅通过一个毛毡开孔露出CPX的LED和传感器面避免了孩子直接接触电路。使用的电压是3.7V的锂聚合物电池属于安全电压范围。交互直观性将启动按钮设计成一个独立的、用导电材料制作的圆形贴片并通过导线与CPX连接。孩子只需按压这个明显的“按钮”区域即可启动交互方式简单直接。可维护性电池被设计放置在一个独立的毛毡“口袋”里无需缝合用热熔胶粘住三边即可。这样电池没电时可以轻松更换。安装便利性背面使用两个吸盘可以牢固地吸附在大多数光滑的浴室镜面上不损伤墙面也方便随时取下。电路原理其实非常简单本质上就是一个“按键触发播放器”。CPX的A3引脚被配置为数字输入引脚并通过一根导线引出。导线的另一端盘成一个圈固定在毛毡背面。导电材料制作的按钮贴在毛毡正面正对着背面的导线圈。当按下按钮时导电材料同时接触到毛毡正面的金属线和背面的导线圈相当于将A3引脚通过导电材料与GND地连接CPX检测到这个“按下”的信号从而触发预编程的计时与播放序列。这是一个经典的“自制导电按键”方案成本极低且效果可靠。注意这里有一个关键细节。CPX的引脚内部通常有上拉或下拉电阻配置。在MakeCode中当我们将引脚设置为“数字读引脚”时通常需要启用内部上拉电阻。这样在按钮未按下时引脚通过上拉电阻连接到高电平3.3V读取值为1当按钮按下引脚被短接到GND读取值变为0。这种设计能确保引脚在悬空时有一个稳定的状态避免误触发。3. 材料与工具清单详解一份清晰完整的物料清单是项目成功的第一步。以下清单在原始基础上进行了优化和补充并解释了每样物品的选择原因。类别物品名称规格/说明数量选购要点与替代方案核心电子部件Circuit Playground ExpressAdafruit 出品1块务必确认是“Express”版本经典版非Express功能不同。锂聚合物电池3.7V 500mAh 或更高容量1块推荐带JST-PH接头的与CPX直接兼容。容量越大续航越长。导电材料约硬币大小1片导电布、导电海绵、甚至铝箔胶带均可。关键是要柔软可裁剪且导电性好。导线1/16英寸约0.6mm单芯镀锡线绝缘皮可选约30厘米单芯线有一定硬度便于塑形和穿孔。也可以用细的杜邦线剥出内部金属丝。主体材料毛毡布底色9x12英寸浅褐色/米色1张作为背景底布颜色建议选浅色以突出前景的鳄鱼和字母。毛毡布鳄鱼身体9x12英寸绿色1张主角色颜色可自选。毛毡布牙齿/电池袋9x12英寸白色1张白色做牙齿很形象。电池袋用其他颜色也可。毛毡布字母9x12英寸蓝绿色1张用于裁剪“TIME TO BRUSH”字母颜色需与背景和鳄鱼形成对比。毛毡布鼻子1x1英寸黑色1小块也可以用黑色不织布或直接用记号笔画。装饰与辅助活动眼睛12mm 带活动瞳孔2只瞬间让鳄鱼“活”过来是点睛之笔。吸盘中小型吸附力强2个用于挂在镜子上。可以购买现成的也可以从肥皂盒等物品上拆下。绿色缝纫线1卷用于缝合固定CPX颜色与鳄鱼身体匹配更美观。缝衣针1根能穿过CPX板孔即可。粘合工具热熔胶枪小型1把粘贴毛毡、眼睛、吸盘的主力工具凝固快粘合力强。热熔胶棒7mm直径2根通常一小根就够用备一根以防万一。强力胶401/5021小瓶用于粘贴导电按钮。热熔胶不导电且可能影响接触强力胶更薄更牢。标记与裁剪剪刀锋利尖头1把裁剪毛毡必备。Sharpie记号笔黑色细头1支在毛毡上画轮廓。水消笔或铅笔也可但记号笔痕迹在深色毛毡上更清晰。铅笔与白纸若干用于绘制和裁剪纸样模板尤其适合对形状没把握时。实操心得材料采购避坑指南毛毡布手工店或网购的9x12英寸单张毛毡是最佳选择厚度适中易于裁剪且边缘不易 fray散边。如果买大张自己剪务必剪裁整齐。导电材料这是我踩过的第一个坑。最初我试了厨房用的铝箔太软太容易破。后来找到了“导电布胶带”背面有胶一面是纤维布一面导电非常容易裁剪和粘贴是完美选择。一些废旧的数据线屏蔽层也可以利用但处理起来麻烦些。电池CPX可以通过USB供电但作为挂件显然电池更方便。务必使用可充电的3.7V锂聚合物电池并匹配正确的充电器。切勿使用普通的3V纽扣电池电压和电流都可能不足。电池容量建议350mAh以上以确保至少一两周的续航。安全第一热熔胶枪工作温度很高使用时要放在支架上胶体流出后稍等几秒再粘贴避免烫伤。儿童参与时家长需全程监督粘合步骤。4. 软件编程让鳄鱼Alex“活”起来编程是项目的大脑。我们使用MakeCode for Adafruit在线编辑器它无需安装在浏览器中即可完成。4.1 编程环境搭建与基础逻辑首先访问 MakeCode for Adafruit 网站新建一个项目硬件选择“Circuit Playground Express”。编程界面分为三个主要区域左侧的模块分类、中间的编程画布和右侧的模拟器。我们的程序逻辑需要实现以下功能上电初始化设置好引脚状态让所有LED灯熄灭确保一个干净的初始状态。等待按钮按下持续检测连接到A3引脚的“自制按钮”是否被按下。触发计时序列一旦按钮被按下立即开始一个为期120秒两分钟的计时。同时启动两个并行任务a) 播放一首欢快的音乐b) 让板载的10个LED灯以绿色流水灯的形式循环点亮。计时结束120秒到时自动停止音乐播放并停止LED动画。4.2 分步代码实现与深度解析下面我们一步步用代码块实现这个逻辑并解释每个步骤背后的原理。第一步初始化设置在“当开机时”积木块内我们需要进行两项关键设置。当开机时 设置引脚 A3 为上拉 → 数字写引脚 P0 输出 0设置引脚 A3 为上拉这是整个按键检测稳定性的基石。前文提到这会在A3引脚内部连接一个上拉电阻到3.3V。当按钮未按下开路时A3引脚被拉至高电平程序读取其值为1或高。当导电按钮按下A3引脚通过导电材料连接到GND电平被拉低读取值为0或低。上拉模式能有效防止引脚因静电或干扰产生不确定状态。数字写引脚 P0 输出 0这是一个可选但推荐的好习惯。P0引脚有时默认可能作为模拟输入或其他功能将其明确设置为数字输出低电平可以避免任何意外情况。当然如果你确定用不到P0这行代码可以省略。第二步主循环与按钮检测我们需要一个永远运行的循环来持续检测按钮状态。无限循环 如果 为真 则在“如果”的条件判断里我们从“输入”类别中拖入引脚 A3 被按下积木。这个积木内部逻辑就是检测A3是否为低电平。当条件满足按钮被按下就执行内部的代码序列。第三步构建两分钟计时与反馈序列这是最核心的部分。当按钮被按下我们需要触发一系列动作。如果 引脚 A3 被按下 则 播放旋律 在背景 中速 ba ding 显示彩虹动画 暂停ms 120000 停止所有声音 清除显示播放旋律 在背景 中速 ba ding这里我选择了“ba ding”这个预置旋律它比较清脆悦耳。关键技巧在于“在背景”这个选项。如果选择“前台播放”那么程序会等整首曲子播完才执行下一行代码这显然不行。选择“在背景”音乐播放会成为一个独立的后台任务程序会立刻继续执行后面的显示彩虹动画和暂停指令从而实现音乐和灯光同步进行。显示彩虹动画这是MakeCode提供的一个内置动画会让10个LED循环显示彩虹色。但我们的需求是绿色流水灯。所以我们需要自定义灯光效果。暂停ms 120000这是实现两分钟计时的核心。120000毫秒等于120秒即两分钟。在这两分钟里后台音乐播放着灯光动画运行着程序就在这里等待。停止所有声音和清除显示计时结束后立即停止音乐并关闭所有LED给用户一个明确的结束信号。第四步自定义绿色流水灯动画内置的彩虹动画很酷但为了贴合“健康”、“开始”的寓意绿色是更佳选择。我们需要替换显示彩虹动画用更复杂的逻辑来实现绿色流水灯。如果 引脚 A3 被按下 则 播放旋律 在背景 中速 ba ding 变量 i 设为 0 循环 10 次 设置像素颜色在 i 为 绿色 显示 暂停ms 200 设置像素颜色在 i 为 关闭 i 改变 1 循环 120 次 循环 10 次 设置像素颜色在 i 为 绿色 显示 暂停ms 200 设置像素颜色在 i 为 关闭 i 改变 1 停止所有声音 清除显示代码逻辑深度解析变量 i 设为 0我们创建一个变量i作为索引用来指示当前要点亮第几个LEDCPX上LED编号为0到9。第一个循环 10 次这是一个“初始化跑马灯”。它从0号灯到9号灯快速依次点亮再熄灭一遍像是一个启动提示告诉用户计时器已经开始工作。每次循环暂停200毫秒整体大约2秒完成。外层循环 120 次这是两分钟计时的主体。我们让绿色的流水灯动画持续运行120次。内层循环 10 次这是单次流水灯动画。从0号灯到9号灯每个灯亮起200毫秒后熄灭紧接着下一个灯亮起。10个灯循环一次大约2秒。计算与验证内层循环一次约10 * 200ms 2000ms 2秒。外层循环120次总时间就是120 * 2秒 240秒 4分钟等等这里有个巨大的逻辑错误如果这样写总计时长变成了4分钟而不是2分钟。这是一个典型的思维陷阱。修正后的计时逻辑 我们的目标是总时长2分钟120秒。流水灯动画循环一次是2秒。那么我们需要让这个动画循环120秒 / 2秒 60次。如果 引脚 A3 被按下 则 播放旋律 在背景 中速 ba ding 变量 i 设为 0 循环 10 次 // 启动动画 ... (同上) 循环 60 次 // 两分钟主计时循环 循环 10 次 // 单次流水灯 ... (同上) 停止所有声音 清除显示同时为了在计时结束后有一个更明显的提示我们可以在清除显示前加一个所有灯快速闪烁的效果停止所有声音 循环 3 次 显示颜色 红色 暂停ms 200 清除显示 暂停ms 200 清除显示这样时间一到音乐停止LED会快速闪烁三下红灯然后全部熄灭提示效果更加明确。第五步下载与烧录程序代码编写完成后点击编辑器左下角的“下载”按钮会下载一个.uf2格式的文件。用USB数据线将CPX连接到电脑此时CPX会显示为一个名为CPLAYBOOT的U盘。将下载的.uf2文件直接拖入这个U盘CPX会自动重启新程序就开始运行了。你可以先不组装直接用手同时触摸A3引脚和GND引脚比如板子边缘的“-”标志来测试程序是否正常工作。重要提示防误触与状态指示在实际测试中我发现如果孩子不小心连续快速按动按钮可能会打断当前的计时循环重新开始。为了解决这个问题可以在按钮按下触发动作后立即加入一个短暂的“禁用按钮”期或者使用一个“状态变量”。例如设置一个变量isTiming在计时开始时设为真在计时结束时设为假。在主循环的判断条件中不仅要检测按钮是否被按下还要检查isTiming是否为假。这样可以有效防止计时过程被意外重置。这是一个留给读者优化的进阶思路。5. 手工制作全流程详解编程完成后我们就进入了动手制作的环节。这个过程需要耐心和细心但每一步都有明确的技巧可以遵循。5.1 裁剪与准备从图纸到毛毡部件绘制纸样强烈推荐除非你是手工达人否则先在纸上画出各个部件是最高效准确的方法。用铅笔在白纸上画出鳄鱼的身体7.5英寸长3.5英寸高可以画得圆润可爱些、牙齿上下各三个三角形、电池袋3.5x3.75英寸的长方形一侧留长边作为开口、圆形按钮硬币大小以及字母“TIME TO BRUSH”的轮廓。剪下这些纸样。拓印与裁剪将纸样用珠针固定在对应颜色的毛毡上用Sharpie记号笔沿着边缘描画。关键技巧画字母时笔迹要画在字母轮廓的内侧。因为裁剪时你会沿着笔迹的内侧剪这样最终的毛毡字母上就不会留下黑色的记号笔痕迹成品更干净。为CPX开孔这是确保电路板完美嵌入的关键一步。将绿色的鳄鱼身体毛毡放在浅色底布上确定好位置通常靠左上方。把CPX实际放在鳄鱼身体毛毡上用铅笔轻轻沿着电路板外缘描一圈。然后沿着铅笔线的内侧约1-2毫米处裁剪出这个方孔。这样开出来的孔会比CPX略小利用毛毡的弹性可以将CPX“塞”进去既能牢固固定又能让LED灯盘完美露出不会有难看的缝隙。裁剪导电按钮从导电布胶带上剪下一个圆形。如果使用其他导电材料确保其柔软且有一定厚度按压时能有形变以接触良好。5.2 电路安装与固定可靠连接是核心缝合固定CPX将CPX从背面塞入鳄鱼身体上开好的孔中使其正面有LED和传感器的一面朝外。取绿色缝纫线穿上针。选择CPX电路板边缘的四个通孔例如两个GND和两个3.3V孔像缝纽扣一样将CPX缝合固定在毛毡上。技巧每个孔穿线4-5次确保牢固。线头在背面打结并点一小滴热熔胶固定线结防止松脱。务必避开A3引脚孔这个孔要留给导线。连接导线剪取约30厘米长的单芯导线。将一端剥出约1厘米的铜丝紧密地缠绕在CPX的A3引脚上5-6圈确保接触良好。可以用一小块绝缘胶带或热熔胶固定一下这个连接点防止拉扯脱落。然后将导线从CPX附近从底布浅褐色的背面穿到正面。接着让导线在底布背面水平向右走线走到你计划安装按钮的位置通常在鳄鱼身体右侧或下方再将导线从底布正面穿回背面。最后将穿回背面的导线末端也剥开盘成一个直径略小于导电按钮的圆形圈用一点热熔胶临时固定在底布背面。这个线圈就是按钮的“触点”之一。5.3 组装与粘合赋予Alex生命组装鳄鱼面部在绿色的鳄鱼身体毛毡正面用热熔胶粘上两只活动眼睛。然后粘上上下两排白色的三角形牙齿。牙齿可以交错排列显得更自然。最后粘上两个小小的黑色鼻子圆点。粘合主体在浅褐色底布上确定好鳄鱼身体的最终位置。在鳄鱼身体毛毡的背面边缘涂上热熔胶然后将其粘贴到底布上。顺序建议先对齐底部和左侧边缘从底部左下角开始涂胶粘贴然后向右延伸到底部右侧再粘贴嘴巴周围最后粘贴顶部和左侧边缘。确保开孔处的CPX没有被胶水粘住。粘贴字母将裁剪好的蓝绿色字母“TIME TO BRUSH”在底布顶部排列好确保间距均匀。然后用镊子夹起字母在其背面点少量热熔胶逐个粘贴固定。热熔胶用量宜少不宜多否则容易从毛毡边缘渗出影响美观。安装导电按钮这是整个电路能否成功的关键步骤。找到从底布正面穿出的导线头它应该就在你盘绕的背面导线圈的正上方。用强力胶如401胶水在导电按钮的背面边缘涂上薄薄一圈。然后将其对准位置粘贴在底布正面确保它能覆盖住正面的导线头并且正对着背面的导线圈。按压片刻使其牢固。绝对不要用热熔胶粘贴按钮因为热熔胶层太厚且不导电会完全阻断电路。制作电池袋将白色长方形毛毡的三条边左、右、下用热熔胶粘在底布背面合适的位置通常在中下部形成一个上方开口的口袋。电池就从这里放入和取出。封边与安装吸盘将底布对折用热熔胶将左、右、下三条边粘合形成一个整体的挂件。最后在背面左上角和右上角用热熔胶粘上两个吸盘。粘贴前先在镜子上比划一下确保吸盘位置对称挂起来才是水平的。6. 测试、问题排查与优化建议完成所有组装后插入电池激动人心的测试时刻就到了。6.1 功能测试流程基础供电测试插入电池后CPX上的红色电源LED应亮起。如果没有检查电池是否有点电池插头方向是否正确JST-PH接口有防呆设计但也要确认插紧。按钮功能测试用手指直接按压粘贴好的导电按钮。此时你应该能听到音乐响起并看到LED灯开始绿色的流水灯动画。如果没反应进入排查流程。两分钟计时测试启动后观察灯光和音乐是否持续两分钟。时间到后音乐和灯光是否按程序设定停止或闪烁红灯后停止。6.2 常见问题排查速查表问题现象可能原因排查与解决方法按下按钮无任何反应1. 程序未成功烧录。2. 按钮电路不通。3. CPX引脚模式设置错误。1.重烧程序重新下载.uf2文件并拖入CPLAYBOOT盘。2.检查电路用万用表通断档测量A3引脚与GND之间在按下按钮时是否导通。若无检查导线连接是否牢固、导电按钮是否有效粘贴、背面导线圈是否未被接触到。3.检查代码确认程序中设置了引脚 A3 为上拉。LED或音乐不工作1. 程序逻辑错误。2. 扬声器或LED物理损坏罕见。1.模拟器测试在MakeCode编辑器的右侧模拟器里点击A3引脚看模拟效果。修复代码逻辑。2.简化测试写一个最简单的测试程序如当开机时 - 播放音调中C烧录测试蜂鸣器好坏。计时不准MakeCode中暂停块的时间累积误差。MakeCode的暂停块在长时间循环中可能存在微小误差。对于两分钟这种时长误差可接受。如需高精度可使用运行时间(ms)变量进行数学计算判断但图形化编程实现较复杂。按钮偶尔失灵1. 导电材料接触不良。2. 毛毡太厚或按压力度不够。1.增强接触确保背面的导线圈盘得紧密平整。可以在导电按钮背面再贴一小片导电材料增加接触面积和弹性。2.调整位置确保按压时按钮能同时压到正面导线头和背面线圈。吸盘挂不住1. 镜子有灰尘或水渍。2. 吸盘吸附力不足。1.清洁表面粘贴前用酒精湿巾彻底清洁镜子表面。2.湿润吸盘在吸盘吸附前用手指沾水轻轻抹一下吸盘边缘能大幅提升吸附力。6.3 项目优化与扩展思路这个基础版本已经非常实用但你完全可以在此基础上进行个性化升级多首音乐随机播放在MakeCode中创建一个歌曲数组每次按下按钮时随机选择一首播放增加新鲜感。视觉进度提示让LED灯不是简单流水而是作为进度条。例如计时开始时10个灯全亮绿色随着时间流逝逐个熄灭最后全部熄灭表示时间到非常直观。增加“刷牙奖励”机制利用CPX的加速度计。编程检测设备是否在一定频率下晃动模拟刷牙动作只有检测到晃动时才正常计时防止孩子只按按钮不刷牙。这需要更复杂的编程逻辑。外观个性化鳄鱼Alex只是一个模板。你可以和孩子一起设计其他卡通形象比如恐龙、小汽车、太空飞船让计时器成为孩子最喜欢的玩具之一。音量调节CPX的音量是固定的如果觉得太大或太小可以在MakeCode的播放旋律积木中将“音量”参数从默认的128调低如80或调高。制作“鳄鱼Alex”的过程是一次将代码、电路和手工完美结合的旅程。它解决了一个具体的育儿痛点也成为了一个充满成就感的创作。当看到孩子因为这个小装置而主动去刷满两分钟牙时那种满足感远超项目本身。希望这份超详细的指南能帮助你顺利创造出属于你自己的智能小助手。