赤外線リモコン スマートリモコン Smart Remote Controller Arduino PlatformIO ESP32 本項では全画面表示が可能な図番に * を付けています。
マイクロプロセッサ モジュール
・ESP32-DevKitC-32E
Wi-Fi モジュールも実装されていて使い勝手のいい Espressif 社の ESP32-DevKitC-32E ( ESP32 モジュール )を使用します。赤外線受光 IC と赤外 LED など少しの外付け部品を追加するだけで動作します。
ESP32 モジュールについて購入先の秋月電子通商で検索すると、『ESP-WROOM-32が実装されている評価/開発用ボードです。シリアル⇔USB変換チップ、リセットスイッチ、ブートモードスイッチを搭載しています。PCに接続するだけで、ESP32の評価/開発ができます。』『Espressif Systems社の無線通信モジュール、ESP32-WROOM-32Eの評価基板です。ほとんどのI/Oを引き出してあります。手軽に実験や評価が行えます。』と説明があります。
ESP32-DevKitC-32E の特長
・デュアルコア 32bit Xtensa LX6マイクロプロセッサ
・40MHzクリスタル発振器を内蔵して最大240MHz動作が可能
・2.4GHz Wi-Fi 802.11b/g/n
・Bluetooth V4.2 BR/EDR and Bluetooth LE
・オンボードアンテナ
・4MB SPI FLASH
・26本のGPIO
USB ケーブルで PC とこのモジュールを接続するだけでプログラム開発ができるオールインワンの優れものです。
今回は、このモジュールに赤外線受光 IC と赤外線 LED を外付けするだけで学習リモコンのハードウエアが出来上がります。
赤外線受信回路
表1 赤外線受信回路部品表
部品番号 | 部品名 | 機能 | 説明 |
U1 | SPS-445-1 | 赤外線受光IC | キャリア周波数38KHz ローアクティブ出力 |
Q1 | 2SC945 | NPNトランジスタ | レベルシフト用 |
R1 | 抵抗 | 22KΩ | プルアップ |
R2 | 抵抗 | 22KΩ | バイアス |
R3 | 抵抗 | 100Ω | 電源平滑 |
C1 | コンデンサ | 4.7μF | 電源平滑 |
図1 に赤外線受信回路を示します。
赤外線受信回路には次の 3 つの機能があります。
①赤外線信号を電気信号に変換する。
②赤外線受光回路の動作/非動作をファームウエアから制御する。
③赤外線受光 IC 出力の 5V 振幅を 3.3V 振幅に変換する。
①赤外線信号を電気信号に変換するには、専用の赤外線受光 IC を使用します。赤外線受光 IC U1 はキャリア周波数 38KHzで 5V 電源で動作します。赤外線入力が無い状態では出力端子 Vout には 5V が出力されています。赤外線が入力されるとローアクティブ出力で赤外線に対応したパルス波形が出力されます。
U1 は 5V 電源が印加されていると赤外線信号の入力に応じて Vout 端子にパルス波形を出力します。一方赤外線信号をデコードするファームウエアはこのパルス波形の入力をトリガに動作を開始します。学習モード以外で赤外線信号をデコードしないように工夫する必要があります。
②赤外線受光回路の動作許可/禁止をファームウエアから制御するために、NPN トランジスタ Q1 を使用します。Q1 のベース(B)端子にバイアス抵抗 R2 を通して ESP32 モジュールの GPIO33ピンから HIGH(3.3V)が印加されると、Q1 は動作状態となります。一方 Q1 のベース(B)端子に抵抗 R2 を通して GPIO33ピンから LOW(0V)が印加されると、Q1 は非動作状態となります。
③赤外線受光 IC 出力の 5V 振幅を 3.3V 振幅に変換するのにも、Q1 を使用します。Q1 のベース(B)端子に HIGH(3.3V)レベルを印加して Q1 を動作状態にしておきます。
Q1 のエミッタ(E) 端子が 0V になると Q1 はオンします。つまり Q1 のコレクタ(C)端子が 0V となります。
Q1 のエミッタ端子(E)が 5V になるとベース端子(B)の 3.3V より高くなるので Q1 はオフします。抵抗 R1 で Vdd 3.3V にプルアップされているのでこのときコレクタ端子(C)は 3.3V になります。
このようにして赤外線受光 IC 出力の 5V振幅が3.3V振幅にレベルシフトされて ESP32 モジュールの GPIO15ピンに入力されます。
ESP32 モジュールの 5V から電源平滑用の抵抗 R3 100Ω、コンデンサ C1 4.7μFを経由して赤外線受光 IC の電源端子 Vcc に印可されます。Vdd 3.3V, GND の各端子は ESP32 モジュールの 3V3, GND の各端子に接続します。
ハードウエア設計の勘所はこちらを参照ください。
ESP32を使って学習リモコンを作る(9) ハードウエア設計の勘所
赤外線送信回路
表2 赤外線送信回路部品表
部品番号 | 部品名 | 機能 | 説明 |
LED1 | OSI5FU5111C-40 | 赤外線発光ダイオード | 赤外線波長940nm 直径5mm砲弾型 |
Q2 | 2SC945 | NPNトランジスタ | 赤外線LEDスイッチング用 |
R4,R5 | 抵抗 | 75Ω | LED電流制限用 |
R6,R7,R8 | 抵抗 | 100Ω | ベース電流制限用 |
R9 | 抵抗 | 4.7KΩ | ベース電荷放電用 |
ESP32 モジュール の GPIO4ピンから出力された送信信号は、抵抗 R6、R7、R8 と R9 から構成されたバイアス回路を通して Q2 のベース(B)端子に入力されます。赤外線 LED LED1 は電流制限抵抗 R4,R5 を通して Q1 のコレクタ端子(C)に接続されています。
ESP32 モジュールの GPIO4ピンが HIGH の場合 Q2 が ON してLED1 に電流が流れて赤外線が出力されます。(赤外線は肉眼では見えなくてスマートフォンなどカメラを通すと見えます。)
ESP32 モジュールの GPIO4ピンが LOW の場合 Q2 は OFFして LED1 に電流が流れないので赤外線は出力されません。
なお抵抗やトランジスタは手元にあるものを使っただけです。R6~R8 は 330Ω一本、R4,R5 は33Ω一本でも構いません。
図4 に赤外線送信回路出力波形例を示します。LED1 が発光している波形を直接見ることはできないので、Q2 のコレクタ(C)波形を見ています。
ハードウエア設計の勘所はこちらを参照ください。
ESP32を使って学習リモコンを作る(9) ハードウエア設計の勘所
部品配置
部品配置を図5 に示します。ESP32 モジュール を中心に右側が受信回路、左側が送信回路になります。
次回からはソフトウエアの詳細について説明します。
参考情報
① 赤外線リモコンの通信フォーマット
分かりやすく図解されています。
② Infrared Hex Code Database / Index of Bose Models
Bose 社赤外線リモコンフォーマットの参考情報
③ Discrere Code Hunter / Converting IR Codes
Bose社赤外線リモコンフォーマットの参考情報
リンク
ESP32を使って学習リモコンを作る(1) 学習リモコンでどんなことができるの?
ESP32を使って学習リモコンを作る(2) ハードウエア
ESP32を使って学習リモコンを作る(3) ソフトウエア 赤外線リモコン受信( irReceive )
ESP32を使って学習リモコンを作る(4) ソフトウエア 赤外線リモコン送信( irSend )
ESP32を使って学習リモコンを作る(5) ソフトウエア webserver
ESP32を使って学習リモコンを作る(6) ソフトウエア FLASH 読書き(SPIFFS)
ESP32を使って学習リモコンを作る(7) ソフトウエア 本機のプロジェクト
ESP32を使って学習リモコンを作る(8) ソフトウエア 本機プロジェクトの勘所
ESP32を使って学習リモコンを作る(9) ハードウエア設計の勘所
ESP32を使って学習リモコンを作る(10) 学習リモコンを操作した時のターミナル出力
Smart_Remote_Controller プロジェクト GitHub
(YI)
コメント