[Raspberry Pi] 赤外線リモコン

Raspberry Pi を始めたそもそもの理由が赤外線リモコンを作ることだった。材料をそろえたので、早速挑戦してみた。

まず、必要な部品や配線は『ラブベリー・パイで遊ぼう!』(p219)の全くその通りに行った。部品は秋月電子通商からオンラインで注文し揃えた。秋月電子通商は「発送完了」のメールを送ってこないが、その代わりすぐ届けてくれるのが嬉しい。

InfratedRemote-20180228

最初は書籍の通りにやったんだけど、なぜかうまくいかない。赤外線の受信の段階でまったく反応がないのだ。

(あとで気付いたが、これは Raspberry Pi Zero のハンダ付けがうまくいっていなかったのが原因だったようだ。ハンダ付けの修正後、再度挑戦するとうまくいっていたかも。)

書籍に載っているのは LIRC を使った方法だが、ネットで調べたところ、LIRC 以外にWiringPi を使う方法があるという。ということで、こちらに挑戦してみた。(配線は『ラブベリー・パイで遊ぼう!』と同じ。)

WiringPi
http://wiringpi.com/

やり方は以下のサイトの「LIRC は諦めよう」に従ってやった。

Raspberry Pi 3 model B でエアコンをコントロールした話 – s4kr4.blog
http://s4kr4.hatenablog.com/entry/2016/07/24/114444

git からのインストールの段階でつまづいていたが、URL が dragon ではなく、drogonn だと気付いて先に進めた。それ以降はすべて cd で wiringPi ディレクトリ下で行うのがポイントだ(リブートしたりして、ホームディレクトリに戻ったときは注意)。

scanir.c と sendir.c のコードは以下のサイトの「赤外線信号受信プログラム」(=scanir.c)および、「赤外線送信プログラム」(=sendir.c)をそのまま利用させてもらう。

赤外線リモコン受信・送信~LIRCはあきらめましょう | Raspberry Pi 研究室 | Feijoa.jp
http://www.feijoa.jp/laboratory/raspberrypi/infrared/

私は Mac のエディタで2つのファイルを作成し、SFTP で wiring ディレクトリへ入れた(Raspberry Pi で SSH を有効にしていれば SFTP も有効になる。Mac の FTP アプリは FileZilla を使用した)。

以下のコマンドで WiringPi が赤外線の受信用、送信用に使うピンを特定する。Physical(実際のボード上の連番)に対応する wPi の番号(受信用と送信用)をチェックする。

$ gpio readall

例えば、受信用のピンは Physical で 11 なので、対応する wPi が0となる。送信用のピンは Physical で 12 なので、対応する wPi が1となる。よって、sudo ./scanir air_on.data 0 で受信、sudo ./sendir air_on.data 5 1(1の wPi で5回送信する場合)で送信できる。送信回数を多めにするとリモコン操作が成功しやすくなる。

リモコンが動作したときは感動した!

ただ、LED の発信させる方向が微妙すぎて、Raspberry Pi の角度調整が大変だった。距離は 2m ぐらいで普通に届いた。