有機ELディスプレイを使った情報表示にチャレンジ
Raspberry Piを入れるケース、I2S接続のDAC等を製作されているたかじんさんのBlogで紹介されていた作例が良さそうだったので、これを参考にすることにしました。コメント欄を読み進めていくと、有機ELのグラフィックディスプレイを使用して、さらにVolumioのプラグインまで作成されているOPAさんという方が。これなら日本語でも表示できそうだし、これは面白そうということで、まずは部品を調達。試してみました。
Terra-Berry DAC2+ にはGPIOを引き出すパターンが用意されているのですが、コネクタは未実装なのでここから始めないといけないのがちょっと辛いところ。
こんなの初心者には無理…と思いつつ、丸でくくった箇所のコネクタを半田付け。ブリッジはしていないことを確認して、ケーブルとディスプレイを接続、プラグインを手順通りにインストールしてみましたが、何も表示されず。
プラグインのインストール先(/data/plugins/miscellanea/ssd1306I2c)にファイルは配置されているので、過去Blogを参照しながらシステムの中身を確認すると、/etc/apt/sources.list とかが更新されていなさそう。よくよくプラグインの中身を確認すると、install.shといういかにもなファイル名のがあるので、中身を見たら必要なライブラリ等をこれで導入していました。これを手動で実行してみたら、ディスプレイに表示されるようになりました。(Volumioのバージョンは2.526)
せっかくプラグインのディレクトリがわかったので、本体のプログラムを見てみることに。一通り眺めて、この辺で表示位置を指定しているのね、とかこの辺で情報を取得しているけど、mpdのポート番号じゃないからちょっと調べてみると、Volumioから直接取得しているのね、といったことがわかったところで、少し改造してみることに。
ざっとリストアップすると
- 再生を停止したら表示も消す
- 再生しているファイルタイプを表示
- 表示位置を変更して、昔懐かしiPodっぽく
(ただしアーティストとアルバム名が長くても潔くスクロールはしない仕様) - 再生位置を示すバー表示を追加
といったところで、こんな感じの表示になってます。
volumio.local/dev/のPlayer StateがWebUIで表示している内容の元ネタですね。airplayとかwebradioの場合もタイトルとかが表示されるのが、mpdから直接取得する場合との差異でしょうか。
この後で何気なくVolumioのログを眺めていると、ものすごい勢いでログが流れていたので、情報取得部分の処理をちょっと変更。pythonやsocket.ioなど、仕事では使わない技術に触れて、それはそれで楽しかったです。