Sipeed Maixduino で Neopixel を堪能 ーエッジAI活用への道 5ー
さて素晴らしき金魚水槽管理システムを目指してスタートした、このエッジAI活用への道。
目指すシステムは以下の通りでございます。
夢は大きく#エッジAI活用への道 #Maixduino pic.twitter.com/rX7ABKuoEU
— HomeMadeGarbage (@H0meMadeGarbage) September 29, 2019
5回目の今回はSipeed MaixduinoでフルカラーLED Neopixelの制御を試してみました。
MicroPythonでNeopixelを動かすのは初めてございます。
目次
構成
部品
- Sipeed Maixduino
- フルカラーLED Neopixel (WS2812B )
MicroPythonコード
準備
Maixduinoを用いてNeopixel (WS2812B)をMicroPythonで用いるために、kflash_guiでファームウェアを書き込みます。
ファームは現時点(2019/10/31)で最新の maixpy_v0.4.0_13_ga40842f.bin を書き込みました。古いファームですとWS2812B用ライブラリが追加されていなかったりするのでお気を付けください。
コード
Neopixel制御用のサンプルコード ws2812.py を参考にコーディングしました。MaixPy IDEで書き込みました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
from modules import ws2812 from board import board_info class_ws2812 = ws2812(board_info.D[4],6) r=0 dir = True while True: if dir: r += 1 else: r -= 1 if r>=255: r = 255 dir = False elif r<0: r = 0 dir = True for i in range(6): a = class_ws2812.set_led(i,(r,0,0)) a=class_ws2812.display() |
2行目の from board import board_info を追加しないとエラーが出ました。
NeopixelのデータピンをD4ピンとして、徐々に輝度を増減させて赤く点滅するコードとなっております。Neopixelのセル数は6個で動作させました。
参考
動作
MaixduinoでNeopixelを堪能させてもろてます。#エッジAI活用への道 #Maixduino #sipeed #Maix pic.twitter.com/vsQo3MYKb2
— HomeMadeGarbage (@H0meMadeGarbage) October 30, 2019
無事にMaixduinoを用いて MicroPythonでのNeopixel制御ができました!
金魚水槽用照明への応用
Neopixelを制御できるようになったので早速 金魚水槽の照明にしてみました。
コード
LEDを白色に光らせています。LCDディスプレイはOFFしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
##############demo1 from modules import ws2812 from board import board_info import lcd #ディスプレイOFF lcd.init() lcd.clear() lcd.set_backlight(0) ledNum = 48 bright = 20 class_ws2812 = ws2812(board_info.D[4],ledNum) r=0 dir = True while True: for i in range(ledNum): a = class_ws2812.set_led(i,(bright,bright,bright)) a=class_ws2812.display() |
参考
おわりに
ここでは素晴らしき金魚水槽管理システムを目指して水槽用照明をNeopixelで作製しました。
キレイ 🙂 ♪ これで水草の成長も促進されると嬉しいなぁ。
今後は時刻や遠隔操作よる照明のON/OFFを実現したいと考えております。
それでは次の道でお会いいましょう。