Pirate Audioの前面ボタンを/dev/input/eventXなキーボードとして使うソフトを作ってみた
サマリー
- Raspberry Pi用のコンパクトな液晶 & スピーカー & ボタンHATのPirate Audio Speaker for Raspberry Piがすごく良い。
- そのボタンを/dev/input/eventXなキーボードにするプログラムを書いた。
Raspberry Piの弱点を完全にカバーしてくれるときめきデバイスをゲット
前から思ってたんです。ラズパイってヒューマンインタフェースが弱いなって。
ヒューマンインタフェースと言うのは、人間とコンピュータが対話するための入出力の手段のこと。
モニタやスピーカーのような人間の五感に訴える出力手段とか、キーボードとかタッチセンサーみたいな人間の意志をコンピュータに伝える入力の手段すね。
ラズパイのデフォルトだとそれがほぼないんですよね。
- 出力する手段:一応アクセスランプのちっちゃなLEDを制御可能
- 入力する手段:なし
まぁそのための拡張用40Pinなんですが、ジャンパ線がぴょんぴょんしてる基板をライフをハックするデバイスとして日常的に使えるかと言うと厳しいところがあると言うのが個人的な見解です。
(なおもぐのさん。はんだ付けがとても苦手なのは秘密です。)
そんなことを思いながら生きてたところ、公式サイトにときめくプロダクトが。
革命的だぜPirate Audio Speaker for Raspberry Pi!
それは、Pirate Audio Speakerと言うHAT基板。
ラズパイW Zeroサイズの基盤にちっちゃい液晶、モノラルスピーカー、小さな4つのボタンが搭載されてます。
もともとはラズパイを高音質なオーディオプレーヤーにするためのプロダクトなんですが、見事に上記のヒューマンインタフェース問題を解決してくれるHATになってます。
有志による解析も進んでて、独自のプログラムからでも使える感じになってます。
しかしながら、ボタンがGPIOなのがちょっと残念ポイント。
これがキーボードになれば、dialogコマンドとシェルスクリプトで超簡単に対話型のアプリが作れるのに・・・。
と言うわけで前面ボタンをキーボードに見せかけるアプリを作ってみました!
使い方
コマンドライン引数
./pirate_audio_buttons Aボタンのキーイベントコード Bボタンの〃 Xボタンの〃 Yボタンの〃
イベントコードは以下を参照。キーボードのCキーを模擬するならKEY_Cに対応する46を指定します。
linux/input-event-codes.h at master · torvalds/linux · GitHub
0を指定するとそのボタンは無効になります。
起動方法
&を付けてバックグラウンド起動してください。
Bボタンを"yキー"、Yボタンを"nキー"にする場合はこんな感じ。
./pirate_audio_buttons 0 21 0 49 & PID=$!
例えば、コンソールでdialogコマンドを実行してBボタン or Yボタンを押すと結果が得られると思います。
openvt -f -c 1 -- sh -c 'dialog --ascii-lines --yesno test 0 0; echo $?'
終了方法
killしてください(爽やかな笑顔)
kill $PID