Raspberry Pi Pico で NeoPixel(RGB LED) をピカピカさせてみた
夏休みに入り、子供が電子工作で自由研究したいと言うので、
プログラミング言語は子供にもわかりやすい micropython を選びました。
でと、NeoPixelを制御する方法をいろいろ調べていたのですが、どうも皆さん情報が古いようですね。
micropython を使うなら
NeoPixelのライブラリやアセンブラのコードは不要ですよ!!
というのも micropython には neopixel を制御するライブラリがすでに入っているからです。
なので、シンプルに
とするだけで、簡単に NeoPixel(RGB LED)を光らせることができるんです。
もう少し書き足してみるとこうなりました。
以上、ご参考になれば幸いです。
参考:
追記:(2022/08/02)
Raspberry Pi Pico ラズベリーパイピコ マイコンRP2040(Arm Cortex-M0+デュアルコア@133MHz (1個)
Adafruit NeoPixel Ring 12連フルカラーシリアルLED 【1643】
- Raspberry Pi Pico
- NeoPixel(RGB LED)のリング(12素子)
- ブレッドボード
プログラミング言語は子供にもわかりやすい micropython を選びました。
でと、NeoPixelを制御する方法をいろいろ調べていたのですが、どうも皆さん情報が古いようですね。
micropython を使うなら
NeoPixelのライブラリやアセンブラのコードは不要ですよ!!
というのも micropython には neopixel を制御するライブラリがすでに入っているからです。
なので、シンプルに
from machine import Pin
from neopixel import NeoPixel
# 12LED用の NeoPixel Ring を GPIO 22 で制御する
np = NeoPixelPin(22, Pin.OUT), 12)
np.fill((1, 1, 1)) # すべてのLEDを白に設定する
np.write() # 全LEDにデータ書込み(点灯)
とするだけで、簡単に NeoPixel(RGB LED)を光らせることができるんです。
もう少し書き足してみるとこうなりました。
from machine import Pin
from neopixel import NeoPixel
from time import sleep
try:
# 12LED用の NeoPixel Ring を GPIO 22 で制御する
np = NeoPixelPin(22, Pin.OUT), 12)
np.fill((1, 1, 1)) # すべてのLEDを白に設定する
np.write() # 全LEDにデータ書込み(点灯)
sleep(1)
np.fill((0, 0, 0)) # すべてのLEDを黒(消灯)に設定する
# 各LEDは配列でアクセスできる
np[0] = (1, 0, 0) # 第1LEDを赤に設定
np[2] = (0, 1, 0) # 第3LEDを緑に設定
np[4] = (0, 0, 1) # 第5LEDを青に設定
np[6] = (1, 0, 0) # 第1LEDを赤に設定
np[8] = (0, 1, 0) # 第3LEDを緑に設定
np[10] = (0, 0, 1) # 第5LEDを青に設定
np.write() # 全LEDにデータ書込み(点灯)
sleep(1)
finally:
# プログラム終了時の操作
np.fill((0, 0, 0)) # すべてのLEDを黒(消灯)に設定する
np.write() # 全LEDにデータ書込み(点灯)
以上、ご参考になれば幸いです。
参考:
"11. NeoPixel の制御 — MicroPython 1.19.1 ドキュメント"
https://micropython-docs-ja.readthedocs.io/ja/latest/esp8266/tutorial/neopixel.html
NeoPixelライブラリのソースコード
"micropython/neopixel.py at master · micropython/micropython · GitHub"
https://github.com/micropython/micropython/blob/master/drivers/neopixel/neopixel.py
追記:(2022/08/02)
GitHubでコードを公開しました。
https://github.com/backy0175/pico-examples
Raspberry Pi Pico ラズベリーパイピコ マイコンRP2040(Arm Cortex-M0+デュアルコア@133MHz (1個)
Adafruit NeoPixel Ring 12連フルカラーシリアルLED 【1643】
この記事へのコメント