土地形状スキャン020 [FriendlyCore編]シリアルLEDを使ったUIの試みと断念

造成

今回からボタンとLEDだけの簡単なユーザーインターフェースを作りこんでいく。

シリアルLEDの制御の試みと断念

シリアルLED WS2812B を使って、現在の状態表示を行いたい。

データシートを読むと1us以下のタイミングでシリアルデータ波形を生成しないといけない模様。

adafruitがpython用のモジュールを提供しているので活用できないか試してみる。

adafruit-circuitpython-neopixelライブラリ(Adafruit NeoPixel Überguide Python & CircuitPython)導入

$ sudo pip3 install adafruit-circuitpython-neopixel

試しのphythonコード記述

$ vi serialled_pa0.py

import time

import board

import neopixel

pixel_pin = board.D18

num_pixels = 64 # 64のLEDを制御

ORDER = neopixel.GRB

pixels = neopixel.NeoPixel(pixel_pin, num_pixels, brightness=0.010, auto_write=False, pixel_order=ORDER)

# 0番目をRED指定

pixels[0] = (255, 0, 0)

pixels.show()

try:

while True:

time.sleep(1)

except KeyboardInterrupt:

pass

記述したpythonコードの実行

$ sudo python3 serialled_pa0.py

File “serialled_pa0.py”, line 3, in

import neopixel

File “/usr/local/lib/python3.5/dist-packages/neopixel.py”, line 16, in

import board

File “/usr/local/lib/python3.5/dist-packages/board.py”, line 357

“””

^

SyntaxError: invalid syntax

上記のようなエラーが出て実行できない。

エラーが出ているモジュールをたどっていくと、どうもNanoPiNEOのボード認識ができていない模様。

NanoPiNEOのboardIDは用意されているみたいだが、ボード判定のためにOS情報やCPU情報を抜き出す部分で、NanoPiNEOへ行きつくための条件分岐が用意されていないように思われる。

ドキュメントにもラズパイ対応の記述はあるが、NanoPiNEOについては記述がないので、対応していないのかもしれない。

これを動かすことは今回の目的の本筋ではないため、WS2812Bの制御についてはここまでで断念することとする。

タイトルとURLをコピーしました