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)