2015年2月3日火曜日

Volumio を赤外線リモコンでコントロールする (2) リモコン信号の学習とlircdの設定

(前回からの続き)
リモコンを使うには,リモコンの出す赤外線信号のパターンを学習させる必要がある.
使用したリモコンは DENON RC-266 と書いてあるが,以前使っていたCDプレイヤー (DCD-755) のリモコンのようだ.


もっとキーの少ないのでいいのだけど,とりあえずこれで.

学習の手順は以下のように.
まず,lircd が動いていないことを ps -A で確認.もし動いていたら止めておく.
学習に入る.

# irrecord -n -d /dev/lirc0 RC-266.conf

最後の RC-266.conf がデータファイルになるので,名前は適当に.
起動すると注釈が延々と出るが,学習作業は以下の2ステップで行う.

  1. 片っ端からリモコンのキーをちょっとずつ押して,すべてのキーパターンを記録する
  2. 各キーに名前を付けて対応するキーを押す

第1ステップは,キーが多いとすべて登録できないかもしれない.そのときは別ファイルに残りのキーについてのデータを登録して,後でマージできる(はず).
第2ステップは,名前を入力してキーを押す,という操作の繰り返し.間違ったらそのことをメモしておいて入力し直してどんどん先に進み,最後にファイルを編集して間違いデータを削除するとかした方が簡単.全てのキーを覚えさせる必要はないのだが,どうせだから全部やってしまう.
キーの名前は任意だが,open-close とか play とか,リモコンの表示から想像のつくものにしておかないとあとで面倒.あちこちの事例を見ると,キー名は大文字のところが多いようだが,何も考えずに小文字で作って,その他の設定もやってしまった.もう直すのも面倒になっている.
なお,中身の name のところは DENON_RC-266 に変更した.

できあがった RC-266.conf ファイルの中身を /etc/lirc/lircd.conf にコピーする.
このとき,インストール時点で存在している lircd.conf に入っている #UNCONFIGURED の文字列があるとファイルの中身を認識しないという仕様なので,必ずこの行を消す (コメントアウトではない).
なお,複数のリモコンを認識させるには,リモコンごとのデータをこのファイルに追記すればいいらしい.

さらに,/etc/lirc/hardware.conf を編集.以下,変えたところのみ.

LIRC_ARGS = "--uinput"
DRIVER = "default"
DEVICE = "/dev/lirc0"
MODULES = "lirc_rpi"

lircd を起動する.

#/etc/init.d/lirc start

lircd.conf 等がまずいと lircd が立ち上がらないので,ps -A で lircd が動いていることを確認.

# irsend LIST "" ""

irsend: DENON_RC-266

が返ってくれば lircd がリモコンの信号パターンファイル (lircd.conf) を読み込めている.
今度はキー割り当てを確認する.

# irsend LIST DENON_RC-266 ""

lircd.conf に書き込んだキー名と信号パターンのリストが出てくるはず.

リモコンからの信号が判別できているかを確認する.
リモコンからの受信内容を標準出力に吐く irw を使う.

# irw

リモコンのボタンを押すと,押されたボタンの情報 (上の LIST で出てくる情報) が表示されればOK.いろいろと押してみる.
終了は ^C.

あとはリモコンからの信号に対応して,それぞれ異なったコマンドが実行されるようにする設定が必要で,それは続きに.




0 件のコメント:

コメントを投稿