neopixel — sterowanie diodami LED WS2812 / NeoPixel¶
Ten moduł udostępnia sterownik dla taśm LED WS2812 / NeoPixel. Sterownik korzysta z machine.bitstream() do generowania precyzyjnie taktowanego sygnału oczekiwanego przez diody, dzięki czemu działa na każdym porcie, którego moduł machine implementuje bitstream.
Aplikacja ustawia dane pikseli poprzez przypisanie elementu lub NeoPixel.fill(), a następnie wywołuje NeoPixel.write(), aby zaktualizować taśmę. Każdy piksel jest reprezentowany jako krotka RGB lub RGBW w kolejności akceptowanej przez użytkownika; sterownik obsługuje wewnętrznie kolejność przewodową GRB(W).
Przykład:
import machine
import neopixel
# 32 LED strip connected to pin P7.
n = neopixel.NeoPixel(machine.Pin("P7"), 32)
# Draw a red gradient.
for i in range(32):
n[i] = (i * 8, 0, 0)
# Update the strip.
n.write()
class NeoPixel¶
- class neopixel.NeoPixel(pin: 'machine.Pin', n: int, bpp: int = 3, timing: int | tuple[int, int, int, int] = 1)¶
Tworzy obiekt
NeoPixeldla taśmy diod LED podłączonej do pin.pin to instancja
machine.Pin; konstruktor przekonfiguruje go jako wyjście.n to liczba diod LED w taśmie.
bpp to liczba bajtów na piksel:
3dla diod RGB (takich jak WS2812) i4dla diod RGBW (takich jak SK6812-RGBW).timing wybiera taktowanie bitów.
0wybiera wolne taktowanie 400 kHz,1wybiera standardowe taktowanie 800 kHz używane przez większość nowoczesnych taśm. Zamiast tego można przekazać 4-elementową krotkę(high_0, low_0, high_1, low_1)z czasami trwania w nanosekundach, w formie akceptowanej przezmachine.bitstream().
- ORDER: tuple[int, int, int, int]¶
Atrybut klasy odwzorowujący kolejność kanałów widoczną dla użytkownika na kolejność przewodową. Domyślnie
(1, 0, 2, 3), tzn. dostarczane przez użytkownika krotki(R, G, B[, W])są przesyłane jakoG R B [W]. Podklasy mogą nadpisaćORDER, aby obsługiwać taśmy o innej kolejności przewodowej.
- fill(pixel: tuple[int, ...]) None¶
Ustawia każdy piksel w taśmie na pixel, krotkę RGB lub RGBW liczb całkowitych z zakresu
0-255.
- __setitem__(index: int, val: tuple[int, ...]) None¶
Ustawia piksel o indeksie index na val, krotkę RGB lub RGBW. Dane są jedynie buforowane; wywołaj
write(), aby przesłać je do taśmy.
- __getitem__(index: int) tuple[int, ...]¶
Zwraca piksel o indeksie index z lokalnego bufora jako krotkę RGB lub RGBW w kolejności kanałów widocznej dla użytkownika.
- write() None¶
Przesyła zbuforowane dane pikseli do taśmy za pomocą
machine.bitstream().