1. 项目概述当折纸艺术遇见可编程灯光如果你对电子制作和编程感兴趣但又觉得Arduino、树莓派这些名词听起来有点“硬核”那么这个项目可能就是为你量身定做的。今天我们来动手制作一个发光莲花灯。它不仅仅是一个静态的装饰品更是一个融合了手工折纸、基础电子学和图形化编程的微型交互装置。整个项目的核心是一块名为Circuit Playground Express的开发板它集成了10颗可编程的RGB LED灯、运动传感器、声音传感器、按钮等几乎是一个“开箱即用”的微型交互平台。而我们将通过Microsoft MakeCode一种类似搭积木的图形化编程方式来赋予这朵莲花“生命”让它能响应你的触摸绽放出绚丽的色彩。这个项目完美诠释了“物理计算”的入门理念用代码去控制现实世界中的灯光、声音和动作。它不需要焊接不需要复杂的电路知识甚至不需要你认识一行代码。你只需要一把剪刀、一卷胶带、一些闪亮的材料以及一颗愿意尝试的心。无论是作为亲子STEM活动、学校创客课堂的案例还是一个成年人放松身心的创意手作它都能带来满满的成就感和直观的乐趣。接下来我将带你从零开始完整复现这朵会发光的电子莲花。2. 核心材料与工具选型解析工欲善其事必先利其器。选择合适的材料是项目成功和最终效果美观的第一步。原教程推荐的材料组合经过了实践检验但了解其背后的“为什么”能帮助你在没有完全相同的材料时做出聪明的替代选择。2.1 核心控制器为什么是Circuit Playground Express在众多微控制器中Circuit Playground Express后文简称CPX是这个项目的绝配原因有三高度集成免于焊接CPX板载了10颗NeoPixel RGB LED、1个运动传感器加速度计、1个温度传感器、1个光线传感器、1个声音传感器、1个迷你扬声器、2个按钮和1个滑动开关。这意味着要实现灯光控制和简单交互你不需要额外连接任何元器件直接用USB线供电和编程即可对初学者极其友好。多编程环境支持它原生支持Microsoft MakeCode图形化/JavaScript、CircuitPython基于Python的微控制器编程和Arduino IDE。对于本项目我们选择MakeCode因为它将复杂的逻辑封装成色彩鲜艳的积木块通过拖拽就能完成编程学习曲线几乎为零。坚固的封装与明确的接口板子周围有一圈大而结实的焊盘被称为“鳄鱼夹友好型”方便用夹子连接其他传感器。但对于本项目我们完全用不到这些它的坚固性保证了在手工组装过程中不易损坏。注意市场上还有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 模板解读与花瓣裁剪无论手工还是机器切割都需要先理解模板。模板通常包含三种图形大花瓣数量12片用于最外层塑造莲花绽放的形态。小花瓣数量12片用于内层让花朵层次更丰富。六边形基座数量2个这是整个花体的“骨架”。所有花瓣都将粘贴在它的六个边上。准备两个是为了制造前后夹层把CPX板稳固地“夹”在中间。花芯1个圆形或小绒球点缀中心。手工切割步骤与技巧打印与描摹将模板打印在普通A4纸上。用剪刀仔细沿边线剪下纸样。材料准备如果虹彩乙烯基带有保护膜先不要撕掉。将纸样放在乙烯基上用干擦记号笔沿着边缘轻轻描画。保护膜可以防止笔迹直接污染材料表面。精细裁剪沿着画线裁剪。技巧对于弧形花瓣剪刀保持连续、平滑的移动而不是一下下地“啃”这样边缘会更光滑。不必追求与画线分毫不差细微的手工差异会让花朵看起来更自然生动。数量清点裁剪完成后清点并分好类大花瓣12片、小花瓣12片、六边形2片、花芯1片可用黄色卡纸剪一个不规则圆形或使用小绒球。3.2 花瓣立体化处理与组装逻辑平面的花瓣如何变成立体的秘诀在于对折和粘贴。制作单瓣立体花瓣拿起一片花瓣沿着它的中心纵轴通常是模板设计好的折线轻轻对折但不要完全压平。让两半花瓣在底部重叠约3-5毫米形成一个有弧度的“V”形槽。用一小段透明胶带像创可贴一样缠绕粘贴这个重叠的底部。关键技巧胶带要同时粘住正反两面并且拉紧确保粘贴牢固。这是所有花瓣立体化的标准操作。分层组装逻辑这是让莲花层次分明的核心。第一层底层取第一个六边形基座和6片大花瓣。将六边形平放像钟表刻度一样在12点、2点、4点、6点、8点、10点方向即每隔一个边贴上3片花瓣。粘贴时花瓣的粘贴脚刚才用胶带缠好的部分对准六边形的边花瓣向外倾斜。然后再将剩下3片大花瓣贴在空余的边上。现在你得到了一个拥有6片大花瓣的底层。第二层中层取第二个六边形和6片小花瓣。重复上述步骤但有一个重要变化将花瓣粘贴的位置向六边形的中心靠拢一些。这样当两层叠加时内层花瓣就会自然地“躲”在外层花瓣的里面形成错落有致的层次感。第三层顶层使用剩余的6片小花瓣在第二个六边形已贴了6片小花瓣的上方再贴一圈。但这次是贴在已有的花瓣缝隙之间并且可以更向中心聚拢。或者你也可以选择再做第三个六边形基座来承载这最后6片花瓣这样结构更稳固。教程中是将所有花瓣共24片分在了两个基座上这就需要更精密的布局。整合与固定将做好的花芯黄色小圆片或绒球用一小圈双面胶或胶带固定在底层六边形的正中心。安装CPX板在底层六边形的背面没有花瓣的那一面中心贴上一圈厚厚的双面胶或一个胶带圈粘面朝外。将CPX板的背面即有电池接口和复位键的那面牢牢按在胶带上。务必注意让板子正面有LED灯和按钮的一面朝向花芯即朝外。连接两层将中层带小花瓣的六边形的背面也贴上胶带圈然后小心地对准底层CPX板的位置盖上去轻轻压紧。此时CPX板就被夹在了两个六边形基座之间非常稳固。USB线可以从花瓣的缝隙中穿出。最终调整轻轻拨动和调整每一片花瓣的角度和弯曲度让整朵莲花看起来饱满、自然灯光能从花瓣间隙均匀透出。4. MakeCode图形化编程实战这是项目的“大脑”部分。我们将使用MakeCode为CPX编写程序实现“上电即亮”和“按钮切换开关”的功能。整个过程就像在玩拼图。4.1 初始化项目与变量创建访问编辑器用浏览器打开https://makecode.adafruit.com/点击“新建项目”。认识工作区界面左侧是CPX的模拟器你可以实时看到代码效果。中间是积木工具箱按功能分类如输入、循环、逻辑等。右侧是编程工作区。创建变量我们需要一个“记忆单元”来记住灯是开还是关。点击“变量”分类然后“创建一个变量…”命名为灯光状态或lightOn。变量就像一个小盒子里面可以存放数字比如1代表开0代表关。设置初始状态从“循环”工具箱中拖出一个当启动时积木到工作区。然后从“变量”工具箱中拖出一个将 灯光状态 设为积木放入当启动时的框内。点击数字框将其设置为1。这意味着当CPX通电或复位时它会自动将“灯光状态”记为“开”。4.2 构建主循环与动画控制添加永恒循环工作区默认有一个无限循环积木。所有放在这个循环里的指令都会被一遍又一遍地重复执行。放入灯光动画点击“灯光”工具箱找到显示动画积木。它下面有一个下拉菜单里面有很多预置的动画效果如彩虹、彩虹循环、闪烁等。选择你喜欢的比如彩虹循环然后将其拖入无限循环的框内。用变量控制动画播放现在动画会一直播放。我们需要用“灯光状态”变量来控制它只有当变量为1开时才播放。从“逻辑”工具箱中拖出一个如果为 true 则积木放入无限循环并套在显示动画积木的外面。设置判断条件点击“逻辑”工具箱找到一个0 0形状的积木这是一个比较条件积木。将它拖出来替换掉如果为后面的true。连接变量与条件点击“变量”工具箱将灯光状态这个变量积木拖出来替换掉条件积木中左边的0。然后将右边的0改为1。现在这个条件就变成了如果 灯光状态 1 则。只有满足这个条件彩虹动画才会执行。4.3 实现按钮交互逻辑添加按钮事件监听从“输入”工具箱中拖出一个当 按钮 A 被点击积木到工作区。这意味着当CPX上的A按钮被按下时会触发这个积木里面的所有动作。构建切换逻辑我们需要实现“按一下开再按一下关”的切换功能。这需要用到“如果…否则…”的逻辑。从“逻辑”工具箱拖出一个如果为 true 则 否则积木放入当 按钮 A 被点击的框内。填充“关灯”分支在如果为后面放入和主循环里一样的条件判断积木灯光状态 1。然后在“则”下面的区域放入设置所有像素颜色为积木在“灯光”工具箱并将颜色选为黑色RGB均为0。这会让所有LED立刻熄灭。放入将 灯光状态 设为 0积木。这表示将状态标记为“关”。填充“开灯”分支在“否则”下面的区域只需要放入将 灯光状态 设为 1积木。因为主循环一直在检测这个变量一旦它变为1彩虹动画就会立刻开始播放。模拟测试现在点击左侧模拟器上的“A按钮”。第一次点击模拟器上的LED灯应熄灭第二次点击彩虹动画应恢复。这表明你的切换逻辑是正确的。4.4 效果微调亮度与速度预置的动画可能太亮或太快。我们可以轻松调整。调节亮度在“灯光”工具箱找到设置亮度为积木将它拖到无限循环内放在如果积木块的前面或后面放在外面表示始终生效。拖动滑块亮度值范围是0-255。建议从100左右开始尝试找到既能看清色彩又不刺眼的亮度。调节动画速度动画速度是由每帧之间的延迟决定的。从“循环”工具箱找到暂停(ms) 100积木将它拖到显示动画积木的下面仍在循环内。增加毫秒数如200ms会使动画变慢减少则变快。你可以通过模拟器实时观察调整效果。4.5 代码下载与烧录这是将虚拟代码写入实体硬件的一步。连接硬件用USB线将CPX连接到电脑。此时CPX可能会亮起一些默认灯光。进入引导加载模式找到CPX板上的复位按钮一个小圆点。按一次。此时板子上的所有LED会变成绿色呼吸灯效果并且你的电脑会识别到一个名为CPLAYBOOT的可移动磁盘。关键点如果电脑显示的是一个叫CIRCUITPY的磁盘说明板子处于CircuitPython模式。你需要快速双击复位按钮直到它变成CPLAYBOOT模式为止。MakeCode程序必须下载到CPLAYBOOT磁盘才能运行。下载与拖拽在MakeCode编辑器页面点击底部紫色的“下载”按钮。这会将你的程序下载为一个.uf2格式的文件。找到这个文件通常在“下载”文件夹然后像复制普通文件一样将它拖拽或复制粘贴到刚刚出现的CPLAYBOOT磁盘里。自动运行复制完成后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 项目优化心得结构稳固性只用胶带粘贴花瓣根部可能在大尺寸或经常移动时松动。可以在六边形基片内部粘贴花瓣的位置用热熔胶或强力手工白胶加固一下但要注意胶量避免渗透到表面影响美观。光线扩散如果觉得LED点状光源太明显可以在CPX的灯珠上贴一小层白色磨砂胶带或覆盖一层薄薄的白色油泥。这能有效将点光源扩散成面光源让花瓣发光更均匀柔和。无线化改造想让莲花灯摆脱电线可以购买一个USB移动电源充电宝和一根短的Micro-USB线将它们一起藏在莲花底座下方或一个配套的小盒子里实现完全无线摆放。5.3 创意扩展方向掌握了基础之后你可以尽情发挥创意变换触发方式在MakeCode的“输入”积木中将按钮A替换成当声音响度 100拍手控制、当光线变暗环境光控制、当被晃动动作控制。你的莲花就可以变成声控灯、光感小夜灯或摇摇灯。自定义灯光模式不要局限于预设动画。使用显示颜色积木和暂停积木可以自己编排简单的颜色序列。例如创建一个缓慢呼吸的暖白色灯光或者红黄交替闪烁的节日模式。多板联动与复杂结构如果你有多个CPX可以为每朵莲花编程不同的灯光模式组合成一个莲花灯组。或者挑战更复杂的折纸结构将CPX嵌入其中。引入CircuitPython当你对图形化编程熟悉后可以尝试切换到CircuitPython模式。用文本代码编程能实现更复杂的效果比如让灯光颜色随温度变化或者播放简单的旋律。这个项目最迷人的地方在于它用一个下午的时间就让你亲手搭建了一个跨越数字与物理世界的桥梁。从一张闪亮的塑料片到一朵响应你触摸的发光之花整个过程充满了直观的反馈和创造的快乐。它清晰地展示了现代电子制作和编程入门可以如此平易近人且充满美感。希望这朵你亲手制作的电子莲花不仅能照亮你的桌面也能点亮你探索更多创造可能性的兴趣。
用Circuit Playground Express与MakeCode制作交互式发光莲花灯
1. 项目概述当折纸艺术遇见可编程灯光如果你对电子制作和编程感兴趣但又觉得Arduino、树莓派这些名词听起来有点“硬核”那么这个项目可能就是为你量身定做的。今天我们来动手制作一个发光莲花灯。它不仅仅是一个静态的装饰品更是一个融合了手工折纸、基础电子学和图形化编程的微型交互装置。整个项目的核心是一块名为Circuit Playground Express的开发板它集成了10颗可编程的RGB LED灯、运动传感器、声音传感器、按钮等几乎是一个“开箱即用”的微型交互平台。而我们将通过Microsoft MakeCode一种类似搭积木的图形化编程方式来赋予这朵莲花“生命”让它能响应你的触摸绽放出绚丽的色彩。这个项目完美诠释了“物理计算”的入门理念用代码去控制现实世界中的灯光、声音和动作。它不需要焊接不需要复杂的电路知识甚至不需要你认识一行代码。你只需要一把剪刀、一卷胶带、一些闪亮的材料以及一颗愿意尝试的心。无论是作为亲子STEM活动、学校创客课堂的案例还是一个成年人放松身心的创意手作它都能带来满满的成就感和直观的乐趣。接下来我将带你从零开始完整复现这朵会发光的电子莲花。2. 核心材料与工具选型解析工欲善其事必先利其器。选择合适的材料是项目成功和最终效果美观的第一步。原教程推荐的材料组合经过了实践检验但了解其背后的“为什么”能帮助你在没有完全相同的材料时做出聪明的替代选择。2.1 核心控制器为什么是Circuit Playground Express在众多微控制器中Circuit Playground Express后文简称CPX是这个项目的绝配原因有三高度集成免于焊接CPX板载了10颗NeoPixel RGB LED、1个运动传感器加速度计、1个温度传感器、1个光线传感器、1个声音传感器、1个迷你扬声器、2个按钮和1个滑动开关。这意味着要实现灯光控制和简单交互你不需要额外连接任何元器件直接用USB线供电和编程即可对初学者极其友好。多编程环境支持它原生支持Microsoft MakeCode图形化/JavaScript、CircuitPython基于Python的微控制器编程和Arduino IDE。对于本项目我们选择MakeCode因为它将复杂的逻辑封装成色彩鲜艳的积木块通过拖拽就能完成编程学习曲线几乎为零。坚固的封装与明确的接口板子周围有一圈大而结实的焊盘被称为“鳄鱼夹友好型”方便用夹子连接其他传感器。但对于本项目我们完全用不到这些它的坚固性保证了在手工组装过程中不易损坏。注意市场上还有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 模板解读与花瓣裁剪无论手工还是机器切割都需要先理解模板。模板通常包含三种图形大花瓣数量12片用于最外层塑造莲花绽放的形态。小花瓣数量12片用于内层让花朵层次更丰富。六边形基座数量2个这是整个花体的“骨架”。所有花瓣都将粘贴在它的六个边上。准备两个是为了制造前后夹层把CPX板稳固地“夹”在中间。花芯1个圆形或小绒球点缀中心。手工切割步骤与技巧打印与描摹将模板打印在普通A4纸上。用剪刀仔细沿边线剪下纸样。材料准备如果虹彩乙烯基带有保护膜先不要撕掉。将纸样放在乙烯基上用干擦记号笔沿着边缘轻轻描画。保护膜可以防止笔迹直接污染材料表面。精细裁剪沿着画线裁剪。技巧对于弧形花瓣剪刀保持连续、平滑的移动而不是一下下地“啃”这样边缘会更光滑。不必追求与画线分毫不差细微的手工差异会让花朵看起来更自然生动。数量清点裁剪完成后清点并分好类大花瓣12片、小花瓣12片、六边形2片、花芯1片可用黄色卡纸剪一个不规则圆形或使用小绒球。3.2 花瓣立体化处理与组装逻辑平面的花瓣如何变成立体的秘诀在于对折和粘贴。制作单瓣立体花瓣拿起一片花瓣沿着它的中心纵轴通常是模板设计好的折线轻轻对折但不要完全压平。让两半花瓣在底部重叠约3-5毫米形成一个有弧度的“V”形槽。用一小段透明胶带像创可贴一样缠绕粘贴这个重叠的底部。关键技巧胶带要同时粘住正反两面并且拉紧确保粘贴牢固。这是所有花瓣立体化的标准操作。分层组装逻辑这是让莲花层次分明的核心。第一层底层取第一个六边形基座和6片大花瓣。将六边形平放像钟表刻度一样在12点、2点、4点、6点、8点、10点方向即每隔一个边贴上3片花瓣。粘贴时花瓣的粘贴脚刚才用胶带缠好的部分对准六边形的边花瓣向外倾斜。然后再将剩下3片大花瓣贴在空余的边上。现在你得到了一个拥有6片大花瓣的底层。第二层中层取第二个六边形和6片小花瓣。重复上述步骤但有一个重要变化将花瓣粘贴的位置向六边形的中心靠拢一些。这样当两层叠加时内层花瓣就会自然地“躲”在外层花瓣的里面形成错落有致的层次感。第三层顶层使用剩余的6片小花瓣在第二个六边形已贴了6片小花瓣的上方再贴一圈。但这次是贴在已有的花瓣缝隙之间并且可以更向中心聚拢。或者你也可以选择再做第三个六边形基座来承载这最后6片花瓣这样结构更稳固。教程中是将所有花瓣共24片分在了两个基座上这就需要更精密的布局。整合与固定将做好的花芯黄色小圆片或绒球用一小圈双面胶或胶带固定在底层六边形的正中心。安装CPX板在底层六边形的背面没有花瓣的那一面中心贴上一圈厚厚的双面胶或一个胶带圈粘面朝外。将CPX板的背面即有电池接口和复位键的那面牢牢按在胶带上。务必注意让板子正面有LED灯和按钮的一面朝向花芯即朝外。连接两层将中层带小花瓣的六边形的背面也贴上胶带圈然后小心地对准底层CPX板的位置盖上去轻轻压紧。此时CPX板就被夹在了两个六边形基座之间非常稳固。USB线可以从花瓣的缝隙中穿出。最终调整轻轻拨动和调整每一片花瓣的角度和弯曲度让整朵莲花看起来饱满、自然灯光能从花瓣间隙均匀透出。4. MakeCode图形化编程实战这是项目的“大脑”部分。我们将使用MakeCode为CPX编写程序实现“上电即亮”和“按钮切换开关”的功能。整个过程就像在玩拼图。4.1 初始化项目与变量创建访问编辑器用浏览器打开https://makecode.adafruit.com/点击“新建项目”。认识工作区界面左侧是CPX的模拟器你可以实时看到代码效果。中间是积木工具箱按功能分类如输入、循环、逻辑等。右侧是编程工作区。创建变量我们需要一个“记忆单元”来记住灯是开还是关。点击“变量”分类然后“创建一个变量…”命名为灯光状态或lightOn。变量就像一个小盒子里面可以存放数字比如1代表开0代表关。设置初始状态从“循环”工具箱中拖出一个当启动时积木到工作区。然后从“变量”工具箱中拖出一个将 灯光状态 设为积木放入当启动时的框内。点击数字框将其设置为1。这意味着当CPX通电或复位时它会自动将“灯光状态”记为“开”。4.2 构建主循环与动画控制添加永恒循环工作区默认有一个无限循环积木。所有放在这个循环里的指令都会被一遍又一遍地重复执行。放入灯光动画点击“灯光”工具箱找到显示动画积木。它下面有一个下拉菜单里面有很多预置的动画效果如彩虹、彩虹循环、闪烁等。选择你喜欢的比如彩虹循环然后将其拖入无限循环的框内。用变量控制动画播放现在动画会一直播放。我们需要用“灯光状态”变量来控制它只有当变量为1开时才播放。从“逻辑”工具箱中拖出一个如果为 true 则积木放入无限循环并套在显示动画积木的外面。设置判断条件点击“逻辑”工具箱找到一个0 0形状的积木这是一个比较条件积木。将它拖出来替换掉如果为后面的true。连接变量与条件点击“变量”工具箱将灯光状态这个变量积木拖出来替换掉条件积木中左边的0。然后将右边的0改为1。现在这个条件就变成了如果 灯光状态 1 则。只有满足这个条件彩虹动画才会执行。4.3 实现按钮交互逻辑添加按钮事件监听从“输入”工具箱中拖出一个当 按钮 A 被点击积木到工作区。这意味着当CPX上的A按钮被按下时会触发这个积木里面的所有动作。构建切换逻辑我们需要实现“按一下开再按一下关”的切换功能。这需要用到“如果…否则…”的逻辑。从“逻辑”工具箱拖出一个如果为 true 则 否则积木放入当 按钮 A 被点击的框内。填充“关灯”分支在如果为后面放入和主循环里一样的条件判断积木灯光状态 1。然后在“则”下面的区域放入设置所有像素颜色为积木在“灯光”工具箱并将颜色选为黑色RGB均为0。这会让所有LED立刻熄灭。放入将 灯光状态 设为 0积木。这表示将状态标记为“关”。填充“开灯”分支在“否则”下面的区域只需要放入将 灯光状态 设为 1积木。因为主循环一直在检测这个变量一旦它变为1彩虹动画就会立刻开始播放。模拟测试现在点击左侧模拟器上的“A按钮”。第一次点击模拟器上的LED灯应熄灭第二次点击彩虹动画应恢复。这表明你的切换逻辑是正确的。4.4 效果微调亮度与速度预置的动画可能太亮或太快。我们可以轻松调整。调节亮度在“灯光”工具箱找到设置亮度为积木将它拖到无限循环内放在如果积木块的前面或后面放在外面表示始终生效。拖动滑块亮度值范围是0-255。建议从100左右开始尝试找到既能看清色彩又不刺眼的亮度。调节动画速度动画速度是由每帧之间的延迟决定的。从“循环”工具箱找到暂停(ms) 100积木将它拖到显示动画积木的下面仍在循环内。增加毫秒数如200ms会使动画变慢减少则变快。你可以通过模拟器实时观察调整效果。4.5 代码下载与烧录这是将虚拟代码写入实体硬件的一步。连接硬件用USB线将CPX连接到电脑。此时CPX可能会亮起一些默认灯光。进入引导加载模式找到CPX板上的复位按钮一个小圆点。按一次。此时板子上的所有LED会变成绿色呼吸灯效果并且你的电脑会识别到一个名为CPLAYBOOT的可移动磁盘。关键点如果电脑显示的是一个叫CIRCUITPY的磁盘说明板子处于CircuitPython模式。你需要快速双击复位按钮直到它变成CPLAYBOOT模式为止。MakeCode程序必须下载到CPLAYBOOT磁盘才能运行。下载与拖拽在MakeCode编辑器页面点击底部紫色的“下载”按钮。这会将你的程序下载为一个.uf2格式的文件。找到这个文件通常在“下载”文件夹然后像复制普通文件一样将它拖拽或复制粘贴到刚刚出现的CPLAYBOOT磁盘里。自动运行复制完成后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 项目优化心得结构稳固性只用胶带粘贴花瓣根部可能在大尺寸或经常移动时松动。可以在六边形基片内部粘贴花瓣的位置用热熔胶或强力手工白胶加固一下但要注意胶量避免渗透到表面影响美观。光线扩散如果觉得LED点状光源太明显可以在CPX的灯珠上贴一小层白色磨砂胶带或覆盖一层薄薄的白色油泥。这能有效将点光源扩散成面光源让花瓣发光更均匀柔和。无线化改造想让莲花灯摆脱电线可以购买一个USB移动电源充电宝和一根短的Micro-USB线将它们一起藏在莲花底座下方或一个配套的小盒子里实现完全无线摆放。5.3 创意扩展方向掌握了基础之后你可以尽情发挥创意变换触发方式在MakeCode的“输入”积木中将按钮A替换成当声音响度 100拍手控制、当光线变暗环境光控制、当被晃动动作控制。你的莲花就可以变成声控灯、光感小夜灯或摇摇灯。自定义灯光模式不要局限于预设动画。使用显示颜色积木和暂停积木可以自己编排简单的颜色序列。例如创建一个缓慢呼吸的暖白色灯光或者红黄交替闪烁的节日模式。多板联动与复杂结构如果你有多个CPX可以为每朵莲花编程不同的灯光模式组合成一个莲花灯组。或者挑战更复杂的折纸结构将CPX嵌入其中。引入CircuitPython当你对图形化编程熟悉后可以尝试切换到CircuitPython模式。用文本代码编程能实现更复杂的效果比如让灯光颜色随温度变化或者播放简单的旋律。这个项目最迷人的地方在于它用一个下午的时间就让你亲手搭建了一个跨越数字与物理世界的桥梁。从一张闪亮的塑料片到一朵响应你触摸的发光之花整个过程充满了直观的反馈和创造的快乐。它清晰地展示了现代电子制作和编程入门可以如此平易近人且充满美感。希望这朵你亲手制作的电子莲花不仅能照亮你的桌面也能点亮你探索更多创造可能性的兴趣。