neopixel — upravljanje WS2812 / NeoPixel LED diodama

Ovaj modul pruža upravljački program za trake WS2812 / NeoPixel LED dioda. Upravljački program oslanja se na machine.bitstream() za generiranje precizno tempiranog signala koji LED diode očekuju, pa radi na svakom portu čiji modul machine implementira bitstream.

Aplikacija postavlja podatke o pikselima dodjelom stavki ili pomoću NeoPixel.fill(), a zatim poziva NeoPixel.write() za ažuriranje trake. Svaki piksel izložen je kao RGB ili RGBW n-torka u redoslijedu koji prihvaća korisnik; upravljački program interno obrađuje GRB(W) redoslijed na žici.

Primjer:

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)

Konstruira objekt NeoPixel za traku LED dioda spojenih na pin.

  • pin je instanca machine.Pin; konstruktor će je rekonfigurirati kao izlaz.

  • n je broj LED dioda u traci.

  • bpp je broj bajtova po pikselu: 3 za RGB LED diode (poput WS2812) i 4 za RGBW LED diode (poput SK6812-RGBW).

  • timing odabire tempiranje bitova. 0 odabire sporo tempiranje od 400 kHz, 1 odabire standardno tempiranje od 800 kHz koje koristi većina modernih traka. Umjesto toga može se proslijediti 4-torka (high_0, low_0, high_1, low_1) trajanja u nanosekundama, u obliku koji prihvaća machine.bitstream().

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

Atribut klase koji preslikava redoslijed kanala vidljiv korisniku u redoslijed na žici. Zadano je (1, 0, 2, 3), tj. korisnički zadane n-torke (R, G, B[, W]) prenose se kao G R B [W]. Podklase mogu nadjačati ORDER kako bi podržale trake s drugačijim redoslijedom na žici.

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

Postavlja svaki piksel u traci na pixel, RGB ili RGBW n-torku cijelih brojeva u rasponu 0-255.

__len__() int

Vraća broj LED dioda u traci.

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

Postavlja piksel na poziciji index na val, RGB ili RGBW n-torku. Podaci se samo međuspremaju; pozovite write() za njihovo slanje na traku.

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

Vraća piksel na poziciji index iz lokalnog međuspremnika kao RGB ili RGBW n-torku u redoslijedu kanala vidljivom korisniku.

write() None

Prenosi međuspremljene podatke o pikselima na traku pomoću machine.bitstream().