オーソドックスなタイプのロボ先端にアームやセンサーを取り付けた。
モーターBの動きに連動してアームは閉じたり開いたりする。
開くのに合わせてボールを打ち出すようにギアを組み込んだ。
ボールによってセンサーが隠れることのないようにセンサーは少し高いところに設置した。
task main() { SetSensor(SENSOR_2,SENSOR_LIGHT);//光センサーをスロット2に接続 int turn_time = 380;//1周回る時間を定義 int light_max = 0;//後で数字は変えるのでなんでもいいがとりあえず0を入れておく int time_max; ClearTimer(0); OnFwd(OUT_A);OnRev(OUT_C);//回転 while(FastTimer(0) < turn_time)//1回転するまで繰り返す { if(SENSOR_2 > light_max){ light_max = SENSOR_2;//センサーの値を最大にする time_max = FastTimer(0);//その時の時間を記録する } } Off(OUT_AC);//小休止 OnFwd(OUT_C);OnRev(OUT_A); Wait(turn_time - time_max);//最大を記録したところまで逆回転させる Off(OUT_AC);//小休止 OnFwd(OUT_B);Wait(50);//シュート }
光源にピンポン玉をあてることには成功した。
打ち出すことはプログラムで押し出すのではなくしたことで簡単に打ち出すことができるようになった。