ブロック図
- コンピュータから赤外線を制御するハードウェア(赤外線コントロールモジュール)とそれを制御するソフトウェアからなります。
- ハードウェアは赤外線の送信部と受信部、およびRS-232Cの通信部からなります。
- ソフトウェアは Windows95 側と PIC 側の2つから構成されています。
- Windows95 側はユーザ・インターフェースと複雑なスケジュール管理を行い、PIC 側は実際の赤外線送受信を行います(こちらをファームウェアといいます)。
- Windows95 上から、さまざまな電子機器を複雑に操作することができます。
- もちろんお手持ちのリモコンを学習する機能も内臓しています。
赤外線信号の分類
- 現在、赤外線信号は電子機器の誤動作を防ぐために、ほぼ規格化されています。
- ただし、まだ独自仕様が多いのも事実です。
- 規格では「リーダ部」、「カスタムコード(会社コード)」、「データ」、「トレーラ(ストップビット)」からなります。
- ちょうどモールス信号のようになっており、信号の長短によって 0, 1を区別します。なお、信号は通常38KHzで変調されています。
- リーダ部分は他の赤外線(太陽光など)を誤認しないためのもので、会社コードはユニークなものになっています(会社数が多いため実際には重複しています)。
- ビットの時間単位は 0.35 - 0.50ms と規定では幅を持たせてあります。
- データ数も5バイト以上の可変になっていますが、5バイトのものが多いようです。
- 現在まで赤外線信号を解析したところによれば、大きく次の4種類に分類されます。
- ほぼすべてのリモコンを網羅していると思います。
STD系(標準規格) Reader,40Bit Data(負論理),Stop Bit VCR系 Reader,32Bit Data(負論理),Stop Bit TV,AV系 Reader,12Bit Data(正論理) 間隔を置いて三回繰り返し CableTV系 未解析 STD系の例(Tは時間単位, 約0.47ms) Reader 8T 4T ~~~~~~~~____ Data 7 6 8 9 2 8 D 7 2 8 T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T ~_~___~___~___~_~___~___~_~___~_~_~_~___~_~_~___~_~_~___~_~___~_~_~_~___~___~_~___~_~___~___~___~_~_~___~_~___~_~_~_ T 3T 3T 3T T 3T 3T T 3T T T T 3T T T 3T T T 3T T 3T T T T 3T 3T T 3T T 3T 3T 3T T T 3T T 3T T T T Stop T_VCR系の例(Tは時間単位, 約0.57ms) Reader 16T 8T ~~~~~~~~~~~~~~~~________ Data 7 6 8 9 2 8 D 7 T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T ~_~___~___~___~_~___~___~_~___~_~_~_~___~_~_~___~_~_~___~_~___~_~_~_~___~___~_~___~_~___~___~___ T 3T 3T 3T T 3T 3T T 3T T T T 3T T T 3T T T 3T T 3T T T T 3T 3T T 3T T 3T 3T 3T Stop T_TV,AV系の例(Tは時間単位, 約0.49ms) Reader 4T T ~~~~_ Data A 8 1 2T T 2T T 2T T T T T T T 2T ~~_~_~~_~_~~_~_~_~_~_~_~_~~_ T T T T T T T T T T T T
- 回路図をご覧いただければわかりますが、部品点数が非常に少なくシンプルです。
- コントローラには PIC16C84 10MHz を使用します。
- PIC16F84 でも可能ですが、コンフィグレーション・ワードが一部異なっていますのでご注意ください。
- 赤外線LED駆動用に単三電池2本使用(パルス電流680mA)します。
- その他はRS-232Cより電源を供給(5V,7mA)します。
- 赤外線受光部はSONYのモジュールを使用しました。
- このモジュールは復調された信号を負論理で出力します。
- そのため、トランジスタによる反転回路を追加しています。
- 他の赤外線モジュールでも代用できるでしょう。
- 赤外線送信部は一般的な赤外線LEDを使いました。
- できれば指向性のないものがいいでしょう。
- 様々な電子機器を一度に制御することを考えると無指向性の方が便利だからです。
RS232C 通信条件
通信速度 9600bps パリティ なし ビット数 8 ストップビット 1 RS232C 通信ケーブル
回路図
- Windows95/NT4.0 では VisualBasic 4.0 を使用して作成しました。
- なんといっても手軽に作成できるのがメリットです。
メニュー説明
メニュー 機能 File
- Save:学習したデータをファイル(remocon.dat)に保存
- COM:COMポートの選択(デフォルトはCOM2)
- Quit:終了
Set
- VCR,AUX,TV,CBL種別ごとにボタンデータを学習
- ボタン相当のメニューを選択後、お手持ちのリモコンボタンを赤外線受光部に向けて押して下さい。
- 正常に認識すると読みとったデータを表示します。
- VCR には VCR系, AUX,TV には TV,AV系, CBL には STD系を割り当てています。
Help
- About:remoconについて
制御コマンド
- ハードウェアの制御には1バイトからなるコマンドを送信することで行います。
- 赤外線送信を行う場合にはコマンドに続けて数バイトのデータを送信します。
- 赤外線受信を行う場合にはコマンドを送ると赤外線受信モードになり、赤外線が受信されると、数バイトのデータを送り返してきます。
分類 コマンド データ VCR系赤外線送信 0x0 4バイト(送信) VCR系赤外線受信 0x10 4バイト(受信) AUX系赤外線送信 0x1 2バイト(送信) AUX系赤外線受信 0x11 2バイト(受信) STD系赤外線送信 0x2 5バイト(送信) STD系赤外線受信 0x12 5バイト(受信) PIC16C84 用ソフトウェア(ファームウェア)
- PIC16C84 のソフトウェアは PICer 用に作成しました。
- PICer でアセンブルしてそのまま PIC に書き込むことができます。
- ソフトウェアは細かくモジュール化してあり、「赤外線送信(38KHz変調を含む)」、「赤外線受信解析」、「RS232C 通信」のいずれかに関わっています。
- RS232C 通信に関しては Microchip のドキュメントAN555 を参考にさせていただきました。
- CPU の 10MHz クロックから 9600bpsのタイミングを生成していますので、他のクロックでは修正が必要です。
- またPIC16F84 ではコンフィグレーション・ワードのパワーオンリセット・ビットがPIC16C84 と逆になっていますので、修正が必要です。
- 現在はコンピュータ側でリモコン本体をシミュレートするだけにとどまっていますが、 カレンダーと組み合わせて本格的なスケジュール管理まで行えればと考えています。
- コンピュータの便利なユーザインターフェースを使えば、面倒なビデオの録画予約も簡単になります。
- ビデオ側の予約機能を使うのではなく、コンピュータ側にスケジュール管理させてしまい、 ビデオに対しては録画命令と停止命令を赤外線を通して指令するようにします。
- もともとスケジュール管理はコンピュータの方が得意です。
- また、ファームウェアにも改善の余地があります。
- 例えば学習機能では自動的に赤外線の系統( STD系, VCR系, TV,AV系 CableTV系 )までも判断させたり、 赤外線リピート機能(音量調節などに利用されます)を追加したりすれば、より便利になります。
- みなさまのご意見、ご感想をお聞かせください。