このページでは、家製協方式、NEC方式、SONY SIRC方式の各赤外線リモコン方式について説明します。 なお、3Dメガネ用の赤外線信号については、「方式編-3D映像方式」を参照してください。 |
まずは、赤外線リモコンの仕組みから説明します。赤外線リモコンは搬送波(キャリア)に約940nm(900〜950nm前後)の赤外線を使用しています。そして、約38kHz(33〜40kHz前後)の副搬送波を使って赤外線の発光と非発光を繰り返す振幅変調ASK(Amplitude Shift Keying)方式とパルス位置変調PPM(Pulse Posistion Modulation)方式を組み合わせた二つの変調を行って情報を送信します。 送信する情報の生成方法は、約38kHzの副搬送波に対して約700bpsの速度のパルス位置変調方式PPMによる一次変調を行い、この信号を赤外線発光ダイオード(LED)に供給することで振幅変調方式ASKによる二次変調が行われます。 なお、二次目の振幅変調は発光ダイオードに電流を流しているだけなので、変調であることをあまり意識しなくても設計が可能です。このため、二次目の変調を省略して考える場合も多く、この場合は前述の副搬送波のことを単に搬送波と呼びます。
|
パルス位置変調方式(以下PPM)とは、情報をパルスの位置で示す変調方式です。PPM方式には2つの処理が含まれており、まず、パルス位置を示す信号を生成する符号化を行ってから、生成した信号に振幅変調を行います。 始めに、パルス位置符号の符号化方法から説明します。下図はパルス位置符号の一例で、情報が0の時はOFFの時間が短く、情報が1の場合はOFFの時間を長い信号となっています。
この例では情報によってOFF区間に3倍の違いがあります。情報0と1の発生確率が同じ場合は平均のOFF区間が2Tとなり、平均速度は約700bpsとなることが分かります。 また、ON区間よりも後ろのOFF区間の長さに情報が付与されていることから、データーの最後にSTOPビットとよばれるON区間を含む情報が送信しなければ、最後の情報が欠落してしまうことが分かります。(家製協方式とNEC方式の場合) 次に、生成符号に約38kHzの副搬送波を用いて振幅変調を行います。下図のようにPPM信号がONの時に搬送波を出力し、OFFの時に非出力する、つまり、「点滅」か「消灯」で信号を送ります。
下図は実際の信号波形をPICkit2のロジアナ機能で測定したものです。表示解像度の関係で26μsの搬送波は正しい分解能で見れていませんが、赤外線が点滅する様子を示しています。 実際の信号波形の例(PICkit2にて測定1000us/DIV) 以上のようなパルス位置符号化と振幅変調の2つの処理を合わせて、PPMが実現されます。 |
前述のパルス位置変調された変調波を、赤外線発光ダイオードに入力することで、約940nmの赤外線として送信されます。副搬送波の波長が約7900mなので変調周波数は約10桁くらいの違いがあります。 変調は赤外線LEDで実施されるので、下図のような赤外線LEDに電流を流すための回路だけで実現できます。ベースの入力抵抗は、赤外LEDの発光時に大きな電流を流すために、小さめに設定しています。また、コレクタの出力抵抗RはLEDの順方向電圧VFと最大尖頭電流IFmax.から求めます。 例として、入力抵抗に2.2kΩのベース抵抗を入れ、出力抵抗は、VF=1.5V、IF(max)=30mAの時、R=100Ωとなります。なお、赤外LEDに常時電流が流れてしまう心配があるようでしたら、IFは標準値を使用した方が良いでしょう。
このような回路図だと赤外線LEDに大きな電流を流すことが出来ないので、リモコンの送信可能距離が短くなったり、リモコンを受信機の方向にしっかりと合わせないと信号が届かなくなります。 そこで、下の回路図のようなコンデンサにLED発行用のエネルギーを貯めてから発光する方法が考えられます。赤外線LEDはパルス発光なのと、ボタンを押し続けてもコマンドの休止区間があります。したがって、連続して発光することが無いので発光の瞬間だけに大きな電流を流すことが出来ます。
赤外線を発光する瞬間は2SAのトランジスタがOFFしてコンデンサへの供給が途絶えますが、2SCのトランジスタによってコンデンサから赤外線LEDに電流を流します。一定以上の点灯時間が継続するとコンデンサの電荷が無くなり、赤外線LEDは消灯されます。この回路図では、およそ400mAの電流を流すことが出来ますので、パルス点灯している瞬間の出力を上げることが出来ます。 なお、入力がオープンになったとき、2SAのトランジスタから2SCのトランジスタのベースに電流が漏れてきてLEDがオンしてしまいます。2SCの入力ベース抵抗(100Ω)を1kΩ以上の高値に変更すると、2SCのベースへの漏れ電流は少なくなりますが、2SCの増幅度が不十分になるって発光出力が下がると思います。 |
赤外線リモコン信号のフォーマットは、主に家電製品協会(AEHA)方式、NEC方式、ソニーSIRC方式の3種類があり、一例として、PanasonicやSHARPは家電製品協会に準じた上で独自の仕様を取り入れています。 下表は、それぞれほ方式のデーターフォーマットです。項目の「SYNC」は初期の同期部を、「DATA0」はデータの値が0の時の信号を、「DATA1」は1の時の信号を、「STOP」はデーターの終了を表しています。また、表中の「ON」は赤外線の38kHzでの点滅状態を、「OFF」は非点滅状態を、括弧内は点滅もしくは非点滅の長さを変調単位時間Tを用いて表しています。
|
赤外線受信モジュール(レシーバーモジュール)を使用することで副搬送波38kHzのASK復調後の信号を取り出すことが出来ます。多くの受信モジュールがCMOS出力となっているので、VOUT出力をGPIOなどに直接接続することで動作します。(VOUT出力にプルアップ抵抗やフィルタが必要なモジュールもあります。)
受信モジュールは38kHzの副搬送波で振幅変調された赤外線のみを検出することが理想ですが、受信モジュールの中にはノイズを多く検出してしまうものもあります。こういった場合、モジュール出力に負荷を与えることで、ノイズ耐性を改善できる場合があります。 読取りソフトウェアは「(1).IR-TESTER 赤外線リモコン受信ソフトウェア」から、回路図は「赤外線リモコンテスター回路図」を参照してください。 下図は、ノイズ耐性を改善するとともに、モジュールから出力される論理反転信号を正論理に戻す受信回路の一例です。トランジスタのベース抵抗を1kΩ〜10kΩの範囲で調整して、感度を調整します。但し、1kΩ未満にするとモジュールが破損してしまう恐れがあります。必ず、受信モジュールの最大出力電流を超えないように設定してください。
なお、上図の回路図では、待機電力が増大してしまいますので、乾電池などで常時待機するような場合は、工夫が必要です。しかし、ACアダプタで駆動する場合は、無負荷時のACアダプタの消費電力(一般に100〜300mW程度)の方が遥かに大きいので、削減に対する効果の割合が少ないと思います。 |
上記の赤外線リモコン受信回路図は、低感度といっても数mの距離から操作の出来る感度があります。一方、学習リモコンの学習用の受信回路は、非常に近距離で使用するので、さらに低感度であっても良いのです。 そこで、赤外線LEDを使った受信回路の製作例を説明いたします。ご存知のとおり、赤外線LEDは電流を流すと赤外線を発光します。しかも、反対に赤外線などの光エネルギーを受けると発電し、電流を取り出すことも出来ます。
しかし、微小な電流しか取り出せないのでインピーダンス変換のための増幅回路等が必要です。上の回路図の出力をH8マイコンのADCに入力すれば、赤外線信号をアナログ波形として取り込むことが出来ます。H8/3694Fの場合、約6us間隔で入力できるので、80kHz程度の信号までサンプリングすることが出来ますが、メモリ容量が小さいので、全てをメモリーに取り込むのは難しいと思います。開発中のソフトウェアは次節の「(2).IR-ADC 近距離LED受信用ソフトウェア」からダウンロードできます。 |
受信した信号は振幅変調は復調されていますがパルス位置符号化されているので、このままでは信号が読み出せません。各種のリモコン信号を復号するソースリスト等(あまり綺麗ではありません)を無償で公開していますので、御利用ください。 受信部や送信部のソースリストは様々なマイコンで実行できると思いますが、その他のソフトウェアはRENESAS H8/300H Tiny シリーズの H8/3664FおよびH8/3694F用です。秋月のAKI-H8/3664BPや古いAKI-H8/3664Fのクロックにはセラミック振動子が採用されていますが、本ソフトウェアではクロックのずれを時計RTC用水晶クロックでキャリブレーション(補正)する機能を搭載し、精度を向上しています。 (1).IR-TESTER 赤外線リモコン受信ソフトウェア
このプログラムは、PCからハイパーターミナルやTeraTermを使用して制御します。通信設定は「19200 8-N-1」としてください。 「read」と入力すると赤外線検出が始まり、検出すると受信データ等が表示されます。「send」と入力すると受信した信号を送信します。 なお、これらのソフトウェア(ソースリスト)によって、何らかの損害が発生した場合であっても、当方は責任を負いません。全て自己責任で御利用ください。 (2).IR-ADC 近距離LED受信用ソフトウェア前節のソフトウェアは赤外線受信モジュール(赤外線レシーバーモジュール)を使用したものでしたが、こちらはLEDを使った近距離受信用のソフトウェアです。受信信号をADコンバータでサンプリングしているので副搬送波の波長と周波数が測定できます。また、前作での不具合の経験を活かして開発したので、データ持続時間や、ボーレート測定の精度が大幅に向上しています。
受信可能な距離は、正面方向で10cm以内が目安です。最大で30cm程度まで通信が可能ですが、少しでも横にずれると、大幅に通信距離が低下してしまいます。実は、もっと小さい信号でもAD変換器に取り込めているので、工夫をすれば、通信距離を伸ばすことが可能であると考えていて、現在、LEDの高感度化にも挑戦中です。その他、既知の不具合はソースコードに記載しています。 なお、これらのソフトウェア(ソースリスト)によって、何らかの損害が発生した場合であっても、当方は責任を負いません。全て自己責任で御利用ください。 |
このRENESAS H8/300H Tiny用プログラム「赤外線リモコンテスター」の特長は以下のとおりです。
|
前節のソフトが動作する赤外線リモコンテスターを製作します。準備するものは以下のとおりです。
3664Fと3694Fはモジュール単品で売られていて、それぞれ1600円、1650円です。RS-232Cコネクタが搭載されていないので、H8 Tiny I/O BOAD TERA2(別売700円)を使ってシリアル接続します。 H8 Tiny I/O BOAD TERA2は、RS-232Cコネクタ以外にも、2つのLED(赤、緑)と、トグルスイッチが接続できるようになっています。しかし、H8 Tiny I/O BOAD TERA2に搭載するトグルSWはキットに含まれていないので、別途、購入する必要があります。したがって、最も安価に済ませる方法は、AKI-H8/3664BPにLEDとスイッチを別途、自分で追加することです。 AKI-H8/3664BPに自作基板(下部)などを追加した例 次にC言語の開発環境を準備しますが、開発環境はソフトウェアを修正する場合にのみ必要です。ソフトウェアをAKI-H8に転送するだけであれば、AKI-H8/3664BPに付属のRENESAS(元HITACHI) HTERMおよび「書き込み制御プログラム(3664.MOT)」を使って転送することができます。ただし、付属のソフトはWindows 95/98/ME用ソフトウェアですので、Windows XP以降を使用されている方は、最新のHTERMをRENESASからダウンロードします。詳しくは、「htermでの書き込み方法」を参照してください。 ここでは、無料の開発環境である http://www.besttechnology.co.jp/modules/knowledge/ 株式会社ベストテクノロジーのGCC Developer Liteを使用します。ダウンロードのページは見つけにくいのですが、該社ホームページの「ナレッジベース」より、技術情報/ソフトウェア/GCC Developer Liteからダウンロードできます。この開発環境に含まれるH8マイコン用のライブラリを使用していますので、他の開発環境で使用する場合はソースコードの見直しが必要です。 赤外線テスター回路図は下図に示すとおりです。回路図にはAKI-H8やH8 Tiny I/O BOAD TERA2に搭載されている部品の多くが省略されていますので、御注意ください。少なくとも、本図に掲載されている部品を追加で用意すれば、必要な部品が揃います。
LEDとスイッチの機能は以下のとおりです。LED1とLED2、SW1は H8 Tiny I/O BOAD TERA2のボード上に搭載されている部品です。AKI-H8/3664F(QFP)やAKI-H8/3694F(QFP)を使用する場合は H8 Tiny I/O BOAD TERA2上に部品を載せます。AKI-H8/3664BP(SDIP)を使用する場合は製作する基板側で組みます。
キャラクタ液晶を接続する場合は以下のようにします。接続はCN1の14〜19ピンと電源、GNDです。CN1の13〜26の14ピンを14ピンヘッダで取り出し、キャラクタ液晶に接続すると良いでしょう。
CN1の接続は電源とPB0/AN0のみなので、AKI-H8/3664BPを改造してCN2のみで接続すれば、コネクタ一つで接続できます。 |
上記のソフトよりも解析機能は少ないですが、Arduino版の赤外線リモコンコードのみを解析ソフトウェアを「ir_tester.zip」からダウンロードすることが出来ます。 Arduino版 赤外線リモコンテスター実行画面 Arduino のアナログ1番ピンに赤外線リモコン受光モジュールを接続するだけで動作します。家電製品協会フォーマット(AEHA)のリモコン信号を受光すると結果をシリアル(9600bps)に出力します。 Arduino のアナログ5番ピンにプッシュボタンを接続するとNECフォーマットやSONY SIRCフォーマットのコードを解析することも出来ます。上記の例では上から順にAEHA形式、NEC形式、SIRC形式の信号を受信しています。 さらに、Digital 13番ピンに赤外線LEDを接続すると受光したリモコンコードを送信することも可能です。ただし、リモコン送信が可能なのはバイト単位(8ビット単位)の信号のみです。例えば、上例のSIRCのリモコンコード長は20ビットとなっておりバイト単位ではありませんので正しく送信することが出来ません。 製作方法などの詳細は「Arduino用 赤外線リモコンコード解析ツール」を参照してください。 |
別ページに、赤外線リモコンの送受信機能をもったXBee子機(Arduinoベース)を親機となるパソコン(Cygwin)から制御する「無線リモート赤外線リモコン」の製作方法を紹介しています。赤外線リモコン操作の履歴を収集するロガーにも対応することが出来ます。詳しくは「リモート赤外線リモコン」を参照してください。 |
赤外線リモコンの信号をサンプリングしたり送信したりすることができる市販品もあります。 BUFFALO製 Remote Station PC-OP-RS1(定価5,300円→時価¥)は、PICマイコン(PIC16F688)でリモコン信号をサンプリングし、そのサンプリング信号をパソコンから送信することが出来る商品です。 御注意 Remote Station PC-OP-RS1およびKURO-RSの改造による事故や損害に対して、当方は一切の責任を負いません。 BUFFALO Remote Station PC-OP-RS1 (左側に装着している赤外線LEDは付属していません) 読み取った信号データーは時系列のサンプリング信号(240バイト)として取得できます。赤外線リモコンの方式を問わない点が利点ですが、サンプリングした信号は本機でしか使用できません。 また、バッファロー製PC-OP-RS1と同じハードウェアの製品KURO-RSも同社から玄人志向ブランドとして市販されています。中身は同じ製品ですが、学習リモコンのソフトウェアを開発するためのLinux用とWindows用のSDKや、赤外線コントロール仕様書が付属しています。玄人志向KURO-RS上でも、BUFFALO製PC-OP-RS1付属のソフトウェア「Remote Station」が動作します。 Remote StationソフトウェアはBUFFALOが配布するPC-OP-RS1アップデータ Ver.1.11β4(2007年9月)に含まれています。Remote Station PC-OP-RS1、KURO-RSだけでなく、自作ハードウェアでも動作しました。 パソコン用学習リモコン Remote Station の基板 上の写真(バッファロー製PC-OP-RS1)の中央やや下のICがPICマイコンです。その直ぐ下に5ピンの端子CN5があります。この1番ピンから4番ピンをPICkit2の2番ピンから5番ピンに接続し、あとはMCLR_をうまく処理すればPICマイコンへの書き込みが可能になります。MCLR_の改造に関するヒントは、CN5の5番ピンと左下隅にあるJP1を活用することです。JP1を使用する場合はR29を外しておく必要があります。下図は改造後の基板です。メーカー保証外の改造につき、部品を追加した部分(1)〜(3)にはモザイクを入れました。 パソコン用学習リモコン Remote Station の基板(改造後) バッファローPC-OP-RS1に搭載されている赤外線レシーバーモジュールは、PICマイコンPIC16F688の7番ピン(RC3)に接続されています。また、赤外線トランシーバー4系統は、それぞれ11番ピン(RA2)、8番ピン(RC2)、12番ピン(RA1)、13番ピン(RA0)に接続されています。送信時に点灯する可視LEDは9番ピン(RC1)です。 USBはパソコンではシリアルCOMポートとして認識されており、通信設定は「115200 8-N-1」で通信が可能です。PIC16F688のUARTの5番ピン(RX)、6番ピン(TX)が写真の上方中央部のUSBシリアル変換ICに接続されています。
通信で使用するシリアル信号コマンドは、アスキーコード1文字で一つのコマンドになっています。使用するコマンドは、サンプリング実行の"r"コマンド、サンプリング中止の"c"コマンド、データ送信の"t"コマンド、LEDの強制発光の"i"コマンドです。詳しい使い方は、玄人志向KURO-RSに付属の「赤外線コントロール仕様書」を参照するか、Remote Stationソフトウェアを使って実際に制御を行っている時にシリアル信号を解析すれば簡単に知ることが出来ます。なお、基板には実装されていませんが、LED3とLED2、そして負荷抵抗を実装することでシリアル通信時にLEDが点灯します。 赤外線リモコン信号のサンプリングデータは0.1ms毎の2値の復調後の符号です。赤外線の搬送波と38kHzの副搬送波によるASKは復調されていますが、PPKは復調されておらずにサンプリングされています。PPKは約0.4〜0.5msの基本単位で変調されているので、サンプリングデータ4〜5個が一つの基本単位に、約8〜10個で符号「0」を、約16〜20個で符号「1」を表しています。データはLSBファーストにて16進数に変換されて240バイトのバイナリデータとして保存されます。 Remote Station PC-OP-RS1とKURO-RSに対応し、また互換基板にも対応した互換ファームウェアは「ir-gokan.zip(フリーβ版)」をダウンロードし、ZIP圧縮を展開してPICkit2を用いてRemote Station本体内のPIC16F688に転送します。PICkit2に付属の書き込みソフトウェア「PICkit2 PROGRAMMER」を起動し、メニューバーにある「File」メニューの「Import Hex」を選択して、ダウンロードして解凍したHEXファイルを読み込ます。そして、PICkit2をモジュールのピンヘッダに差し込み、PICkit2 PROGRAMMERのウィンドウ内の「Write」ボタンを押す(または「Programmer」メニューの「Write Device」を選択する)とPIC16F688にソフトウェアを書き込むことが出来ます。 β版の制約事項:Remote Stationで取得したデータを稀に送信できない問題や、SIRC方式のコード取得時に誤る問題などが判明しています。疑わしい部分に対策を講じようとするとリソース不足でコンパイルが通りません。 互換ファームウェアをRemote Station PC-OP-RS1やKURO-RSに転送してしまうと、元のファームウェアに上書きしてしまうので、元のファームウェアに戻すことは出来ません。御注意ください。
※上記ソフトウェアに関していかなる損害も補償しません。
Remote Station PC-OP-RS1互換ハードウェア回路図(拡大) Remote Station対応「解析ファームウェア」フリーβ版の使用方法 バッファロー製Remote Station PC-OP-RS1、玄人志向製KURO-RS、これらの互換ハードウェアのいずれかに本ファームウェアを転送すると、赤外線リモコン信号コードが解析できるようになります。また、本ファームウェアはRemote Station本体およびRemote Stationソフトウェアに対応しているので、Remote Stationでのリモコン信号の学習や送信も可能です。
Remote Station PC-OP-RS1互換ハードウェア製作例(拡大) (左側6ピン端子はPICライター用、下部中央はシリアル用) Remote Station PC-OP-RS1互換ハードウェア使用例 (FTDI製 USBシリアル変換ICFT232RLが必要) ファームウェアの転送には、PICkit2などのPICライターが必要です。ファームウェアの転送方法については、PIC16F688の仕様書やPICライターの説明書などで確認してください。 互換ハードウェアを自作する場合は水晶(20MHz)が必要です。また、回路図のシリアル端子にパソコンのRS-232CやUSBシリアル変換ケーブルで接続した場合は、Remote Stationソフトウェアが動作しない場合があります。FTDI社FT232R(FT232RL)またはFT232B(FT232BM,FT232BL)のUSBシリアル変換チップを使って接続するか、これらのチップを搭載したUSBシリアル変換機器やUSBシリアル変換ケーブルを使用します。なお、EEPROMの内容については、BUFFALOのRemote Stationと同一状態で無くとも認識するようですが、場合によっては、EEPROMを初期状態に戻したり(FT232R)、外付けEEPROMを取り外したり(FT232B)しなければならないかもしれません。詳しくは互換ハードウェアの仕様書(非公開)を参照してください。 ファームウェアの転送が完了したハードウェア(PC-OP-RS1など)の準備が出来れば、パソコンにRemote Station(など)の本体を接続し、Remote Station用ドライバやRemote Stationソフトウェアのインストールを行います。ドライバはFTDI製ですが、バージョンをそろえるためにRemote Station付属のものを使用した方が無難です。Remote StationではないFTDI製デバイスであってもRemote StationでインストールしたFTDIチップ用ドライバを使ってインストールすることが出来ます。 ドライバのインストール後に、インストールされたCOM番号を確認します。COM番号の確認は、デバイスマネージャの「ポート(COMとLPT)」で、Remote Station(などの)本体がどのCOM番号に接続されているかを確認します。そして、ハイパーターミナル等の通信端末を起動します。プロパティの「接続方法」で、先ほど確認したCOMポートを選択し、「モデムの構成」を下表にしたがって設定します。
通信の接続はハイパーターミナルの2つの電話器アイコンで行います。左側が「接続」で右側が「切断」です。Remote Stationが起動した状態ではRemote Station互換モードになっていますので、キーボードから大文字の「R」を入力します。すると、赤色のLEDが点灯状態になり、また、ハイパーターミナルには「waiting...」と表示され、赤外線リモコンの入力待ちになります。この状態で、通常のリモコンを近づけて信号ボタンを押下すると、ハイパーターミナルにリモコン信号のコードが表示されます。 Remote Stationソフトウェアを使用する場合は、リモコン信号の待ち受け状態を解除する必要があります。入力待ちの状態で小文字の「c」を入力すると赤色のLEDが消灯し、Remote Station互換モードに戻ります。 下表は拡張分を含むコマンド表です。「拡張」と書かれた拡張コマンドは当サイト独自の機能です。
なお、Remote Station互換モードは独自に開発したものですので、本来のRemote Stationの動作と全く同じタイミングで動作しているわけではありません。したがって、場合によってはリモコンの学習が正しく出来なかったり、あるいは本来のRemote Stationでは学習できないのに学習できてしまうこともあるかもしれません。学習後のデータについても互換性がありますが、場合によっては動作しない場合があるかもしれません。 御注意 当サイトの内容や情報の利用によって事故や損失が発生したとしても、当方は、一切の責任を負いません。 PC-OP-RS1およびKURO-RSを分解したりソフトウェアを変更すると、メーカーの保証が受けられなくなる上、万が一、本改造によって大きな損失が生じた場合であっても、一切の責任を負いません。十分に注意してください。 また、Remote Stationはバッファローの製品に付属するソフトウェアです。Remote Stationのご利用については、使用許諾にしたがって下さい。 |
リモコン送信器の基板(例:ALPS製AQUOS用リモコン) 以上は赤外線リモコンの解析や実験を行うための製作例を紹介してきましたが、ここからは実用的な赤外線リモコンの送信機の製作例を紹介いたします。なお、上の写真は既製のリモコンですので、リモコンコードが変更できません。製作例では、本来の赤外線リモコンで使用しているICとは異なり、Microchip社のPIC12F683を使用します。 PIC12F683は、8ピンの小型で低消費電力なPICマイコンです。価格も1個150円と非常に安価なのが特長です。ただし、書き込みにはPickit2と呼ばれるPICライターが必要で、3500円ほどします。また、日本語のマニュアルが付属していないので、英語の苦手な方にとっては、少し、敷居が高くなります。したがって、1台しか製作しないのでしたら、H8の方が手軽だと思います。 下図は、PIC12F683を使った3ボタンの赤外線リモコン送信器の回路図です。非常にシンプルな回路でリモコンの送信が可能です。
ソースコードとソフトウェアは下記からダウンロードできます。開発環境は HI-TECH Software PICC PRO 9.60 Lite版を使用しています。PICでのソフトウェア開発方法については「C言語ではじめるPICマイコン」(¥)を参照すると良いでしょう。ソフトウェアの初心者や組込みソフトウェアの初心者の初心者にも理解しやすいバイブルのような書籍です。
3つしかボタンの無いリモコンですが、例えば、パソコンの電源を入れたときにUSBの電圧を検出して、オーディオの電源を入り切りしたり、反対に電源を切るときにエアコンの電源をオフするなどといった簡単な自動制御を行うのに便利だと思います。また、防犯センサー等の送信器としても手軽に製作できます。なお、高出力が必要な場合は「赤外線リモコン送信回路図(高出力)」の回路図を参照してください。 また、この8ピンのPIC12F683を使用した場合でボタン数を4つ以上に増やすには、入力ポートが足りません。もしもGPIOが8ポートあって16キーにする場合は、GPIOの出力4ポートと入力4ポートを、それぞれのキーの縦横に接続して、どのキーが押下されたのかを検出します。 しかし、ポートが少ない場合は、ADCなどを利用してアナログ値で入力する必要があります。一例として、下図の16キーのリモコンでは、アナログ出力のキーパッド使って、PICのADCによるアナログ入力を利用してボタンの数を増やしています。 アナログ出力16キーを使った赤外線リモコン
このキーパッドは16個のそれぞれのボタンに応じて抵抗値を変更しています。垂直方向のキー間には6.8kΩの抵抗を入れ、水平方向のキー間には27kΩの抵抗を入れています。6.8kΩを4倍すると27kΩになるところがポイントです。キー順に0Ω,6.8kΩ,13.6kΩ,20.4kΩ,27kΩ,33.8kΩ...101kΩと変化します。抵抗の変化は右上にあるオペアンプによって電圧に変換して出力しています。オペアンプは2chのものですが、現在は1chしか使用していないので、もう1chをコンパレータとして使用すればキー押下時に割り込みをかけることも可能です。 この赤外線リモコンは、どちらかというと「8ピンのPICで多キー化を行うこと」と「他のマイコンなどに対して1ポートのADCだけでテンキー入力デバイスが接続できること」に重点を置いています。実験用に少ない配線でテンキーを接続したかったことが開発のきっかけとなりました。おまけの機能としてシリアル通信で押されたキーを送信する機能を付与しています。シリアル通信の設定は「9600 8-N-1」です。 本ソースコードは上記のとおり公開していますが、回路図の公開については、実用的に使う人はあまり居ないと思うのと、清書するのに手間がかかりそうなので控えておきます。(要望が多ければ公開を検討します。) なお、分かる人には解るかと思いますが、ボタンの色は無意味ではなく、テンキー部は、茶、赤、橙、黄、緑、青と馴染みの順序になっています。紫と灰の色が無かったので代用している部分と、最下部は地デジで見慣れたキーになっています。 追加情報(2009/01/08) 赤外線解析リモコンなどのプリント基板が付属したPICを使った電子工作の書籍「プリント基板で作るPIC応用装置(¥)」が販売されました。赤外線解析リモコンの他にも、温湿度計、数値表示装置、シリアル接続基板、USB接続基板、FT232RL基板、テレビ表示装置、情報収集装置の回路がプリントされていて、分割することで8種類の基板に、組み合わせることで24種類の応用装置が簡単に製作できます。赤外線解析リモコンには当サイトで使用しているPICと同じ型番のPIC12F683が使用されているので、当サイトの情報と合わせて参照していただくと、より一層の理解が深まります。 ラトルズ社PIC応用装置の赤外線解析リモコン 上図の左側が赤外線解析リモコンの基板で右側は電源レギュレータとRS-232Cレベルコンバータのシリアル接続基板です。リモコンのボタンを押しながら電源を入れると学習モードになって、受信した赤外線リモコンのコマンドを学習するとともに、シリアルでデータを出力します。 ただし、出力されるデータは通常のリモコンコードではなく、MSBファーストの信号になっていますので、実際に取得したコードを読むにはコード変換が必要になります。 PICで学習リモコンを行っているのは、BUFFALO製のPC-OP-RS1にも似ていますが、ソフトウェアのソースコードが公開されている点が大きな相違点かと思います。 以下に当サイトに掲載している実験機器との比較表を示します。当サイトの赤外線リモコン解析器は部品代で数倍の差がありますが、その分だけ多機能です。主にリモコン信号のコード取得を目的にするのであれば、ラトルズの赤外線解析リモコンが最良だと思います。
ラトルズの「プリント基板で作るPIC応用装置」に関する情報は下記も参照してください。
|
大型テレビでは、赤外線を利用したリモコンやヘッドホンが動作しなくなる場合があります。あるいは、リモコンの電池が早く無くなったと感じる場合もあります。この問題はプラズマテレビで発生しやすい問題でしたが最近(2005〜2006年ごろから)は液晶テレビでも発生するようになりました。 プラズマテレビでリモコンが効かなくなる原理は、プラズマテレビの原理に起因します。プラズマテレビは一つ一つの画素をプラズマ放電し、その画素中の蛍光体を発光させることで画像を表示しており、その際に可視光以外の赤外線なども発光してしまうのです。さらに、画素の輝度を高速な点滅によって制御しているので赤外線リモコンの38kHzと一致してしまう場合があります。このため、プラズマパネルの前に赤外線除去フィルタなどを貼り付けて対策を行っています。 液晶テレビでリモコンが効かなくなる原理もまた液晶テレビのバックライト(蛍光管)のプラズマ放電が原因です。もともと、液晶テレビのバックライトは、可視光の発光効率が高く、赤外線の漏れも少ない特徴がありました。しかし、2005年以降、さらなる高輝度化や発光スペクトルの拡大、薄型化などによって、バックライトへの負担がかかり、赤外線の漏れが問題視されるようになりました。 |
このような問題が発生した場合は、テレビからの光がリモコン受光部に入らないように工夫します。テレビ台の中のレコーダーなどへは、テレビの前に置かれた明るい色のソファーやジュータンが原因になる場合もあります。 もっとも簡単な対策は、輝度(明るさ)を変化させることで、発生周期を変えて対応することです。 テレビの輝度(明るさ)設定は、明るい方が妨害を受けやすそうに感じられますが、やや暗い時の方が問題が放電の周期が一致しやすく、問題が発生しやすいようです。 対症療法的な対策ではありますが、もっとも手軽な方法ですので、真っ先に試してみると良いでしょう。 |