昔秋月で買った赤外線受信モジュールをラズパイに取り付けて
テレビリモコンの信号を読み取らせてみようとしているがうまくいかず。。。
手順としては、lircをインストールし、lirc-rpiモジュールの読み込み設定を/boot/config.txtに書いてリブート。
その後、各モジュールおよび/dev/lirc0は見えるようになるが、/sys/kernel/debug/gpioにピン情報が正しく表示されない。
pi@raspberrypi ~ $ sudo cat /sys/kernel/debug/gpio
GPIOs 0-53, platform/20200000.gpio, pinctrl-bcm2835:
gpio-16 (? ) out hi
?って何だよw
また、
mode2 -d /dev/lirc0
で赤外線受信状況を見ようとするが、テレビリモコンをぽちぽちしても何も表示されず。
ただ、赤外線受信モジュールに触るとpulse/spaceが大量に表示される。静電気とか!?
Raspberry pi Bと最新OSのJESSIEの組み合わせが悪いのかな!?
とりあえず、アップデート関連をやってみることにする。
更新前バージョン情報
pi@raspberrypi ~ $ uname -a
Linux raspberrypi 4.1.7+ #817 PREEMPT Sat Sep 19 15:25:36 BST 2015 armv6l GNU/Linux
更新後バージョン情報
pi@raspberrypi ~ $ uname -a
Linux raspberrypi 4.1.13+ #826 PREEMPT Fri Nov 13 20:13:22 GMT 2015 armv6l GNU/Linux
apt-get update/upgradeでは変わらなかったが、rpi-updateでバージョンがあがったようだ。
バージョンあげても改善されず。lircを使うのは諦めようかな。。。
[2015/12/10追記]
テレビリモコンではなく、照明リモコンまたはエアコンリモコンを使ってmode2コマンドを試したら、あっさり受信できた。
相変わらず、debugfsの表示は上のままだけど。。。とりあえず先に進める!!
irrecordコマンドを利用して、リモコンのパターンを学習しファイルに書き出す。
$ irrecord -n -d /dev/lirc0 light.dat
書き出したファイルは以下の感じ。
複数回試したが、gapの値もだいぶ違うし、rawの個々の値も違う。ただ、rawの個数は同じで23個。
HI/LOWしか恐らく見ていないのだと想像できる。
begin remote
name light.dat
flags RAW_CODES|CONST_LENGTH
eps 30
aeps 100
gap 53988
begin raw_codes
name on_off
1224 454 1221 467 1222 463
1218 470 381 1306 374 1313
1217 471 373 1313 374 1314
373 1313 375 1314 372
end raw_codes
end remote
上のファイルで/etc/lirc/lircd.confを置き換えて、lircdデーモンを起動させ、
irsendコマンドを使用すると無事に部屋の照明をON/OFFさせることができた。
$ irsend SEND_ONCE light.dat on_off
HIを1、LOWを0としすると、上記信号は
10101010010110010101010
で表すことが可能。
最終更新:2015年12月10日 23:14