沼津高専 電子制御工学科
MIRS9805ソフトウェア詳細設計書
MIRS9805-DSGN-0005
改訂記録
版数 作成日 作成者 承認 改訂内容
A01 1999.5.25 江本 江本 初版
A02 1999.5.28 江本 江本 第二版 標準MIRS上でのテスト、タスク詳細の変更
A03 1999.6.11 江本 江本 第3版 タスク詳細の変更
A04 1999.6.18 江本 江本 第4版 BBの変更
A05 1999.6.25 江本 江本 第5版 PWMタスク修正
A06 1999.7.12 江本 江本 第6版 自己位置タスク修正、 優先度修正
A07 1999.7.13 江本 江本 第7版 自己位置修正、トレスの修正
A08 1999.7.13 江本 江本 第8版 いくつか修正
A09 1999.7.17 江本 江本 第9版 PWM系の修正
A10 1999.7.20 江本 江本 第10版 試験関係を別のドキュメントに分けた
A11 1999.11.10 江本 江本 第11版 BBを修正した。
B01 2000.02.04 江本 江本 B1版。全てのところで微修正。

目次

  1. はじめに
  2. 概要
  3. リアルタイムモニタ
  4. MMIタスク
  5. 超音波センサタスク
  6. 自己位置検出タスク
  7. 赤外線センサタスク
  8. PWMモータ制御タスク
  9. 行動計画タスク
  10. 自己位置修正タスク
  11. 軌道トレスタスク
  12. 角度修正タスク
  13. 獲得復帰タスク
  14. 座標修正タスク
  15. 試験
  16. 作成ドキュメント一覧

1.はじめに

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

2.概要

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

3.リアルタイムモニタ

リアルタイムモニタの設定等
  1. タスク・ファイルのMAX数の宣言(MAX_TASK) = 11タスク
  2. BBの個数の宣言(MAX_BB) = 10個
  3. タスクテーブル
  4. タスク関数の処理の有無と優先度(高0〜6低)
    Oは有り
    Xは無し
    Task No. Initialization Normal Timer Interrupt Priority
    00 (MMI) O O O O 2
    01 (超音波センサ) O O X O 3
    02 (自己位置検出) O O O X 3
    03 (赤外線センサ) O X O X
    04 (PWM) O O O X 1
    05 (行動計画) O O O X 6
    06 (自己位置修正) O O O X 2
    07 (軌道トレス) O O O X 4
    08 (角度修正) O O O X 5
    09 (獲得復帰) O O O X 4
    10 (座標修正) O O O X 6
  5. 注意点 : tableでBBの初期化をしてるが、要素数はBB_MAXとなるのに注意。

4.task00:MMIタスク

  1. 機能

  2. MMIボードのLED表示のコントロールと押しボタンスイッチの割り込みの受け取りを行う。BBに書かれた4桁のデータを4桁7seg-LEDに表示する機能。タイマにより一定時間ごとに表示の更新を行う。ロータリスイッチの値をBBに書き込む。
    BBに各設定値へのポインタを乗せているので、コマンドを使わずにそのポインタを用いることにより設定が即時反映される。
     
  3. コマンド仕様
  4. コマンド名 コード
    (HEX)
    サブコマンド 機能
    表示 01 n(BBの番号) 指定されたBB上のデータを表示する。4桁までしか表示しない。
    赤緑LED点灯設定 02 n(Flag) 赤緑LEDの点灯状態の設定。設定にはフラグn(内容はタイマタスク参照)を使う
    ロータリフラグの設定 03 n(Flag) ロータリフラグの設定(True or False)
    押しボタンの設定 04 n(Flag) 押しボタン割り込み許可フラグの設定(True or False)
    マクロ機能説明
    DISP_SET(x,y)表示データ設定 x 番目の表示データを y に設定
    LED_SET(x)LED点灯データ設定 赤緑LEDの点灯データを x に設定
  5. BB仕様
  6. 番号 内容
    0 表示データその1のポインタ
    1 表示データその2のポインタ
    2 表示データその3のポインタ
    3 表示データその4のポインタ
    4 表示するBB番号のポインタ
    5 ローテーションフラグのポインタ
    6 赤、緑LED表示状態のポインタ
    7 押しボタン割り込みフラグのポインタ
    8 ロータリスイッチの値
    9 押しボタンの押された回数
  7. 初期設定

  8. LED周りの初期設定を行う。BBクリア等も行う。
    1. モジュール定義

    2. void inzt00():リアルタイムモニタから呼ばれる初期設定関数。タイマタスクの初期化を行う
    3. HCPチャート

    4. 図4.1 inzt00モジュールHCPチャート(ポストスクリプト/tgif形式
  9. 割り込み処理タスク

  10. 押しボタンスイッチの割り込みを受け取る。割り込みフラグをインクリメントする。(割り込みがあったかどうかは、各タスク内で値の変化を判断してください)。ロータリフラグが立っていれば表示BB位置を次の位置にする。
    1. モジュール定義

    2. interrupt void intt00():リアルタイムモニタから呼ばれる割り込み関数。
    3. HCPチャート

    4. 図4.2 intt00モジュールHCPチャート(ポストスクリプト /tgif形式
  11. コマンド処理

  12. 表示BB位置、赤緑LED表示、ローテーションの設定を行う。
    1. モジュール定義

    2. void nrmt00(int,int):各フラグ等の設定を行う。
    3. HCPチャート

    4. 図4.1 nrmt00モジュールHCPチャート(ポストスクリプト/tgif形式
  13. タイマ処理

  14. 指定されたBB上のデータをMMIの7seg-LEDに表示する。赤緑DELの表示も行う。BB表示データの編集も行う(本番のみ)。BBの指定は、n=1〜4まではこのタスクの1〜4のBB表示。n=5以上は n-4 番目のBBを表示し、このときローテーションの端(mix,max)の番号をこのタスクのBBの0,1番に書きこまれているものとする。赤緑LEDの表示状態は、点灯および点滅をするかをBitフラグ(1)で指定。また、ロータリスイッチの値をBBに書き込む。
    bit 7 6 5 4 3 2 1 0
    意味 0 緑前状態 緑点滅 緑点灯 0 赤前状態 赤点滅 赤点灯
    1. モジュール定義

    2. void timt00(int,int):表示する。
    3. HCPチャート

    4. 図4.3 timt00モジュールHCPチャート(ポストスクリプト/tgif形式

5.task01:超音波センサタスク

  1. 機能

  2. 4個の超音波を入力された順に動作させ距離情報をBBに書き込む。測定開始コマンドによりタスクが起動されると、停止コマンドが発行されるまで測定を行い結果をBBに書き込む。超音波発信したのち、タスクは開放され割り込み待ちになる。超音波受信もしくはタイムアウトにより割り込み処理が起動され距離を計算してBBに書き込む。その後、次の決定したチャネルのセンサより超音波を発信し再び割り込み待ち状態になる。
  3. コマンド仕様
  4. コマンド名 コード
    (HEX)
    サブコマンド 機能
    測定開始 01 n(チャネル) 指定されたチャネル番号のセンサの測定を開始する。測定はqueに登録された順で行われる。既に測定が開始されている状態でこのコマンドが起動されたときはqueに登録する。
    測定停止 02 any(未使用) 測定を停止し、queをクリアする。
    測定開始 03 any(未使用) 測定を開始。QUE への登録は無し。(通常は使用禁止)
  5. BB仕様
  6. 番号 内容
    0 チャネル0の測定結果[cm]
    タイムアウト:999
    ハードウェアエラー(センサが接続など):888
    近すぎ: 777
    1 チャネル0の測定回数
    2 チャネル1の測定結果[cm]
    他は同上
    3 チャネル1の測定回数
    4 チャネル2の測定結果[cm]
    他は同上
    5 チャネル2の測定回数
    6 チャネル3の測定結果[cm]
    他は同上
    7 チャネル3の測定回数
    8 queに入っている個数
    9 queの中身(bit coding)
  7. 初期設定

  8. IP-Digtal48のPIT(68230)のB側の初期設定を行う。ポートAをモード0サブモード01に設定する。タイマをDevice watchdog モードに設定し、タイマ初期値として最大測定距離3mに相当するカウント値を設定する。
    1. モジュール定義

    2. void inzt01():リアルタイムモニタから呼ばれる初期設定関数。
    3. HCPチャート

    4. 図5.1 : inzt01モジュールHCPチャート(ポストスクリプト /tgif形式
  9. 割り込み処理タスク

  10. 超音波受信があった時、割り込み処理を行う。
    1. モジュール定義

    2. interrupt void intt01():リアルタイムモニタから呼ばれる割り込み関数。
    3. HCPチャート

    4. 図5.2 : intt01モジュールHCPチャート(ポストスクリプト/tgif形式
  11. タイマ処理タスク

  12. やることなし。
    1. モジュール定義

    2. void timt01(int, int):なし
    3. HCPチャート

    4. なし
  13. コマンド処理
    1. モジュール定義

    2. void nrmt01(int,int):超音波測定開始・停止を行う関数。
    3. HCPチャート

    4. 図5.3 : nrmt01モジュールHCPチャート(ポストスクリプト/tgif形式

4.task02:自己位置検出タスク

  1. 機能

  2. 随時ロータリーエンコーダの値を使い自己位置の確認をする。又、時々超音波センサを使い壁との間隔を確認する。
  3. コマンド仕様
  4. コマンド名 コード
    (HEX)
    サブコマンド 機能
    自己位置設定 01 n 自己位置を設定する。nは、float 型の配列へのポインタで、x[cm]、y[cm]、θ[rad]の順で格納されていること。
    Limit設定 02 n 自己位置のLimitを設定する。nは、float 型の配列へのポインタで、x[cm]、y[cm]の順で格納されていること。
  5. BB仕様
  6. 番号 内容
    0 位置のX軸データ
    1 位置のY軸データ
    2 姿勢角データ
    3 右のロータリエンコーダのデータ
    4 左のロータリエンコーダのデータ
    5 タッチセンサのデータ
    6 方向のデータ(2:前 3:左 0:後 1:右)
    7 速度
    8 角速度
    9 システムが動き出してからの移動距離(cm)
  7. 初期設定

  8. BBを初期化する。初期位置を確認する。
    1. モジュール定義

    2. void inzt02():リアルタイムモニタから呼ばれる初期設定関数。
    3. HCPチャート

    4. 図6.1inzt02モジュールHCPチャート(ポストスクリプト /tgif形式
  9. コマンド処理

  10. 自己位置を設定する。
    1. モジュール定義

    2. void nrmt02(int,int):自己位置を設定
    3. HCPチャート

    4. 設定のみ
  11. 割り込み処理

  12. 特に無し。
    1. モジュール定義

    2. void intt02:無し
    3. HCPチャート

    4. Not exist
  13. タイマ処理

  14. ロータリエンコーダの値をもとに自己位置を計算する。そして、その値をBBに書き込む。さらに、タッチセンサの値をBBに書き込む。
    1. モジュール定義

    2. void timt02():自己位置を算出する関数。
    3. HCPチャート

    4. 図6.2timt02モジュールHCPチャート(ポストスクリプト /tgif形式

7.task03:赤外線センサタスク

  1. 機能

  2. 赤外線センサの情報をBBへ書きこむ。タイマで動きつづけます。
     
  3. コマンド仕様
  4. コマンド名 コード
    (HEX)
    サブコマンド 機能
    no command any any NOP
  5. BB仕様
  6. 番号 内容
    0 赤外線センサ情報
    1 赤外線測定回数
  7. 初期設定

  8. PITの初期化はTASK01の初期化タスクで行うので、ここでは行わない。BBをクリアし、タイマタスクの登録を行う。
    1. モジュール定義

    2. void inzt03():リアルタイムモニタから呼ばれる初期設定関数。
    3. HCPチャート

    4. 図7.1 inzt03モジュールHCPチャート(ポストスクリプト /tgif形式
  9. 割り込み処理タスク

  10. 何もしない。
    1. モジュール定義

    2. interrupt void intt03():NOP
    3. HCPチャート

    4. Not exist
  11. コマンド処理

  12. 動作無し.
    1. モジュール定義

    2. void nrmt03(int,int):NOP
    3. HCPチャート

    4. Not exist
  13. タイマ処理

  14. 赤外線センサ情報をBBへ書きこむ。
    1. モジュール定義

    2. void timt03(int,int):IRS->BB書きこみ。
    3. HCPチャート

    4. 図7.2 timt03モジュールHCPチャート(ポストスクリプト/tgif形式

8.task04:PWMモータ駆動タスク

  1. 機能

  2. デューティ比を用いて左右のモータを制御する。
  3. コマンド仕様
  4. コマンド名 コード
    (HEX)
    サブコマンド 機能
    PWM信号発信 01 any PWMデータ送信
    右モータ信号設定 02 n 右モータ信号設定を行う。nは-100〜100のデューティー比
    左モータ信号設定 03 n 左モータ信号設定を行う。nは-100〜100のデューティー比
    左右モータ同回転信号設定 04 n 左右モータ信号設定を行い、PWM信号を発信 。左右同じデューティー比になる。nは-100〜100のデューティー比
    左右モータ逆回転信号設定 05 n 左右モータ信号設定を行い、PWM信号を発信 。nは-100〜100のデューティー比。 右のデューティー比がn、左が-nになる。(要するに回る)
    左右モータ信号設定(独立で設定) 06 n 左右モータ信号設定を行い、PWM信号を発信 。nはデューティー比を格納した配列へのポインタ。右、左の順で格納する。
    左右モータ停止 07 n 左右モータを停止
    LQIの目標値設定 08 n n は、int 型配列へのポインタで、速度、角度の順で格納
    停止(LQI) 09 n LQIで、停止する。
  5. BB仕様
  6. 番号 内容
    0 右の論理デューティ比
    1 左の論理デューティ比
    2 右の物理デューティ比
    3 左の物理デューティ比
    4 右のR.E.値を換算したデューティ比
    5 左のR.E.値を換算したデューティ比
  7. 初期設定

  8. BBとPWMを初期化する。
    1. モジュール定義

    2. void inzt04():リアルタイムモニタから呼ばれる初期設定関数。
    3. HCPチャート

    4. 図8.1 inzt04モジュールHCPチャート(ポストスクリプト/tgif形式
  9. コマンド処理

  10. BBに書き込んであるデータをもとにPWM信号を送信しモータを駆動させる。
    1. モジュール定義

    2. void nrmt04(int,int):モータ駆動関数。
    3. HCPチャート

    4. 図8.2 nrmt04モジュールHCPチャート(ポストスクリプト/tgif形式
  11. 割り込み処理

  12. 特に無し。
    1. モジュール定義

    2. void intt04:無し
    3. HCPチャート

    4. Not exist
  13. タイマ処理

  14. LQI制御、PID制御を行っている。
    1. モジュール定義

    2. void timt04():LQI制御、PID制御を行っている。
    3. HCPチャート

    4. Not exist

9.task05:行動計画タスク

  1. 機能

  2. ディプスイッチの値で試験走行か1回目の走行か2回目の走行かを判別する。試験走行の場合は試験走行をする。1回目と2回目の場合は、駆動系の電源が入ると5秒後に、自己の位置を確認した上でトレースタスクを起動する。トレス、獲得の両タスクが停止しているとき、トレスタスクを起動する。駆動系がきれると、2回目のマップを作成して停止する。2回目には、一回目で作成したMAPが利用できる(電源を落としてもかまわない)。MAPの作成はバックトラック法で最短になるように作る。
  3. コマンド仕様
  4. なし。
  5. BB仕様
  6. なし。
  7. 初期設定

  8. BBを初期化する。
    1. モジュール定義

    2. void inzt05():リアルタイムモニタから呼ばれる初期設定関数。
    3. HCPチャート

    4. 図9.1 inzt05モジュールHCPチャート(ポストスクリプト /tgif形式
  9. コマンド処理

  10. なし。
    1. モジュール定義

    2. void nrmt05(int,int):NOP
    3. HCPチャート
  11. 割り込み処理

  12. 特に無し。
    1. モジュール定義

    2. void intt05:無し
    3. HCPチャート

    4. Not exist
  13. タイマ処理

  14. スタンバイ、監視、MAP作成を行う。
    1. モジュール定義

    2. void timt05():スタンバイ、監視、MAP作成を行う。
    3. HCPチャート

10.task06:自己位置修正タスク

  1. 機能

  2. ルートから外れたときに位置を修正する。
  3. コマンド仕様
  4. コマンド名 コード
    (HEX)
    サブコマンド 機能
    位置修正設定 01 n 位置を修正するかを設定する。n=(True or False)
    X座標目標値設定 02 n X座標目標値をnに設定
    Y座標目標値設定 03 n Y座標目標値をnに設定
    目標座標値設定 04 n nに設定座標を格納した配列へのポインタを指定。座標は、x[cm]、y[cm]の順で格納。修正フラグも同時にあがる。
    目標角度設定 05 n 目標角をnにする。nは角度(0〜360)。修正フラグも同時にあがる。
    直進 06 n n[cm] 直進する。nがマイナスなら、後進となる。修正フラグも同時にあがる。
    注)コマンド 04 05 06 については、登録と同時に修正が開始される。
  5. BB仕様
  6. 番号 内容
    0 位置を修正するかどうかのフラグのポインタ
    1 目標のX軸データ
    2 目標のY軸データ
    3 目標の角度データ
    4 修正終了フラグ(修正終了時にたつ)
  7. 初期設定

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

    2. void inzt06():リアルタイムモニタから呼ばれる初期設定関数。
    3. HCPチャート

    4. 図10.1 inzt06モジュールHCPチャート(ポストスクリプト /tgif形式
  9. コマンド処理

  10. 目標地点、修正の有効無効の設定を行う。
    1. モジュール定義

    2. void nrmt06(int,int):設定変更
    3. HCPチャート

    4. 図10.1 nrmt06モジュールHCPチャート(ポストスクリプト /tgif形式
  11. 割り込み処理

  12. 特に無し。
    1. モジュール定義

    2. void intt06:無し
    3. HCPチャート

    4. Not exist
       
  13. タイマ処理

  14. 目標点を目指して動く。また、通り過ぎたら止まる。同時に、修正フラグを下ろし、修正終了フラグがたつ。(修正設定がされるた時、終了フラグは降ろされる。)
    1. モジュール定義

    2. void timt06():動作関数
    3. HCPチャート

    4. 図10.2 timt06モジュールHCPチャート(ポストスクリプト /tgif形式

11.task07:トレース及びポスト探査タスク

  1. 機能

  2. ある決まった軌道に沿って本体を動かす。目標地に着く度に、自己位置修正を行う。そして、超音波センサを使用しながらある範囲内に超音波受信がある時、またそれがポストであったら位置を保存し、獲得・復帰タスクに移す。
  3. コマンド仕様
  4. コマンド名 コード
    (HEX)
    サブコマンド 機能
    探査 01 n 探査する。
    目標位置をセットと探査 02 n n番目の目標位置をセットする。
    マップへのポインタをセット 03 n map(route map)を受け取る。マップデータは、int [n][3] の形で、x座標、y座標、TEMP である。TEMP には、何らかの情報がかかれている。
    マップへのポインタをセット 04 n get(獲得map)を受け取る。マップデータは、int [n][3] の形で、x座標、y座標、TEMP である。TEMP には、何らかの情報がかかれている。
    止める 05 なし timer taskを止める
    競技回数 06 n 1or2回目用
    マップへのポインタをセット 07 n c_map(修正map)の受け取り。修正のdataが入っている。
  5. BB仕様
  6. 番号 内容
    0 n番目の目標位置
    1 獲得・復帰タスクに入る前の保存したx座標の位置
    2 獲得・復帰タスクに入る前の保存したy座標の位置
    3 獲得・復帰タスクに入る前の保存した姿勢角
    4 タイマタスク停止flag
    5 トレス終了フラグ(TRUE で終わった)
    6 ポストからの距離
    7 MIRSからポストがどの方向にあるか(degree)
  7. 初期設定

  8. BBをクリアする。
    1. モジュール定義

    2. void inzt07():リアルタイムモニタから呼ばれる初期設定関数。
    3. HCPチャート

    4. 図11.1 : inzt07モジュールHCPチャート(ポストスクリプト/tgif形式
  9. 割り込み処理タスク

  10. NOP
    1. モジュール定義

    2. interrupt void intt07():なし
    3. HCPチャート

    4. なし
  11. タイマ処理タスク

  12. ある目標位置をセットし、それに向かって本体を動かす。この時、軌道からずれないように自己位置を修正するために自己位置修正タスクを呼び出す。また、必要な時、獲得・復帰タスクを呼び出すか回避するかを行う。
    1. モジュール定義

    2. void timt07(int, int):n番目の目標位置をセットし、獲得・復帰タスクを呼び出す関数。
    3. HCPチャート

    4. 図11.2 : timt07モジュールHCPチャート(ポストスクリプト/tgif形式
  13. ノールマタスク

  14. Timer taskの起動と変数の受け渡し。
    1. モジュール定義

    2. void nrmt07(int,int):Timer taskの起動と変数の受け渡し。
    3. HCPチャート

    4. 図11.3 : nrmt07モジュールHCPチャート(ポストスクリプト/tgif形式

12.task08:角度修正タスク

  1. 機能

  2. 超音波による角度修正を行う。
     
  3. コマンド仕様
  4. コマンド名 コード
    (HEX)
    サブコマンド 機能
    角度修正 01 n 角度修正する。nは、修正のためのパラメータ(int 配列)へのポインタ。
  5. BB仕様
  6. 番号 内容
    0 修正終了フラグ
  7. 初期設定

  8. BBクリアのみ。
    1. モジュール定義

    2. void inzt08():リアルタイムモニタから呼ばれる初期設定関数。
    3. HCPチャート

    4. 図12.1 inzt08モジュールHCPチャート(ポストスクリプト/tgif形式
  9. 割り込み処理タスク

  10. 何もしない。
    1. モジュール定義

    2. interrupt void intt08():NOP
    3. HCPチャート

    4. Not exist
  11. コマンド処理

  12. 詳細は、試験項目を参照
    1. モジュール定義

    2. void nrmt08(int,int):タイマタスクのきどう、パラメータ受け取り。
    3. HCPチャート

    4. 図12.2 nrmt08モジュールHCPチャート(ポストスクリプト /tgif形式
  13. タイマ処理

  14. 修正を行う。2回の調べてその平均をとる。最短の距離の方向を向く(USSセンサが)
    1. モジュール定義

    2. void timt08(int,int):角度修正をする。
    3. HCPチャート

    4. Not exist

13.task09:獲得復帰タスク

  1. 機能

  2. ポストへ近づきポストを回りスイッチを押す。ポスト獲得時にポスト位置を記憶する。パラメータにより、ポストまで近づく動作、元の位置に戻る動作の有無を設定可能。
     
  3. コマンド仕様
  4. コマンド名 コード
    (HEX)
    サブコマンド 機能
    USSで超音波が発見されたときの獲得動作(戻る) 01 n(postの座標を格納してある配列へのpointer) USSで超音波が発見されたときの獲得動作をし、元の位置に戻る。
    USSで超音波が発見されたときの獲得動作(戻らない) 02 n(postの座標を格納してある配列へのpointer) USSで超音波が発見されたときの獲得動作をし、元の位置に戻らない。
    TSでのポスト発見時の獲得動作(戻る) 03 n(postの座標を格納してある配列へのpointer) TSでのポスト発見時の獲得動作をし、元の位置へ戻る。
    TSでのポスト発見時の獲得動作(戻らない) 04 n(postの座標を格納してある配列へのpointer) TSでのポスト発見時の獲得動作をし、元の位置へ戻らない
    get配列の受け取り 10 n(get配列へのpointer) 獲得情報の格納先を得る。
    TimerTaskの停止 11 any TimerTaskの停止
    獲得情報の書き込み 12 トレスタスクで獲得してしまったときに、その獲得情報を書きこむ
  5. BB仕様
  6. 番号 内容
    0 ポスト発見位置x
    1 ポスト発見位置y
    2 スイッチ角度
    3 non
    4 TimerTask停止フラグ
  7. 初期設定

  8. BBクリアのみ。
    1. モジュール定義

    2. void inzt09():リアルタイムモニタから呼ばれる初期設定関数。
    3. HCPチャート

    4. 図13.1 inzt09モジュールHCPチャート(ポストスクリプト /tgif形式
  9. 割り込み処理タスク

  10. 何もしない。
    1. モジュール定義

    2. interrupt void intt09():NOP
    3. HCPチャート

    4. Not exist
  11. コマンド処理

  12. コマンド処理、パラメータ受け取り。
    1. モジュール定義

    2. void nrmt09(int,int):コマンド処理
    3. HCPチャート
    4. non
  13. タイマ処理
    1. モジュール定義

    2. void timt09(int,int):全獲得動作
    3. HCPチャート

14.task10:座標修正タスク

  1. 機能

  2. 4つの超音波sensorを使用して座標修正を行う。
  3. コマンド仕様
  4. コマンド名 コード
    (HEX)
    サブコマンド 機能
    座標の修正 01 n 座標の修正を行う
  5. BB仕様

  6. 番号 内容
    0 修正が終わっているかのflag
  7. 初期設定

  8. BBをクリアする。
    1. モジュール定義

    2. void inzt10():リアルタイムモニタから呼ばれる初期設定関数。
    3. HCPチャート

    4. 図14.1 : inzt10モジュールHCPチャート(ポストスクリプト/tgif形式
  9. 割り込み処理タスク

  10. NOP
    1. モジュール定義

    2. interrupt void intt10():なし
    3. HCPチャート

    4. なし
  11. タイマ処理タスク

  12. 4つの超音波を使用し、壁との距離を測定する。そして、座標修正を行う。
    1. モジュール定義

    2. void timt10(int, int):4つの超音波を使用し、壁との距離を測定する。そして、座標修正を行う。
    3. HCPチャート

    4. 図14.2 : timt10モジュールHCPチャート(ポストスクリプト/tgif形式
  13. ノーマルタスク

  14. Timer taskを起動する
    1. モジュール定義

    2. void nrmt10(int,int):timer taskを起動する
    3. HCPチャート

    4. 図14.3 : nrmt10モジュールHCPチャート(ポストスクリプト/tgif形式

7.試験

  1. タスク単体試験
  2. 標準MIRS上での試験
  3. 規定走行試験
  4. システム試験

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

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