用Circuit Playground Express与MakeCode制作交互式发光莲花灯
2026/5/16 18:49:52 网站建设 项目流程

1. 项目概述:当折纸艺术遇见可编程灯光

如果你对电子制作和编程感兴趣,但又觉得Arduino、树莓派这些名词听起来有点“硬核”,那么这个项目可能就是为你量身定做的。今天,我们来动手制作一个发光莲花灯。它不仅仅是一个静态的装饰品,更是一个融合了手工折纸、基础电子学和图形化编程的微型交互装置。整个项目的核心,是一块名为Circuit Playground Express的开发板,它集成了10颗可编程的RGB LED灯、运动传感器、声音传感器、按钮等,几乎是一个“开箱即用”的微型交互平台。而我们将通过Microsoft MakeCode,一种类似搭积木的图形化编程方式,来赋予这朵莲花“生命”,让它能响应你的触摸,绽放出绚丽的色彩。

这个项目完美诠释了“物理计算”的入门理念:用代码去控制现实世界中的灯光、声音和动作。它不需要焊接,不需要复杂的电路知识,甚至不需要你认识一行代码。你只需要一把剪刀、一卷胶带、一些闪亮的材料,以及一颗愿意尝试的心。无论是作为亲子STEM活动、学校创客课堂的案例,还是一个成年人放松身心的创意手作,它都能带来满满的成就感和直观的乐趣。接下来,我将带你从零开始,完整复现这朵会发光的电子莲花。

2. 核心材料与工具选型解析

工欲善其事,必先利其器。选择合适的材料,是项目成功和最终效果美观的第一步。原教程推荐的材料组合经过了实践检验,但了解其背后的“为什么”,能帮助你在没有完全相同的材料时,做出聪明的替代选择。

2.1 核心控制器:为什么是Circuit Playground Express?

在众多微控制器中,Circuit Playground Express(后文简称CPX)是这个项目的绝配,原因有三:

  1. 高度集成,免于焊接:CPX板载了10颗NeoPixel RGB LED、1个运动传感器(加速度计)、1个温度传感器、1个光线传感器、1个声音传感器、1个迷你扬声器、2个按钮和1个滑动开关。这意味着,要实现灯光控制和简单交互,你不需要额外连接任何元器件,直接用USB线供电和编程即可,对初学者极其友好。
  2. 多编程环境支持:它原生支持Microsoft MakeCode(图形化/JavaScript)、CircuitPython(基于Python的微控制器编程)和Arduino IDE。对于本项目,我们选择MakeCode,因为它将复杂的逻辑封装成色彩鲜艳的积木块,通过拖拽就能完成编程,学习曲线几乎为零。
  3. 坚固的封装与明确的接口:板子周围有一圈大而结实的焊盘(被称为“鳄鱼夹友好型”),方便用夹子连接其他传感器。但对于本项目,我们完全用不到这些,它的坚固性保证了在手工组装过程中不易损坏。

注意:市场上还有Circuit Playground Classic等前代产品。请务必确认你拿到的是“Express”版本,因为只有它原生支持我们即将使用的MakeCode网页编程和拖拽下载功能。

2.2 发光载体材料:虹彩乙烯基的奥秘

花瓣材料选用透明虹彩乙烯基织物,这是一个关键且美妙的选择。

  • 透明度:这是首要条件。只有透明或半透明的材料,才能让CPX板载的LED灯光穿透出来,形成均匀、柔和的光晕效果。如果使用不透明材料,灯光会被完全挡住,失去“发光”的意义。
  • 虹彩效果:这种材料表面有特殊的涂层,能在不同角度和光线下折射出彩虹般变幻的色彩。当背后的RGB LED灯颜色变化时,虹彩效果会与灯光产生叠加,形成非常梦幻、有层次感的光影,远胜于普通彩色塑料或纸张。
  • 厚度与挺括度:0.4mm左右的厚度提供了足够的挺括度,使花瓣能够自立并保持立体形状,同时又不会太硬难以弯曲和粘贴。如果材料太薄(如普通塑料袋),花瓣会软塌无形;太厚则难以折叠和固定。

替代方案建议:如果找不到完全相同的材料,可以寻找任何透明或半透明的彩色塑料片,例如文具店卖的彩色透明文件夹、蛋糕包装盒上的透明彩色插片,甚至是一些较厚的糖纸。关键在于测试透光性——用手电筒照一下,看看光线是否能够柔和地透过。

2.3 其他材料与工具

  • 供电部分
    • USB数据线(Micro-B接口):用于连接电脑和CPX,进行编程和供电。
    • 5V 2A USB电源适配器:项目完成后,若想长期作为小夜灯或装饰灯使用,需要一个稳定的电源。CPX的LED全亮时功耗较高,建议使用额定电流2A或以上的适配器,以确保灯光亮度稳定,不会因供电不足而闪烁。
  • 组装工具
    • 透明胶带:建议使用窄幅的透明手工胶带或隐形胶带。它的粘性适中,透明度高,在花瓣连接处几乎隐形,不影响美观。避免使用双面胶,因为它一旦贴上难以调整,且厚度可能影响花瓣形态。
    • 剪刀:需要一把锋利的剪刀,用于精确裁剪花瓣形状。如果手工切割,刀口锋利与否直接决定了花瓣边缘是否光滑美观。
    • 记号笔:用于在乙烯基上描摹模板。务必使用干擦记号笔。因为乙烯基表面光滑,油性笔难以擦拭,而干擦笔的痕迹可以轻松擦掉,方便修改和保持材料清洁。
  • 可选升级工具:Cricut等智能切割机。如果你追求极致的精确和效率,或者需要批量制作,使用切割机是完美的选择。它能确保每一个花瓣形状、大小完全一致,成品看起来非常精致专业。教程中提到的将设计文件缩放至50%(花瓣宽度约2英寸),是为了让莲花尺寸与CPX板的大小比例更协调。

3. 莲花结构设计与手工制作详解

制作一朵立体的莲花,理解其结构层次是关键。我们的莲花将由内到外分为三层:花芯、内层花瓣和外层花瓣,共同固定住中心的CPX板。

3.1 模板解读与花瓣裁剪

无论手工还是机器切割,都需要先理解模板。模板通常包含三种图形:

  1. 大花瓣:数量12片,用于最外层,塑造莲花绽放的形态。
  2. 小花瓣:数量12片,用于内层,让花朵层次更丰富。
  3. 六边形基座:数量2个,这是整个花体的“骨架”。所有花瓣都将粘贴在它的六个边上。准备两个是为了制造前后夹层,把CPX板稳固地“夹”在中间。
  4. 花芯:1个,圆形或小绒球,点缀中心。

手工切割步骤与技巧:

  1. 打印与描摹:将模板打印在普通A4纸上。用剪刀仔细沿边线剪下纸样。
  2. 材料准备:如果虹彩乙烯基带有保护膜,先不要撕掉。将纸样放在乙烯基上,用干擦记号笔沿着边缘轻轻描画。保护膜可以防止笔迹直接污染材料表面。
  3. 精细裁剪:沿着画线裁剪。技巧:对于弧形花瓣,剪刀保持连续、平滑的移动,而不是一下下地“啃”,这样边缘会更光滑。不必追求与画线分毫不差,细微的手工差异会让花朵看起来更自然生动。
  4. 数量清点:裁剪完成后,清点并分好类:大花瓣12片、小花瓣12片、六边形2片、花芯1片(可用黄色卡纸剪一个不规则圆形或使用小绒球)。

3.2 花瓣立体化处理与组装逻辑

平面的花瓣如何变成立体的?秘诀在于对折和粘贴。

  1. 制作单瓣立体花瓣:拿起一片花瓣,沿着它的中心纵轴(通常是模板设计好的折线)轻轻对折,但不要完全压平。让两半花瓣在底部重叠约3-5毫米,形成一个有弧度的“V”形槽。用一小段透明胶带,像创可贴一样缠绕粘贴这个重叠的底部。关键技巧:胶带要同时粘住正反两面,并且拉紧,确保粘贴牢固。这是所有花瓣立体化的标准操作。
  2. 分层组装逻辑:这是让莲花层次分明的核心。
    • 第一层(底层):取第一个六边形基座和6片大花瓣。将六边形平放,像钟表刻度一样,在12点、2点、4点、6点、8点、10点方向(即每隔一个边)贴上3片花瓣。粘贴时,花瓣的粘贴脚(刚才用胶带缠好的部分)对准六边形的边,花瓣向外倾斜。然后再将剩下3片大花瓣贴在空余的边上。现在你得到了一个拥有6片大花瓣的底层。
    • 第二层(中层):取第二个六边形和6片小花瓣。重复上述步骤,但有一个重要变化:将花瓣粘贴的位置向六边形的中心靠拢一些。这样,当两层叠加时,内层花瓣就会自然地“躲”在外层花瓣的里面,形成错落有致的层次感。
    • 第三层(顶层):使用剩余的6片小花瓣,在第二个六边形(已贴了6片小花瓣)的上方再贴一圈。但这次是贴在已有的花瓣缝隙之间,并且可以更向中心聚拢。或者,你也可以选择再做第三个六边形基座来承载这最后6片花瓣,这样结构更稳固。教程中是将所有花瓣(共24片)分在了两个基座上,这就需要更精密的布局。
  3. 整合与固定
    • 将做好的花芯(黄色小圆片或绒球)用一小圈双面胶或胶带,固定在底层六边形的正中心。
    • 安装CPX板:在底层六边形的背面(没有花瓣的那一面)中心,贴上一圈厚厚的双面胶或一个胶带圈(粘面朝外)。将CPX板的背面(即有电池接口和复位键的那面)牢牢按在胶带上。务必注意:让板子正面(有LED灯和按钮的一面)朝向花芯,即朝外。
    • 连接两层:将中层(带小花瓣的六边形)的背面也贴上胶带圈,然后小心地对准底层CPX板的位置盖上去,轻轻压紧。此时,CPX板就被夹在了两个六边形基座之间,非常稳固。USB线可以从花瓣的缝隙中穿出。
    • 最终调整:轻轻拨动和调整每一片花瓣的角度和弯曲度,让整朵莲花看起来饱满、自然,灯光能从花瓣间隙均匀透出。

4. MakeCode图形化编程实战

这是项目的“大脑”部分。我们将使用MakeCode为CPX编写程序,实现“上电即亮”和“按钮切换开关”的功能。整个过程就像在玩拼图。

4.1 初始化项目与变量创建

  1. 访问编辑器:用浏览器打开https://makecode.adafruit.com/,点击“新建项目”。
  2. 认识工作区:界面左侧是CPX的模拟器,你可以实时看到代码效果。中间是积木工具箱,按功能分类(如输入、循环、逻辑等)。右侧是编程工作区
  3. 创建变量:我们需要一个“记忆单元”来记住灯是开还是关。点击“变量”分类,然后“创建一个变量…”,命名为灯光状态(或lightOn)。变量就像一个小盒子,里面可以存放数字(比如1代表开,0代表关)。
  4. 设置初始状态:从“循环”工具箱中,拖出一个当启动时积木到工作区。然后从“变量”工具箱中,拖出一个将 灯光状态 设为积木,放入当启动时的框内。点击数字框,将其设置为1。这意味着当CPX通电或复位时,它会自动将“灯光状态”记为“开”。

4.2 构建主循环与动画控制

  1. 添加永恒循环:工作区默认有一个无限循环积木。所有放在这个循环里的指令,都会被一遍又一遍地重复执行。
  2. 放入灯光动画:点击“灯光”工具箱,找到显示动画积木。它下面有一个下拉菜单,里面有很多预置的动画效果,如彩虹、彩虹循环、闪烁等。选择你喜欢的,比如彩虹循环,然后将其拖入无限循环的框内。
  3. 用变量控制动画播放:现在动画会一直播放。我们需要用“灯光状态”变量来控制它:只有当变量为1(开)时才播放。从“逻辑”工具箱中,拖出一个如果为 true 则积木,放入无限循环,并套在显示动画积木的外面。
  4. 设置判断条件:点击“逻辑”工具箱,找到一个0 = 0形状的积木(这是一个比较条件积木)。将它拖出来,替换掉如果为后面的true
  5. 连接变量与条件:点击“变量”工具箱,将灯光状态这个变量积木拖出来,替换掉条件积木中左边的0。然后将右边的0改为1。现在这个条件就变成了如果 灯光状态 = 1 则。只有满足这个条件,彩虹动画才会执行。

4.3 实现按钮交互逻辑

  1. 添加按钮事件监听:从“输入”工具箱中,拖出一个当 按钮 A 被点击积木到工作区。这意味着当CPX上的A按钮被按下时,会触发这个积木里面的所有动作。
  2. 构建切换逻辑:我们需要实现“按一下开,再按一下关”的切换功能。这需要用到“如果…否则…”的逻辑。从“逻辑”工具箱拖出一个如果为 true 则 否则积木,放入当 按钮 A 被点击的框内。
  3. 填充“关灯”分支:在如果为后面,放入和主循环里一样的条件判断积木:灯光状态 = 1。然后,在“则”下面的区域:
    • 放入设置所有像素颜色为积木(在“灯光”工具箱),并将颜色选为黑色(RGB均为0)。这会让所有LED立刻熄灭。
    • 放入将 灯光状态 设为 0积木。这表示将状态标记为“关”。
  4. 填充“开灯”分支:在“否则”下面的区域,只需要放入将 灯光状态 设为 1积木。因为主循环一直在检测这个变量,一旦它变为1,彩虹动画就会立刻开始播放。
  5. 模拟测试:现在,点击左侧模拟器上的“A按钮”。第一次点击,模拟器上的LED灯应熄灭;第二次点击,彩虹动画应恢复。这表明你的切换逻辑是正确的。

4.4 效果微调:亮度与速度

预置的动画可能太亮或太快。我们可以轻松调整。

  1. 调节亮度:在“灯光”工具箱找到设置亮度为积木,将它拖到无限循环内,放在如果积木块的前面或后面(放在外面表示始终生效)。拖动滑块,亮度值范围是0-255。建议从100左右开始尝试,找到既能看清色彩又不刺眼的亮度。
  2. 调节动画速度:动画速度是由每帧之间的延迟决定的。从“循环”工具箱找到暂停(ms) 100积木,将它拖到显示动画积木的下面(仍在循环内)。增加毫秒数(如200ms)会使动画变慢,减少则变快。你可以通过模拟器实时观察调整效果。

4.5 代码下载与烧录

这是将虚拟代码写入实体硬件的一步。

  1. 连接硬件:用USB线将CPX连接到电脑。此时,CPX可能会亮起一些默认灯光。
  2. 进入引导加载模式:找到CPX板上的复位按钮(一个小圆点)。按一次。此时,板子上的所有LED会变成绿色呼吸灯效果,并且你的电脑会识别到一个名为CPLAYBOOT的可移动磁盘。关键点:如果电脑显示的是一个叫CIRCUITPY的磁盘,说明板子处于CircuitPython模式。你需要快速双击复位按钮,直到它变成CPLAYBOOT模式为止。MakeCode程序必须下载到CPLAYBOOT磁盘才能运行。
  3. 下载与拖拽:在MakeCode编辑器页面,点击底部紫色的“下载”按钮。这会将你的程序下载为一个.uf2格式的文件。找到这个文件(通常在“下载”文件夹),然后像复制普通文件一样,将它拖拽或复制粘贴到刚刚出现的CPLAYBOOT磁盘里。
  4. 自动运行:复制完成后,CPX会自动重启。几秒钟后,你应该看到板子上的LED开始按照你编写的程序运行彩虹动画!按下板载的A按钮,灯光应能自如开关。

5. 调试、优化与创意扩展

即使按照步骤操作,也可能遇到小问题。这里是一些常见情况的排查与解决思路。

5.1 常见问题与排查

问题现象可能原因解决方案
电脑无法识别CPLAYBOOT磁盘1. USB线或接口问题。
2. 进入引导模式失败。
1. 更换USB线或电脑USB口试试。
2. 确保是单机复位键进入绿灯呼吸模式。如果已是CIRCUITPY盘,则需双击复位键。
程序下载后无反应或灯光异常1. 程序未正确下载。
2. 代码逻辑有误。
3. 供电不足。
1. 确认文件被复制到CPLAYBOOT根目录,且磁盘随后消失(表示烧录成功)。
2. 回MakeCode模拟器逐步检查逻辑,特别是变量和条件判断。
3. 尝试连接电脑USB口或换用2A电源适配器供电。
按钮控制不灵敏或无效1. 程序中监听的是A按钮,但按成了B。
2. 花瓣组装太厚,按压不到按钮。
1. 检查代码中当按钮...被点击的积木,确认是A按钮。
2. 组装时确保CPX的按钮正对花芯中心,按压花芯部位即可触发。可适当减少花芯厚度。
灯光亮度不足或颜色奇怪1. 花瓣材料透光性差。
2. 程序中亮度设置过低。
3. LED个别损坏(罕见)。
1. 更换更透明的材料,或减少花瓣层数。
2. 在MakeCode中调高设置亮度的值。
3. 在MakeCode中测试设置所有像素颜色为 红色,看是否所有灯都亮红色。

5.2 项目优化心得

  1. 结构稳固性:只用胶带粘贴花瓣根部可能在大尺寸或经常移动时松动。可以在六边形基片内部(粘贴花瓣的位置)用热熔胶或强力手工白胶加固一下,但要注意胶量,避免渗透到表面影响美观。
  2. 光线扩散:如果觉得LED点状光源太明显,可以在CPX的灯珠上贴一小层白色磨砂胶带或覆盖一层薄薄的白色油泥。这能有效将点光源扩散成面光源,让花瓣发光更均匀柔和。
  3. 无线化改造:想让莲花灯摆脱电线?可以购买一个USB移动电源(充电宝)和一根短的Micro-USB线,将它们一起藏在莲花底座下方或一个配套的小盒子里,实现完全无线摆放。

5.3 创意扩展方向

掌握了基础之后,你可以尽情发挥创意:

  1. 变换触发方式:在MakeCode的“输入”积木中,将按钮A替换成当声音响度 > 100(拍手控制)、当光线变暗(环境光控制)、当被晃动(动作控制)。你的莲花就可以变成声控灯、光感小夜灯或摇摇灯。
  2. 自定义灯光模式:不要局限于预设动画。使用显示颜色积木和暂停积木,可以自己编排简单的颜色序列。例如,创建一个缓慢呼吸的暖白色灯光,或者红黄交替闪烁的节日模式。
  3. 多板联动与复杂结构:如果你有多个CPX,可以为每朵莲花编程不同的灯光模式,组合成一个莲花灯组。或者挑战更复杂的折纸结构,将CPX嵌入其中。
  4. 引入CircuitPython:当你对图形化编程熟悉后,可以尝试切换到CircuitPython模式。用文本代码编程能实现更复杂的效果,比如让灯光颜色随温度变化,或者播放简单的旋律。

这个项目最迷人的地方在于,它用一个下午的时间,就让你亲手搭建了一个跨越数字与物理世界的桥梁。从一张闪亮的塑料片到一朵响应你触摸的发光之花,整个过程充满了直观的反馈和创造的快乐。它清晰地展示了,现代电子制作和编程入门,可以如此平易近人且充满美感。希望这朵你亲手制作的电子莲花,不仅能照亮你的桌面,也能点亮你探索更多创造可能性的兴趣。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询