沼津高専 電子制御工学科
MIRS0602 ソフトウェア詳細設計書
MIRS0602-SOFT-0001
改訂記録
版数 作成日 作成者 承認 改訂内容
A01 2006.10.13 吉田/尾崎 尾崎 初版
A02 2007.2.9 尾崎 尾崎 使用していないプログラムを追加


目次

  1. ソフトウェアの構成
  2. プログラム一覧
  3. プログラム分割
  4. グローバル変数・構造体

ソフトウェアの構成

基本的な構成は標準プログラムを元にする。
また標準プログラムの他にプログラムを追加、あるいは標準プログラムを変更し、MIRS0602のシステム要件を満たすことを目標とする。


プログラム一覧

製造する関数は次の通り。ただし、標準動作関数の説明は除く。

関数名 音声再生関数
書式 int splayer(*char plays);
引数 再生するファイル名(*char plays)
戻り値 正常動作で0、異常動作で-1
概要 ファイル名で指定されたSDカード内のファイルを再生するように、音声再生モジュールにシリアル通信でコマンドを送る。
フローチャート

関数名 スタート直後のポスト確認関数
書式 int firstch(void);
引数 -
戻り値 0
概要 MIRSの前と左右についた超音波センサでポストの有無を調べ、各方向ごとにフラグとしてグローバルな配列変数post_noに格納する。
フローチャート

関数名 2回目以降の探索位置移動関数
書式 int move(void);
引数 -
戻り値 0
概要 ポストの無い方向を選んで1m程度移動する。
進む方向は、競技の最初に移動した方向と逆(直進したなら左)だが、障害物がある場合は優先度にしたがって違う方向に移動する。
移動中に白線を検知したら、その場で停止し探索を行う。
フローチャート

関数名 ポストの座標変換関数
書式 int postch(int postno);
引数
戻り値 0
概要 前回の探索位置のポストデータを座標変換後、現在の探索位置からのポストデータと比較し、取得済フラグを現在位置のポストデータに書き込む。
フローチャート

関数名 main1関数
書式 int main1(void);
引数 -
戻り値 0
概要 競技1回目のメイン関数
フローチャート基本設計書(MIRS0602-dsgn0002)のフローチャート参照

関数名 main2関数
書式 int main2(void);
引数 -
戻り値 0
概要 競技2回目のメイン関数
フローチャート

プログラム分割

各関数は次のファイルに分割して作成する。

ファイル名関数名
main1.cmain1
main2.cmain2
splay.csplayer
firstch.cfirstch
move.cmove2
move
postch.cpostch

グローバル変数・構造体

使用するグローバル変数・構造体変数は次の通り。宣言は全てcontrol.h内で行う。

グローバル変数
変数名変数宣言内容
post_noint post_no;初期位置から見た前と左右のポストの有無を格納する配列変数
movdisfloat movdis[6];n回目からn+1回目の探索位置への移動距離
movangfloat movang[6];n回目からn+1回目の探索位置への移動角度

構造体
型宣言用途
struct psearch{
   int post_num[5];
   float post_dis[5];
   float post_ang[5];
   int got[5];};
探査によって発見したポストの番号(num)、距離(dis)、角度(ang)、取得済フラグを記録
関連文書