Micro Scoutコントローラ(リモコン)の作成


はじめに

我が家の息子達はレゴブロックで遊ぶのが大好きで、いつの間にかかなりの量のブロックが集まってしまいました。スーパーなどで見かけるレゴ付きお菓子(いわゆる食玩)シリーズも結構揃ってしまったようです。
そして今回のクリスマス、サンタさんは何とプレゼントにレゴのマインドストームDroid Developer Kit(DDK)を贈ってくれました。
出来ればRobotics Invention System(RIS)が良かったのですが(サンタさん、予算オーバー?)、入門編のDDKなら難しいこともないでしょうし、子供も気に入ってくれたようです。
部品点数がかなり多いのですが、子供はあっという間にL3GOやR2-D2を組み立ててしまいます。普段から沢山のブロックで遊んでいるので「楽勝」なのだそうです。。。

このDDKの心臓部がMicro Scout(マイクロスカウト)で、光センサーとモーターを内蔵したブロックに予め組み込まれている7種類のプログラムを動作させることができます。MicroScoutのモーター出力は1軸しかありませんが、説明書にあるロボット(ドロイドと呼ぶそうです)はなかなかよく出来ていて、結構面白い動きを見せてくれました。

Micro Scoutには7種類のプリセットプログラムのほかに「コントロール」(Pモード)という機能があるようなのですが、「今後のシリーズで動作させる予定」としか説明がなく、LEGOのWebページにも解説は見あたりませんでした。
そうなるとどうしても「コントロール」をコントロールしたい!という欲求に駆られ、Webの検索エンジンで調べたところ、色々な方法でコントロールを実践されている方々のホームページに出会い、これによるとMicro ScoutはVLLという方式で光による命令やプログラミングの出来ることがわかりました。

VLLのフォーマットやコードがある程度わかったので、以前作った赤外線リモコンの基板を改造して、Micro Scoutコントローラを作成してみました。

作成にあたっては、「MindStormsの洞窟」ホームページが大変に参考となりました。ページ作者のmacさんにこの場を借りて御礼いたします。

Micro Scout

 

VLLについて

Micro ScoutのPモードでは、以下の方式でVLLをエンコードした光線を光センサーに送ることでMicro Scoutをコントロールできます。

TVなどの赤外線リモコンでは数十kHzのキャリアで送信しますが、Micro Scoutの場合は上記の点滅のみでも大丈夫なようです。データ生成や送信方法は下記のソースを参考に願います。

MicroScoutで動作可能なVLLコードとコマンドの対応は次のようになっています。

トラック VLL code 種別 コマンド
1 0 D: Motor Forward
2 1 D: Motor Reverse
3 4 D: Beep 1
4 5 D: Beep 2
5 6 D: Beep 3
6 7 D: Beep 4
7 8 D: Beep 5
8 10 D: Motor Stop
9 16 S: Motor Forward 0.5
0 17 S: Motor Forward 1.0
11 18 S: Motor Forward 2.0
12 19 S: Motor Forward 5.0
13 20 S: Motor Reverse 0.5
14 21 S: Motor Reverse 1.0
15 22 S: Motor Reverse 2.0
16 23 S: Motor Reverse 5.0
17 24 S: Beep 1
18 25 S: Beep 2
19 26 S: Beep 3
20 27 S: Beep 4
21 28 S: Beep 5
22 29 S: Wait for Light
23 30 S: Seek Light
24 31 S: Code
25 32 S: Keep Alive
26 33 D: Run
27 34 D: Delete Script
28 70 D: Next
29 71 D: Reset

種別のD: はダイレクトコマンド(送信で即時実行)、S: はスクリプトコマンド(必要なだけ(15ステップ以内で)送ってからRunで実行)です。
Motor Stopコマンドはモータードライバ(Hブリッジ)でモーター両極を短絡するもので、外部からの軸回転に対してブレーキがかかります。

回路図

Micro Scout VLLリモコン回路図(1000*750 GIF 12KB)

PIC16F84を使った回路になります。今回は赤外線ではなく、赤色の高輝度LEDを使用したのでLEDのドライブはPICの出力をそのまま使いました。
送信するコマンドの種別と名称は16文字×2行のLCDに表示します。

通常(高輝度)LEDと赤外線LEDの2つを、モードに応じて切り替え送信できるように修正しました。赤外線LEDのドライブ用にトランジスタを1つ追加しました。(2001.1.12)

 

プログラム

ソースプログラム(ASM)

 

リモコン写真

基板とLCD こんな感じに表示されます

 

念願の「Pモード」でL3GOをコントロールするの図
・やっとケース(透明)に入れました。(2001.1.10)
・子供の希望により、メッセージは英語から"カナ"に変更しました。

 

リピータ(VLL中継器)の作成

Micro Scoutの光センサーは懐中電灯でも赤外線リモコンでも反応しますが、指向性が強いため正面ナナメ上からでないと光を認識しないようになっています。最初は赤外線LEDで実験していたのですが光が見えず、ちょっと離れた所からではちゃんと当たっているのかどうか、てんでさっぱりなので、部品箱にあった超高輝度の赤色LED(型番不明)に交換しました。これはスポット的な集光なのでわかりやすく、If=20mA程度でもかなり明るいため、1mくらい離れても送信が可能でした。

それでも動き回るドロイドに合わせて、自分がリモコンを持って追っかけるのも楽じゃないので、今度は赤外線で遠くから送信したコードを中継するVLLリピータを作ってMicroScoutに取り付けました。

Micro Scout VLLリピータ回路図

 

リピータ配線状況(内部)   電池はCR2025×2個です

むき出しだった配線面をゴム板で被い、センサとLEDはコネクタで延長出来るようにしてみました。(2001.1.10)

R2D2に取り付けて遠隔操作(^^)♪

なるべく小さくしたいので電池はボタン電池を使いましたが、目的にあわせ適当な大きさにまとめて、リピータのLEDがMicroScoutのセンサーの上にくるように取り付けます。

リピータを取り付けたMicroScoutを「Pモード」にして、VLLリモコンを赤外線モードで起動するとかなり遠くからでもコントロールできるようになります。


戻る