1. 项目概述当电子工程遇上创意手工如果你和我一样既喜欢鼓捣单片机、写几行代码让灯亮起来又享受手工制作带来的那种沉浸感和成就感那么这个项目绝对能让你两眼放光。它不是什么高深莫测的工业级应用而是一个把 Circuit Playground Express 这块“全能小板子”、会发光的 NeoPixel 灯带还有小朋友和大朋友都爱玩的史莱姆Slime糅合在一起的创意作品——一个运动激活的发光史莱姆午餐盒。想象一下这个场景一个普通的午餐盒内部经过改造铺上了一圈柔和的 LED 灯带。盒子里装的不是三明治而是一团晶莹剔透、可以拉丝的发光史莱姆。当你打开盒盖的瞬间盒内的灯带会像被唤醒一样开始闪烁流动的光效同时板载扬声器还会发出酷炫的“能量启动”音效。关盖后一切恢复平静。它的核心逻辑非常简单利用 Circuit Playground Express 板上集成的加速度计检测午餐盒盖“开”板子朝上和“关”板子朝下的状态变化从而触发预设的灯光和声音程序。这背后涉及了嵌入式系统中传感器数据采集、事件驱动编程、执行器灯光、声音控制的完整链条是一个绝佳的 STEAM科学、技术、工程、艺术、数学教育实践案例。这个项目的魅力在于它的低门槛和高表现力。你不需要深厚的电子功底用几根鳄鱼夹线就能完成所有电路连接编程则采用图形化的 MakeCode 块语言像搭积木一样直观。最终成果却非常炫酷能立刻抓住所有人的眼球。无论是作为吸引孩子进入编程世界的趣味项目还是作为创客空间的一个快速原型展示亦或是你自己书桌上的一个解压小玩具它都再合适不过了。接下来我将带你从零开始完整复现这个项目并分享我在制作过程中总结的细节、技巧和避坑指南。2. 核心组件选型与原理剖析在动手之前搞清楚我们用的“积木”到底是什么、为什么选它们能让整个制作过程思路更清晰遇到问题时也知道从哪里下手。2.1 大脑与感官Circuit Playground Express 开发板Circuit Playground Express后文简称 CPX是这个项目的绝对核心。你可以把它理解为一个高度集成、功能丰富的微型电脑。它基于 ATSAMD21 微控制器但 Adafruit 的伟大之处在于他们把一堆常用的输入输出设备都焊在了这块小圆板上让你开箱即用传感器输入三轴加速度计本项目关键、温度传感器、光线传感器、声音传感器。执行器输出10 个可编程的 RGB NeoPixel LED、1个蜂鸣器可播放简单音效。交互接口2个按钮、1个滑动开关、1个红外接收发射器、7个电容触摸引脚。扩展接口多个通用输入输出GPIO引脚用于连接外部设备如我们的 NeoPixel 灯带。为什么是 CPX 而不是 Arduino Uno对于本项目CPX 的集成度是决定性优势。如果使用 Arduino Uno你需要额外购买并连接加速度计模块、LED 灯带驱动模块、声音播放模块布线会复杂数倍。CPX 将这些全部集成用一根 USB 线就能完成供电、编程和调试极大降低了入门难度和失败概率。它的“Express”之名也体现在其支持 CircuitPython 和 MakeCode 两种极其友好的编程方式上。本项目中我们主要依赖其加速度计。加速度计可以测量物体在三个轴X, Y, Z上的加速度包括重力加速度。当午餐盒平放盖子上时板子正面朝上加速度计检测到的Z轴方向与重力方向相反当盒盖合上板子可能朝下或倾斜加速度数据会发生显著变化。我们的程序就是通过判断“板子正面朝上”face up这个事件来触发动作的。2.2 绚丽光彩Adafruit NeoPixel LED 灯带NeoPixel是 Adafruit 对 WS2812B 这类可单独寻址 RGB LED 的商标。它的神奇之处在于只需要一根数据线Din就能控制整条灯带上成百上千颗 LED 的颜色和亮度每一颗都可以被独立编程。工作原理数据以特定的时序信号通过 Din 引脚串行输入。第一颗 LED 芯片读取属于自己的颜色数据后将后续数据转发给下一颗如此接力。这被称为“级联”控制。选型考量原项目推荐了两种密度30颗/米和60颗/米和一种 UV紫外线灯带。对于午餐盒内部照明30颗/米的型号通常是更优选择。原因有三1) 功耗更低用3节AAA电池驱动更稳定2) 光线分布已经足够均匀60颗/米可能过亮且耗电快3) 价格更实惠。UV灯带则用于激发荧光材料如果你想让史莱姆或某些装饰物发出“夜光”效果可以考虑搭配使用。带鳄鱼夹的版本强烈建议选择项目提到的“带鳄鱼夹的 NeoPixel 灯带”。它省去了焊接步骤直接用夹子夹到 CPX 的焊盘上对新手和快速迭代无比友好也避免了烫伤电路板的风险。2.3 能量之源电源方案选择项目使用了一个带开关和 JST 接头的 3xAAA 电池盒。这是移动项目的经典选择。电压计算3节碱性AAA电池串联标称电压为 1.5V * 3 4.5V。这个电压落在 CPX 的工作电压范围3.3V-5.5V和 NeoPixel 灯带的工作电压通常5V但4.5V-5.5V可工作之内是安全的。电流预估这是关键一颗 NeoPixel LED 在白色全亮时最大电流可达60mA。我们使用30颗的灯带如果全白最亮理论最大电流为 30 * 60mA 1800mA (1.8A)。这远远超出了AAA电池盒的持续供电能力通常只有几百毫安会导致电池电压骤降灯光变暗、闪烁甚至导致 CPX 重启。解决方案在编程时务必限制灯带亮度。在 MakeCode 中我们可以通过set brightness块将亮度设置为 50 甚至 30。这样既能获得良好的视觉效果又能将电流控制在电池可接受的范围内例如亮度30时单颗电流可能降至20mA以下整条灯带约600mA虽仍较高但短时间闪烁可以承受。长期点亮仍需谨慎。备用方案在调试阶段强烈建议使用USB 供电电脑或手机充电器。USB提供稳定的5V电压和至少500mA的电流比电池驱动稳定得多方便你反复修改和测试代码。2.4 “魔法”介质导电史莱姆的科学史莱姆不仅是装饰在这个项目的扩展思路里它还可以成为一个有趣的交互元件——电容式触摸传感器的延伸。CPX 有7个电容触摸引脚A1-A7除A0其原理是检测人体或导电物体接触时带来的微小电容变化。为什么史莱姆能导电传统史莱姆由白胶聚乙烯醇聚合物和硼砂溶液交联剂制成本身不导电。但如果在制作过程中加入少许食盐氯化钠溶液离子可以在胶体中移动从而使其具备一定的导电性。市面上一些“导电泥”玩具正是基于此原理。安全第一绝对不要尝试用家用电源或电池直接连接史莱姆我们讨论的“导电”是在微控制器级别的、微安级别的电流。CPX 的电容触摸功能使用非常微弱的信号完全安全。你可以将一根导线一端接在 CPX 的电容触摸引脚如 A2另一端埋入导电史莱姆。当你用手触碰史莱姆时就相当于通过史莱姆这个“导体”触摸了引脚可以触发另一个灯光效果。这为项目增加了另一层可玩性。原项目中的角色在原教程中史莱姆更多是作为装饰和主题元素。了解其潜在的导电特性可以让你在完成基础项目后进行更有深度的二次创作。3. 硬件组装与午餐盒改造详解有了理论知识我们开始动手搭建。这部分是项目成功的基础细节决定成败。3.1 电路连接用鳄鱼夹告别电烙铁连接 CPX 和 NeoPixel 灯带是硬件部分的核心得益于带鳄鱼夹的灯带这个过程变得异常简单。识别引脚找到 CPX 板边缘一圈金色的焊盘。我们需要用到三个VOUT电源输出约4.5-5V、GND地线、A1或其他任意标有“#”的引脚如 A2-A7它们都支持数字输出和电容触摸。连接灯带观察 NeoPixel 灯带一端有三个夹子通常标有或通过颜色区分红色夹子5V- 夹到 CPX 的VOUT焊盘。白色或绿色夹子Din/Data In- 夹到 CPX 的A1焊盘。黑色或棕色夹子GND- 夹到 CPX 的GND焊盘。连接电池盒将电池盒的 JST 插头对准 CPX 板上唯一的 JST 插座通常标有“BAT”插入。注意正负极方向JST 插头有防呆设计一般不会插反。上电测试打开电池盒开关。此时CPX 板上的电源指示灯红色应亮起。如果灯带上有任何一颗 LED 发出微光或异常颜色属于正常现象因为数据引脚悬空或初始状态不稳定。我们稍后用程序控制它。实操心得鳄鱼夹的稳定性鳄鱼夹虽然方便但在移动项目中容易松脱。确保夹子紧紧咬住 CPX 的焊盘必要时可以轻轻捏紧夹口。连接后可以轻轻拉扯一下线缆检查是否牢固。如果计划长期使用可以考虑用一点点热熔胶或蓝丁胶固定夹子与电路板的连接处避免因晃动导致接触不良。3.2 午餐盒内部结构搭建为了让午餐盒内部整洁且功能分区原项目设计了内部的隔断Divider和底衬Liner。获取设计文件从项目源页面下载提供的 SVG 文件。这个文件包含了隔断和底衬的切割图样。材料选择与加工材料推荐使用1.5mm - 2mm 厚的卡纸或轻质瓦楞纸板。太薄不牢固太厚则占用过多内部空间。原教程提到的“Chipboard”硬纸板是理想选择。加工方法激光切割最精准、边缘最光滑的方法。将 SVG 文件导入激光切割机软件即可。手工切割如果没有激光切割机可以将 SVG 文件打印在纸上贴到卡纸上然后用美工刀和钢尺进行精细切割。对于隔断上的插槽需要格外小心确保宽度与材料厚度匹配才能紧密插接。电子切割机如 Cricut 或 Silhouette也可以处理这类卡纸。组装内部结构首先将底衬放入午餐盒底部它起到保护和美观的作用。然后将切割好的隔断片通过其上的插槽相互交叉形成一个2x3 的网格。这个网格可以将午餐盒内部空间分成几个小区域用于放置史莱姆容器、小零食或其他装饰物也让灯带的走线更有层次感。布置灯带将 NeoPixel 灯带沿着午餐盒内壁顶部一圈粘贴。LED 灯珠应朝向盒内中心以获得最佳照明效果。粘贴技巧灯带背面通常有自粘胶。但午餐盒内壁可能是塑料或金属粘性可能不足。可以先用酒精湿巾清洁粘贴部位待其完全干燥后再粘贴。对于更牢固的固定可以使用双面泡沫胶它还能让灯带稍微悬空让光线扩散更柔和。将灯带的数据输入端连接鳄鱼夹的一端预留到盒盖附近以便与固定在盒盖上的 CPX 连接。3.3 核心元件固定如何将 CPX 和电池盒稳固地安装在塑料盒盖上是需要一点巧思的。确定位置将午餐盒盖平放内侧朝上。把 CPX 放在中心或你觉得美观的位置。确保连接灯带和电池盒的线缆能够到且盒盖合上时不会挤压到任何元件。固定 CPX首选蓝丁胶Mounting Tack。这是一种可重复使用的软质粘合剂无残留非常适合这种非永久性项目。取一小块蓝丁胶揉成球压在 CPX 板背面然后将其按在盒盖内侧。非常牢固且日后可以无损取下。备选双面泡沫胶。粘性更强但拆除时可能留胶。可以在泡沫胶和 CPX 之间先贴一层美纹纸胶带降低残留风险。绝对避免使用热熔胶或强力胶直接粘在电路板元件上以免损坏或难以维修。固定电池盒同样使用蓝丁胶将电池盒固定在 CPX 旁边。务必确保电池盒的开关朝外便于操作。可以用一小块蓝丁胶垫高开关附近防止误触。理线用一小段扎线带或可撕式魔术贴扎带将 CPX 与电池盒之间的 JST 线缆以及连接灯带的几根鳄鱼夹线缆整理捆扎避免它们散落晃动影响盒盖开合。完成以上步骤后硬件部分就准备就绪了。合上盒盖摇晃一下听听有没有零件松动的声音检查开合是否顺畅。接下来我们将赋予它“灵魂”——程序。4. MakeCode 图形化编程深度解析对于初学者或快速原型开发微软的 MakeCode 图形化编程环境是绝佳选择。我们将一步步拆解项目代码并理解每一个积木块背后的逻辑。4.1 开发环境初始化与板卡设置首先我们需要让电脑识别 CPX 并准备好编程环境。进入引导加载模式用 USB 线将 CPX 连接到电脑。快速双击板子上的RESET按钮。此时板子上的所有 NeoPixel LED 会变成红色然后其中一个会变成绿色并不断闪烁同时电脑上会出现一个名为CPLAYBOOT的U盘。这表示板子已进入等待加载固件的状态。下载 UF2 固件访问 Adafruit MakeCode 网站。网站通常会检测到你的板子型号并提示你下载一个.uf2格式的固件文件。将其下载到本地。刷入固件将下载好的.uf2文件直接拖拽或复制到刚才出现的CPLAYBOOT盘符中。复制完成后盘符会自动消失CPX 会重启此时它就准备好了运行 MakeCode 程序。打开编程编辑器刷新或重新打开 Adafruit MakeCode 网站你应该能看到一个虚拟的 CPX 模拟器出现在页面中这代表连接成功。4.2 程序结构从“上电初始化”到“事件响应”一个典型的 MakeCode 程序遵循“初始化 事件循环”的结构。我们来看项目代码是如何构建的。4.2.1 初始化阶段on start积木当 CPX 启动或复位时on start里的代码会执行一次。这里我们完成所有必要的设置。on start在这个块内部我们需要做两件关键事创建并配置 NeoPixel 灯带对象从“变量”类别中创建一个名为strip的变量。从“灯光”类别下的“NeoPixel”子类中拖出set strip to create strip at pin A1 with 30 leds积木。点击积木上的A1和30可以修改参数。这行代码的意思是在 A1 引脚上创建一个包含30颗LED的灯带对象并把这个对象赋值给变量strip来管理。为什么是 A1可以是 A1-A7 中的任何一个。选择 A1 只是习惯因为它位置方便。但要记住如果你用了某个引脚控制灯带这个引脚就不能再用于其他输入如按钮了除非程序逻辑允许。设置灯带亮度紧接着从“NeoPixel”类别拖出strip set brightness 255积木。将亮度值255改为一个较小的值例如50。如前所述这是为了控制电流保护电池。亮度50在室内环境下已经非常明亮。4.2.2 事件驱动on face up积木这是整个项目的逻辑核心。我们告诉 CPX“当你检测到自己正面朝上时就执行以下操作。”on face up在这个事件处理块内部我们放置了触发后要执行的一系列动作播放音效从“音乐”类别拖出play sound power up until done积木。这会在事件触发时播放一个内置的“能量提升”音效增加互动感。你可以从下拉菜单选择其他音效如giggle,jump up,magic wand等。控制灯带闪烁这是灯光效果的关键。我们不是简单地让灯亮起来而是要实现“闪烁”。这需要一个循环结构。从“循环”类别拖出repeat 4 times积木。在这个循环里我们需要实现“亮 - 灭 - 亮 - 灭 ...”的效果。因此在循环体内依次放入strip set all pixels to black熄灭pause 100 ms等待100毫秒strip set all pixels to blue点亮为蓝色颜色可自选pause 100 ms等待100毫秒这样循环执行4次就会产生4次闪烁灭-亮为一个周期。pause的时间控制了闪烁的频率100ms 是比较快的闪烁增加至200ms或500ms会得到不同的节奏感。4.2.3 扩展效果让板载 NeoPixel 也参与进来在灯带闪烁结束后我们可以让 CPX 板载的10颗 NeoPixel 也亮起来形成接力效果。在repeat循环块之后添加控制板载 LED 的代码。例如show animation sparkle for 500 ms让板载LED闪烁500毫秒或者set all pixels to purple将板载LED全部设为紫色。4.3 代码调试与烧录模拟测试MakeCode 编辑器的一大优势是模拟器。你可以在网页中直接点击模拟 CPX 上的“向上翻转”动作观察虚拟板子和右侧的代码执行效果包括声音和灯光变化。这能在不烧录真实硬件的情况下验证逻辑是否正确。下载代码点击编辑器左下角的粉色“下载”按钮会生成一个.uf2文件。烧录到硬件确保 CPX 通过 USB 连接电脑并处于CPLAYBOOT模式双击RESET。将下载的.uf2文件拖入 CPLAYBOOT 盘符。传输完成后程序会自动运行。实物测试现在拿起安装好 CPX 的午餐盒盖将其正面朝上模拟打开盒盖你应该会听到音效看到灯带闪烁随后板载LED也可能有反应。将其朝下模拟关闭盒盖动作停止。避坑指南程序不运行的常见原因没进入引导模式下载前务必双击RESET看到绿色闪烁灯和CPLAYBOOT盘符。引脚冲突检查程序里设置的 NeoPixel 引脚如A1是否与硬件连接一致。亮度太低如果设置了亮度但忘记改数值可能亮度为0导致灯不亮。检查set brightness块。电池电量不足NeoPixel 对电压敏感。如果电池旧了电压下降可能导致灯光异常或程序不稳定。换新电池或改用USB供电测试。事件没触发检查on face up积木是否正确放置。可以先用on shake事件测试摇晃板子看是否触发以排除加速度计硬件问题。5. “魔法”史莱姆制作工艺与科学电子部分完成后我们来制作项目的另一个主角——史莱姆。这不仅是为了美观更是一个有趣的化学与材料科学实践。5.1 材料与安全准备基础材料白胶推荐使用 Elmers 的透明或荧光 glitter 胶水如原项目的 Glowy Glitter Glue成品效果更佳。普通 PVA 白胶也可。激活剂核心材料。原项目使用 Elmers Magic Liquid一种预混合的硼砂溶液这是最安全、最易成功的选择。替代方案可以自制将1/2 茶匙硼砂粉末溶解在1 杯温水中完全溶解后冷却备用。注意硼砂不可食用制作过程需成人监督避免接触眼睛和口鼻制作后务必洗手。容器与工具搅拌碗、搅拌棒或一次性筷子、用于揉捏的盘子或硅胶垫、密封袋或密封盒。装饰物闪粉、小亮片、微型珠子、色素如需染色。确保装饰物边缘光滑无尖锐棱角。5.2 分步制作流程与原理混合胶水基底将整瓶约4-6盎司胶水倒入碗中。胶水中的聚乙烯醇PVA是形成聚合物网络的长链分子。缓慢加入激活剂这是成败关键。切勿一次性倒入全部激活剂先倒入约1 汤匙15ml的 Magic Liquid 或自制硼砂溶液。用工具或手指开始缓慢、充分地搅拌。你会看到混合物开始从液态向粘稠的、非牛顿流体状态转变。观察与调整继续少量、多次地加入激活剂每次加入后都充分揉捏。硼砂溶液中的硼酸根离子会与 PVA 分子链上的羟基发生交联反应形成三维网络结构从而将液体“锁住”形成具有弹性和粘性的凝胶——史莱姆。“三手”揉捏法当混合物开始成团但仍非常粘手时将其从碗中取出放在桌面或垫子上进行“揉面式”的揉捏。这个过程需要耐心持续5-10分钟。如果粘手可以在手上涂抹少量婴儿油或护手霜但不要直接加入史莱姆中。判断成品状态太粘说明交联不足需再滴入几滴激活剂继续揉捏。太硬、易断、缺乏延展性说明激活剂加多了交联过度。此时几乎无法挽回。这就是为什么强调要“少量多次”。补救方法是将其与另一团新的、较软的史莱姆混合揉捏或加入少量温水几滴尝试软化但效果有限。理想状态不粘手可以轻松拉伸很长不断缓慢流动捏起来有“嘎吱”声。5.3 导电史莱姆的特别配方进阶如果你想尝试让史莱姆具备导电性以实现电容触摸交互可以在第二步加入胶水后额外加入以下材料加入1-2 茶匙的食用盐与胶水充分混合。加入1-2 茶匙的清水帮助盐溶解。然后按照上述步骤缓慢加入激活剂。注意加入盐和水可能会改变最终成品的质地可能需要略微调整激活剂的用量。制作出的导电史莱姆电阻仍然较高主要用于电容感应绝不能用于连接电路、灯泡或电池。5.4 保存与维护制作好的史莱姆应存放在密封袋或密封盒中置于阴凉处。接触空气会使其水分蒸发逐渐变硬。如果变干可以尝试加入一滴温水密封揉捏可能恢复部分性能但效果有限。通常保质期为几周到一个月。6. 系统集成、测试与创意扩展现在我们将电子部分和手工部分组合起来并进行最终测试和优化。6.1 最终组装与布局放置史莱姆将制作好的史莱姆放入一个透明的、带盖的小容器中如小型果酱罐或特百惠盒。这既能展示史莱姆又能防止其粘得到处都是弄脏午餐盒和电子元件。整体布局将装有史莱姆的容器、以及其他你想放入的装饰物如小玩具、零食放入午餐盒内由隔断划分好的格子中。走线复查合上盒盖前最后检查一次灯带、CPX、电池盒之间的连线确保没有被挤压或拉扯的风险。线缆最好用扎带固定在盒盖内侧或盒体边缘。6.2 功能测试与校准运动触发测试反复开合盒盖观察灯光和音效触发是否灵敏、一致。有时加速度计的判断可能稍有延迟或过于灵敏。代码校准如果发现不触发或误触发可以回到 MakeCode 调整on face up事件的灵敏度。遗憾的是基础 MakeCode 块没有直接提供灵敏度设置。但我们可以通过逻辑优化防抖处理在on face up事件块内第一行先加一个pause 200 ms可以过滤掉一些轻微的、非故意的方向变化。使用“强度”判断更高级的方法是使用“输入”类别下的acceleration (mg) strength积木读取加速度的强度值然后通过if条件判断是否超过某个阈值来触发这样可控性更强。功耗评估用电池供电让项目连续触发几次感受一下电池的消耗速度。如果发现很快没电回头检查代码是否在非触发状态下有LED常亮是否可以将亮度再调低一些pause的时间是否可以缩短以减少亮灯总时长6.3 创意扩展思路基础项目完成后你可以尽情发挥创意改变触发条件将on face up改为on shake摇晃触发、on loud sound声音触发或on light dark光线变暗触发。丰富灯光效果MakeCode 的 NeoPixel 库提供了丰富的动画效果如彩虹渐变、颜色推移、追逐效果等。替换掉简单的闪烁循环让你的午餐盒光彩夺目。加入电容触摸交互用导线将 CPX 的电容触摸引脚如 A2引到午餐盒内壁的某个金属装饰或一块铝箔上。当你触摸这个区域时触发特殊的灯光模式。甚至可以将导线埋入导电史莱姆中触摸史莱姆来触发效果。多模式切换利用 CPX 板载的两个按钮编程实现模式切换。例如按A键切换为“彩虹模式”按B键切换为“呼吸灯模式”关闭再打开盒盖则执行当前模式的动画。主题化改造将午餐盒外观喷涂成你喜欢的主题如星空、海洋、机甲。制作不同颜色和内含物的史莱姆如夜光粉史莱姆在UV灯带下会发光。让整个项目成为一件独特的艺术品。这个项目从电路连接到代码编写从化学调配到结构组装完整地串联了多个学科的知识点。它最宝贵的价值不在于做出了一个多么复杂的装置而在于提供了一个可触摸、可互动、可失败的实践过程。当你看到自己编写的代码通过硬件呈现出炫目的光影当你亲手混合的材料从液体变成弹软的固体那种跨越虚拟与现实的创造快乐正是创客精神和 STEAM 教育的核心所在。希望你在复现和改造这个项目的过程中不仅能收获一个酷炫的发光午餐盒更能点燃对硬件编程和动手创造的长久兴趣。如果在制作中遇到任何问题回溯检查每个环节的连接与代码逻辑耐心调试你一定能让它成功运行起来。