ソース |
関数名 |
説明 |
default1.c |
void default1() |
MIRSの初期位置を決定する関数。前方のUSSがポストを感知したら、ポストに接近し回避する。中央にポストがある場合はポスト手前でとまる。
|
s_direction.c |
int s_direction(char ec1,char ec2, char ec3) |
電子コンパスの値と引数ec1,ec2,ec3が一致するまでその場回転する関数。ec1,ec2,ec3は電子コンパスの各ビットに対応している。回転角度を戻り値とする。
|
post_check.c |
void post_check() |
ポストサーチの結果から、ポストの座標を確認する関数。ポストの座標はs_directionの戻り値により修正されるので、同じ方向のポスト(同一のポスト)は消去される。
|
rm_data.c |
rm_data(int *p1, int *p2, int *p3) |
post_checkで確認されてた同一のポストデータを消去する関数。p1に配列の先頭番地()、p2に格納する配列の先頭番地、p3に削除する配列の要素番号を与える。
|
data_w.c |
void data_w() |
一回目の構造体データを二回目用に保存する。
|
approach1.c |
int approach1(int target_post) |
ポストに接近する関数。target_postの角度データを読み込み回転する。回転後に正対補正を行い距離データを更新し、ポストに接近する。接近後にcircle_positionにより、ポスト回転半径上に停止する。正対補正により接近するポストが発見できない場合は、9999を返す。
|
circle_position.c |
void circle_position() |
get1〜get3のポストの周回半径に合わせ、MIRSの位置を決定する関数。
|
get1.c |
void get1(int target_post) |
post_checkにより既定数のポストが確認された場合に、ポストを獲得する関数。ポストの赤外線コードはtarget_postの示す構造体に保存される。
|
get2.c |
void get2() |
post_checkにより既定数のポストが確認できなかった場合に、ポストを獲得する関数。獲得動作はget1と同様に行うが、ポストを180°回転したところで、超音波により裏のポストを確認する。
|
get3.c |
void get3() |
get2により、裏のポストが確認された場合に、ポストを獲得する関数。
|
delete.c |
void delete() |
すべての獲得動作後に、赤外線コードが取得できなかったデータを消去する関数。赤外線コードが取得できたでーたはそのまま構造体に保存される。
|
ソース |
関数名 |
説明 |
functions.c |
void move_center(int target_post) |
獲得動作後に中心位置に戻る関数。獲得動作後にポストに正対させ、そのまま後退し中心に戻る。
|
int correct_direction1(int target_post) |
遠距離のポストに正対補正する関数。正対するポストがない場合のエラーに対応しており、一定時間を超えて超音波入力が既定外であれば-1を返す。
|
int correct_direction2() |
近距離のポストに正対補正する関数。対するポストがない場合のエラーに対応しており、一定時間を超えて超音波入力が既定外であれば-1を返す。
|
post_search.c |
void post_search(int center_count) |
ポストを探索する関数。二回目以降の探索にも対応し、コードを獲得したポストデータは上書きされない。center_countは1のままでよい。
|
initialize.c |
int initialize() |
初期化用の関数。電子コンパス用の配列の初期化を追加。
|
thread_func.c |
void *irs_ts_ws(void *t) |
センサー系(irs,ts,ws)のデータ読み込み用のスレッド。電子コンパスのデータ読み込みを追加。
|