ユーザ用ツール

サイト用ツール


bto_advanced_usbir_cmd_生データの見方

bto_advanced_USBIR_cmd 生データの見方

ビット・トレード・ワン社から販売されている「ADIR01P USB赤外線リモコンアドバンス」という商品。

この商品を使う事で、手軽に学習リモコンとして機能させる事が出来る。

WindowsでのGUI操作もI/Fが用意されているが、Linux版も用意されている。

https://bit-trade-one.co.jp/assemblydeskfiles/hobby/

USB赤外線リモコンアドバンス・UNIX系環境用コマンドライン操作ツール&GUI操作ツール Ver1.0.1

今回、NECの照明(シーリングライト)の赤外線リモコン RE0208 のON/OFFボタンのみをPICで作成しようした際、
どのようなデータを送信すれば、照明がOFF/ON出来るのかを知る必要があった。
フォーマットにはNEC,家製協,SONYフォーマットが有名のようだが、今回はNECフォーマットとして調査した。

生データ

$ bto_advanced_USBIR_cmd -g | tee data.txt # 生データ所得

  取得したbyte配列の要素数:152=38ビット分の生データ : Freq=38000Hz
  0x01,0x58,0x00,0xab,0x00,0x18,0x00,0x15,0x00,0x18,0x00,0x40,0x00,0x18,0x00,0x15,0x00,0x18,0x00,0x15,0x00,0x18,0x00,0x15,0x00,0x18,0x00,0x15,0x00,0x18,0x00,0x15,0x00,0x18,0x00,0x40,0x00,0x18,0x00,0x40,0x00,0x18,0x00,0x15,0x00,0x18,0x00,0x40,0x00,0x18,0x00,0x40,0x00,0x18,0x00,0x15,0x00,0x18,0x00,0x40,0x00,0x18,0x00,0x40,0x00,0x18,0x00,0x15,0x00,0x18,0x00,0x40,0x00,0x18,0x00,0x40,0x00,0x18,0x00,0x15,0x00,0x18,0x00,0x40,0x00,0x18,0x00,0x15,0x00,0x18,0x00,0x40,0x00,0x18,0x00,0x15,0x00,0x18,0x00,0x15,0x00,0x18,0x00,0x15,0x00,0x18,0x00,0x15,0x00,0x18,0x00,0x40,0x00,0x18,0x00,0x15,0x00,0x18,0x00,0x40,0x00,0x18,0x00,0x15,0x00,0x18,0x00,0x40,0x00,0x18,0x00,0x40,0x00,0x18,0x06,0x17,0x01,0x58,0x00,0x56,0x00,0x18,0x0e,0x53,0x01,0x57,0x00,0x57,0x00,0x18,0x1e,0x0d

画面に表示されるが、38kHzで赤外線LEDをON/OFFしている。
0x01,0x58,0x00,0xab,0x00,0x18,0x00,0x15,0x00,0x18,0x00,0x40 ・・・・ と 16進コードが続く。

38kHzの1周期は、1秒÷38kHz = 1 ÷ 38000 ≒ 26.3μ秒 を念頭に置いておく。

(1) 生データを先頭から2つずつ(2Byteずつ)で区切る

0x01,0x58

0x00,0xab

0x00,0x18

0x00,0x15

0x00,0x18

0x00,0x40

(以下、省略)

(2) 2Byteを1つのデータとして、10進数に変換する

・ 0x01,0x58 → 0x0158 → 344 (10進数) X 26.3μ秒 = 9047.2 μ秒 ≒ 9 m秒

・ 0x00,0xab → 0x00ab → 171 (10進数) X 26.3μ秒 = 4497.3 μ秒 ≒ 4.5 m秒

この値を見てピンとくるかと思うが、リーダーコード

以降の64個の生データ部分が、リモコンコード(カスタムコード+データコード+データコードの反転)。

下記のように、 0か1かを確認していく。

[A] 0x00,0x18 → 0x0018 → 24 (10進数)

[B] 0x00,0x15 → 0x0015 → 21 (10進数)

AとBは、ほぼ近似値です。 このパターンは“0”

[A] 0x00,0x18 → 0x0018 → 24 (10進数)

[B] 0x00,0x40 → 0x0040 → 64 (10進数)

BはAの約3倍の数値です。 このパターンは“1”

残り6回、計8回分(8bit)を並べると

[1] 01000001

以下、同様に行うと、

[2] 10110110

[3] 11010100

[4] 00101011

上記32bit分が終わり、33bit目、生データでは67,68番目の生データ 

[A] 0x00 + 0x18 = 24(10進数) X 26.3μ秒 = 631.2 μ秒 ≒ 0.6ms

[B] 0x06 + 0x17 = 1559(10進数) X 26.3μ秒 = 41001.7 μ秒 ≒ 41ms

がおそらく、ストップコード。

その後、リピートコードがありますが、今回は割愛。

(3) 8bitのデータの並び替え

赤外線データを送る際に、リモコンコードは下位ビットから送るらしいので、

[1] 01000001 は、右から左に読み上げると 10000010 これを16進数に変換すると、82

同様に

[2] 10110110 → 01101101 → 6D

[3] 11010100 → 00101011 → 2B

[4] 00101011 → 11010100 → D4

という事で、NEC照明リモコン(RE0208) CH2 選択時のON/OFFボタンは、82 6D 2B D4 となる。

bto_advanced_usbir_cmd_生データの見方.txt · 最終更新: by admin