部屋の明かりをリモコンで

いろいろなタイプのリモコン
 テレビやビデオをはじめ、いろいろな家電製品にリモコンが使われています。このリモコンはどのようにして動いているのでしょうか?また、自分で作るには、どうしたらよいのでしょうか?

 まず最初に、これらのリモコンには赤外線が利用されています。

 この赤外線は、そのままでは目で見ることができません。でも、この赤外線を見えるようにすることができるのです。
デジカメなら赤外線が見える
 一番わかりやすい方法としては、カメラを使うことです。デジカメ、カメラつき携帯、カメラつきノートパソコン、デジタルビデオカメラなどです。

 カメラによっては、赤外線カットフィルタが付いているものがあるかもしれませんが、ほとんどの場合大丈夫でしょう。


 赤外線が出ているのはわかった。でも、どのボタンを押しても同じに見えるなぁ...?

 こんなときは、デジタルストレージオシロ(DSO)があればいいのですが、こんな高価な測定器がそう簡単に使えるような環境にある人は、そう多くはいないでしょう。
 でも、パソコンを使ってリモコンの信号を調べることができるのです。
リモコン信号解析用回路
 用意するハードウェアは、パソコンのほかにたったこれだけ!

 あとは、ソフトウェアにおまかせぇ!

 通常は(a)の回路でOKですが、レベルが大きすぎる場合は、(b)のように固定抵抗の代わりに、可変抵抗を使います。

赤外線受光モジュール

 回路図の中のU1は赤外線受光モジュールで、左の写真のような小型の金属(シールド)ケースにはいっているものです。(端子の配置は種類によって異なります。)

 テレビやビデオデッキなど、リモコンを使っている家電製品の壊れたものがあったら、分解してみるとみつかるはずです。ものによっては、形や大きさが違うことがありますが、手前を向いていて、光らないのにレンズ状のものが付いていたら、きっとそれが赤外線受光モジュールでしょう。
 次は、ソフトウェアの準備です。
 パソコンのハードウェアが、どんどん高性能になっていくのにつれて、ソフトウェアも高機能なものがいろいろ出てきています。しかもタダで!
 フリーソフトという無料のソフトウェアです。

 今回使用したのは、
WaveSpectraというソフトで、サウンドカードや、Waveファイルから入力した信号の波形や、周波数成分(スペクトラム)を表示するものです。ここでは、表示された信号の波形から、パルス幅を読み取っています。
 測定できる周波数は、サウンドカード(デバイス)によりますが、音声帯域(一般に20〜20,000Hz)です。しかし、音声帯域ですが、音声でなくても測定できます。ですから、リモコン信号のように音声でなくても、音声帯域内なら十分測定できるのです。

 本格的で、非常に高性能に波形やスペクトルが測定できる(単発信号は記録後拡大率を変えながら再生できるし、スペクトルのピークや平均、T.H.Dまででる)割に、操作はそれほど難しくもなく、しかも、フリーで使用できるので、オシロやスペアナを持たない「電子工作マニア」にとっては、感動ものです。

リモコン信号波形-全体
 この信号波形は、NEC方式といわれるもので、NEC以外にも多くのメーカが採用しています。

 (a)の部分は、データコードで、リモコンのボタンを押してすぐに出力される信号で、押したボタンの種類などの情報が含まれています。

 そのままボタンを押し続けると、約100〜110msごとに(b)(c)とリピートコードの信号が出力されます。
リモコン信号波形-データコード
(a)の部分を拡大すると、幅の広いパルスと、狭いパルスが並んでいるのが見られます。

 最初の幅の広いパルスは、リーダ部です。信号の始まりを示しています。

 幅の細いパルスの並びが、データ部で、32ビットのデータが含まれています。

 幅の細いパルスの最後のひとつは、トレーラ部で信号の終わりを示しています。
リモコン信号波形-リーダ部
 リーダ部を拡大したものです。

 約9msのLレベルのパルスと、約4.5msのHレベルのパルスでできていることがわかります。
リモコン信号波形-データ部
 データ部は32ビットのデータが含まれています。
 Lレベル、Hレベルのパルスの組合せで、1ビットをあらわします。

 Hレベルの幅>Lレベルの幅のとき'0'を
 Hレベルの幅<Lレベルの幅のとき'1'をあらわします。
 
32ビットのうち、前半の16ビットはカスタムコードと呼ばれ、メーカや機種を識別します。
次の8ビットがデータビットで電源、音量、チャンネルなどの各ボタンに対応しています。
最後の8ビットはエラーチェック用のビットでデータビットの0と1を反転したものです。   
解析例はこちら...
リモコン信号波形-トレーラ部
 最後のLレベルのパルスが、トレーラ部です。
 
 ここで、データが終了していることを示します。
リモコン信号波形-リピートコード
 リピートコードは、リモコンのボタンを押し続けているということを示すための信号です。
 
 特に、データは含まれてなく、リーダ部とトレーラ部があるだけです。


 このNEC方式以外にも、各メーカ独自のフォーマットや、(財)家電製品協会が決めたフォーマット(データ長は可変)などがあります。
上下に波打った波形
 今まで示してきた波形は、波形の上下がまっすぐにそろって表示されていますが、これは偶然です
 本来は、左のように上下に波打ったように表示されるべきです。
 なぜなら、リモコンの信号には、直流分が含まれているにもかかわらず、サウンドカード(デバイス)などは、直流を通さない(たぶん)から、パルスの幅によって波形が上下するのです。

 どちらの波形でも、パルス幅の測定はできますが、気分的には上下がそろったほうがいいです。
 しかし、どんな場合でも波形の上下をそろえて表示できるとは限りません。特にサウンドカード(デバイス)の種類に大きく関係すると思います。
 今回は、パソコンのハードウェアが、
        
チップセット:VIA Apollo ProMedia     サウンド・デバイス:VIA Audio Controller
 という条件でした。
 さらに、記録時のフォーマットも、
        サンプリング周波数:32000Hz    分解能:8または16Bit    Stereo/Mono:Mono
 で行いましたが、フォーマットを変えると、波形が乱れることもありました。

 さて、このようにしてリモコン信号の構成がわかったところで、リモコン受信機を作ることにしましょう。
照明器具の概観照明器具の内部照明器具の回路図 

 リモコンによって操作するものは、部屋の天井についている照明器具で、写真のようなもので、
 AC100V 60Hz 円形蛍光管40W+30W 豆ランプ5W
です。


 もしも、全てをハードウェアだけで処理する場合は、リモコン受信専用のICを使用しなければなりません。
 その場合、リモコン送信機もそれに合わせて作らなければならないので、ここでは別の方法を考えます。

 受信信号の処理をマイコンなどのソフトウェアで行えば、使わなくなったリモコンや、電気店で売っている複数メーカ対応のリモコンなど、いろいろなものが使えます。

リモコン受信機回路図

 上の図は、小型のマイクロコントローラである8ピンのPIC(IC1)を使用した回路図です。
 たったの8ピンですがれっきとしたコンピュータですので、ソフトウェアがないと動きません。
 Pin4(GP3:赤外モジュールからの入力)は内部プルアップを設定し、クロックオシレータは内部RCオシレータを設定して、少しでも部品点数を減らしています。

 また、AC100Vを制御するために、フォトカプラ(フォトトライアック)で絶縁し、トライアックをON/OFFしています。
 使用したPICは12C509Aを使用しましたが、ソフトウェアの規模から言うと12C508でも十分です。

リモコン受信機実験中の写真 PICと赤外線受信モジュールの電源に5Vが必要ですが、消費電流が少ないので、電源トランスやスイッチング電源などを使わず、コンデンサで電圧を降下させ、ツェナダイオードで電圧を安定させています。

 これで、かなり小型化と軽量化が図れました。

 右の写真は、照明器具に組み込んで実験中の様子です。蛍光灯の光が直接受信モジュールに入らないように筒をかぶせています。
 実験のつもりが、2年以上もこのままですが特に問題は起きていません。

 ただし、照明器具のカバーははずしたままです。カバーをすると極端に感度が悪くなります。さらに、カバーをすると、中に熱がこもって誤動作することがあります。
 したがって、照明器具の中に組み込むには、受光モジュールの取り付けや、放熱の工夫ををしなければいけません。

 また、このような照明器具は一般に、グローランプや豆ランプのソケット、スイッチなどが一体化されているので、配線を工夫しなくてはなりません。すべてバラバラにするか、なんとか接続点を見つけて配線をするしかないでしょう。
 どっちにしても、ショートや感電には十分注意が必要です。

 ハードウェアができたら、ソフトウェアも作らなくてはいけません。
リモコン信号受信プログラムのフロー
 全体のフローは単純です。
 初期設定のあと、受信したビットを記憶しておき、最後のビット(トレーラ)のあと、エラーチェックなどして、出力します。

 各ビットの受信と解析が、やや複雑ですが、
 ・リーダ
 ・トレーラ
 ・’0’
 ・’1’
の各ビットの違いをよく考えれば問題なくできると思います。

 あまり冗長なプログラムにすると、判定を誤ることがありますので、できるだけ単純に仕上げるのがコツです。

 出力は、
 ・40W+30W
 ・40W
 ・豆ランプ
 ・OFF
の4パターンにしましたが、ソフトウェアしだいで自由にできます。

 リモコンボタンとの対応も、
 ・4つのボタンにそれぞれの状態を割り当てる方法
 ・1つのボタンで、押すたびに順番に次の状態に移行する方法。
の2通りがありますが。
 手持ちのリモコン送信機を利用する場合は、前者のほうが操作性がよいでしょう。
(蛍光灯は、スイッチがONになってから点灯するまで少し時間がかかるため、何度もボタンを押す方法は操作性が悪い)
 新規に送信機を製作する場合は、後者のほうが作成しやすいでしょう。
(ボタンが1つでよいため小型化しやすいが、前述のように操作性の問題があるので、圧電ブザーなどでリモコン信号を正常に受信したときの確認音を出すとよいでしょう)

マルチストロボもどる  

dummy

Topページもどる  

dummy

Cメーターすすむ