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 kHz, 1 בוחר בתזמון הסטנדרטי של 800 kHz שבו משתמשות רוב הרצועות המודרניות. ניתן להעביר במקום זאת טופל בן 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.

__len__() int

מחזיר את מספר הנוריות ברצועה.

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

מגדיר את הפיקסל באינדקס index ל-val, טופל RGB או RGBW. הנתונים נשמרים בחוצץ בלבד; קרא ל-write() כדי לדחוף אותם לרצועה.

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

מחזיר את הפיקסל באינדקס index מהחוצץ המקומי כטופל RGB או RGBW בסדר הערוצים הפונה למשתמש.

write() None

משדר את נתוני הפיקסלים שבחוצץ לרצועה באמצעות machine.bitstream().