沼津高専 電子制御工学科 | ||||
ソフトウェア詳細設計書 MIRS0605-SOFT-0001 | ||||
改訂記録 | ||||
版数 | 作成日 | 作成者 | 承認 | 改訂内容 |
A01 | 2006.10.10 | 山吹 | 星野 | 初版 |
A02 | 2006.10.13 | 山吹 | 星野 | アルゴリズム追加 各項目を諸点追加修正 |
A03 | 2007.2.9 | 山吹 | 星野 | リストの整理 関数一覧追加修正 ソースコード掲載 |
■ ドキュメント概要 |
■ ディレクトリ構造 |
■ ファイル構造 |
|
関数名 | 関数(型,引数) | 戻り値 | 動作概要 |
main | int main(void) | - | メイン |
関数名 | 関数(型,引数) | 戻り値 | 動作概要 |
round1 | int round1(void) | int mission | フラグによって、1周目と2周目の動作を制御する関数。 戻り値は、異常終了しなかったかどうかを判定する為のものである。 |
関数名 | 関数(型,引数) | 戻り値 | 動作概要 |
uss_local | void *uss_local(int *use_uss) | - | 超音波、各種センサを監視するスレッド関数。 |
関数名 | 関数(型,引数) | 戻り値 | 動作概要 |
uss_err | int uss_err(errsv) | int sensor | 引数は、open関数が失敗した場合のerrno。 |
関数名 | 関数(型,引数) | 戻り値 | 動作概要 |
sensor_check | int sensor_check(void) | int sensor | 底面の白線センサ、赤外線センサ、タッチセンサの状態を確認する為の関数 |
ws_warning | int ws_warning() | 0 | 白線センサの例外エラー |
ts_action | int ts_action(int touch) | 0 | 例外的にタッチセンサが反応した場合の処理。 引数は、反応したタッチセンサ番号に応じた定数 |
ws_trace | int ws_trace(int w_c) | 0 | 底面の白線センサが反応した場合の処理。 |
sensor_action | int sensor_action(int sensor_type) | int bango | フラグの立ったセンサに応じた処理を行う。 引数はTS,WS,IRS(define.hで定義)であり、戻り値はセンサの番号である。 |
map_write | int map_write() | 1 | ポスト情報の入った構造体を、post_map.txtに書き出す。 |
map_read | int map_read() | int map_count | ポスト情報をpost_map.txtから読み出して、構造体に格納する。 |
area | int area(int areax,int areay,int p_n) | 1 | ポストとMIRSの座標から、エリアを設定する。 |
uss_shot | int uss_shot(int uss_no,int sikii_max,int sikii_min) | 0 | 超音波センサの値が適正値であるかどうかを閾値で判別する。 |
関数名 | 関数(型,引数) | 戻り値 | 動作概要 |
- | - | - | define.hで宣言された変数、配列を定義している。 |
|
MIRSで用いられるファイルを、一挙にインクルードする。 |
各種グローバル変数、マクロの定義を行っている。 |
グローバル変数一覧 | |
int mission | MIRSの現在の動作の指定、及び完了を示す。 |
int target | ターゲットポスト番号を格納。 |
int post_count | 発見したポストの個数を格納。 |
int get_count | 獲得したポストの個数を格納。 |
int mirs_maeusiro | MIRSの現在の上下方向を格納。 |
int mirs_sayu | MIRSの現在の左右方向を格納。 |
int turn_deg | MIRSの向きによる方向補正定数を格納。 |
int use_uss_no | 使用する超音波センサの番号を格納。 |
int r_deg | 誤差修正のための回転角を格納。 |
int play2 | 競技2回目に移るためのフラグ。 |
グローバル配列変数一覧 | |
int post[9][9] | 競技場エリアを規定する配列変数。 |
int mirs_area[2] | MIRSの存在エリアを格納。 |
int mirs_pos[2] | MIRSの座標を格納。 |
int mirs_relative[2] | 初期位置からのMIRSの相対的位置を格納。 |
|
ファイル名 | おおまかな変更点 |
control.h | 新規変数の宣言 |
func_extern.h | 新規関数の宣言 |
irs_ts_ws.h | 新規変数の宣言 |
functions.c | 関数の分離 |
initialize.c | 追加したセンサ類の定義。 |
irs_ts_ws.c | 追加した白線センサ部分の数と、フラグ条件を変更。 |
post_get.c | 冗長な処理を削除。ポストを背面で獲得するように変更。 |
thread_func.c | 追加した白線センサの値を取得するように変更。 |
■ プログラム構造 |
■ アルゴリズム |
|
1周目は、5つのポストを発見するまで、 2周目は、5つのポストの位置がわかった後の動作を指す。 |
|
|
■ ソースコード |