平成13年2月9日
情報工学科 r00h0390 不死川魔沙王
8.ソフトウエア
センサによる制御に、当初は割り込みを用いるつもりだったが、技術上の問題から今回はポーリングを用いている。また、台形加減速も使用していない。
マイクロマウスの動作には、まずパルス発生のため
1.タイマサブルーチン
が必要である。
基本動作のため、以下のものが必要となる。
2.区間分前進
3.90度右回転
4.90度左回転
5.180度回転
また、壁にぶつからないための姿勢制御動作を行う。そのために、今回はモータの一方を励磁オフにして、他方に1パルス分前進させるという方法をとった。そのために必要なのは以下のものである。
6.壁ぎりぎりまで近づく
7.しばらく止まる
8.1パルス前進
9.1パルス右に動く
10.1パルス左に動く
タイマサブルーチンの仕組み
CPUに数を数えさせることにより、ソフトタイマを実現することができる。レジスタに入れる数字を変化させることによって、タイマの時間調整を行うことができる。これにより、モータに与えるパルスの周波数を制御し、回転速度を変化させる。
モータ回転の仕組み
前進・後退・停止(モータを励磁によりロックする)・解放(モータの励磁をオフにする)を表す信号を1パルス出力するたび、モータのコイルの励磁個所が変化する。これを繰り返すことにより、モータは回転する。回転速度を調節するためにタイマを用いる。タイマの時間稼ぎの時間が長いほど、パルス間の時間が長くなり、回転は遅くなる。また、ループの回数を加減することにより、進む距離の長さを調節できる。
1回の出力で左右のモータに対する信号を同時に出すことができる。左右モータの動きと、マイクロマウス全体の動きを表にまとめると以下のようになる。
左モータ | 右モータ | 全体の動き |
前進 | 前進 | 前進 |
後退 | 後退 | 後退 |
停止 | 停止 | 停止 |
前進 | 後退 | 右に回転 |
後退 | 前進 | 左に回転 |
前進 | 解放 | なめらかな右回転(微調整時用いる) |
解放 | 前進 | なめらかな左回転(微調整時用いる) |
左右の修正動作について(参考:ロボティクス入門)
左右のセンサは後ろから見て以下のような配置になっている。
センサの太字の部分に壁があれば正常なので修正を行わずそのまま進む。
そうでなければ適宜小修正を行う。
前方の壁の認識には、以下のような方法を用いる。
1. まず、前センサが壁を認識する。
2. つぎに、左右センサの内側が両方反応するまで直進する。
前センサが反応した段階で左折/右折の動作を行うと、マイクロマウスは壁に衝突してしまう。そこで、十分前進してから回転動作を行う必要がある。