03. pigpioでIoTCAPの赤外線リモコン

ラズパイマガジンのIoTCAPで、専用のリモコンソフトを使って赤外線リモコン機能を利用しているが、前回使用した'pigpio'ライブラリィを使ってリモコン操作が出来ないものなのかとネットで調べたら、'pigpio'のサイトにExamplesとして「IR Record and Playback」(irrp.py)と云うものが有り、さっそくダウンロードして試してみた。
しかし、リモコン信号の読取は出来たが、その信号を出力しても相手側の反応無し。
再度ネットで調べたら、pigpioライブラリを使って作る方法のサイトが有り、それによると、出力する波形の幅を調整する必要が有ることと、GTKWaveアプリでキャプチャした波形を確認できることが分かった。

【追記】(2020/08/20)
Headphone端子とHDMI端子から音声が出力されない事象が発生(USBとBluetoothはOK)し、設定や動作等を色々調査したら、今回作成したプログラムのリモコン操作を行った後に発生することが判明。更に絞り込みの調査をすると、irrp.py内でpigpioのwave_chain()を実行すると同事象が発生する事が分かった。
しかし、ネット上で該当情報が見つからず、これ以上の調査は小生の力では無理なので、結局、元のIoTCAP用のリモコンソフトを利用することにした。残念(-_-;)!

    リモコン操作対象機器
  1. テレビ
  2. ステレオ アンプ
  3. シーリングライト
  4. 扇風機

●波形の確認
下記方法でraspi出力のリモコン波形確認。
GPIO/#4 :入力
GPIO/#13:出力

{{ item1 }}

●波形調整
上記手順で確認したところ、irrp.pyオリジナルのままでは波形の幅が55us前後有り(下図①)調整が必要。
そこで、irrp.pyの該当していそうな箇所を調べて調整してみたところ25us前後になり(下図②)、raspiからシーリングライトを消灯することが出来た。(参考サイト情報より、リモコン信号の周波数38kHz = パルス幅26.3us)

調整箇所は以下の通り。

{{ item2 }}

●ブラウザからリモコン操作
修正版irrp.pyを使って一通りの機器の動作確認が出来たので、ブラウザから操作出来るようにリモコン画面のページをvue.jsとphpを使って作った。


IoTCAP専用リモコンソフトと比べて、若干、raspiを設置する場所の環境範囲が広くなった様に思う。例えば、IoTCAP専用ソフトの場合、raspiの傍に10cmぐらいの高さの障害物がTVとの間に存在すると、専用ソフトでは、TVへのリモコンの反応がなかったが、irrp.pyでは問題無く反応してくれる。ハードは同じIoTCAPなので、ソフトで出力する波形の状態が影響するのかな??
もう一つ、両方のソフトで同じ現象が有り、朝一、タイマーでTVオン、ライトオンの順に実行させるとライトオンが失敗する。しかし、日中や夜間では同じ順番でオンしても正常にオンする。原因として考えられるのは、TVからraspiまでの距離が40cmぐらいと近い事と、推測ですが、TVが温まっていない時に放出する赤外線の量が多いため、リモコン信号へ影響が出て反応できないのではと思っているのですが…??(因みに、raspiをTVから1m以上離した場合は朝一でも正常に動作する。また、その後の実験でTVオンから30分以上経過してからライトオンすれば正常にオンすることが分かった)

【参考】

  1. Examples
  2. ラズパイでエアコン対応の赤外線学習リモコンを pigpioライブラリを使って作る方法、Goodbye LIRC
  3. How do I measure time between two markers in gtkwave?
  4. その他/H9000シリーズ|テレビ|REGZA:東芝 ← 私のはパナ製TVですが関係しそうな記事なので

このページは"Vue.js"を利用してみました。
更新:2020/08/20(2020/07/27)