P/ECE KURO-RS 赤外線通信アナライザの使い方
『P/ECE KURO-RS 赤外線通信アナライザ』は、玄人志向のUSB接続赤外線学習リモコンキット「KURO-RS」を使って、P/ECEの赤外線通信データを解析するプログラムです。
P/ECEから受信した赤外線通信データを復号して、その内容を数値や文字列としてPC上に表示することができます。
その反対に、PC上で入力した数値や文字列を符号化して赤外線通信データにし、P/ECEに送信することもできます。
■ 数値データの送受信
- あらかじめ、KURO-RSをインストールし、PCに接続しておいてください。
- デバイスマネージャを参照して、KURO-RSが認識されているCOMポート番号を確認してください。
KURO-RSは、「BUFFALO RemoteStation PC-OP-RS1」という名前で表示されます。
下図の例では、「COM3」として認識されています。
環境によっては、もっと大きな番号で認識される場合もありますが、それで正常です。

- 「pkurors.exe」と「hspext.dll」が、同じフォルダに入っていることを確認してください。
- 「pkurors.exe」を実行してください。

- 『P/ECE KURO-RS 赤外線通信アナライザ』が起動し、設定ウィンドウが表示されます。
- 「デバイス」に、KURO-RSが認識されているCOMポート番号を選択してください。
- 「送信部」に、使用したい、KURO-RSの送信部を選択してください。
- [OK]ボタンを押してください。

- 設定ウィンドウが消えて、メインウィンドウが表示されます。
- まず、P/ECEから数値データを受信してみましょう。
[学習]ボタンを押してください。


- 『赤外線通信テスト』アプリケーション(testir.pex)を、P/ECEに転送してください。
testir.pexは、P/ECE開発環境に付属しています。(C:\usr\PIECE\app\pex\testir.pex)
- P/ECEのメニュー画面で、「testir.pex」を実行してください。

- P/ECEの発光部と、KURO-RSの受光部(本体左側面に内蔵されています)を向かい合わせてください。
20cmぐらいの距離が最適です。
- P/ECEの[A]ボタンを押してください。
32ビットの数値が二つ、赤外線通信データとして送信されます。
送信される数値は、[A]ボタンを押したタイミングによって決まるので、下図の例と異なっていても構いません。

- KURO-RSが赤外線通信データを受信して、その波形が「赤外線」グラフに表示されます。
- 波形だけでは内容がわからないので、復号して元の数値を表示してみましょう。
上段左側の[▼]ボタンを押してください。

- 赤外線通信データを復号した内容が、「16進数」ボックスに表示されます。
もし、「16進数」ボックスに何も表示されない場合は、赤外線通信に失敗していた可能性があります。
たとえば、P/ECEとKURO-RSの距離が遠すぎたり近すぎたり、向きが適切でないと、でたらめな波形の赤外線通信データになってしまい、復号できません。
距離と向きを調整して、送受信をやり直してみてください。
- P/ECEが送信した数値と、「16進数」ボックスに表示された数値が一致していたら、成功です。
下図の例では、「16進数」ボックスには、「A5 03 00 00 72 88 B7 59」と表示されています。
インテル並びの32ビットの数値二つと見なすと、「000003A5:59B78872」と読めます。
P/ECEの画面を見較べてみると、「000003a5:59b78872」で一致しています。
成功です。

- 次に、受信した数値を少し改変して、P/ECEへ送り返してみましょう。
下図の例では、2バイト目の「03」を「04」に書き換えてみました。

- 上段右側の[▲]ボタンを押してください。
「16進数」ボックスの数値が赤外線通信データに符号化されて、その波形が「赤外線」グラフに表示されます。
- KURO-RSの発光部(ケーブルの先の送信部に付いています)と、P/ECEの受光部を向かい合わせてください。
20cmぐらいの距離が最適です。
- [送信]ボタンを押してください。

- P/ECEが赤外線通信データを受信して、その数値が画面に表示されます。
- 先ほど改変した数値と、P/ECEの画面に表示された数値が一致していたら、成功です。
下図の例では、先ほど「16進数」ボックスで書き換えたのと同じように、もともと「03」だった部分が「04」に変わっています。
成功です。
なお、「RX-ERR」という表示は、「赤外線通信は成功したけれど、数値が改変されているよ」という意味なので、問題ありません。
testir.pexは、32ビットの数値二つを特定のルールで対応付けて生成しているので、片方だけが改変されると、改変されたことを検出できるのです。

- 改変した数値を元に戻して、P/ECEへ送り返してみましょう。
下図の例では、先ほど書き換えた2バイト目の「04」を「03」に戻してみました。

- 上段右側の[▲]ボタンを押してください。
「16進数」ボックスの数値が赤外線通信データに符号化されて、その波形が「赤外線」グラフに表示されます。
- [送信]ボタンを押してください。

- P/ECEが赤外線通信データを受信して、その数値が画面に表示されます。
- 先ほど元に戻した数値と、P/ECEの画面に表示された数値が一致していたら、成功です。
下図の例では、先ほど「16進数」ボックスで戻したのと同じように、「04」が「03」に戻って、最初にP/ECEが送信した数値と同じになっています。
成功です。
改変が無くなったので、32ビットの数値二つの対応付けも正しくなって、「RX-ERR」でなく「RX-OK」と表示されました。

- 最後に、まったく別の数値を入力して、P/ECEへ送信してみましょう。
「16進数」ボックスに、「01 23 45 67 89 AB CD EF」と入力してください。

- 上段右側の[▲]ボタンを押してください。
「16進数」ボックスの数値が赤外線通信データに符号化されて、その波形が「赤外線」グラフに表示されます。
- [送信]ボタンを押してください。

- P/ECEが赤外線通信データを受信して、その数値が画面に表示されます。
- P/ECEの画面には、「67452301:efcdab89」と表示されました。
インテル並びのバイト列と、32ビットの数値二つの、バイト位置の対応がよくわかります。
32ビットの数値二つの対応付けは正しくないので、「RX-ERR」と表示されていてOKです。

■ 文字列データの送受信
- まず、P/ECEから文字列データを受信してみましょう。
[学習]ボタンを押してください。
- 赤外線通信データの受信待ち状態になります。

- 『赤外線通信テスト(文字列版)』アプリケーション(testir2.pex)を、P/ECEに転送してください。
testir2.pexは、『P/ECE KURO-RS 赤外線通信アナライザ』のアーカイブに含めてあります。
P/ECE開発環境に付属しているtestir.pexのソースを、少し改造して作成したものです。
- P/ECEのメニュー画面で、「testir2.pex」を実行してください。

- P/ECEの[A]ボタンを押してください。
文字列が、赤外線通信データとして送信されます。
送信される文字列は、[A]ボタンを押したタイミングによって決まるので、下図の例と異なっていても構いません。

- KURO-RSが赤外線通信データを受信して、その波形が「赤外線」グラフに表示されます。
- 波形だけでは内容がわからないので、復号して元の文字列を表示してみましょう。
上段左側の[▼]ボタンを押してください。

- 赤外線通信データを復号した内容が、「16進数」ボックスに表示されます。
- 下段左側の[▼]ボタンを押してください。

- 「16進数」ボックスの数値を文字列に変換した内容が、「文字列」ボックスに表示されます。
- P/ECEが送信した文字列と、「文字列」ボックスに表示された文字列が一致していたら、成功です。
下図の例では、「文字列」ボックスには、「赤いランドセル」と表示されています。
P/ECEの画面を見較べてみると、「赤いランドセル」で一致しています。
成功です。

- 次に、受信した文字列を少し改変して、P/ECEへ送り返してみましょう。
下図の例では、「ランドセル」を「彗星」に書き換えてみました。

- 下段右側の[▲]ボタンを押してください。
「文字列」ボックスの文字列を数値に変換した内容が、「16進数」ボックスに表示されます。

- 上段右側の[▲]ボタンを押してください。
「16進数」ボックスの数値が赤外線通信データに符号化されて、その波形が「赤外線」グラフに表示されます。
- [送信]ボタンを押してください。

- P/ECEが赤外線通信データを受信して、その文字列が画面に表示されます。
- 先ほど改変した文字列と、P/ECEの画面に表示された文字列が一致していたら、成功です。
下図の例では、先ほど「文字列」ボックスで書き換えたのと同じように、もともと「ランドセル」だった部分が「彗星」に変わっています。
成功です。

- 最後に、まったく別の文字列を入力して、P/ECEへ送信してみましょう。
「文字列」ボックスに、「テレネッツァ」と入力してください。

※画面スナップショット撮ったあとで気付いたのですけれど、テレネッツァじゃなくてテネレッツァの間違いでした…(^^;
- 下段右側の[▲]ボタンを押してください。
「文字列」ボックスの文字列を数値に変換した内容が、「16進数」ボックスに表示されます。

- 上段右側の[▲]ボタンを押してください。
「16進数」ボックスの数値が赤外線通信データに符号化されて、その波形が「赤外線」グラフに表示されます。
- [送信]ボタンを押してください。

- P/ECEが赤外線通信データを受信して、その文字列が画面に表示されます。
- P/ECEの画面にも、「テレネッツァ」と表示されました。
成功です。

Thu Nov 29 19:02:38 JST 2007 Naoyuki Sawa (nsawa@piece-me.org)