1. 文档中心
  2. 比卜创造 Micro:bit
  3. API 参考
  4. Neopixel

neopixel

neopixel 模块让你在 micro:bit 上使用 NeoPixel(WS2812)可单独寻址的 RGB 与 RGBW LED 灯带。使用前需单独导入:

import neopixel

NeoPixel 是可编程的多色 LED 灯带,本模块提供在 micro:bit 上连接并创作显示、艺术与游戏所需的全部能力。

要连接 NeoPixel 灯带,请按下图方式连接 micro:bit(以下假设从引脚 0 驱动像素——也可连接到引脚 1 和 2)。鳄鱼夹标签指示在 NeoPixel 灯带上的连接位置。部分 NeoPixel 变体上 VDD 引脚可能标为 V+ 或「+5V」——仅在没有其他 5 V 设备连接时才能安全使用该引脚。

NeoPixel 连接示意
NeoPixel 连接示意

类

NeoPixel(pin, n, bpp=3)

初始化由引脚 pin 控制的 n 颗 NeoPixel LED 灯带。为支持 RGBW NeoPixel,可向 NeoPixel 传入第三个参数 bpp(每像素字节数)。RGBW 为 4,RGB 与 GRB 默认为 3。

每个像素由位置寻址(从 0 开始)。NeoPixel 的颜色以 0–255 的 RGB(红、绿、蓝)/ RGBW(红、绿、蓝、白)元组给定。例如 RGB 下 (255,255,255) 为白色;RGBW 下 (255,255,255,0) 或 (0,0,0,255) 为白色。

clear()

清除所有像素。

show() / write()

显示像素。必须调用此方法,更新才会可见。write() 与 show() 等效。

fill(colour)

将所有像素设为给定 RGB/RGBW 颜色。colour 应为与每像素字节数(bpp)等长的元组,例如 fill((0,0,255))。需配合 show() 更新 NeoPixel。

操作

写入颜色不会立即更新显示(需用 show()):

np[0] = (255, 0, 128)  # 第一个元素
np[-1] = (0, 255, 0)   # 最后一个元素
np.show()              # 此时才会显示更新后的值

读取特定像素颜色只需索引:

print(np[0])

使用 NeoPixel

将 NeoPixel 当作元组列表使用。每个元组表示该像素 RGB / RGBW 颜色混合,各分量范围 0–255。

例如,在连接到 pin0 的 8 颗 RGB NeoPixel 灯带上初始化:

import neopixel
np = neopixel.NeoPixel(pin0, 8)

通过索引设置像素(类似 Python 列表)。例如将第一颗设为全亮红色:

np[0] = (255, 0, 0)

或将最后一颗设为紫色:

np[-1] = (255, 0, 255)

通过索引获取当前颜色。例如打印第一颗的 RGB 值:

print(np[0])

最后,调用 .show() 将新颜色数据推送到 NeoPixel 灯带:

np.show()

若没有任何变化,很可能是因为忘了这一步!