| 沼津高専 電子制御工学科 | ||||
|
ソフトウェア詳細設計書 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つのポストの位置がわかった後の動作を指す。 |
|
|
| ■ ソースコード |