課題2を参照. 光センサーの位置を変えただけである.
・モーターの横に光センサーを配置.
・打ち出すためのガイドを設置.
回転させて光センサーの値が最大のところからタイマーをスタートさせる.
一回転し終わったとこまでの時間ぶん反対に回転させる.
光の方を向いたらボールを発射させる.
#define turnT_1 400 //回転する時間 #define turn_search OnFwd(OUT_A); OnRev(OUT_C); Wait(1);//探す方向の回転 #define turn_back OnFwd(OUT_C); OnRev(OUT_A); Wait(FastTimer(1));Off(OUT_AC);//逆回転 task main() { SetSensor(SENSOR_2,SENSOR_LIGHT); ClearTimer(0);//回転する時間 ClearTimer(1);//探してから終わるまでの時間 int count=0; while(FastTimer(0)<=turnT_1){ if(SENSOR_2>count){//もしセンサーの値が今までの値より高ければ count=SENSOR_2;//countにセンサーの値を代入 ClearTimer(1);//タイマーをリセット } turn_search;//4秒間回る } turn_back;//タイマー(1)の分逆回転 Off(OUT_AC); Wait(100); OnFwd(OUT_B);//ボールを発射 Wait(5); Off(OUT_B); }
なかなかうまくいったと思う.
もっと上手なアームにしたい.