PIC関連メモ/リモコンの作り方

Last-modified: 2009-12-14 (月) 09:02:47

リモコンの仕組みを一応、ざっとみたらここへ。
ここでは、自作リモコンというより、既存のリモコンのコピーを作ることを目標とする。

手順

  1. 既存のリモコンの赤外線をキャプチャする
  2. データの並びを知る
  3. 同じデータを送信できる送信機を作る

説明

既存のリモコンの赤外線のキャプチャが必要なのは2つ理由がある。

  1. データ部の01の並びは、各社によってバラバラだから
  2. データの間隔が、規定では、0.56msだが、結構、いい加減でずれていることが多いから。
 

受信は、赤外線受光素子で行い、送信は、赤外線LEDで行う。受信は、直接PICの足にデータをつないじゃえばいいし、送信は、トランジスタを制御するなどして、赤外線LEDをON/OFFすればいい。

キャプチャ方法

リモコンの赤外線を受信するための回路&プログラムを作る必要がある。
回路はこの2つが見つかった: 
http://masudayoshihiro.jp/technology/ir01.php
http://amahime.main.jp/sekigaisen/main.php?name=sekigaisen

 

プログラムは、この2つが見つかった:
http://amahime.main.jp/sekigaisen/main.php?name=sekigaisen
http://www.necel.com/micro/ja/designsupports/sampleprogram/78k0/index.html

 

プログラムの下のリンクは、NECエレのリンクで、プログラムとその説明がダウンロードできる。
2msで受信データをポーリングしておき、3回Lが続いたらリーダーとみなし、以後を全部キャプチャするという処理の流れ。

正確なキャプチャが必要なのは最初だけ

カスタムコードと時間間隔がわかれば、01のデータの並びは、もっと単純に知ることが出来る。
たとえば、http://www5e.biglobe.ne.jp/~avm/では、赤外線受光素子をパソコンの音声入力に接続して、オーディオ信号から01を判断している(長い波が1、短い波が0)。
もしかしたら、キャプチャしなくても、NECフォーマットにしたがって、この通りに01流したらいけるかもしれない。

あとは受信したデータと同じ波形を赤外線LEDに出力してあげるだけ

送信タイミングは

long  IRList[] = { /* Sony-TV CHUP */
 6251 ,  1214 , /**   0Bit( 7465) */
 1768 ,  1208 , /**   1Bit( 2976) */
 1748 ,  1232 , /**   2Bit( 2980) */
 1715 ,  1301 , /**   3Bit( 3016) */
 1665 ,  1311 , /**   4Bit( 2976) */
 3104 ,  1360 , /**   5Bit( 4464) */
 1618 ,  1353 , /**   6Bit( 2971) */
・・・
 

みたいに、ちゃんと計って出力すれば間違いなく動作すると思う。
0を出力するルーチンと1を出力するルーチンを作って実行しても、たぶん、ちゃんと動くと思う。