沼津高専 電子制御工学科 |
||||||
|
||||||
改訂記録 |
||||||
版数 |
作成日 |
作成者 |
承認 |
改訂内容 |
||
A01 |
2007.2.09 |
遠山 冨士原 |
漆畑 |
初版 |
u 目次
ü プログラム構成
u プログラム構成
u プログラム解説
main1で使用しているプログラム
ソース |
関数名 |
説明 |
void Return(void) |
スタート位置から後退し、白線が検知されたら停止する。 |
|
void Alpha_Measurement(void) |
フィールド北方向との角度のずれを測定する。 |
|
void Course_Search1(void); |
MIRSがポストに接触することなく一直線に進めるコースを探索する。 |
|
void Post_Search1_Field(void) |
直進しながら、左側の超音波センサでポストを発見する。向かい側の白線を感知したら、180度回転し、ポスト探索を再開する。 ポストを見つけたら、獲得動作に移る。 |
|
int Post_Approach2(int uss3_data) |
ポスト15cm前でとまり、赤外線がでているかチェックし、出ていたら獲得する。このとき、この関数は”1”を返す。赤外線が出ていない場合はポストに当たって、10cm下がる。このとき、この関数は”0”を返す。 |
|
void Post_Get2(int current_situation) |
ポストを獲得する関数。引数の”current_situation”によって、赤外線のコードを入れる配列を決定する。
|
|
void Course_Return_Field(uss3_data) |
ポスト探索コースに戻る関数。引数であるポストへの距離が入った”uss3_data”分だけポストから離れる。 |
|
Post_Search1_Circumference(void) |
外周を回りながら、ポスト探索をする関数。横方向への移動時はポスト探索を行わず、ライントレースを行う。縦方向への移動時はライントレースを行わないで、ポスト探索を行う。 |
|
void Course_Return_Circle(int uss3_data) |
ポスト獲得後、白線からポストへの距離を入った引数”uss3_data”分離れ、白線まで移動したら、90度回転する。 |
main2 で使用しているプログラム
ソース |
関数名 |
説明 |
void Return(void) |
スタート位置から後退し、白線が検知されたら停止する。 |
|
void Alpha_Measurement(void) |
フィールド北方向との角度のずれを測定する。 |
|
void Course_Search1(void); |
MIRSがポストに接触することなく一直線に進めるコースを探索する。 |
|
void Post_Search2_Field(void) |
直進しながら、左側の超音波センサでポストを発見する。向かい側の白線を感知したら、180度回転し、ポスト探索を再開する。 ポストを見つけたら、獲得動作に移る。 |
|
int Post_Approach2(int uss3_data) |
ポスト15cm前でとまり、赤外線がでているかチェックし、出ていたら獲得する。このとき、この関数は”1”を返す。赤外線が出ていない場合はポストに当たって、10cm下がる。このとき、この関数は”0”を返す。 |
|
void Post_Get2(int current_situation) |
ポストを獲得する関数。引数の”current_situation”によって、赤外線のコードを入れる配列を決定する。 |
|
void Course_Return_Field(uss3_data) |
ポスト探索コースに戻る関数。引数であるポストへの距離が入った”uss3_data”分だけポストから離れる。 |
|
void Post_Search1_Circumference(void) |
外周を回りながら、ポスト探索をする関数。横方向への移動時はポスト探索を行わず、ライントレースを行う。縦方向への移動時はライントレースを行わないで、ポスト探索を行う。 |
|
void Course_Return_Circle(int uss3_data) |
ポスト獲得後、白線からポストへの距離を入った引数”uss3_data”分離れ、白線まで移動したら、90度回転する。 |
標準機プログラムから変更したプログラム
ソース |
関数名および変数名 |
説明 |
int current_situation |
現在のMIRSの状況をいれる変数で向かいの白線までの移動中なら”0”、手前の白線まで帰ってきているなら”1”、外周で探索しているなら、”2”が入る。 |
|
int post_data[4] |
フィールド内を探索しているときに発見したポストを記憶する配列 |
|
int post_data_circle[4] |
外周で探索しているときに発見したポストを記憶する配列 |
|
int post_count |
フィールド内を探索しているとき、発見したポストが何番目かを示す変数 |
|
float theta |
フィールド北方向との角度のずれを測定する際に用いる。左右のタイヤの走行距離の平均が代入される変数 |
|
int post_count_circle |
外周で探索しているとき、発見したポストが何番目かを示す変数 |
|
int alpha |
フィールド北方向との角度のずれを示す変数 |
|
int current_post |
main2(2回目の競技)において現在MIRSが何個のポストを発見したかを示す変数 |
|
int object_post |
main2(2回目の競技)において次に目標するポストが何番目にあるのかを示す変数 |
|
int initialize() |
ポストの番号、位置を入れる配列を初期化するようにした。 |
|
void *uss_read(void *t) void *uss_read2(void *t) |
測定不能時に返す値を”999”から”0”にした |