10.ソフトウェア構成


 本ソフトウェアは,リアルタイムモニタを用いマルチタスク処理を実現する.リアルタイムモニタは93年度電子制御工学科卒業研究で開発されたMIRX68Kを使用する.但し,MIRX68Kは,旧型MIRS制御ボード用に開発されたもので,これをVSBC1に移植する作業が必要である.また,現在MIRX68Kのリンク手順はパソコン(PC9800)上でのみ確立されいるので,これをWS上(Masterworks上)でのリンク手順を作成しなければならない.                         

タスクの作成

 ここでは、プログラムを大きくセンサ管理、PWM、モード決定、演算処理の4つに分け、その上にモード決定のためのタスクをおく。これらのタスクは、状況に応じてさらに細かく分割される。それぞれのタスクで行われる処理を、下の様に定める。

制御Taskモード決定ノーマル処理
Task A赤外線センサ管理割り込み処理
Task B超音波センサ管理タイマ(送信)割り込み(受信)処理
Task Cタッチセンサ管理割り込み処理
Task Dロータリーエンコーダタイマ処理
Task E駆動系制御ノーマル処理
Task F演算処理ノーマル処理

それぞれのタスクの概要

モード決定
演算処理部からの位置データと、超音波センサからのデータをもとに行動モードをけっていし、駆動系制御部にモータの制御データを送る。
赤外線センサ管理部からの信号に対する処理を最優先とする。
赤外線センサ管理
赤外線センサからの割込み信号により起動。
赤外線入力データを制御タスク(モード決定)に送る。
超音波センサ管理
インターバルタイマにより、一定の時間周期毎に起動。
距離の算出、タスクF(演算処理部)へデータを送る。
タッチセンサ管理
タッチセンサからの割込み信号により起動。
タッチセンサ入力データを制御タスク(モード決定)に送る。
ロータリエンコーダ
インターバルタイマにより、一定の時間周期毎に起動。
計測値をタスクFに送る。
駆動系制御制御
タスクからの信号によって、PWM回路に信号を出力する。
演算処理
タスクD(ロータリーエンコーダ)からの信号から自MIRSの場所(x,y座標と姿勢角)を算出する。
 タスクの遷移を図14に表す。

 各モジュールで得られる情報は以下のようになる。
TASK名センサ名情報
TASK1赤外線センサ相手機のLEDが見えるか
TASK2超音波センサ前・左・右の(壁or相手機との)距離
TASK3タッチセンサ壁or相手機が接触しているか
TASK6ロータリーエンコーダ自機の位置
 なお、具体的なプログラムの書き方等については、卒業研究報告書「小型ロボット用リアルタイムモニタの設計、製作」に従う。


目次に戻る
表紙に戻る