neopixel --- التحكم في مصابيح WS2812 / NeoPixel LEDs¶
توفّر هذه الوحدة مشغّلاً لشرائط مصابيح WS2812 / NeoPixel LED. يعتمد المشغّل على machine.bitstream() لتوليد الإشارة الدقيقة التوقيت التي تتوقعها المصابيح، لذا فهو يعمل على أي منفذ تطبّق فيه الوحدة machine الدالة bitstream.
يضبط التطبيق بيانات البكسل عبر إسناد العناصر أو NeoPixel.fill() ثم يستدعي NeoPixel.write() لتحديث الشريط. يُعرَض كل بكسل على هيئة صف (tuple) من نوع 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 المستخدم في معظم الشرائط الحديثة. ويمكن بدلاً من ذلك تمرير صف رباعي(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().