なんとか動くようになったので,ブレッドボードから本体直付けに変更したところ.
リモコン信号は認識できるようになったので,信号に対応したアクションを設定する.
受け取った信号を元にコマンドを発行するには irexec を使う.デフォルトではユーザのホームディレクトリの .lircrc ファイルを読み込むようだ.
.lircrc の書式は,
begin
prog = irexec
button = next
config = mpc next
end
というのをコマンドごとに書いていく.
config のところが実際に実行されるコマンドだが,複数処理であれば,
config = mpc ; mpc
というように ; でつなげればよい.また今回は使わなかったが,config 行を2つ書くと,そのふたつをトグルで実行するようだ.
また複数のキーを順番に押したときの動作は,button 行を複数書くことで指定できる.たとえば,
begin
prog = irexec
button = 1
button = 2
config = mpc
end
これで,1 を押して 2 を押すと mpc が実行される.
テスト用には echo "test" くらいを割り付けておくのが簡単.
どのキーにどういう動作を割り付けるかは自由なのだが,
再生操作については
▶ : mpc play
|| : mpc toggle
■ : mpc stop
<< : mpc prev
>> : mpc next
|<< : mpc cdprev (再生中の曲を頭から再生し直す)
ボリューム用には
▲ : mpc volume +5
▼ : mpc volume -5
を割り当てた.
このほか,consume の on/off,repat の on/off あたりを適当に振ってみて様子を見ている.
残りのボタンは未定義.
shutdown 用には,左上の [open-close] から順に並んでいるキーを三つ順に押すというのを割り当ててみた (誤操作防止のため).
→
→ 再追記: Volumio 用の lirc は現時点では 0.9.0-pre1 で,ignoro_first_events が実装されていないため,この設定は無視される.そのため,今は button 行を3行続けて,3回連続で押すと shutdown にしてある.
なお,実際にはただ shutdown に入るのではなく,まず GPIO25 の LED を点灯させるようにしてみた (echo 1 > /sys/class/gpio/gpio25/value を実行してから shutdown -h now を実行する).
そのために,shutdown ボタン用のスクリプト もちょっと変えて,読み込み時に GPIO25 を開いてしまうようにした (元々は shutdown 直前まで GPIO25 は何も設定していなかった).
ついでに,reboot も組み込んでみた.
これらの動作の確認は,
# irexec
とやって,受信状態に入り,指定コマンドが実行されることを確認すれば良い.終了は ^C.
問題がなさそうであれば,これを daemon として自動起動するようにする.
/etc/rc.local に以下を追記.
/usr/bin/irexec -d /root/.lircrc
-d は daemon の指定,念のため .lircrc のありかも明示的に指定している.
これでリモコンが動けばOK.
音量調整だけでも結構便利.
受光モジュールと分圧抵抗はまたショートジャンパでお手軽にくっつけてみた.
0 件のコメント:
コメントを投稿