沼津高専 電子制御工学科
MIRS9804ソフトウェア詳細設計書
MIRS9804-DSGN-0004
改訂記録
版数作成日作成者承認改訂内容
A011999.5.25村松新一品川 彰初版
B011999.6.11村松新一品川 彰タスク,HCPチャートを改訂
C012000.2.16村松新一品川 彰動作規定の変更に基づき大幅に変更

目次

  1. はじめに
  2. 概要
  3. リアルタイムモニタ
  4. ロータリエンコーダ・タッチセンサタスク
  5. 超音波センサ・赤外線センサタスク
  6. MMI制御タスク
  7. 残り時間カウント・IR_TSモードタスク
  8. 走行制御タスク
  9. 走行補正タスク
  10. 行動計画タスク
  11. 試験
  12. 作成ドキュメント一覧

    1.はじめに

本ドキュメントは、MIRS9804基本設計書(MIRS9804-DSGN-0001)MIRS9804改善計画書(MIRS9804-DSGN-1001)に規定されたシステムの動作規定、状態遷移を実現する各タスクの開発(コーディング、試験等)に必要な事項を述べる。

2.概要

MIRS9804ソフトウェアはリアルタイムモニタMIRX68KとMIRX68K上で動作するタスクから構成される。タスクは低レベルタスクと高レベルタスクとメインタスクに大別され、基本的には低レベルタスクはハードウェアの制御を高レベルタスクは低レベルタスクを用いてシステムの動作を実現する。メインタスク(行動計画タスク)はスイッチ状態やセンサ情報をもとに動作を決定しそれに応じたタスクの起動を行う。 MIRS9804ソフトウェアは下記のタスクから構成される。
低レベルタスク   高レベルタスク メインタスク      

3.リアルタイムモニタ

  1. タスクの数(MAX_TASK)=10タスク
  2. BBの数(MAX_BB)=8
  3. 以下に各タスク使われる処理を示す。
タスク No inzt nrmt timt intt
ロータリエンコーダ・タッチセンサ 01 × ×
超音波センサ・赤外線センサ 02 ×
MMI制御 05 ×
残り時間カウント・IR_TSモード 06 ×
走行制御 07 ×
走行補正 08 ×
行動計画 09 ×



4.task01:ロータリエンコーダ・タッチセンサタスク

  1. 機能
    一定時間毎に起動され、ロータリーエンコーダの値から自己位置のx、y座標と姿勢角θ及びタッチセンサのデータを検出しBBに書き込む。
  2. コマンド仕様
    コマンドなし
  3. BB仕様
    番号内容
    1自機位置x座標データ
    2自機位置y座標データ
    3自機位置姿勢角θデータ
    4タッチセンサデータ
    5右ロータリエンコーダデータ
    5左ロータリエンコーダデータ
  4. 初期設定
     Hardware Function Libraryのロータリーエンコーダ・タッチセンサ系の初期化関数void re_ts_init();を用いる。BBを初期化し、タイマタスク登録をする。
    1. モジュール定義
      void inzt01():リアルタイムモニタから呼ばれる初期設定関数。
  5. コマンド処理
    なし
  6. タイマ処理
    一定時間毎に起動され、ロータリーエンコーダの値から自機位置のx、y座標と姿勢角θを算出してBBに書き込む。またその際にタッチセンサのデータもBBに書きこむ。
    1. モジュール定義
      void timt01():タイマ割り込みによって一定時間ごとに実行される関数。
  7. 割り込み処理
    なし

5.task02:超音波センサ・赤外線センサタスク

  1. 機能
    一定時間毎に起動され超音波を送信する。また超音波を受信するごとに起動され距離データをBBに書き込む。また一定時間毎に赤外線のデータを読み込みBBに書き込む。
  2. コマンド仕様
    コマンドなし
  3. BB仕様
    番号内容
    0距離データ1
    1距離データ2
    2距離データ3
    3距離データ4
    4過去距離データ1
    5過去距離データ2
    6過去距離データ3
    7過去距離データ4

    またBB(3,0)に赤外線のデータを書き込む。

  4. 初期設定
     Hardware Function Libraryの超音波センサ系の初期化関数void uss_init();を用いる。BBを初期化し、割り込みタスク、タイマタスク登録をする。
    1. モジュール定義
      void inzt02():リアルタイムモニタから呼ばれる初期設定関数。
  5. コマンド処理
    なし
  6. タイマ処理
    一定時間ごとに起動され超音波を送信する。また一定時間以内に受信信号がなかったとき受信を中断する
    1. モジュール定義
      void timt02():タイマ割り込みによって一定時間ごとに実行される関数。
  7. 割り込み処理
    超音波センサへの受信信号があったときに距離を計算しBBに書き込む。
    1. モジュール定義
      void intt02():超音波センサへの割り込み要求があった時に実行される関数

6.task05:MMI制御タスク

  1. 機能
    主に7seg.LED表示,単色LED点灯の処理を行う。また,DIPスイッチを読み込み,動作モードをBBに書き込む。
  2. コマンド仕様
    コマンド名 コード
    (HEX)
    サブコマンド 機能
    初期動作 any any 初期動作(LEDに9804と表示)を行う。
  3. BB仕様
    番号 内容
    0DIPスイッチデータ
    17seg.LEDデータ
    2単色LEDデータ
  4. 初期設定
     Hardware Function Libraryのマン・マシンインターフェース系の初期化関数void mmi_init();を用いる。BBを初期化し、タイマタスク、割込みタスク登録をする。
    1. モジュール定義
      void inzt05():リアルタイムモニタから呼ばれる初期設定関数。
  5. コマンド処理
    BBに9804と表示。
    1. モジュール定義
      void nrmt05():DIPスイッチデータの読み込み。
  6. タイマ処理
  7. 割り込み処理
    押しボタンスイッチが押されると、各種のタイマタスクを起動し、DIPスイッチの値をBBに書きこむ。
    1. モジュール定義
      void intt05():押しボタンスイッチが押されると実行される関数。

7.task06:残り時間カウント・IR_TSモードタスク

  1. 機能

  2. タイマタスクが起動された後、時間をカウントし決められた時間になると、タッチセンサと赤外線センサのみを使ってスイッチを探索するモードを起動する。
  3. コマンド仕様

  4. なし
  5. BB仕様
  6. 番号内容
    0タッチセンサ割込みデータ
    1カウント値
    7残り時間
  7. 初期設定

  8. BBを初期化しタイマタスク登録をする。
    1. モジュール定義

    2. void inzt06():リアルタイムモニタから呼ばれる初期設定関数。
  9. コマンド処理

  10. なし
  11. タイマ処理

  12. タイマタスク起動後カウントを開始し、カウント終了後行動計画タスクを停止し、IR_TSモードで行動する。
    1. モジュール定義

    2. void timt06():タイマ割り込みによって一定時間ごとに実行される関数。
  13. 割り込み処理

  14. なし

8.task07:走行制御タスク

    1. 機能

    2. 行動計画タスクから起動される。指定されたモードに従って走行する。
    3. コマンド仕様
    4. コマンド名 コード
      (HEX)
      サブコマンド 機能
      距離指定なし直進 00 0:後退、1:後退 タッチセンサに反応があるか、停止命令があるまで直進する
      距離指定あり直進 01 移動距離 現在地点から指定された距離だけ直進する
      指定座標移動 02 指定座標
      (x*10000+y)
      指定された座標へ直進して移動する
      周回移動 04 角度 ポールの周りを半径400mmで指定された角度回転するまで周回する
      その場回転1 05 回転角度
      (+:左、-:右)
      指定された角度回転する
      その場回転2 06 回転角度 指定された角度へ回転する
      停止 10 any 現在行っている走行を停止する
    5. BB仕様
    6. 番号内容
      0走行終了フラグ
      1周回移動中タイヤ空回り防止フラグ
      2周回中割込み停止時に回った角度
      3タッチセンサ割込みデータ
      4走行モード
      5走行開始初期位置
      6走行目標位置
      7座標移動、周回移動用フラグ
    7. 初期設定

    8. BBを初期化しタイマタスク登録をする。
      1. モジュール定義

      2. void inzt07():リアルタイムモニタから呼ばれる初期設定関数。
    9. コマンド処理

    10. 指示された走行モードに対応した処理を行い、タイマタスクを起動する。
      1. モジュール定義

      2. void nrmt07():BBにデータを書きこむ。
    11. タイマ処理

    12. 起動されるごとに現在の座標を調べ目標位置に近づくように走行を制御する
      1. モジュール定義

      2. void timt07(int,int):タイマ割り込みによって一定時間ごとに実行される関数。
    13. 割り込み処理

    14. なし

9.task08:走行補正タスク

    1. 機能

    2. 走行制御タスクから起動される。指定されたモードに従って、ロータリエンコーダのカウント値を参照し、走行に補正を加える。
    3. コマンド仕様

    4. コマンドなし
    5. BB仕様
    6. 番号内容
      0停止処理完了フラグ
      1直線補正量
      2回転補正量
      3周回補正量
      4右PWMデータ
      5左PWMデータ
      6補正選択
    7. 初期設定

    8. BBを初期化しタイマタスク登録をする。
      1. モジュール定義

      2. void inzt08():リアルタイムモニタから呼ばれる初期設定関数。
    9. コマンド処理

    10. なし
    11. タイマ処理
    12. BB(8,6)に書きこまれたデータに従って走行の補正を行う。
      1. モジュール定義

      2. void timt08():タイマ割り込みによって一定時間ごとに実行される関数。
    13. 割り込み処理

    14. なし

10.task09:行動計画タスク

  1. 機能

  2. 往復しながら左超音波でポスト検索かつポスト回避行動。続いてポスト位置まで移動、ポスト獲得動作を繰り返す。
  3. コマンド仕様
  4. コマンド名 コード
    (HEX)
    サブコマンド 機能
    メイン行動 any any タイマタスクを起動。行動選択フラグ1を初期化。
  5. BB仕様
  6. 番号内容
    0行動選択フラグ2
    1現在の行動
    2現在のモード
    3行動選択フラグ1
    4獲得ポスト数
    5目標角θ
    6ポスト距離左
    7タッチセンサデータ
  7. 初期設定

  8. BBを初期化しタイマタスク登録をする。
    1. モジュール定義

    2. void inzt09():リアルタイムモニタから呼ばれる初期設定関数。
  9. コマンド処理

  10. タイマタスクを起動。行動選択フラグ1を初期化。
    1. モジュール定義

    2. void nrmt09(int,int):タイマタスクを起動する。
  11. タイマ処理

    1. モジュール定義

    2. void timt09(int,int):タイマ割り込みによって一定時間ごとに起動される関数。
  12. 割り込み処理タスク

  13. なし

11.試験

  1. タスク単体試験
    1. ロータリエンコーダ・タッチセンサタスク試験
    2. 超音波センサ・赤外線センサタスク試験
    3. MMI制御タスク試験
    4. 残り時間カウント・IR_TSモードタスク試験
    5. 走行制御タスク試験
    6. 走行補正タスク試験
    7. 行動計画タスク試験
  2. 標準MIRS上での試験
    1. 直線走行試験
    2. 回転走行試験
    3. 総合試験
  3. 規定走行試験
  4. システム試験

12.作成ドキュメント一覧

ソフトウェアインストール手順書
MIRS9804.task00(Program file)
MIRS9804.task01(Program file)
MIRS9804.task02(Program file)
MIRS9804.task03(Program file)
MIRS9804.task04(Program file)
MIRS9804.task05(Program file)
MIRS9804.task06(Program file)
MIRS9804.task07(Program file)
MIRS9804.task08(Program file)
MIRS9804.task09(Program file)
MIRS9804タスク単体試験仕様書
MIRS9804標準MIRS上試験仕様書
MIRS9804規定走行試験仕様書
MIRS9804システム試験仕様書
MIRS9804取扱説明書 
関連文書