NeoPixl
neopixel模块可使用Neopixel(WS2812)(单独可寻址的RGB LED条带)与Microbit连接。注意使用该neopixel模块时,需要单独导入:
import neopixel
注意:
从我们的测试,Microbit Neopixel模块可以驱动高达约256个Neopixels。驱动这些neopixels,你可能会遇到奇怪的错误和问题。
NeoPixels是多色可编程LED。
类
初始化引脚pinN,通过引脚控制LED。每个像素都有一个地址(从0开始)。Neopixels被赋予0-255之间的RGB(红色,绿色,蓝色)值作为元组。例如,(255,255,255)是白色的。
clear()
清除所有的像素。
show()
显示像素。必须调用任何更新才能显示。
操作
编写颜色不会更新显示(需使用show()生效)。
np[0] = (255,0,128)#第一元件
np[-1] = (0,255,0)#最后一个元素
np.show()#仅显示更新的值
要读取特定像素的颜色,请参考:
print(np[0])
使用Neopixels
与Neopixels进行交互,就像它们是元组列表一样。每个元组表示特定像素的RGB(红色,绿色和蓝色)颜色混合。RGB值可以在0到255之间。
例如,在连接到pin0的条上初始化一条8个新像素,如下所示:
import neopixel
np = neopixel.NeoPixel(pin0, 8)
通过对它们进行索引来设置像素(像Python列表一样)。例如,要将第一个像素设置为全亮度红色,您可以使用:
np[0] = (255, 0, 0)
或者最后一个像素为紫色:
np[-1] = (255, 0, 255)
通过索引来获取像素的当前颜色值。例如,要打印第一个像素的RGB值,请使用:
print(np[0])
最后,要将新的颜色数据推送到Neopixel条,请使用.show()函数:
np.show()
如果没有发生任何事情,那可能是因为你忘记了最后一步!
注意:如果您在Neopixel条上看不到任何改变,请确保您show()至少在某处,否则您的更新将不会显示。
例子:
"""
neopixel_random.py
Repeatedly displays random colours onto the LED strip.
This example requires a strip of 8 Neopixels (WS2812) connected to pin0.
"""
from microbit import *
import neopixel
from random import randint
# Setup the Neopixel strip on pin0 with a length of 8 pixels
np = neopixel.NeoPixel(pin0, 8)
while True:
#Iterate over each LED in the strip
for pixel_id in range(0, len(np)):
red = randint(0, 60)
green = randint(0, 60)
blue = randint(0, 60)
# Assign the current LED a random red, green and blue value between 0 and 60
np[pixel_id] = (red, green, blue)
# Display the current pixel data on the Neopixel strip
np.show()
sleep(100)