forked from micropython/micropython
-
Notifications
You must be signed in to change notification settings - Fork 3
サンプル – NeoPixel 編
Takeo Takahashi edited this page Feb 17, 2022
·
3 revisions
- NeoPixel Ring - 12連フルカラーシリアルLEDを赤、緑、青、白色に点灯します。
from ws2812 import WS2812
chain = WS2812(spi_bus=1, led_count=12)
data = [
(255, 0, 0), # red
(0, 255, 0), # green
(0, 0, 255), # blue
(85, 85, 85), # white
(255, 0, 0), # red
(0, 255, 0), # green
(0, 0, 255), # blue
(85, 85, 85), # white
(255, 0, 0), # red
(0, 255, 0), # green
(0, 0, 255), # blue
(85, 85, 85), # white
]
chain.show(data)
-
予め、ampy などでws2812.pyをボードにUploadしておくか、 ws2812.pyの内容をコピー&ペーストなどで実行してください。オリジナルファイルは、https://github.com/JanBednarik/micropython-ws2812 にあります。
-
EK-RA6M2の場合、以下のように接続します。
NeoPixel-PIN EK-RA6M2-PIN DataIn P101 GND GND VCC 5V -
RA4M1 Clickerの場合、以下のように接続します。
NeoPixel-PIN RA4M1 Clicker-PIN DataIn P101 GND GND VCC 5V
- オリジナルは、https://github.com/JanBednarik/micropython-ws2812
SPIの1クロックをNeoPixelのLowパルス、2クロックをHighパルスに割り当て、4クロックで1ビットを表現し、ソフト処理、割り込みで波形が乱れないようにDMAで送信しています。 - 本実装では、DMAは使用せず、エンコード方法を踏襲し、4クロックで1ビットを表現し、SPIの32ビット転送で1バイトデータを転送しています。
- 01010101の1バイトデータを送信する際の波形