BACK:VIR-USB 接続赤外線学習リモコン VIR: USB 接続赤外線学習リモコンユニットが入出力する赤外線信号のテキストフォーマットについての解説です VIR: 赤外線学習リモコンユニットと V-IR コマンドの動作 †
※ UNIX では root 権限が必要です。 デコード用 Perl スクリプト †標準出力に出力される赤外線信号は、AVR マイコンの RAM を節約するために、1~2バイトの可変長の数値フォーマットで表現され、また圧縮されています。 圧縮された赤外線信号をデコードして通常の表現に戻すために、次の perl スクリプトを用意してあります。 ※ "V-IR -r R" のように -r オプションを付けて学習すれば、最初からデコード済みの無圧縮、2バイト固定長(以下の図3の (2) の形式の 2 バイト固定長)の赤外線信号データが標準出力に得られます。ただしその場合、エアコンのリモコンなどの長い信号は AVR の RAM に入りきらずに学習できないことがあります。 decode.pl †
% decode.pl <irdata.txt >irdata.csv (実行結果) Remote controller IR DATA Decoder for VIR Header Text: # Command: 01H Frequency: D9, 217(38.02 kHz), 13.2 us (*):2byte value(>127), (-):repeated value(run-length compressed) 1,265,3498,us,(*) 0,130,1716,us,(*) 1,33,435.6,us 0,34,448.8,us 1,30,396,us 0,99,1306.8,us 1,33,435.6,us 0,34,448.8,us 1,30,396,us 0,32,422.4,us (中略) Original=198(byte), Compressed=44(byte), 22.2%
graph.pl †
% graph.pl <irdata.txt >irgraph.csv (実行結果) us, data.txt 0.00,0 0.00,1 3485.15,1 3485.15,0 5194.85,0 5194.85,1 5628.85,1 5628.85,0 6076.00,0 6076.00,1 6470.55,1 6470.55,0 7772.55,0 7772.55,1 8206.55,1 (後略) Excel の散布図でグラフ化した例
赤外線信号のテキストフォーマットの解説 †図1 は VIR で Panasonic TV リモコンの「入力切替」ボタンの信号を学習したときの出力例です。 図1: R コマンドによる赤外線データの取得結果(Panasonic TV リモコン「入力切替」ボタンの例)
テキストフォーマットの詳細(可変長表現とランレングス圧縮) †図1の「④赤外線信号本体」部分は1バイトまたは2バイトの可変長で表現されています。図2は図1の「④赤外線信号本体」の先頭部分のデコード結果です。(A) が図1 の生データで、(B) はこれを図3に従ってデコードした結果です。(C) が (B) に単位時間を乗じて求めた実際の時間です。 単位時間はキャリア周波数によって変わります。キャリア周波数を2倍して逆数を取ると単位時間が求められます。この例では単位時間は 13.2μs です。 図2: 図1の ④赤外線信号本体 の先頭部分
図3: デコードの方法
可変長表現 †
変形ランレングス圧縮 †
Counter: 4447,
today: 2,
yesterday: 1
|