在项目中添加闪光灯是一种使项目更具视觉吸引力的好方法,而WS2812B LED(有时称为NeoPixels)是实现此目的的好方法。
它们具有自己的微型通信协议,因此只需在微控制器上的单个引脚即可控制许多通信协议,并且还有一个方便的Pico MicroPython库可供控制。
首先,需要从hsmag.cc/PicoPython获取该库并将PY文件复制到Pico设备,可以通过在Thonny中打开文件并单击“另存为”,然后选择MicroPython设备并将其命名为ws2812b.py来执行此操作。
可以使用以下参数创建一个对象:LED数量,状态机ID和GPIO数量(按此顺序),因此,要在状态机0和GPIO 0上创建十个LED灯条,请使用:
pixels= ws2812b.ws2812b(10,0,0)
该对象有两种方法:show()将数据发送到测试条; set_pixel设置特定LED的颜色值。 参数为LED编号,红色,绿色,蓝色,颜色取值介于0到255之间。
在撰写本文时,在解释器中使用此库存在问题,但是最好从保存的文件中运行它,以确保一切正常运行, 使用以下命令创建一个文件并运行它:
因此,现在可以点亮一些LED。
WS2812B模块中还有一些其他方法,例如set_pixel_line_gradient()可为项目添加效果为了显示,可以将一串LED放到了用来酿造的玻璃瓶中,但是任何大的玻璃罐都可以用。 萤火虫被困在罐子中,从而产生灵感。 可以下载代码并运行它(位于上述存储库中的examples文件夹中),但是看一下它是如何工作的。 代码的第一部分设置了所有内容:
可以将numpix以及创建WS2812B对象的详细信息更改为适合您的设置的任何内容,颜色阵列保存你希望LED闪烁的不同颜色(红色,绿色,蓝色格式),可以添加或更改它们。
max_len和min_len变量控制每个指示灯闪烁的时间长度,它们没有任何单位(主循环的迭代除外),因此可能需要反复尝试才能获得满意的设置,剩下的代码实际上是使每个LED闪烁的工作:
闪烁的列表包含当前正在闪烁的每个LED的条目,它存储LED的位置颜色,闪光灯的长度,闪光灯的当前位置以及它变亮还是变暗。 这些最初是用随机数据播种的; 接着开始一个循环,不断更新显示内容。
这里的所有都是它的,可以调整此代码或创建自己的自定义显示。
网友评论