赤外線リモコンを作る
いまさらの赤外線リモコンかもしれないが,理由はGoogleTVのリモコンボタンの使い勝手が良くないので何とかしようという試みである

使いにくいのは赤の部分の移動キーと中央のOKキーで,特にOKキーが押しにくい
当初はBuletoothで接続されているので改良は困難かなと思っていたら,Buletoothを利用しているのは音声検索で他のボタンは赤外線であることが判ったので,一部のボタンを別リモコンとしてみることにした
尚,別リモコンにするのは矢印キーとOKキー,戻るキー(←)で,全てのボタンを作る訳ではない
赤外線受信
赤外線コードの解析のため,先ずはESP32を使用して受信機能を作る


昔,秋月で購入しておいた安価な赤外線モジュール(SPS-442-1)→ 今でも在庫があるようだ

ソフトウェアは「IRremoteESP8266」ライブラリの,スケッチ例 > IRremoteESP8266 > IRrecvDumpV3 を利用すれば簡単に解析できると思っていた
しかし,動作させてみるとリモコンのボタンを押さなくても,解析データが止まらず出力されてしまう
SPS-442-1の仕様書には誤動作を避けるために電源のリップルノイズをRCフィルター(R=100Ω,C=22μF)を付けて減らせとあるので設置したが変わらなかった
出力をオシロスコープで確認してみると,無信号時はHIGHレベル出力になっているはずなのだがパルスとなっている

不良品かと変更してみたが同じだったので,これが仕様なのかとIRrecvDumpV3での解析を諦め,無信号パルスを避けるスケッチを作り解析
この件だが後で受信モジュールを基板化すると改善され無信号時はHIGHレベル出力となりIRrecvDumpV3で解析できるようになる
ブレッドボードだと何らかのノイズなどで受信している(つまりキャリアがある)とみなし復調していたのではないだろうか
解析用スケッチ(SJIS,TAB4):NEC,AEHAのみでSONYは未完成
フォーマット:NEC
ベンダーコード:0x4040
ボタンコード
0x21:電源
0x15:上
0x18:右
0x16:下
0x17:左
0x48:戻る
0x47:ホーム
0x19:OK(中ボタン)
(参考)
https://elm-chan.org/docs/ir_format.html
https://www.asahi-net.or.jp/~gt3n-tnk/IR_TX1.html
再利用することもありそうなので基板化

電源が5Vなので3.3V出力にするため分圧する必要がある
このモジュールはオープンコレクタ部に抵抗を設けているので抵抗値を確認

46kΩであった(モジュールごとで異なるようだ)
R4=100Ω,C1=22μF
赤外線送信
コードが判ったので送信機を作る
矢印キーとOKボタンはジョイスティックを使う(戻るボタンはモーメンタリSW)

ジョイスティックの解析は「よみやさん」のYoutube動画を参考にした
電源は5Vとあるが3.3Vでも問題なし

赤外線LEDは50~100mAなのでトランジスタでドライブする


2N7000と2SC1815を利用する回路を検討(どちらも動作した)
- Vf1.35V,50mAで算出
- 50mAで出力が弱い場合はR1=47Ωにすると良い
- 赤外線LEDを3.3V動作にするなら同じR1を並列に繋げば良い値になる
スケッチは「IRremoteESP8266」ライブラリで,RAW出力(sendRaw)にしたら受信が安定しないので最終的にコード出力(sendNEC)にした

ESP-WROOM-32で動作確認後,基板化ではサイズ的にESP32C3に移植
リモコンスケッチ(SJIS,TAB4)
赤外線コード(SJIS,TAB4)

ESP32C3のPWMピン(6個あるはず)が解らず,手探りで探しGPIO6で動作
まだ実験用になるので電源はUSBで供給

ケースに入れてないので使い勝手は良くないが動作は良好
改良点としては
- DeepSleepで省電力化
- ESP32C3をATtiny85に変更(コンパクト化)
- 電源を設ける(単4×2位か)
- ケース作製
この試用ボードには受信機能も追加しておくと良さそうではある


