2003/04/14(Mon) 15:00- 早稲田大学マイクロマウスクラブ(WMMC) 4年 原 耕司 マイクロマウス概論 A 2003/04/14(Mon) 15:00- 早稲田大学マイクロマウスクラブ(WMMC) 4年 原 耕司
マイクロマウスとは マイクロコンピュータや各種センサなどを内蔵し、自分の力で迷路を走り抜ける小型自走車 2輪マウスが主流 現在のトップは井谷氏の6輪マウス (日本システムデザイン社)
迷路 迷路の大きさ 3m×3m 16×16区画の通路(通路の幅は18cm) 迷路の形状は事前に知らされていない (大会ごとに変わる) 出発点は隅の1区画 ゴールは中央の4区画
競技の方法 出発点にマウスを置き、ゴールまで走らせる 事前に迷路をマウスに教えてはいけない 壁を乗り越えてはいけない 持ち時間10分 5 回までの走行ができる (最も速いタイムを採用する) 走行時間で競う以外に、 探索賞、自律賞、ナムコ賞などがある
定石 第一走行は探索 第二走行以降は、覚えた迷路情報を 利用してタイムトライアル
ハードウェア構成の例 CPU センサ モーター ユーザーインターフェース 電池
CPUボード H8, SH2, PIC... WMMC では H8-3067 を使用 Memory Mapped I/O の例 20MHz / ROM128KB / RAM32KB 秋月電子製 \5700 Memory Mapped I/O の例 0xFFFFD4 に書き込むと、PB1端子が High(5V)になり、配線したLEDが点灯する A/D 変換結果は 0xFFFFE0 にある #define PBDR (*(volatile unsigned char *)0xFFFFDA)
センサ 赤外線LED + フォトトランジスタ PSDセンサ CCDカメラ 角速度センサ(ジャイロなど) 外乱光に弱い(蛍光灯など) 三角測量で距離を測る 外乱光に強い CCDカメラ 要画像処理 角速度センサ(ジャイロなど) どの方向を向いているかわかる
モータ ステッピングモータ(お手軽) DCモータ パルスを与えた分だけ進む 正確な制御が容易 大きいのが欠点 電圧をかけると回る 進んだ距離が分からないので エンコーダが必要
ユーザーインターフェース ボタン3つ + LED が主流 ボタン1つ + 可変抵抗 + LCD 場所をとらない 原のマウス。直感的な操作が可能 場所をとり、重くなるのが欠点
ソフトウェア構成の例 ユーザーインターフェース モータ制御(加減速、停止など) センサ値取得 探索+最短経路導出
ユーザーインターフェース 入力 出力 メニュー体系 LED, スピーカー(D/A変換) 各種設定、動作を選択するために必要 内部状態(センサ値やデバッグ情報)を 操作者に知らせるために必要
モータ制御 ステッピングモータの場合、制御は楽 割り込みタイマーを使う 励磁させたいコイルの情報を ビットパターンとしてポートに書き込む 加速テーブル マイコンは演算性能が低いので、 逆数はテーブルを引くことで求める
励磁パターンの例(1-2相励磁) 1000 1100 0100 0110 0010 0011 0001 1001 ↓時間
迷路探索アルゴリズム 拡張左手法 求心法 足立法(シミュレータ参照) 一度通った区画は再び入らない ゴールが中央にあるので、 純粋な左手法ではうまくいかない事がある 求心法 分岐点で、ゴールに近い方を選ぶ 足立法(シミュレータ参照) 未知の壁は無いものとして最短経路を進む
クロスコンパイル環境 日立製コンパイラ gcc (h8300-hms-gcc など) シンボルテーブルの制限がきつい gcc (h8300-hms-gcc など) Windows で動かす時は Cygwin が必要 .c -> .obj -> .abs -> .mot
ROMへの転送 シリアルポート経由で書き込む wrt306x 秋月電子製 GUI もあり h8comm