Raspberry Pi Zeroでmpd_gui改を動かす手順

 拙作のVolumio2特化対応したmpd_gui改をRaspberry Pi Zeroで動かす手順の紹介です。
 blue-7さんの公開されているLCDにmpd/volumioの曲名情報を表示するアプリmpd_gui(mpd or volumio対応)をカスタムしたものになります。
 現時点ではWaveShare 1.3" 240x240 LCD HATとRaspi DAP Base(じんそんさんよりリリース予定)に対応しています。WaveShare 1.3" 240x240 LCD HATはI2S信号ラインとキーの配線がぶつかってるた2か所カット・ジャンパーの必要があります。

mpd_gui改の変更点とか

  • Volumio2とSocket.ioで通信
  • CPU負荷を多少低減
  • メニューシステムの追加
  • キュー、プレイリスト、ミュージックライブラリの操作を追加
  • Alsa Mixer制御を追加(デジフィルなどDACの設定変更用)
  • LCD Sleep機能の追加(一定時間無操作でSPI通信をOFF)

現時点での制約事項など

  • volumio2のみ対応です。(将来的にはmpdにも対応はしたい)
  • GPIOは5ボタンまで対応
  • dtoverlayの変更はできません
  • volumio-2.513-2018-12-07-pi.imgで動作確認しました

WaveShare液晶の改造

  • KEY1とJoystick DownがI2S信号とぶつかってるので配線カットして下記のポートに繋ぎ変えてください
    • KEY1 P21 -> P17
    • Joystick Down P19 -> P22

build手順

準備(prepare)

sudo apt update
sudo apt install build-essential cmake libboost-system-dev libboost-date-time-dev libboost-random-dev libssl-dev raspi-config libcv-dev libopencv-dev opencv-doc fonts-takao-gothic libtag1-dev libcurl4-openssl-dev

git clone --recurse-submodules https://github.com/socketio/socket.io-client-cpp.git

cd socket.io-client-cpp

cmake ./
make clean
make

cd ..
git clone https://github.com/tkztkztkz/NanoPi-NEO.git
cd NanoPi-NEO/
git checkout SUPPORT_VOLUMIO

ビルド例 WaveShare IPS 1.3 240x240 KEYボタンを3ボタンとして使用

make -f makefile.rpiz DISPTYPE="-DDISPLAY_13IPS240240_RPI -DGPIO_BUTTON_POLARITY_INVERT -DGPIO_BUTTON_PREV=17 -DGPIO_BUTTON_NEXT=20 -DGPIO_BUTTON_PLAY=16" TARGET=mpd_gui

ビルド例 WaveShare IPS 1.3 240x240 ジョイスティックを5ボタンとして使用

make -f makefile.rpiz DISPTYPE="-DDISPLAY_13IPS240240_RPI -DGPIO_BUTTON_POLARITY_INVERT -DGPIO_5BUTTON -DGPIO_BUTTON_PREV=5 -DGPIO_BUTTON_NEXT=26 -DGPIO_BUTTON_PLAY=13 -DGPIO_BUTTON_UP=6 -DGPIO_BUTTON_DOWN=22" TARGET=mpd_gui

ビルド例 Raspi DAP Base

make -f makefile.rpiz DISPTYPE="-DDISPLAY_RASPI_DAP_BASE -DGPIO_BUTTON_POLARITY_INVERT -DGPIO_5BUTTON -DGPIO_BUTTON_PREV=24 -DGPIO_BUTTON_NEXT=26 -DGPIO_BUTTON_PLAY=5 -DGPIO_BUTTON_UP=27 -DGPIO_BUTTON_DOWN=22" TARGET=mpd_gui

設定変更 SPIの有効化

  • raspi-config
    Interfacing Option -> P4 SPI -> Yes

起動手順

 mpd_guiを/usr/local/binにコピーして実行権限を付けたうえで、下記のコマンドを/etc/rc.localあたりに放り込んでください。

ビルド例 WaveShare IPS 1.3 240x240 ジョイスティックを5ボタンとして使用

gpio -g mode 5 up
gpio -g mode 26 up
gpio -g mode 13 up
gpio -g mode 6 up
gpio -g mode 22 up
/usr/local/bin/mpd_gui &

WaveShare IPS 1.3 240x240 KEYボタンを3ボタンとして使用

gpio -g mode 17 up
gpio -g mode 20 up
gpio -g mode 16 up
/usr/local/bin/mpd_gui &

Raspi DAP Base

gpio -g mode 24 up
gpio -g mode 26 up
gpio -g mode 5 up
gpio -g mode 27 up
gpio -g mode 22 up
/usr/local/bin/mpd_gui &

操作方法

  • PREV/PLAY/NEXTは、前曲・再生開始停止・次曲
  • UP/DOWNで音量を変更
  • PREV/NEXT長押しで音量を連続的に変更
  • PLAY長押しでメニューに入ります。長押しでメニューから抜けます