AQUOSリモコンの信号解析をしました | スイッチ工作室

スイッチ工作室

意思伝達装置に使うスイッチのあれこれ

自作のテレビリモコンを作るためにAQUOSリモコンの信号解析をしました。テレビリモコンの仕組みについては「テレビリモコン フォーマット」でインターネットを検索するといろいろなことがわかります。今回のAQUOSリモコンは家電製品協会フォーマットと呼ばれるフォーマットでした。

家電製品協会フォーマット


さて、信号解析のためには赤外線センサーとパソコンが必要です。赤外線リモコン用の専用のセンサーもあるのですが、今回は安価なフォトトランジスターでセンサーを作りました。

赤外線センサー外観 赤外線センサー内部


このセンサーをパソコンのマイク端子に取り付け録音ソフトを使って音声信号として記録します。これはリモコン信号が音声の周波数帯域に近いために可能なことです。録音ソフトとして無料で入手できるAudacityというソフトを使いました。

Audacityロゴ


パソコンの音声入力端子に接続したセンサーの受光部にテレビリモコンの赤外線LEDを向けて信号を出す準備をします。

テレビリモコンの準備


録音ソフトの録音ボタンを押して録音を開始します。

録音開始


テレビリモコンの電源ボタンを軽く1回押した(チョイ押し)場合と長く押した場合の信号を録音します。ボタンをチョイ押しすると信号が2回、長押しするとボタンを押している間中、信号が何回も送られていることがわかります。

リモコンボタンのチョイ押しと長押し


録音ソフトの拡大ボタンを押して時間軸を拡大表示します。

表示の時間軸の拡大


テレビリモコンの電源ボタンをチョイ押しした場合の信号間の間隔を選んで時間を測定します。この間隔は70msであることがわかります。

リモコン信号間隔


他の部分の信号の長さをそれぞれ測定して、信号の形式が家電製品協会フォーマットであることを確認しました。家電製品協会フォーマットでは1と0の信号が信号の長さの長短で表現されます。また、信号の前後にそれぞれリーダー部とストップビットが付加されます。

0-1の区別


電源ボタンの信号は以下のようなビットの並びになります。以下の例では区切り記号を適宜付加して表記しています。

0101-0101-0101-1010 1111-0001-0100-1000 0110-1000-1000-1011

この状態ではボタンごとの信号を目視で比較するのが難しいので2進数の表記を16進数に変換します。一般的には右端が1の位で表記しますが、ここでは、左端を1の位として、一般とは逆順に2つ目のビットを2の位、3つ目のビットを4の位、4つ目のビットを8の位として表記します。2進数と16進数の変換は以下の表のようになります。

16進数表記


この結果、電源ボタンは以下のような16進数表記になります。

AAA5-F821-611D

同様に他のボタンの信号を解析していくといくつかの規則があることがわかります。最初の「AAA5-F821」は全てのボタンの信号で共通で、「611D」の部分のみがボタンごとに変化し、この中でも「611」の部分は数字が順番に変化しますが最後の「D」の部分はいろいろな値になっていることがわかりました。

信号の最後の部分はチェックデジットと呼ばれる信号が正しく受信できたかどうかを確認するための簡便な計算式の結果を送っている部分と考えられます。比較検討した結果、チェックデジットの計算方法は信号の先頭から4ビットごとに全ての桁の排他的論理和(XOR)を取っていることがわかりました。便宜的には同じ桁に1が偶数回または0回であれば結果は「0」で奇数回だと「1」ということになります。

排他的論理和(XOR)の計算


信号の送信側はメインの信号を送った最後に決められた計算方法の結果を送ることで、受信側はメインの信号を受け取る過程で同様の計算を行い、最後に送られてくるチェックサムと計算結果が一致した場合は信号が正常に伝達されたと判断します。一致しなかった場合は受信が失敗したと判断して受信側は何もアクションを起こしません。

以上の結果を反映して自作のテレビリモコンのプログラムを作成し、今回はボタンの長押しで電源の操作、ボタンのチョイ押しでチャンネルを地デジ1、2、3、4、5、6、8、10、BS1、2、3、4、5、6、7、8、地デジ1といった順にチャンネル選択ができるようにしました。

外部スイッチ入力付きリモコン.


実際のリモコンの送信側のプログラムでは、信号を出している間は38KHzの矩形波を出すのですが、今回のような信号を録音する方法では38KHzは音声周波数の上限の20kHzより高い周波数のため記録されていません。