neopixel — WS2812 / NeoPixel-LEDien ohjaus

Tämä moduuli tarjoaa ajurin WS2812 / NeoPixel-LED-nauhoille. Ajuri nojaa funktioon machine.bitstream(), joka tuottaa LEDien edellyttämän tarkasti ajoitetun signaalin, joten se toimii millä tahansa portilla, jonka machine-moduuli toteuttaa bitstream-toiminnon.

Sovellus asettaa pikselidatan alkion sijoituksella tai funktiolla NeoPixel.fill() ja kutsuu sitten funktiota NeoPixel.write() päivittääkseen nauhan. Jokainen pikseli näkyy RGB- tai RGBW-monikkona käyttäjän hyväksymässä järjestyksessä; ajuri hoitaa GRB(W)-johdotusjärjestyksen sisäisesti.

Esimerkki:

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)

Luo NeoPixel-olio LED-nauhalle, joka on liitetty nastaan pin.

  • pin on machine.Pin-ilmentymä; konstruktori määrittää sen uudelleen lähdöksi.

  • n on nauhan LEDien lukumäärä.

  • bpp on tavujen lukumäärä pikseliä kohden: 3 RGB-LEDeille (kuten WS2812) ja 4 RGBW-LEDeille (kuten SK6812-RGBW).

  • timing valitsee bittiajoituksen. 0 valitsee hitaan 400 kHz:n ajoituksen, 1 valitsee useimpien nykyaikaisten nauhojen käyttämän tavanomaisen 800 kHz:n ajoituksen. Sen sijaan voidaan antaa nanosekunnin kestoista koostuva 4-monikko (high_0, low_0, high_1, low_1) muodossa, jonka funktio machine.bitstream() hyväksyy.

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

Luokkaattribuutti, joka kuvaa käyttäjälle näkyvän kanavajärjestyksen johdotusjärjestykseen. Oletusarvo on (1, 0, 2, 3), eli käyttäjän antamat (R, G, B[, W])-monikot lähetetään muodossa G R B [W]. Aliluokat voivat ohittaa ORDER-attribuutin tukeakseen nauhoja, joilla on erilainen johdotusjärjestys.

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

Asettaa nauhan jokaisen pikselin arvoon pixel, joka on RGB- tai RGBW-monikko kokonaislukuja väliltä 0-255.

__len__() int

Palauttaa nauhan LEDien lukumäärän.

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

Asettaa kohdassa index olevan pikselin arvoon val, joka on RGB- tai RGBW-monikko. Data vain puskuroidaan; kutsu funktiota write() lähettääksesi sen nauhalle.

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

Palauttaa kohdassa index olevan pikselin paikallisesta puskurista RGB- tai RGBW-monikkona käyttäjälle näkyvässä kanavajärjestyksessä.

write() None

Lähettää puskuroidun pikselidatan nauhalle käyttäen funktiota machine.bitstream().