信大ロボ研のブログ

信州大学ロボット研究会のブログです。

梵天丸をSONY製リモコンで制御する

やあ、たぬだ。
今回は口調を変えてみる。
メカトロで遊ぶ会が開発した『PIC16F84Aを使用している自律型ロボットキット』梵天丸を制御する研究の報告をする。

本日は、以下の成果を得た。
梵天丸に赤外線テレビリモコンを読み込ませることに成功
うっかり10時間もやっていた計算になる。
だが、それに見合う成果は得た。

まず、赤外線リモコンについて。
これはググれば大丈夫だ。
PPM変調方式で変調し、しかも変換方式にSONY独自仕様が混じっている厄介なものだ。
だが、その独自仕様は極めて単純。
最初の3000μ秒程度はリーダ部。いわゆるダミーコードだ。
↓のオシロの図を見ればすぐにわかるだろう。
次からは8bitの信号が送られる。
101で『0』を表し、1001で『1』を表している。
↓のオシロでは下から『00000001』ひっくり返して『10000000』という信号を送信している。ちなみにリモコンのボタン番号は1だ。
最後の4bitは機種コード。
このリモコンはSONY製汎用リモコン(残念ながら写真を忘れた)なので、機種コードは『0000』を指している。写真では切れていて見えないが、通信には無関係なので全く気にする必要はない。

次に赤外線リモコン受光モジュールだ。
モジュールだから、中で復調している。
リモコンからは、先のように『00000001』と信号が出ているわけではない。
簡単に書くならば『00000000111100001111000011110000……』という信号が出ている。
0のところは、赤外線LEDが38kHzで点滅しているところであり、1のところは消灯しているところである。
赤外線リモコン受光モジュールは、出力端子が1つあるのだが、デフォルトで1(=5V)を出力している。
0すなわち点滅が入力されると、0Vを出力する。
赤外線リモコン受光モジュールのおかげで、かなり楽をしている。

なのになぜ10時間もかかったのか……ディレイサブルーチンを作りミスったからだ。10μ秒のディレイを20μ秒で作っていたら、そりゃ解析もうまくいかない。
私のようなミスをほかの人は決して冒さないでほしい。

次は解析アルゴリズム
これは人のをパクッた。すまない。許せ。ググれ。ググれば出てくる。
さすがにパクりっぱなしはまずい。実はもう一つ別の解析アルゴリズムを用意してある。これは独自に考えた。そちらを実用化すれば問題ない。

最後に今後の課題。
●赤外線テレビリモコンで梵天丸を移動するプログラムを組む
サーボモーターをPIC16F84Aで動かす
実は最終段階の計画があるのだが、それはまだバラさないでおこう……