家電といえば、リモコン操作。リモコン操作といえば、家電といっても過言ではない。
忙しいので適当に記事を書いているわけではない。(と自分に言い聞かせる)
用意するもの
ハードウェア
一般的なご家庭にある下記の材料を用意します。
- Raspberry Pi 3 Model B * 1台
- 赤外線受信モジュール * 1個
- 赤外線LED * 1個
- 抵抗 10kΩ * 1個
- ジャンパワイヤ 少々
- リモコン 少々
下記のページから購入するのが楽かもしれない。
その他
必ずしも必要ではありませんが、あるとより良いです。
- やる気
- 時間
- 目的
LIRCを設定する
・「/etc/lirc/hardware.conf」を編集します
# /etc/lirc/hardware.conf # # Arguments which will be used when launching lircd LIRCD_ARGS="--uinput" #Don't start lircmd even if there seems to be a good config file #START_LIRCMD=false #Don't start irexec, even if a good config file seems to exist. #START_IREXEC=false #Try to load appropriate kernel modules LOAD_MODULES=true # Run "lircd --driver=help" for a list of supported drivers. DRIVER="default" # usually /dev/lirc0 is the correct setting for systems using udev DEVICE="/dev/lirc0" MODULES="lirc_rpi"
・「/boot/config.txt」を編集する。
# Uncomment this to enable the lirc-rpi module dtoverlay=lirc-rpi,gpio_in_pin=23,gpio_out_pin=24
※ポート番号は各自で使うポートを指定してください。
・設定を読み込ませるため、再起動します。
sudo reboot
・モジュールが使えるか確認します、下記 3つがあれば問題ありません。
pi@raspberrypi:~ $ lsmod | grep lirc lirc_rpi 6478 0 lirc_dev 8310 1 lirc_rpi rc_core 16468 1 lirc_dev
動作確認
・いったんデーモン(リモコン入力監視してくれる悪魔くん)を止めておきます。
sudo /etc/init.d/lirc stop
・下記コマンドを実行した後にリモコンを操作します。
なんかいっぱい出たら、正常に動作しています。やったぜ!#たまに勝手に反応します。なんでや!
pi@raspberrypi:~ $ mode2 -d /dev/lirc0 space 16777215 pulse 8412 space 4208 pulse 556 space 500 pulse 531 space 526 pulse 531 space 1578 (省略)
※終了するには「Crtl + C」
リモコンコードを覚えさせる
・下記コマンドを実行します。
pi@raspberrypi:~ $ irrecord -n -d /dev/lirc0 lircd.conf irrecord - application for recording IR-codes for usage with lirc Copyright (C) 1998,1999 Christoph Bartelmus(lirc@bartelmus.de) This program will record the signals from your remote control and create a config file for lircd. (省略) Press RETURN to continue.
・Enter キーで次に進める
Now start pressing buttons on your remote control. (省略) Press RETURN now to start recording.
・Enter キーで次に進んで、覚えさせたいリモコンの色々なボタンを長押しする。
「.」が80個ほど表示されるので押し続ける。
Press RETURN now to start recording. ................................................................................ Found const length: 107157 Please keep on pressing buttons like described above.
・続けて色々なボタンを連打する。いろいろ出た末に解析が終わったっぽいメッセージが表示される。
............................................................................... Space/pulse encoded remote control found. Signal length is 67. Found possible header: 8974 4423 Found trail pulse: 612 Found repeat code: 8983 2188 Signals are space encoded. Signal length is 32 Now enter the names for the buttons.
・個々のボタンを覚えさせるため、「名前を決めてEnter キー」⇒「覚えさせたいボタン押下」する
Please enter the name for the next button (press <ENTER> to finish recording) POWER Now hold down button "POWER".
※電源ボタンを覚えさせる例
・最終的に設定ファイルは下記のようになる
begin remote name lircd.conf bits 16 flags SPACE_ENC|CONST_LENGTH eps 30 aeps 100 header 8974 4423 one 602 1626 zero 602 517 ptrail 612 repeat 8983 2188 pre_data_bits 16 pre_data 0xFF gap 107157 toggle_bit_mask 0x0 begin codes POWER 0xA25D MENU 0xE21D TEST 0x22DD PLUS 0x02FD RETURN 0xC23D PREV 0xE01F PLAY 0xA857 NEXT 0x906F NUM_0 0x6897 MINUS 0x9867 CLEAR 0xB04F end codes end remote
・生成した設定ファイルは「/etc/lirc/lircd.conf」に上書きコピーする
sudo cp lircd.conf /etc/lirc/lircd.conf
・デーモンを再起動する
sudo /etc/init.d/lirc restart
・正しく設定できているか確認する
pi@raspberrypi:~ $ irw 0000000000ffa25d 00 POWER lircd.conf 0000000000ffa25d 01 POWER lircd.conf 0000000000ffe21d 00 MENU lircd.conf 0000000000ffe21d 01 MENU lircd.conf 0000000000ff22dd 00 TEST lircd.conf 0000000000ff22dd 01 TEST lircd.conf 0000000000ff02fd 00 PLUS lircd.conf 0000000000ff02fd 01 PLUS lircd.conf
※終了するには「Crtl + C」
おわりに
受信編はここまで。あとで設定ファイルを見たのだけど、設定できたのは11個までだった…なぜ?
最近はやる気はあれども時間がない。時間を作るほど目的が重要でなくなってきた。
- 作者: 林和考
- 出版社/メーカー: ラトルズ
- 発売日: 2015/07/24
- メディア: Kindle版
- この商品を含むブログを見る
参考サイト
Raspberry Pi 3 Model Bで赤外線受信センサーと赤外線 LEDでリモコン信号を送受信する方法 (ラズパイ3の LIRC機能を使って赤外線学習リモコン、赤外線リモコン送信で外部機器を制御をする方法)
タイトルがとても説明的で長いですが、必要な情報はすべてここにあります。