neopixel — керування світлодіодами WS2812 / NeoPixel¶
Цей модуль надає драйвер для світлодіодних стрічок WS2812 / NeoPixel. Драйвер використовує machine.bitstream() для генерації точно відтимінгованого сигналу, якого очікують світлодіоди, тому він працює на будь-якому порту, модуль machine якого реалізує bitstream.
Застосунок встановлює дані пікселів через присвоєння елементів або NeoPixel.fill(), а потім викликає NeoPixel.write() для оновлення стрічки. Кожен піксель представлений у вигляді кортежу RGB або RGBW в порядку, який приймає користувач; драйвер обробляє порядок дротів GRB(W) внутрішньо.
Приклад:
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)¶
Створює об’єкт
NeoPixelдля стрічки світлодіодів, підключеної до pin.pin — екземпляр
machine.Pin; конструктор перенастроює його як вивід.n — кількість світлодіодів у стрічці.
bpp — кількість байтів на піксель:
3для RGB-світлодіодів (наприклад, WS2812) і4для RGBW-світлодіодів (наприклад, SK6812-RGBW).timing вибирає часові параметри бітів.
0вибирає повільний режим 400 кГц,1— стандартний режим 800 кГц, який використовується більшістю сучасних стрічок. Замість цього можна передати 4-кортеж(high_0, low_0, high_1, low_1)тривалостей у наносекундах у формі, що приймаєтьсяmachine.bitstream().
- ORDER: tuple[int, int, int, int]¶
Атрибут класу, що відображає призначений для користувача порядок каналів на порядок дротів. Типово
(1, 0, 2, 3), тобто кортежі(R, G, B[, W])від користувача передаються якG R B [W]. Підкласи можуть перевизначатиORDERдля підтримки стрічок з іншим порядком дротів.
- fill(pixel: tuple[int, ...]) None¶
Встановлює кожен піксель стрічки у значення pixel — кортеж RGB або RGBW цілих чисел у діапазоні
0–255.
- __setitem__(index: int, val: tuple[int, ...]) None¶
Встановлює піксель за індексом index у значення val — кортеж RGB або RGBW. Дані лише буферизуються; викличте
write(), щоб передати їх на стрічку.
- __getitem__(index: int) tuple[int, ...]¶
Повертає піксель за індексом index з локального буфера у вигляді кортежу RGB або RGBW у порядку каналів для користувача.
- write() None¶
Передає буферизовані дані пікселів на стрічку за допомогою
machine.bitstream().