とある用途のため、余っていたArduino UNOの互換基盤を使って簡易赤外線学習リモコンを作ることにします。
本記事では、要件の整理から設計までを記載の対象とします。
本記事の内容は、執筆開始時点で机上の空論状態のため、実際に組み立てやプログラム作成を行ってみて、設計に不備があれば修正する可能性があります。
実際の組み立てやプログラム作成については、後日執筆する実装編をご参照ください。
要件整理
今回製作する簡易赤外線学習リモコンが満たすべき要件を列挙します。
実装がとんでもなく難しければ変更する可能性があります。
- ボタンの数は2つとし、ノールックでも操作可能とする。
- 2つのボタンはそれぞれ複数の信号を登録できるようにする。
- ボタンを押すたびに登録した信号を順に送信し、最後まで送信したら最初に戻って繰りかえす。
- ボタン操作で登録モードにすれば、その場で新しい信号を追加登録できる。
- ボタン操作で登録内容のリセットを可能にする。
操作フロー設計
製作する簡易赤外線学習リモコンの操作方法を決めます。
こちらも実装が難しければ変更するかもしれません。
- 操作モードと学習モードの2つのモードを状態として持つ
- 操作モード
- ボタンを短く押してチャンネル変更
- 3秒長押しで学習モードへ移行
- 10秒長押しで学習リセット(完了の合図として緑LED3回点滅)
- 学習モード
- 学習モードになると緑LED点滅状態になる
- 他の赤外線リモコンからの信号を受け取れる状態になる
- 学習後、ボタンを短く押して登録完了、既存の学習済みチャンネルに追加される
- 2つのボタンは同一の仕様とする
ハードウェア設計
続いて、要件および操作フロー設計を満たすハードウェアを設計します。
メインのマイコンはArduinoを利用します。
最終的には自前のArduinoシールドを実装して小型化しますが、まずはブレッドボードを利用して動作を確認できるようにします。
回路図は以下のようにします。
ポイントをいくつか記します。
- 実装ではArduinoの互換基盤(格安のやつ)を利用するため、多少配線が異なるかもしれません。
- 赤外線LEDは出力を高めるため、Arduinoからの3.3Vではなく、トランジスタで増幅した5Vの電圧を与えます。
- 赤外線LEDは、IFP(Pulse Forward Current)値が1Aのものを利用することで、抵抗を省略しています。
- IFPは、パルス信号をLEDに流す際に、最大で流せる電流値です。
- 赤外線リモコンで送受信は、規格上パルス信号でやり取りするため、IF(DC Forward Current)値ではなく、IFPを参考にします。
- IF値が0.1Aで、Arduinoの5Vが最大0.2Aの出力が可能なため、配線やプログラミングをミスって連続信号を流してしまうとLEDを壊しますが、今回は自己責任で注意して扱うことにします。
- もう1つの緑LEDについては、PWM機能を利用して電流を制御するため抵抗を省略しています。
- 2つのボタンは、回路図では分かりませんが、プッシュスイッチを採用しています。
その他部分に関しては、特筆するところはありません。
次は、部品調達、実装、プログラミングを行っていきます。
上手くいきますかね。ワクワクしてきました。
コメント