作品紹介
赤外線リモコンキャンセラーの製作(1)
ホームページに戻るトップページに戻る前ページに戻る次ページに進む最終ページに進む
赤外線リモコンは、家庭内でもテレビ,ビデオ,エアコンなど多くの機器を遠隔操作するために使用されています。
そのような赤外線リモコンを妨害し、遠隔操作不能にする機器を製作したので紹介します。
どのような場面で活用できるか、それはこれをご覧の皆さんで考えて判断してください。
1.赤外線リモコンキャンセラーとは

 赤外線リモコンキャンセラーとは、何かリモコンの赤外線信号(以降 リモコン信号)を受信したときに、同様の赤外線で妨害波(キャンセル信号)を送信する装置です。
 このキャンセル信号により、リモコン信号のフォーマットは崩れるので、操作対象の機器は正常に受信できなくなります。
赤外線リモコンキャンセラーのイメージ図
 次の写真が製作した赤外線リモコンキャンセラーです。この装置は、特定のリモコンや特定の操作をキャンセルするものではありません。以降で説明する、3種類の信号フォーマットのどれかを使った赤外線リモコンであれば、どの操作でも区別なく作用します。
製作した赤外線リモコンキャンセラーの外観

2.キャンセルの仕組み

 赤外線リモコンについての詳細は省きますが、その信号フォーマットについて簡単に説明します。
 よく使われている信号フォーマットには、NEC方式、家電製品協会(AEHA)方式、SONY方式の3種類があり、メーカーによって使用している方式は異なります。それらは、フォーマットつまりデータの書式・構成が異なるだけで、波長950nmの赤外線に、周波数38kHz前後でON/OFFする変調を加えたパルス波を使っている点は同じです。したがって、送信・受信回路は共通で可能です。
 次の図は、この3種類の信号フォーマットを示すものです。ただし、それぞれリーダーコード部分(信号の先頭部分)のみで、データ部分は省略しています。また、この図は赤外線リモコン受信モジュールの出力波形のため、波形のLOW部分に赤外線パルス波があることを示しています。

リモコン信号のヘッダー部の違い

 下記の波形(上)は、今回使用した赤外線受信モジュールの出力端子で見た、ある NEC方式リモコンの実際の信号波形です。受信する機器は、このリーダーコードのLOW部分とHIGH部分の幅を測定して、求めるフォーマットのリモコン信号かどうか判断するはずです。そして、対応すると判断されれば、以降に続くデータ部分を受信するでしょう。ちなみに、メーカーや対象機器の判別は、データ部にあるコードで行われ、対象外のリモコン信号は無視されるようになっています。
リモコン信号キャンセルの実際の波形
 上記の波形(下)のように、この赤外線リモコンキャンセラーの働きは、リーダーコード先頭のLOW部分を受信し、その直後にキャンセル信号を送信することです。キャンセル信号は、リモコンと同じ38kHzで変調した赤外線パルス波なので、次にあるべきHIGH部分はつぶれてLOWになります。キャンセル信号は、念のためにデータ部分の先頭付近もつぶすため、約10mS送信しています。
 ところで、製作した赤外線リモコンキャンセラーは、受信したLOW部分の幅をチェックしていて、先にあげた3種類のフォーマット以外では反応しないようになっています。

3.回路

 次の図は、この赤外線リモコンキャンセラーの回路図です。
回路図

 リモコン信号の受信には、赤外線リモコン受信モジュール OSRB38C9AAを使っています。そして、リモコン信号の解析とキャンセル信号の作成は、Atmel(現Microchip)の8ビットAVRマイコン ATtiny44A-PUを使って行っています。
使用したマイコンの外観
ATtiny44A-PU
 この受信モジュールとマイコンの使用で、回路自体はとてもシンプルです。
 キャンセル信号の送信には、赤外線LED OSI5LA5113Aを2つ使用しています。2つ使った理由は、2つを異なる方向に向けることで、キャンセル信号が届く範囲を広げるためです。
 赤外線LEDには、瞬間的ですが1本に標準で約155mA流しています。そのため、駆動するトランジスタにはコレクタ電流Icが max500mAの 2SC1213を使いました。
 マイコンの端子PA5に接続されている赤LEDは、キャンセル信号を送信中であることを示す表示灯です。ただ、約10mSしか点灯しないので、少しわかりにくいかもしれません。
 回路図に描かれていませんが、電源には単三型のアルカリ乾電池2本(DC3V)を使っています。

4.リモコン信号の受信方法

 リモコン信号のフォーマット判別は、マイコンの「16ビットタイマ/カウンタ1」をインプットキャプチャ(Input Capture)モードで使って、信号のパルス幅を測ることによって行っています。
 インプットキャプチャモードは、端子ICP1の H/Lが変化したときのタイマカウンタ1の値を保持するもので、前回の変化からの時間、つまりパルス幅を測ることができます。
 ただし、ここではリーダーコードの先頭のLOW部分だけを受信し、以降は無視しています。

5.キャンセル信号の作成方法

 キャンセル信号にする38kHzで変調したパルス波は、マイコンの「8ビットタイマ/カウンタ0」(以降タイマ0)を、CTC(Clear Timer on Compare Match)モードで使い作っています。
 CTCモードは、設定したクロックでタイマカウンタ0(TCNT0)をアップカウントし、コンペアレジスタA(OCR0A)の値と一致したときにTCNT0を0クリアして、またカウントを続けるというものです。
 次の図で、CTCモードでの波形出力の仕組みを説明します。まず前提として、タイマ0のクロック入力を、システムクロックと同じ 8HMzとします。そして、TCNT0がOCR0Bと一致したときとOCR0Aと一致したとき、それぞれ割り込みを発生するように設定しておきます。
キャンセル信号の作成方法説明図
 図のように、OCR0Bと一致したときの割り込み処理で端子PA6をH(1)にし、同様にOCR0Aと一致したときL(0)にするようにします。これにより、OCR0Aにより周波数が決まり、OCR0Bによりデューティ比が決まる矩形波が出力できます。
 次の波形は、実際に端子PA6から出力したキャンセル信号の波形です(ch2の波形)。ほぼ26μS(38kHz)が出力されているのがわかります。
キャンセル信号の実際の波形

 波形出力が容易な高速PWMモードを使わない理由は、波形出力の端子であるOC0BがICP1と同一ピンだったためです。
 キャンセル信号を10mSだけ出力するために、OCR0Aと一致した割り込みの回数を数えています。具体的には、割り込みは26.25μSごとなので、380回数えて停止させています。

ホームページに戻るトップページに戻る前ページに戻る次ページに進む最終ページに進む
■■■ 注 意 ■■■
1.ここに掲載された内容(写真,図,表などを含む)の、全てまたは一部を無断で使用しないでください。
2.ここで紹介した手法(構造や仕組み,回路,プログラムなどを含む)を使用したことにより、問題や不利益が発生したとしても一切関知しません。
3.ここで紹介したプログラム例は、正常なコンパイルおよび正常な動作を保証するものではありません。