課題2で作ったコース上にランダムに3個のテニスボールをおいて、ボールを中央のランタンに向かって運ぶまたは転がすロボットを作る。
int lmax ; //光の最大値 int tmax ; //光が最大の時間
task main() { SetSensor(SENSOR_1,SENSOR_LIGHT); SetSensor(SENSOR_2,SENSOR_LIGHT); SetSensor(SENSOR_3,SENSOR_TOUCH); repeat(3){ //以下を3回繰り返す while(SENSOR_3 == 0){ if(SENSOR_1 < 40){ //黒線を踏んだら OnFwd(OUT_A+OUT_B);Off(OUT_C); //コンベアを回しながらライントレース }else{ Off(OUT_A);OnFwd(OUT_B);OnFwd(OUT_C); } } if(SENSOR_3 == 1){ //タッチセンサーが反応したら Off(OUT_A+OUT_B+OUT_C); lmax = 0; //最大値をリセット ClearTimer(0); //タイマーをリセット while(FastTimer(0) < 340){ //340は1回転の時間 OnFwd(OUT_A);OnRev(OUT_C); //1周して if(SENSOR_2 > lmax){ //光の最大値を探す SENSOR_2 == lmax; tmax = FastTimer(0); //光が最大だった時間を記憶 } } OnRev(OUT_A); //最大のところまで回転 OnFwd(OUT_C); Wait((340-tmax)); Off(OUT_A+OUT_C); OnRev(OUT_B);Wait(150); //ボールを前に出す OnRev(OUT_A); //ボールの横につき OnFwd(OUT_C); Wait(60); OnFwd(OUT_A+OUT_C);Wait(50); OnFwd(OUT_A);OnRev(OUT_C);Wait(150); //打つ! OnFwd(OUT_A+OUT_C);until(SENSOR_1 < 40); //ライントレースに戻る } }