int t; int w; sub yuu () //yuuのプログラム { OnFwd(OUT_A+OUT_C); //前進 until((SENSOR_1==1)&&(SENSOR_3==1));//タッチセンサー1もしくはタッチセンサー1,3両方が反応するまで OnRev(OUT_A+OUT_C); //後進 Wait(w); OnFwd(OUT_A); OnRev(OUT_C); //右に回転 Wait(105); Off (OUT_A+OUT_C); //停止 } sub sho () //shoのプログラム { ClearTimer (0); while (Timer (0) < t) { while (SENSOR_1==1 && SENSOR_3==0) { Off (OUT_A+OUT_C); //停止 OnFwd (OUT_A+OUT_C); //前進 } while (SENSOR_1==0 && SENSOR_3==0) { Off (OUT_A+OUT_C); //停止 OnFwd (OUT_C); OnRev (OUT_A); //左に回転 Wait (10); OnFwd (OUT_A+OUT_C); //前進 Wait (10); } if (SENSOR_1==1 && SENSOR_3==1) { OnRev (OUT_A+OUT_C); //後進 Wait (0); OnFwd (OUT_A); OnRev (OUT_C); //右に回転 Wait (130); Off (OUT_A+OUT_C); //停止 } } Off (OUT_A+OUT_C); //停止 } task main () { SetSensor (SENSOR_1, SENSOR_TOUCH); //left //タッチセンサー左 SetSensor (SENSOR_3, SENSOR_TOUCH); //right //タッチセンサー右 w=5; yuu(); w=50; yuu(); OnFwd (OUT_A+OUT_C); //前進 Wait (330); OnFwd (OUT_C); OnRev (OUT_A); //左に回転 Wait (90); OnFwd (OUT_A+OUT_C); //前進 until (SENSOR_1==1 && SENSOR_3==1); //タッチセンサー1もしくはタッチセンサー1,3両方が反応するまで t=110; sho(); w=5; yuu(); yuu(); OnFwd (OUT_A+OUT_C); //前進 Wait(340); t=1000; sho(); Off (OUT_A+OUT_C); //停止 }
写真
特徴 タッチセンサーを2つ使用。タッチセンサーの反応をよくするために左側のタッチセンサーにブロックをつける。
感想 二人のプログラムをあわせてプログラミングをした。壁にそって離れることなく走れた。かなり完成度は高いと思う。 二人のプログラムをあわせてプログラミングをした。壁にそって離れることなく走れた。かなり完成度は高いと思う。