基于Pico和MicroPython点亮ws2812彩色灯带
Introduction
点亮发光的LED灯是简单有趣的实验,点亮多个ws2812
小灯串联起来的灯带,可对多个彩色小灯进行编程,从而实现各种有趣的显示效果。多个ws2812
使用串联的方式级联在一起,微控制器以发出长短脉冲的序列控制彩色小灯显示的颜色和亮度。
此处略过控制ws2812
发光的原理和控制方法,直接动手实验,讲述基于Pico
电路板和MicroPython
点亮ws2812
彩色灯带的学习、调试和操作过程。调试过程中,使用了来自电子森林的Step-Pico
电路板,同树莓派官方的RPI Pico
电路板兼容,但换用了Type-C
插座、新增了复位按键,以及4个ws2812
彩灯级联起来的灯带,实际使用起来更加方便。
Practice
在网上搜索到比较靠谱的关于使用MicroPython点亮ws2812彩灯的资料,大多来自于github上的micropythno-ws2812
项目:
- https://github.com/JanBednarik/micropython-ws2812
对于访问github不便的开发者,笔者在国内的gitee开源代码站点上做了个镜像(https://gitee.com/suyong_yq/micropython-ws2812),方便获取源码。如图x所示。
这个项目基于早期使用STM32
微控制器的pyb
电路板开发,估计也能兼容Pico板子上的MicroPython,其中提供了一些有趣的用例。按照说明,开发者需要先将ws2812.py
文件导入到MicroPython中,此处导入到Pico板子上的/lib
目录下。如图x所示。
然后,运行代码仓库提供的用例:
from ws2812 import WS2812
ring = WS2812(spi_bus=1, led_count=4)
data = [
(24, 0, 0),
(0, 24, 0),
(0, 0, 24),
(0, 0, 0),
]
ring