Document

マイクロマウス概論 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 を使用



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カメラ


外乱光に弱い(蛍光灯など)
要画像処理
角速度センサ(ジャイロなど)

どの方向を向いているかわかる
モータ

ステッピングモータ(お手軽)




パルスを与えた分だけ進む
正確な制御が容易
大きいのが欠点
DCモータ


電圧をかけると回る
進んだ距離が分からないので
エンコーダが必要
ユーザーインターフェース

ボタン3つ + LED が主流


場所をとらない
ボタン1つ + 可変抵抗 + LCD


原のマウス。直感的な操作が可能
場所をとり、重くなるのが欠点
ソフトウェア構成の例




ユーザーインターフェース
モータ制御(加減速、停止など)
センサ値取得
探索+最短経路導出
ユーザーインターフェース

入力

メニュー体系


各種設定、動作を選択するために必要
出力

LED, スピーカー(D/A変換)

内部状態(センサ値やデバッグ情報)を
操作者に知らせるために必要
モータ制御




ステッピングモータの場合、制御は楽
割り込みタイマーを使う
励磁させたいコイルの情報を
ビットパターンとしてポートに書き込む
加速テーブル

マイコンは演算性能が低いので、
逆数はテーブルを引くことで求める
励磁パターンの例(1-2相励磁)
1000
1100
0100
0110
0010
0011
0001
1001
↓時間
迷路探索アルゴリズム

拡張左手法



求心法


一度通った区画は再び入らない
ゴールが中央にあるので、
純粋な左手法ではうまくいかない事がある
分岐点で、ゴールに近い方を選ぶ
足立法(シミュレータ参照)

未知の壁は無いものとして最短経路を進む
クロスコンパイル環境

日立製コンパイラ


gcc (h8300-hms-gcc など)


シンボルテーブルの制限がきつい
Windows で動かす時は Cygwin が必要
.c -> .obj -> .abs -> .mot
ROMへの転送

シリアルポート経由で書き込む

wrt306x
秋月電子製
 GUI もあり


h8comm