LEDネームプレートをRaspberry PiからPythonで制御する方法を解説します。
目次
デモ
使い方
基本的な使い方はled-nameplate(Github)をご確認ください。
解説
制御フロー
led-ctrl.sh
で以下の順番で制御しています。
- 任意のメッセージを高さ11pxのPNG画像に変換
- PNG画像からビットマップデータに変換
- ビットマップデータと各種オプションをLEDネームプレートに書き込む
- USBの電源をオフにする
led-name-badge-ls32
LEDネームプレートに設定を書き込むPythonスクリプトはjnweiger/led-name-badge-ls32を利用しています。
オプションで表示エフェクトを設定できます。
sudo python3 ./led-nameplate-11x44-hrkz.py abd -s 8 -m 8 -b 1 -a 1
オプションの設定方法は以下の通りです。
led-nameplate-11x44-hrkz.py MESSAGE [-s SPEED] [-m MODE] [-b BLINK] [-a ANTS] [-B BRIGHTNESS]
- -s SPEED, –speed SPEED
- スクロール速度を設定します(1〜8)
- -m MODE, –mode MODE
- 表示エフェクトを設定します
- 0: 右から左
- 1: 左から右
- 2: 下から上
- 3: 上から下
- 4: 固定
- 5: アニメーション
- 6: 降雪(上から下にドットを積む)
- 7: カーテン(中央から表示)
- 8: レーザー
- -b BLINK, –blink BLINK
- 1:点滅、0:通常
- -a ANTS, –ants ANTS
- 1:枠を表示、0:非表示
- -B BRIGHTNESS, –brightness BRIGHTNESS
- 明るさ(100, 75, 50, 25)
フォント
デフォルトでは自家製フォント工房で配布されている「JFドットM+H10」フォントを利用しています。txt2img.py
の下記箇所を変更すれば任意のTrueTypeフォントを使えます。
fontfile = "JF-Dot-MPlusH10.ttf" #フォントファイル名
uhubctl
hub-ctrl
をベースに、より直感的な設定方法に改善されています。お好きなほうをご利用ください。
mvp/uhubctl: uhubctl
hub-ctrl
を使う方法はBeagleBoneBlackBox_USB電源制御 – Tech Infoが参考になります。
プロトコル
最初に64byte分の制御データを送信します。
各byteの設定は下表です。
つぎに表示するメッセージを送信します。
メッセージはLED素子にあわせて11行x8列ごとのビットマップデータに分解し、上の行から順番に送信します。
以下が変換例です。