赤外線リモコンのデータ


I2C赤外線リモコンmruby-remoconはビットトレードワンさんのUSB赤外線リモコンの仕様を一部変更したデータ形式となっています。

1バイト目は同じデータですが、2バイト目以降のデータはビットの並びを反転してます。USB赤外線リモコンは最下位ビット(Least Significant Bit:LSB)からの送信でI2C赤外線リモコンは最上位ビット(Most Significant Bit:MSB)からの送信となります。

これまで赤外線リモコンのデータでLSBからのパータンは見た事がなく、以前から作っていた、アルマジロのお使いなどと共通としたかったからです。ちなみに普通のシリアル通信はLSBから送られます。

アルマジロのお使いではFUTABA WEBさんのリモコン・データーベース形式(MSBから送信)を使っています。

この形式からI2C赤外線リモコンのデータ形式にするには以下のように変換します。

ソニーPlayStation2の○を例にします。

データは0xBAB5B0となって20ビットのデーターです。

1バイト目はビット長を4で割った物が上位4ビットで下位4ビットは信号のタイプになります。タイプは家電協会が1でNECが2でSONYが3となります。

((20 / 4) << 4) | 3 = 0x53

となります。後は0xBA,0xB5,0xB0が続き4バイトでデータが出上がります。

mruby-remoconの受信機能でデータを取得する事もできます。

$ mirb 
mirb - Embeddable Interactive Ruby Shell

> t = Remocon.new()
 => #<Remocon:0x101056fe0>
> p t.recieve
[83, 186, 181, 176]
 => [83, 186, 181, 176]

NECタイプのAppleRemoteの再生ボタンは[130, 119, 225, 32, 00]になります。この信号を調べているサイトではビットの並びが逆なページもあるようなのでNECタイプのビットは逆なのかもしれませんが、混乱するので並びは統一します。

自分のテストケース

タイプ 対象 備考
SONY CD,PS2
NEC AppleRemote
家電協会 シーリング シーリングは認識率低いです

貴重なデータを提供されているFUTABA WEBさんに感謝しております。