neopixel --- điều khiển đèn LED WS2812 / NeoPixel¶
Mô-đun này cung cấp trình điều khiển cho dải đèn LED WS2812 / NeoPixel. Trình điều khiển dựa vào machine.bitstream() để tạo ra tín hiệu định thời chính xác mà các đèn LED yêu cầu, do đó nó hoạt động trên bất kỳ cổng nào có mô-đun machine triển khai bitstream.
Ứng dụng đặt dữ liệu điểm ảnh thông qua phép gán phần tử hoặc NeoPixel.fill() rồi gọi NeoPixel.write() để cập nhật dải đèn. Mỗi điểm ảnh được biểu diễn dưới dạng tuple RGB hoặc RGBW theo thứ tự người dùng cung cấp; trình điều khiển xử lý thứ tự dây GRB(W) nội bộ.
Ví dụ:
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)¶
Khởi tạo đối tượng
NeoPixelcho một dải đèn LED kết nối với pin.pin là một thực thể
machine.Pin; nó sẽ được cấu hình lại thành đầu ra bởi hàm khởi tạo.n là số đèn LED trong dải.
bpp là số byte mỗi điểm ảnh:
3cho đèn LED RGB (như WS2812) và4cho đèn LED RGBW (như SK6812-RGBW).timing chọn định thời bit.
0chọn định thời chậm 400 kHz,1chọn định thời chuẩn 800 kHz được hầu hết các dải hiện đại sử dụng. Có thể truyền một 4-tuple(high_0, low_0, high_1, low_1)gồm các khoảng thời gian tính bằng nanosecond, theo dạng màmachine.bitstream()chấp nhận.
- ORDER: tuple[int, int, int, int]¶
Thuộc tính lớp ánh xạ thứ tự kênh hướng người dùng sang thứ tự dây. Mặc định là
(1, 0, 2, 3), tức là các tuple(R, G, B[, W])do người dùng cung cấp được truyền dưới dạngG R B [W]. Các lớp con có thể ghi đèORDERđể hỗ trợ các dải có thứ tự dây khác.
- fill(pixel: tuple[int, ...]) None¶
Đặt mọi điểm ảnh trong dải thành pixel, một tuple RGB hoặc RGBW gồm các số nguyên trong khoảng
0-255.
- __setitem__(index: int, val: tuple[int, ...]) None¶
Đặt điểm ảnh tại index thành val, một tuple RGB hoặc RGBW. Dữ liệu chỉ được lưu vào bộ đệm; gọi
write()để đẩy lên dải đèn.
- __getitem__(index: int) tuple[int, ...]¶
Trả về điểm ảnh tại index từ bộ đệm cục bộ dưới dạng tuple RGB hoặc RGBW theo thứ tự kênh hướng người dùng.
- write() None¶
Truyền dữ liệu điểm ảnh đã đệm tới dải đèn bằng cách sử dụng
machine.bitstream().