Raspberry Piで赤外線受信

昔秋月で買った赤外線受信モジュールをラズパイに取り付けて
テレビリモコンの信号を読み取らせてみようとしているがうまくいかず。。。

手順としては、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