设计一个颜色可调的Minecraft灯笼
扫描二维码
随时随地手机看文章
对于这个万圣节,我在一个有趣而简单的万圣节项目中融合了Minecraft的创意块状世界和彩色RGB led的幽灵般的光芒。“颜色可调的我的世界灯笼”是一个重建视频游戏《我的世界》中标志性灯笼的项目。它允许用户将光的颜色更改为任何色调,而不是仅限于标准的黄色或橙色。
组件的要求
对于这个项目,我们需要:
•1 x Arduino Nano
•2 x WS2812B 16 led新像素环
•4 x 10kΩ旋转电位器
•强烈建议使用1 x 1000µF电容器来平滑电压尖峰和下降
•1 x 100Ω串联在数据线上的电阻,以限制电流和抑制信号反射
•1 * SPST交换机
•1个18650电池和支架
•1个TP4056电池充电模块
•1 x dc - dc降压转换器
•跳线和面包板
•以及用于打印所述外壳的3D打印机
接线图
该装置由三个简单的电路组成:首先是电源电路:一个为Arduino Nano2充电和运行的电池。其次,控制电路:电位器向Arduino3馈送信号。第三,照明电路:NeoPixels,它根据从Arduino接收到的指令发光:Arduino通过模拟引脚读取电位器,产生从0到1023的值。然后将此范围映射为0-255以符合Arduino库。转换后的信号依次发送到led,从第一个到最后一个点亮它们。信号完整性需要两个关键组件:最靠近负载的1000µF电容器以稳定电压,以及数据线上的100Ω电阻,以防止电流浪涌并抑制信号噪声。一般来说,大写代表三种情况。提供一个电流储存器以保持电压稳定,旁路噪声到地,并在阻挡直流的同时传递交流信号。第三个词在这种情况下没有用,但另外两个有用。较高的电帽用作储层(即1000uf),较低的电帽用于旁路噪声(0.1uF, 1uF)。根据经验,封顶应该放在靠近问题发生的地方[]
代码
代码首先包含Adafruit NeoPixel库,并定义必要的引脚和全局变量。在setup()部分中,我们初始化NeoPixel库,并立即在整个LED环上运行彩虹循环以确认其工作。loop()部分连续读取电位器值,将其从0-1023范围映射到0-255。你会注意到我注释掉了亮度控制部分。这是因为,在我的测试过程中,我发现NeoPixel库的亮度设置按比例缩放了所有RGB值,这大大改变了led的感知颜色和强度。色觉:较低的亮度会使颜色看起来与预期的不同功耗:较低的亮度=使用的更少的功率产生热量:较低的亮度减少热量眼睛舒适:非常明亮的新像素可能看起来不舒服最后,代码使用映射的电位器值来设置像素颜色并更新LED显示屏。这在电位器和LED输出之间创建了直接的实时控制。
试验板测试
在将所有内容放入机箱之前,我将它们连接到面包板上以测试代码。当我打开电源时,你可以看到NeoPixel环播放一个小彩虹动画,然后它们就准备好了。现在,当我转动这些旋钮,当Arduino读取电位器值并实时更新led时,颜色会平滑地变化。
三维设计
我在微软3D Builder中为这个项目设计了一个定制的6部分外壳。你可以从我的GitHub仓库下载STL文件,并从PCBWay专业打印它们。该组件包括:1。电池、Arduino和电池充电器等主要组件的底座。用于固定充电模块的TP4056塞子。四个支架安装开关和电位器。四块有机玻璃面板可以分散LED灯并隐藏电子设备。两个支架盖遮住侧面。在完成设计后,我继续3D打印组装所需的所有组件。这些都是我组装最终单元所需的定制组件。
组装
打印完所有的3D模型后,我开始组装电子元件。我将导线焊接到每个电位器和SPST开关上,然后将它们安装到指定的支架上。每个电位器都是通过拧紧螺丝来固定的,电线穿过支架侧面的一个小孔。同样,将开关压入其孔中,其导线通过相应的导线通道馈送。接下来,我专注于电路的电池充电部分。我将电池焊接到TP4056充电模块的B+和B-端口上。用蓝色导线将TP4056的OUT-连接到降压转换器的VIN-,而SPST开关则连接到控制OUT+和VIN+端子之间的连接。一旦这些连接完成,我将电源组件安装到设备的底座上。TP4056模块是安全的超级胶塞后,它滑到适当的地方,我也超级胶合的立场持有开关到基地。对于控制系统,我将Arduino的所有必要组件焊接到一个perfboard上。虽然设置可能看起来很乱,但最终组装将是完全封闭的。然后我用热熔胶把两个NeoPixel环粘在位置上,第一个粘在底部,第二个粘在顶部。后超胶第二站我隐藏了电子超胶“侧盖”到它。
在安装有机玻璃面板之前,我用黑色丙烯酸颜料涂上了灯笼的主体。在油漆干了之后,我插入了有机玻璃面板,并用超级胶粘住了顶部,完成了建造。
演示
这就是我的最终设置。这是创建交互式项目的一种经典方法,您可以通过旋转旋钮来改变灯光的行为。微控制器读取电位器的位置,将其转换为一个值,然后使用该值来改变有关新像素的某些东西(例如,亮度,颜色或速度)。这个项目鼓励孩子们尝试原色,看看他们能创造出什么样的新色调。
本文编译自hackster.io





