neopixel — WS2812 / NeoPixel LED-ek vezérlése

Ez a modul illesztőprogramot biztosít WS2812 / NeoPixel LED-szalagokhoz. Az illesztőprogram a machine.bitstream() függvényre támaszkodik, hogy létrehozza a LED-ek által elvárt, pontosan időzített jelet, így minden olyan porton működik, amelynek machine modulja megvalósítja a bitstream függvényt.

Az alkalmazás elemhozzárendeléssel vagy a NeoPixel.fill() metódussal állítja be a képpontadatokat, majd a NeoPixel.write() hívásával frissíti a szalagot. Minden képpont egy RGB vagy RGBW rendezett n-esként jelenik meg a felhasználó által elfogadott sorrendben; a GRB(W) vezetékes sorrendet az illesztőprogram belsőleg kezeli.

Példa:

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)

Egy NeoPixel objektum létrehozása a pin lábra csatlakoztatott LED-szalaghoz.

  • A pin egy machine.Pin példány; a konstruktor kimenetként konfigurálja át.

  • Az n a szalagban lévő LED-ek száma.

  • A bpp a képpontonkénti bájtok száma: 3 az RGB LED-ekhez (mint a WS2812) és 4 az RGBW LED-ekhez (mint az SK6812-RGBW).

  • A timing választja ki a bitidőzítést. A 0 a lassú 400 kHz-es időzítést, az 1 a legtöbb modern szalag által használt szabványos 800 kHz-es időzítést választja. Ehelyett átadható egy (high_0, low_0, high_1, low_1) négyelemű, nanoszekundumos időtartamokat tartalmazó rendezett n-es is, a machine.bitstream() által elfogadott formában.

ORDER: tuple[int, int, int, int]

Osztályattribútum, amely a felhasználó felé mutató csatornasorrendet a vezetékes sorrendre képezi le. Alapértelmezett értéke (1, 0, 2, 3), azaz a felhasználó által megadott (R, G, B[, W]) rendezett n-esek G R B [W] sorrendben kerülnek átvitelre. Az alegységek felülírhatják az ORDER attribútumot az eltérő vezetékes sorrendű szalagok támogatásához.

fill(pixel: tuple[int, ...]) None

A szalag minden képpontját pixel értékre állítja, amely egy 0-255 tartományba eső egészekből álló RGB vagy RGBW rendezett n-es.

__len__() int

Visszaadja a szalagban lévő LED-ek számát.

__setitem__(index: int, val: tuple[int, ...]) None

Az index helyén lévő képpontot val értékre állítja, amely egy RGB vagy RGBW rendezett n-es. Az adat csak pufferelődik; hívd meg a write() metódust, hogy a szalagra kerüljön.

__getitem__(index: int) tuple[int, ...]

Visszaadja az index helyén lévő képpontot a helyi pufferből, RGB vagy RGBW rendezett n-esként, a felhasználó felé mutató csatornasorrendben.

write() None

A pufferelt képpontadatokat a machine.bitstream() segítségével továbbítja a szalagnak.