沼津高専 電子制御工学科

ソフトウェア取扱説明書

MIRS0603-SOFT-0002

改訂記録

版数

作成日

作成者

承認

改訂内容

A01

2007.2.09

遠山

冨士原

漆畑

初版


 

u     目次

ü       プログラム構成

ü       プログラム解説

 

u     プログラム構成

 

 

u     プログラム解説

 

main1で使用しているプログラム

ソース

関数名

説明

Return.c

void Return(void)

スタート位置から後退し、白線が検知されたら停止する。

Alpha_Measurement.c

void Alpha_Measurement(void)

フィールド北方向との角度のずれを測定する。

Course_Search.c

void Course_Search1(void);

MIRSがポストに接触することなく一直線に進めるコースを探索する。

Post_Search1_Field.c

void Post_Search1_Field(void)

直進しながら、左側の超音波センサでポストを発見する。向かい側の白線を感知したら、180度回転し、ポスト探索を再開する。 ポストを見つけたら、獲得動作に移る。

Post_Approach2.c

int Post_Approach2(int uss3_data)

ポスト15cm前でとまり、赤外線がでているかチェックし、出ていたら獲得する。このとき、この関数は”1”を返す。赤外線が出ていない場合はポストに当たって、10cm下がる。このとき、この関数は”0”を返す。

Post_Get2.c

void Post_Get2(int current_situation)

ポストを獲得する関数。引数の”current_situation”によって、赤外線のコードを入れる配列を決定する。

Course_Return_Field.c

void Course_Return_Field(uss3_data)

ポスト探索コースに戻る関数。引数であるポストへの距離が入った”uss3_data”分だけポストから離れる。

Post_Search1_Circumference.c

Post_Search1_Circumference(void)

外周を回りながら、ポスト探索をする関数。横方向への移動時はポスト探索を行わず、ライントレースを行う。縦方向への移動時はライントレースを行わないで、ポスト探索を行う。

Course_Return_Circle.c

void Course_Return_Circle(int uss3_data)

ポスト獲得後、白線からポストへの距離を入った引数”uss3_data”分離れ、白線まで移動したら、90度回転する。


main2 で使用しているプログラム

ソース

関数名

説明

Return.c

void Return(void)

スタート位置から後退し、白線が検知されたら停止する。

Alpha_Measurement.c

void Alpha_Measurement(void)

フィールド北方向との角度のずれを測定する。

Course_Search.c

void Course_Search1(void);

MIRSがポストに接触することなく一直線に進めるコースを探索する。

Post_Search2_Field.c

void Post_Search2_Field(void)

直進しながら、左側の超音波センサでポストを発見する。向かい側の白線を感知したら、180度回転し、ポスト探索を再開する。 ポストを見つけたら、獲得動作に移る。

Post_Approach2.c

int Post_Approach2(int uss3_data)

ポスト15cm前でとまり、赤外線がでているかチェックし、出ていたら獲得する。このとき、この関数は”1”を返す。赤外線が出ていない場合はポストに当たって、10cm下がる。このとき、この関数は”0”を返す。

Post_Get2.c

void Post_Get2(int current_situation)

ポストを獲得する関数。引数の”current_situation”によって、赤外線のコードを入れる配列を決定する。

Course_Return_Field.c

void Course_Return_Field(uss3_data)

ポスト探索コースに戻る関数。引数であるポストへの距離が入った”uss3_data”分だけポストから離れる。

Post_Search2_Circumference.c

void Post_Search1_Circumference(void)

外周を回りながら、ポスト探索をする関数。横方向への移動時はポスト探索を行わず、ライントレースを行う。縦方向への移動時はライントレースを行わないで、ポスト探索を行う。

Course_Return_Circle.c

void Course_Return_Circle(int uss3_data)

ポスト獲得後、白線からポストへの距離を入った引数”uss3_data”分離れ、白線まで移動したら、90度回転する。

 

標準機プログラムから変更したプログラム

ソース

関数名および変数名

説明

control.c

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回目の競技)において次に目標するポストが何番目にあるのかを示す変数

initialize.c

int initialize()

ポストの番号、位置を入れる配列を初期化するようにした。

thread_func.c

void *uss_read(void *t)

void *uss_read2(void *t)

測定不能時に返す値を”999”から”0”にした