ラズパイオーディオをリモコンで操作 Raspbian buster Lirc Moode 6 [Raspberry Pi]
ラズパイオーディオ Moode 6 を赤外線リモコンで操作できるようにしたらかなり楽になった。OSのシャットダウンもリモコンで出来る。
また,リモコンの追加登録も可能なので,2台登録しておけば1台が見当たらなくなっても困らない。
前記事,もう一台のラズパイがリモコン信号を受けてラズパイオーディオをコントロールする方法
ラズパイオーディオをもう1台の赤外線レシーバ..
前々記事,USB接続の赤外線レシーバーをラズパイオーディオに直接接続する方法
ラズパイオーディオを赤外線リモコンで操作
赤外線レシーバ付ラズパイを作っているので,このラズパイからリモートホストのラズパイオーディオを操作することにした。
mpc –h [IPアドレス] [コマンド] でリモートホストのmpdも操作できる。
リモコンの信号を受信すると指定したコマンドラインを実行する irexecで,mpcをキックする。
赤外線リモコンの信号データは irrecord –n で学習した結果,生成されるコンフィグファイルを/etc/lirc/lircd.conf.d/下に置く。リモコン名がそれぞれWIZZ,SBの2台のリモコンを学習・登録した。
/etc/lirc/lircd.conf.d/WIZZ.lircd.conf
/etc/lirc/lircd.conf.d/SB.lircd.conf
irexec の設定ファイルは,
/etc/lirc/irexec.lircrc
ファイルを編集したら lircd, irexec を再起動する。
systemctl restart lircd irexec
mpc コマンドをリモコンボタンに対応させてみた。
mpc toggle
再生/一時停止ボタン
mpc play / mpc stop
再生ボタン / 停止ボタン
mpc play n
数字ボタン(プレイリストのn番目を再生)
mpc next
mpc prev
スキップボタン(プレイリスト内でのスキップ)
mpc seek +00:00:05
先送りボタン(5秒先送り)
mpc seek –00:00:05
巻き戻しボタン(5秒巻き戻し)
mpc load Favorates
リストボタン(プレイリストFavoratesをロード)
mpc vloume +10
音量プラスボタン
mpc volume –10
音量マイナスボタン
mpc repeat
戻るボタン(リピートモード)
実際に作成した irexec.lircrc ファイルはリモートホストのラズパイオーディオを操作しているのでmpc –h [IPアドレス] [コマンド]になっている。
リモコン・・・IRレシーバ付ラズパイZero-----無線LAN------ラズパイオーディオ Zero W
以下は,リモコンWIZZ(remote = WIZZ)部分の抜粋だが,remote = SB を指定すれば次の button はもう1台のリモコンSBのボタン指定となる。remote は button の前に指定する必要がある。remote を省略した場合は,デフォルトがワイルドカードなので,button 名が同じならどちらのリモコンでも動作する。
begin
prog = irexec
remote = WIZZ
button = PLAYPAUSE
config = mpc -h 192.168.0.60 toggle
end
begin
prog = irexec
remote = WIZZ
button = NEXT
config = mpc -h 192.168.0.60 next
end
begin
prog = irexec
remote = WIZZ
button = PREV
config = mpc -h 192.168.0.60 prev
end
#数字ボタンでplaylistのn番目を再生
begin
prog = irexec
remote = WIZZ
button = KEY1
config = mpc -h 192.168.0.60 play 1
end
begin
prog = irexec
remote = WIZZ
button = KEY2
config = mpc -h 192.168.0.60 play 2
end
begin
prog = irexec
remote = WIZZ
button = KEY3
config = mpc -h 192.168.0.60 play 3
end
#音量下げる
begin
prog = irexec
remote = WIZZ
button = LEFT
config = mpc -h 192.168.0.60 volume -5
end
#決定ボタンもPLAY/PAUSE
begin
prog = irexec
remote = WIZZ
button = OK
config = mpc -h 192.168.0.60 toggle
end
#音量上げる
begin
prog = irexec
remote = WIZZ
button = RIGHT
config = mpc -h 192.168.0.60 volume +5
end
begin
prog = irexec
remote = WIZZ
button = UP
config = mpc -h 192.168.0.60 prev
end
begin
prog = irexec
remote = WIZZ
button = DOWN
config = mpc -h 192.168.0.60 next
end
begin
prog = irexec
remote = WIZZ
button = STOP
config = mpc -h 192.168.0.60 stop
end
begin
prog = irexec
remote = WIZZ
button = BACK
config = mpc -h 192.168.0.60 repeat
end
begin
prog = irexec
remote = WIZZ
button = REV
config = mpc -h 192.168.0.60 seek -00:00:05
end
begin
prog = irexec
remote = WIZZ
button = FWD
config = mpc -h 192.168.0.60 seek +00:00:05
end
begin
prog = irexec
remote = WIZZ
button = MUTE
config = mpc -h 192.168.0.60 clear
end
#プレイリストをクリア,プレイリストRadio_listをロード,再生
begin
prog = irexec
remote = WIZZ
button = PROG
config = mpc -h 192.168.0.60 clear; mpc -h 192.168.0.60 load Radio_list; mpc -h 192.168.0.60 play
end
#プレイリストをクリア,プレイリストFavorites をロード,再生
begin
prog = irexec
remote = WIZZ
button = LIST
config = mpc -h 192.168.0.60 clear; mpc -h 192.168.0.60 load Favorites; mpc -h 192.168.0.60 play
end
# Moodeをリモートシャットダウン
begin
prog = irexec
remote = WIZZ
button = POWER
config = sshpass -p moodeaudio ssh -t pi@192.168.0.60 'sudo poweroff'
end
#ラズパイをシャットダウン
begin
prog = irexec
remote = WIZZ
button = ORANGE
config = sudo systemctl poweroff
end
リモコンでプレイリストをロード再生できるので,インターネットラジオのプレイリストをロードすれば,リモコンでラジオのチャンネル替えのようなことができる。
リモコンの電源ボタンでラズパイオーディオをシャットダウン,オレンジボタンで自分をシャットダウン。
ラズパイオーディオをもう1台の赤外線レシーバ付ラズパイから操作 [Raspberry Pi]
赤外線受光モジュールを搭載したラズパイでリモコン信号を受け,リモートホストのラズパイオーディオを操作。
ラズパイ(赤外線受光モジュール付)については,
Raspberry Pi Zer o W で赤外線リモコン ユニバーサル基板に実装
ラズパイオーディオについては,
ラズパイオーディオ Raspberry Pi Zero W + IQAudIO Pi-DACZero
mpc コマンドは,リモートホストの mpd(music player daemon) をコントロールできる。
mpc –h 192.168.0.60 mpc play
なお,IPアドレスは固定。左のZero(W)は192.168.0.60(むう)で右のZeroは192.168.0.81(ぱい)としている。
lirc は,カーネル4.19 の raspbian buster の場合,ソースにパッチを当ててビルドしないと正常に動作しない。
kernel 4.19以降を搭載したRaspbian Stretch/Busterでlircを利用する
lircd にヤマハ・リモコンVQ95010のコンフィグをロードさせるため /etc/lirc/lircd.conf.d/下にVQ95010.lircd.confをおく。
irget_db コマンドでVQ95010のコンフィグをダウンロードする。
root@raspberrypi:/home/pi# irdb-get find yamaha
yamaha/AVPhile_715_RC.lircd.conf
yamaha/AX-960.lircd.conf
:
yamaha/VP60840.lircd.conf
yamaha/VP79430.lircd.conf
yamaha/VP84950.lircd.conf
yamaha/VQ08640.lircd.conf
yamaha/VQ95010.2
yamaha/VQ95010.lircd.conf
:
root@raspberrypi:/home/pi# irdb-get download yamaha/VQ95010.lircd.conf
Downloaded https://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/yamaha/VQ95010.lircd.conf as VQ95010.lircd.conf
root@raspberrypi:/home/pi# cp VQ95010.lircd.conf /etc/lirc/lircd.con.d/.
irexec はリモコンボタンの信号を受信すると指定したコマンドを実行する。
VQ95010.lircd.confには以下のようにボタン名とコードが書かれているので,ボタン名を参照しながら irexec.kircrc を設定する。
begin codes
KEY_OPEN 0x000000009E61807F # Was: OPEN/CLOSE
:
KEY_PLAY 0x000000009E6140BF # Was: PLAY
KEY_PAUSE 0x000000009E61AA55 # Was: PAUSE
KEY_STOP 0x000000009E616A95 # Was: STOP
:
SKIP_FWD 0x000000009E61E01F
SKIP_REV 0x000000009E6120DF
irexec の設定ファイル /etc/lirc/irexec.lircrc
# PLAY
begin
prog = irexec
button = KEY_PLAY
config = mpc -h 192.168.0.60 play
end
# PREV
begin
prog = irexec
button = KEY_REV
config = mpc -h 192.168.0.60 prev
end
# STOP
begin
prog = irexec
button = KEY_STOP
config = mpc -h 192.168.0.60 stop
end
# NEXT
begin
prog = irexec
button = KEY_FWD
config = mpc -h 192.168.0.60 next
end
irw を起動してからリモコンボタンを押してみて,応答があれば正しく設定されている。
root@raspberrypi:/etc/lirc# irw
000000009e6128d7 00 KEY_4 VQ95010
000000009e618877 00 KEY_1 VQ95010
000000009e616897 00 KEY_6 VQ95010
irexec の実行結果の確認 journalctl -b0 /usr/bin/irexec
root@raspberrypi:~# journalctl -b0 /usr/bin/irexec
-- Logs begin at Sat 2019-10-26 15:00:49 BST, end at Sat 2019-10-26 15:02:10 BST
Oct 26 15:01:57 raspberrypi irexec[264]: Igor Gehenot Trio - SANTIAGO
Oct 26 15:01:57 raspberrypi irexec[264]: [playing] #2/10 0:00/4:53 (0%)
Oct 26 15:01:57 raspberrypi irexec[264]: volume:100% repeat: off random: off
Oct 26 15:02:01 raspberrypi irexec[264]: Igor Gehenot Trio - SANTIAGO
Oct 26 15:02:01 raspberrypi irexec[264]: [paused] #2/10 0:04/4:53 (1%)
Oct 26 15:02:01 raspberrypi irexec[264]: volume:100% repeat: off random: off
Oct 26 15:02:08 raspberrypi irexec[264]: Igor Gehenot Trio - SANTIAGO
Oct 26 15:02:08 raspberrypi irexec[264]: [playing] #2/10 0:10/4:53 (3%)
Oct 26 15:02:08 raspberrypi irexec[264]: volume: 89% repeat: off random: off
手持ちのリモコンのコンフィグがlircのデータベースにあれば問題ないが,コンフィグがない場合は irrecord コマンドで学習してコンフィグを生成する。
受信レシーバがUSB接続のリモコンは,irrecord は使えなかった。
ラズパイオーディオを赤外線リモコンで操作 [Raspberry Pi]
USB接続の赤外線レシーバーとリモコン Asus DH remote を使ってラズパイオーディオ moode Audio を操作。
USB赤外線レシーバーをOTGケーブルでラズパイに接続する。
moode に Lirc をインストールする。
moode 6はカーネルが 4.19 なので,Lirc のソースにパッチを当ててビルドしないと正常に動作しない。
kernel 4.19以降を搭載したRaspbian Stretch/Busterでlircを利用する
moode 7はパッチ当て不要
/etc/lirc 下のコンフィグファイルを書き換える。
./lircd_options.conf(driver=asusdh device=/dev/usb/hiddev0)
[lircd]
nodaemon = False
driver = asusdh
device = /dev/usb/hiddev0
:
asusdh.lircd.conf をダウンロードして,./lircd.conf.d にをセットする。
root@moode:/etc/lirc/lircd.conf.d# irdb-get find asus
asus/DigiMatrix.lircd.conf
asus/DigiMatrix.lircd.conf
asus/Digital_Home.lircd.conf
asus/RC1974502_00.lircd.conf
asus/TVBox.lircd.conf
asus/asus.lircd.conf
asus/asusdh.lircd.conf
asus/digimatrix.lircd.conf
asus/digimatrix.lircd.conf
root@moode:/etc/lirc/lircd.conf.d# irdb-get download asus/asusdh.lircd.conf
Downloaded https://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/asus/asusdh.lircd.conf as asusdh.lircd.conf
root@moode:/etc/lirc/lircd.conf.d#
このファイルにはリモコンの赤外線コードの情報が書かれている。
lircd と irexec をイネーブルにする。
systemctl enable irexec
systemctl enable lircd
irexec は押されたボタンの信号をリモコンから受信すると指定されたコマンドを実行する。
./irexec.lircrc に各ボタンと指定コマンドを設定する。KEY_POWER は シャットダウン(poweroff)を指定した。
asusdh.lircd.conf(リモコンボタンの情報)を参照しながら irexec.lircrc を作成する。
begin
prog = irexec
button = KEY_POWER
config = sudo poweroff
end
begin
prog = irexec
button = QUICK_POWER
config = mpc play
end
begin
prog = irexec
button = NOISE_OFF
config = mpc stop
end
begin
prog = irexec
button = KEY_KPPLUS
config = mpc volume +10
end
begin
prog = irexec
button = REV
config = mpc prev
end
begin
prog = irexec
button = KEY_PLAYPAUSE
config = mpc toggle
end
begin
prog = irexec
button = KEY_FORWARD
config = mpc next
end
begin
prog = irexec
button = KEY_KPMINUS
config = mpc volume -10
end
mpc は mpd(music player daemon)のクライアントコマンドで,mpdにコマンドを送ってすぐに終了する。
接続は以下のとおり。
asusdhリモコン・・・IRレシーバ----(USB)OTG-----(microUSB)ラズパイ Raspberry Pi Zero