VIR: USB 接続赤外線学習リモコンユニットが入出力する赤外線信号のテキストフォーマットについての解説です

VIR: 赤外線学習リモコンの使い方

VIR を USB 端子に接続し、"V-IR R" コマンドを実行すると学習モードに入ります。この状態で赤外線受信モジュールに向けて赤外線リモコンの信号を送信すると、信号の内容が標準出力に表示されます。この文字列をそのまま "V-IR S" コマンドの標準入力に与えると、全く同じ信号が送信できます(要 root 権限)。

デコード用 Perl スクリプト

赤外線信号は AVR マイコンの RAM を節約するために、可変長の数値フォーマットで表現され、また圧縮されています。これをデコードして通常の表現に戻すために、次の perl スクリプトを用意してあります。

decode.pl

% decode.pl <irdata.txt >irdata.csv

graph.pl

% graph.pl <irdata.txt >irgraph.csv

赤外線テキストフォーマットの詳細

図1 は VIR で Panasonic TV リモコンの「入力切替」ボタンの信号を学習したときの出力例です。

irdata1.png
図1: R コマンドによる赤外線データの取得結果(Panasonic TV リモコン「入力切替」ボタンの例)
 

赤外線信号本体のデコード(可変長表現と圧縮)

赤外線信号は AVR マイコンの RAM に納まるサイズにするために、1バイトまたは2バイトの可変長で表現されています。図2図1の「④赤外線信号本体」の先頭部分です。(A) が図1 の生データで、(B) はこれを図3に従ってデコードした結果です。(C) が (B) に単位時間を乗じて求めた実際の時間です。

単位時間はキャリア周波数によって変わります。キャリア周波数を2倍して逆数を取ると単位時間が求められます。この例では単位時間は 13.2μs です。

irdata3.png
図2: 図1の ④赤外線信号本体 の先頭部分
 
irdata2.png
図3: デコードの方法
 

ランレングス圧縮

図3の(3)のように 先頭が 11 で始まる値が出現した場合は、ランレングス圧縮されていますので、直前の値を C(6bit,1~63)回繰り返します。ただし、赤外線信号の特徴を利用するため「直前の値」は奇数個目と偶数個目の値で分けて考える、特殊なランレングス圧縮を用います。


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS