ソフトウェア構成
本ソフトウェアは,リアルタイムモニタを用いマルチタスク処理を実現する.リアルタイムモニタは93年度電子制御工学科卒業研究で開発されたMIRX68Kを使用する.但し,MIRX68Kは,旧型MIRS制御ボード用に開発されたもので,これをVSBC1に移植する作業が必要である.また,現在MIRX68Kのリンク手順はパソコン(PC9800)上でのみ確立されいるので,これをWS上(Masterworks上)でのリンク手順を作成しなければならない.本システムは,初期設定タスク,行動計画タスク,リモートタスク,自己位置認識タスク,走行制御タスク,赤外線センサタスク,超音波距離測定タスク,7SegLED表示タスクおよび自己位置補正タスクからなる.
※リモート・コントロールタスクについて MIRSをRS−232Cを使用してのリモート・コントロールするという試みは始めてなのでこの部分については,新たに構築しなければならない.
各タスクの動作について以下に説明する.
- 初期設定タスク
- 電源投入時またはリセットボタン押下時に一回だけ起動され,処理終了後,行動計画タスクを起動する.初期診断プログラムの実行,ハードウェアの初期設定,自己位置を競技開始位置に設定,タスクの初期化,掲示板(BB)の初期化を行う.また,DIPスイッチを読み込み,動作モードをBBに書き込む.DIPの状態によっては,リモートタスクを行動計画タスクとともに起動する.
- 自己位置認識タスク
- タイマ割り込みにより起動される.ロータリエンコーダのカウント値を読み込み,自己位置(X,Y,Θ:姿勢角)を計算しBBに格納する.処理終了後,次のタイマ割り込みを設定する.また,LED表示モードがX,Y,Θのいずれかであれば7SegLED表示タスクを起動する.(7SegLED表示タスク用のBBを参照することにより何を表示しているか知ることができる).タイマ割り込み間隔については,総合試験で決定するが,総合試験版では50msに設定する.
- 超音波距離測定タスク
- タイマ割り込みにより起動される.3つの超音波センサにより順次距離を測定し結果をBBに格納する.処理終了後,次のタイマ割り込みを設定する.LED表示モードが超音波センサ状態を示していれば,7SegLED表示タスクを起動する.また,左右の超音波センサの計測距離の和が(2m−左右センサ間隔)であれば,自己位置補正タスクを起動する.タイマ割り込み間隔については,総合試験で決定するが,総合試験版では100msに設定する.
- 走行制御タスク
- 行動計画タスクから起動される.起動時に引数として軌跡と目標位置が与えられる.起動後,BBに実行中コードを書き込み,目標位置に到達するまでタイマ割り込みにより0.05秒毎に最起動されに与えられた軌道に対する差を補正しながら移動する.目標位置に到達したときは実行完了コードをBBに書き込む.実行中に実行を強制停止する機能を有する.
- 赤外線センサタスク
- ハードウェア割り込みにより起動され,赤外線センサの状態をBBに書き込む.LED表示モードが赤外線センサ状態を示していれば7SegLED表示タスクを起動する.
- 7SegLED表示タスク
- 7SegLEDの表示内容を更新する.4桁のうち最上位桁は下位3桁の表示内容を示すIDでIDは0から9までの数値でMMIの押しボタン割り込みによりカウントアップされる.
- 自己位置補正タスク
- タイマ割り込みにより起動される.左右の超音波センサの測定したデータに基づき,左右方向(XかYかはMIRSの姿勢及び現在位置により決定する)を補正する.タイマ割り込み間隔については,総合試験で決定する.
- 行動計画タスク
- BBに掲示された情報に基づき,MIRSの行動を決定する.このタスクより走行制御タスクが起動される.
- リモートコントロールタスク
- BBに掲示された情報に基づき,RS−232Cポートを使用してデータの送受信を行う.送受信のタイミングは,総合試験計画で決定する.
※本DOCUMENT(ソフトウェアの構成)は,基本設計仕様書作成例を基にしました.