名称 MIRS1101 ソフトウェア詳細設計書
番号 MIRS1101-SOFT-0002

最終更新日:2011.11.21

版数 最終更新日 作成 承認 改訂記事
A01 2011.11.21 望月麟太郎 初版
B01 2011.12.19 村松茂、望月麟太郎 機能定義、構造図、エラーについて 追加

本ドキュメントは、MIRS1101のソフトウェア詳細設計についてまとめたドキュメントである。

目次

  1. 機能定義
  2. フローチャート

  1. 機能定義

    MIRS1101のソフトウェアの機能定義を以下のTable.1 機能定義表に示す。

    Table.1 機能定義表
    機能名 概要 備考
    要素機能 直進 指定された距離を、指定した一定速度で指定方向に直進する。
    回転 指定された角度を、指定した一定角速度で指定方向にその場回転する。
    周回 指定された角度・半径から指定方向に、一定速度で周回走行する。
    白線検知 白線センサにより、白線を検知する。
    距離計測 超音波センサにより、前方および左方の壁までの距離をcm単位で計測する。
    接触検知 機体前方にあるタッチセンサにより、機体が壁などに接触したことを検知する。
    数字認識 ダイレクションボードの数字を認識する。

    新たにに作る関数を次のTable.2 新たに作成する関数に示す。
    これらの関数以外は、標準機に既にあるものを使用する。

    Table.2 新たに作成する関数
    関数名 引数 概要 戻り値 備考
    num_detect2() void (int)num[2],max_roop_counter 引数を配列にして、画像処理の結果を代入する。 void この関数はt_cap()の中で呼び出される。
    run() int void 通路走行を行う。
    白線を検知すると、ゴールかDBか判定する。
    0, 1 T字路ならば0, ゴールならば1を返す。
    t_cap() int void 画像を認識し、進路決定を行う。 0, -1 エラーのとき-1を返す。
    key() int void 鍵、扉を攻略する。 0, -1 エラーのとき-1を返す。
    room() int void 小部屋を攻略する 0, -1 エラーのとき-1を返す。
    rotary() int void ロータリーを攻略する。 0, -1 エラーのとき-1を返す。

    各仕掛け攻略関数毎にファイルを作成する。

    Table.3 ファイル構成
    ファイル名 関数名 備考
    main.c main()
    run.c run()
    t_cap.c t_cap()
    num_detect2.c num_detect2()
    key.c key()
    room.c room()
    rotary.c rotary()

    以上の関数の構造を以下のFig.1 構造図で示す。

    Fig.1 構造図

    ▲page top
  2. フローチャート

    全体のフローチャートを以下に示す。

    fig.2 フローチャート

    動作内容

    1. 通路走行を行う。
    2. 白線の検知によって、T字路動作またはゴール動作を行う。
    3. T字路動作の場合、画像認識を行った後、ロータリー、鍵と扉、小部屋のいずれかの動作を行う。
    4. 仕掛けをクリアすると通路走行に戻る。(1へ)

    エラーについて

    ▲page top

MIRS1101 ドキュメント管理台帳へ

沼津工業高等専門学校 電子制御工学科