2011/11/23 水曜日

【電子工作】赤外線リモコン式調光器【信号解析】

Filed under: ソフトウェア関連,ハードウェア関連,日記,電気電子・情報関連 — ハイジんブルー @ 20:39:00

【電子工作】赤外線リモコン式調光器 【目次】

【電子工作】 赤外線リモコン式調光器 【信号解析】←今ココ
【電子工作】 赤外線リモコン式調光器 【試作編】
【電子工作】 赤外線リモコン式調光器 【ハードウェア編】
【電子工作】 赤外線リモコン式調光器 【ソフトウェア編】
【電子工作】 赤外線リモコン式調光器 【実装編】
【電子工作】 赤外線リモコン式調光器 【まとめ】

まず、初めに赤外線リモコンが送信している信号の解析を行います。

赤外線リモコンの信号ですが、単純に赤外線のON/OFFが1/0のデジタル信号に対応しているわけではなくパルス位相変調がかけて送信されています。

今回は専用ICを用いて変調云々は気にせずに作成するので詳細は省きますが、下記サイトが赤外線リモコンについてわかりやすく説明してくれているので、リンクを貼らせてもらいます。

赤外線リモコンについて – FUTABA WEB
http://www.256byte.com/remocon.htm

今回用いる赤外線リモコン用の専用IC『PL-IRM2161-C438』(写真の黒い3端子素子)。赤外線受光素子と信号を解析するICが一体になっており、赤外線リモコンが送信したデータを変調等を意識することなく受信できる。

赤外線リモコン受信モジュール PL-IRM2161-C438 – 秋月電子通商
http://akizukidenshi.com/catalog/g/gI-03292/

使い方は簡単で、VccとGNDに電源(2.4~5.5V)をつなぐとVout端子から受信したデータが出力される。

赤外線リモコンの解析にはVout端子の出力をアナログストレージオシロやデジタルオシロで見れば良いのだが、今回はPCの音声入力を活用しました。

ケーブルの加工が必要になりますが、Vout端子をPCの音声入力(L/RどちらでもOK)にいれて、波形解析を行います。音声を録音して波形編集ソフトウェアで確認するのも一つの方法ですが、今回は『ハンディ・オシロスコープ』と言うフリーソフトを使いました。

ハンディ・オシロスコープ – Vector
http://www.vector.co.jp/soft/win95/art/se376225.html

[P-Trig]でトリガーをかければ波形の頭で止めれるので簡単に見たいところを見れます。

以上の方法で今回用いる赤外線リモコン『Olympus RM-1』の信号を解析していきます。

解析結果

まず、信号がどのようになっているかを見ます。

これは、リモコンのボタンを長押しした際の波形。先頭の緑の部分がメインのデータが記述されている『制御信号』。この部分を解析すれば、どのボタンが押されたかを知ることができる。

制御信号の後には同じ形をした波形が連続している。この信号は『リピートコード』と呼ばれていて直前に受信した『制御信号』の内容を繰り返すための信号になっている。たとえば、テレビのリモコンの音量ボタンは連打しなくても長押しでOKですよね。これのおかげなんです。

今回はリピートコードは利用しないので、『制御信号』を詳しく見てみます。

最初と最後の波形を除けば「細い」ものと「ちょっと太い」ものに分かれている。最初と最後は信号の始まりと終わりを示す信号で、その間にある2種類の波形がデータになります。

一部分を抽出してみてみると、右のようになっています。

細い方が『0』、太い方が『1』に対応しているので、これを解析していけば、リモコンがどのようなデジタル信号を送っているかを見ることができる。

実際に、上の波形の『0/1』を羅列してみると…

01100001110111001000000001111111

となる。

今回用いる、赤外線リモコン『RM-1』は[W]/[T]/[-]/[+]の他に2つボタンがありますが、勝手に左の写真のように[Program]/[center]と命名しました。

なお、このリモコンはProgramボタンを用いることでCH1とCH2を切り替えて2つのリモコンを干渉せずに同時使用できるようになってますが、今回はCH1のみを用います。

centerボタンの解析結果は上ですでに示してますが…

01100001110111001000000001111111

残りの[W]/[T]/[-]/[+]についてはそれぞれ…

01100001110111000100000010111111

01100001110111001100000000111111

01100001110111000010000011011111

01100001110111001010000001011111

パッと見て共通箇所があるのがわかるはず。これは、このリモコンが『NECフォーマット』という規格に準拠しているためで、頭から1~16ビット(緑の部分)は『カスタムコード』と呼ばれていて、メーカーや機器ごとに設定されている。

次に17~24ビット(青い部分)がどのボタンが押されたかを示す固有の『データコード』。

最後の25~32ビット(赤い部分)もボタンごとにデータが異なって一見『データコード』の一部のように見えますが、よく見るとこの部分は青い部分のビット反転になっている。つまり、同じデータが反転して送られているだけ。これは、「青い部分」と「赤い部分の反転」が一致しているかをみることでエラー検出を行うためについている。

よって、他のリモコンとの干渉やエラーを気にしない場合は青い部分だけで判定を行うことも可能。実際、赤外線リモコンを用いたマイコン用プログラムを公開している方のソースコードをいくつか参考にさせて頂きましたが、青い部分だけで判定している例もいくつかありました。

今回は全ビットを用いてエラーや干渉に強いようにします。

【試作編】

2 Comments »

  1. お世話になります。
    HandyOscilloで赤外線リモコン信号の解析、興味ふかく拝見させて頂きました。
    私もHandyOscilloを使って見たいのですが、OSがXPまでとなっています。
    こちらの環境(OS)は何を使われているのか教えて頂けないでしょうか?
    宜しくお願い致します。

    Comment by Kandomonmasa — 2016/10/1 土曜日 @ 21:16:31

  2. Kandomonmasaさん
    こんにちは
    だいぶ前の記事ですのでうろ覚えですが、確か当時はプログラミングや電子工作を行う際の使い勝手が良かったのでWindows 2000を使用していたと思います。今ならもっと良いフリーソフトもあると思いますし、スマホでもヘッドホンマイク端子を使ってオシロにするソフトがあったように記憶しております。

    Comment by ハイジんブルー — 2016/10/11 火曜日 @ 21:57:29

RSS feed for comments on this post. TrackBack URL

Leave a comment

HTML convert time: 0.519 sec. Powered by WordPress