Message Ballの改良


はじめに

とりあえず、Message Ballが使えることは分かりましたが、いろいろ問題もあるし、もっと作りやすくしたいと思い改良しました。最終的には、Message Ball以外にもいろいろな機能を搭載した、MindOmniPuckに発展させようと思い、この改良は公開の準備をしていなかったのですが、JinSatoさんから、RoboCon Magazineの記事で使いたい旨のお話しがあり、せっかく改良が進んでいるのに、古いバージョンを使うのももったいないので、改良版を使っていただくことにしました。

回路も、プログラムも載せるとなると、あまり中途半端な扱いもできないので、私が製作記として記事を書きその応用をJinさんが執筆することになりました。

そうして、本文を補強する形で必要になったのがこのページです。


改良の指針

といっても、方針を立てて改良したわけではありません。Version 1はDAコンバーターで発光強度を可変しましたが、そこまでしなくてもLEDのOn時間を、調整すれば、出力を変化できると言うことを思いついたのが始まりです。

この方式はPWM制御と言いMotorの制御などではごく一般的ですが、果たして赤外線通信でも行けるかちょっと疑問もありました。しかし試して見ると、うまくいくので、一気に作りました。

回路は、ここに置きます。Version 1に比べかなり簡略化できました。LEDを複数つけてありますが、全部同じ出力ですので、1個だけでも、全周囲に赤外線が放射される様、光学的に工夫すればできます。また、可視光LEDをモニターランプとしてつけても良いでしょう。

Programはここです。MPLAB用のアセンブラーコードになっています。


超小型化

DAなしで済むため、出力ピンに抵抗とLEDをつければ済むようになりました。それならもっと小型化できると調子に乗って、PIC12C509に押しこんで見ました。

プリント基板を使わず、ICに直接半田付けして空中配線しましたが、基板を使ったほうが慣れない方には組み立てやすいと思います。

回路をここに、Programをここに置きます。使える命令が減り、Return Stackも2段だけになるので、いきなり組むのは大変ですが、先に動作するプログラムをPIC16F84で完成してあるので、それほど苦もなく移植できました。


改良その二

この改良で一応の目的は達成していますが、距離が十分近くても弱い出力のMessageを受け取れる確率が低い問題があり、受信感度以外にRCX側でOver Runや、Start bitを誤認した後再同期がうまくかからないことがあるなど、Message/Characterの間隔が狭すぎる問題があるのではと思われました。

この考察に基づき、いろいろと実験をしたのですが、画期的な改善にはいたらず、半ば投げ出していたところ、2000年10月、電子工作BBSでJinさんが、Sharpの赤外線受信モジュールIS1U60でRCX仕様のSignalがうまく受信できないと言う話題があり、ななしのさん、都築さん、私の解析で、このモジュールは、信号の立ち上がりが遅くこのひずみで符号が変化してしまっている事が判明しました。

RCXに使用されている赤外線受信モジュールにも、同様の傾向があることが予想させたため、立ち上がりが遅れる分、start bitを故意に標準より短縮してみる実験をしたところ、認識率が飛躍的に向上することが分かりました。

詳細については、Start bit Testerの専用ページでレポートします。

現在download可能にしているプログラムは、これに基づき標準より52μs start bitを短縮したプログラムになっています。

mesball2.asm,v 1.1 2000/07/21, mesball3.asm,v 1.1 2000/07/21を以前downloadしたかたは、お手数ですがVersion upして下さい。


Message Ball Version 1に戻る

MindStormsの洞窟に戻る

Google