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

最終更新日:2012.2.18

版数 最終更新日 作成 承認 改訂記事
A01 2012.2.18 廣野湧也 初版

目次




1.はじめに

本ドキュメントは、MIRS1203ソフトウェアの詳細な設計についてのドキュメントである。

2.関数機能定義

新たに自分たちで作成した関数についての概要を、下の表に記す。
関数名 引数 概要 戻り値 備考
main int void 状態変数stateにより、次の呼び出す関数を決める。stateは各関数の返り値となっている。state=10で全体のプログラムを終了する。 0
tuuro int void 通路走行の関数。超音波センサによるPID制御をしながら通路を走行する。走行中に左右タッチセンサが当たった場合、少し下がりながら方向転換をする。前方タッチセンサが当たった場合、左右の壁を超音波センサで検知し、turn_right、turn_left、turn_reverceを呼び出すか、返り値4を返す。白線検知でnumber_detectを呼び出し、優先度が高い方に方向転換した後、選んだ方向の読み取った番号を返り値として返す(1,2,4,読み取れなかった場合は0を返す)。 0~5,10 state=0でmainから呼び出される。
鍵・扉、ロータリー、小部屋に入った判断、ゴールはこの関数でもできるように作成する。
rotary int void ロータリー攻略関数。攻略終了で0を返す。 0 state=3でmainから呼び出される。
現時点ではtuuroでロータリーを走らせた方が成功率が高いため、使用しない可能性がある。
cosmo int void 小部屋に入ったかの判断、小部屋攻略プログラム。攻略終了で0を返す。 0 state=4でmainから呼び出される。
goal int void ゴール用関数。白線検知まではmainとほぼ同じ動作をする。白線検知後一定距離進んだ後に停止し、10を返す。 10 state=5でmainから呼び出される。
straight void int kyori 直進用関数。引数に与えられたkyori[mm]だけ超音波によるPD制御をしながら直進する。タッチセンサによる補正もする。 void
back void int kyori 後退用関数。引数に与えられたkyori[cm]だけ超音波によるPD制御をしながら後退する。後方にタッチセンサはついていないため、タッチセンサによる補正はできない。 void
turn_right void void 時計回りに90°回転させる関数。 void
turn_left void void 反時計回りに90°回転させる関数。 void
turn_reverce void void 180°反転させる関数。 void
num_detect int int max_roop_counter 数字認識を行う。 -1〜9

3.フローチャート


図1:main


図2:tuuro(前半)


図3:tuuro(後半)


図4:sraight,back,turn_right,turn_left,turn_reverce

4.状態遷移図





図5:状態遷移図



5.配線

今回のMIRSのプログラムにおいての各機器の配線(ポート番号)を、図4をもとに示す。


表1 配線


配線表


MIRS1203ドキュメント管理台帳