はじめに
こんにちは。野良ハックチーム ざっきー と申します。
2019 年 9 月 22 日に開催された技術書典 7 で野良ハック本 2 冊目となる「光りモノをハックする」という技術本を頒布しました。
私はその本の中で「LEDバッジ(熱闘甲子園2019)」という記事を書きました。
ページ数の都合で詳細について触れることができなかった「Raspberry Pi に USB-HID 版 LED バッジ (S1144) を接続して enebular から操作する方法」について説明します。
材料
- Raspberry Pi 2 Model B / 3 Model B / 3 Model B+ のいずれか
※ Raspberry Pi Model B、Raspberry Pi Zero / Zero W は USB 電源の制御ができないため使用不可 - USB-HID 版 LED バッジ (S1144)
※ 購入先はこちら。 - 超小型 MicroUSB OTG 変換アダプター USB-A オス → MicroUSB オス変換
※ 購入先はこちら。通常の USB-A オス → MicroUSB オス変換ケーブルでもOK。
構成
Raspberry Pi へ enebular agent をインストールして enebular から Node-RED フローをデプロイします。
Node-RED のダッシュボード機能を利用してブラウザから LED バッジの表示メッセージを変更することができます。
Raspberry Pi の USB 電源の仕様
ポイントは LED バッジの表示メッセージを変更した後に USB 電源を OFF にすることです。
USB 電源を ON にしたままだと LED バッジに充電中マークが表示されるためです。
Raspberry Pi はポート番号 2 の USB 電源を ON / OFF 制御することで、その他のポート番号 3 〜 5 の USB 電源も同時に制御されます。
フローの流れとしては、ブラウザのフォームからメッセージを入力 → USB 電源を ON → LED バッジのメッセージを書き換え → USB 電源を OFF になります。
プログラム
プログラムの仕様や使い方の詳細については野良ハック本に掲載していますので、Qiitaでの説明は割愛します。
興味がある方は是非本をご覧ください!
- LED バッジのメッセージを書き換えるプログラム
https://github.com/jnweiger/led-name-badge-ls32 - USB 電源を制御するプログラム
http://www.gniibe.org/oitoite/ac-power-control-by-USB-hub/hub-ctrl.c - 日本語メッセージを表示するプログラム
https://github.com/kitazaki/LED_Badge
フロー
ダッシュボードのボタンノードを配置して、ボタンが押下されたら exec ノードで hub-ctrl プログラムを実行して USB 電源を ON / OFF 操作しています。
また、ダッシュボードのフォームノードを配置して、フォームから入力されたメッセージを led-badge-11x44.py プログラムや message.sh スクリプトを実行して LED バッジに表示するメッセージを書き換えています。
ボタンノードで固定のメッセージ (フローでは「野良ハック」という文字列を横、または、縦に表示する例) に書き換えることも可能です。
※ フローはこちらで公開しています。
まとめ
LED バッジを Raspberry Pi へ接続してデジタルサイネージのように使用してみました。
Raspberry Pi の USB から充電されるので電池切れの心配もありません。また、enebular (Node-RED) を使用してリモートから簡単に表示するメッセージを書き換えることも可能です。
良き enebular & LED バッジライフを!