//----------- //init関連 //----------- void tip_init(); void pwm_init(); void uss_init(void); //----------- //cleanup関連 //----------- void tip_cleanup(); void pwm_cleanup(); void uss_cleanup(void); //-------------- //TS,IRS,LS関連 //-------------- int read_ts(); 引数は無し。 返り値は押されたセンサの左から5,4,3,…,0,…,-3,-4,-5。 真中二つが押されたら0。何も押されてない時は-999を返す。 int read_ls(); 引数は無し。 ラインセンサ番号1,2,3の反応した箇所が数値で返る。 例:LS1 → 1   LS2&LS3 → 23 何も反応してない時は-999を返す。 int write_irs(int num); 引数はこれから使う赤外線センサ番号 使うセンサを変更毎に使用する。 この関数を実行後、0.5s以内にread_irs()を使用するとバグるので注意。 int read_irs(); 引数は無し。 赤外線センサを読み取りその赤外線センサナンバーを読み取る。 反応がない時は0を返す。(-999では無いので注意) //------------------- //PWM,ENC関連 //------------------- int pwm_vdata(int lduty,int rduty); 引数は、左速度、右速度。(-127〜127) 返り値は、上の範囲外の数値を渡した場合、-1を返す。 基本的には"define.h"に書いてある速度を使用する。 int pwm_cmdata(int lduty,int rduty,int cm); 引数は、左速度、右速度、進む距離。 指定した速度で進んでストップする。以下同文。 int pwm_stop(int lduty,int rduty); 引数はこの関数を使用するときに指定している速度をわたすこと。 指定速度に対する逆速度を一瞬かけて止める。 戻り値無し。 int reset_enc(); 引数は無し エンコーダカウントをリセットする。グローバル変数enc.r及びenc.lを0にする。 戻り値無し。 int read_enc(); 引数は無し。 進んだ距離をリセットしたときから計る。 ただし、pwm_cmdataを使用するとカウント値はリセットされてしまう。 この関数が実行されると、グローバル変数enc.r及びenc.lに距離が代入される。 //------------------ //USS //------------------ int uss_send (int num); 引数は使う超音波センサの番号。 返り値は超音波が感知した場所までの距離。 感知しなかった場合は-999を返す。 //------------------- //その他 //------------------- int hosei(int data); 引数はread_ts()でとってきた値。 ポストの中心にまっすぐに補正する関数。返り値は無し。 ポストにぶつかったら使用すること、その時のタッチセンサの状態を引数として渡す。 処理の流れ ストップ→下がる→ターン(補正)→ぶつかる→・・・・→ぶつかる→下がる→90°ターン→終了 int ve_hosei(struct pwm_status pwm_data); 引数は、構造体でpwmの速度データを送る。 走行中、エンコーダのデータをみて、duty比を自動変更する。 返り値は無し。 int ls_check(); 引数は無し。 走行中、ラインセンサが反応したらこのモードに移る。後退し180°回転して終了。 戻り値は無し。