LEDネームプレートをRaspberry PiからPythonで制御する方法を解説します。

デモ

使い方

基本的な使い方はled-nameplate(Github)をご確認ください。

解説

制御フロー

led-ctrl.shで以下の順番で制御しています。

  1. 任意のメッセージを高さ11pxのPNG画像に変換
  2. PNG画像からビットマップデータに変換
  3. ビットマップデータと各種オプションをLEDネームプレートに書き込む
  4. 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列ごとのビットマップデータに分解し、上の行から順番に送信します。
以下が変換例です。
変換例