- 追加された行はこの色です。
- 削除された行はこの色です。
[[2009a/A8/課題2右]]
#define THRESHOLD 47 //閾値を47に設定
int a;
task main ()
{
a=0;
SetSensor(SENSOR_1,SENSOR_LIGHT); //センサー1に光センサーをセット
SetSensor(SENSOR_2,SENSOR_TOUCH); //センサー2にタッチセンサーをセット
SetSensor(SENSOR_3,SENSOR_LIGHT); //センサ−3に光センサーをセット
while (true) {
while (a<6) {
if (SENSOR_1>THRESHOLD){ //センサ−1が白で
if(SENSOR_3>THRESHOLD){ //センサー3も白のとき
OnFwd(OUT_A+OUT_C);
}
else //センサー3が黒のとき
{
OnFwd(OUT_A);
Off(OUT_C);
}
}
else{ //センサー1が黒で
if(SENSOR_3>THRESHOLD){ //センサー3が白のとき
OnRev(OUT_A);
OnFwd(OUT_C);
}
}
if(SENSOR_2 == 1) //タッチセンサーに何かがあたったとき
{
OnRev(OUT_A+OUT_C); //向きを変えたりしながらよける
OnRev(OUT_A+OUT_C); //少しバックして距離をとる
Wait(25);
Off(OUT_A+OUT_C);
Wait(50);
OnRev(OUT_A);
OnRev(OUT_A); //向きを変える
OnFwd(OUT_C);
Wait(120);
Off(OUT_A+OUT_C);
Wait(50);
OnFwd(OUT_A+OUT_C);
OnFwd(OUT_A+OUT_C); //障害物の横を通れるくらい移動する
Wait(180);
Off(OUT_A+OUT_C);
Wait(50);
OnFwd(OUT_A);
OnFwd(OUT_A); //向きを変える
OnRev(OUT_C);
Wait(110);
Off(OUT_A+OUT_C);
Wait(50);
OnFwd(OUT_A+OUT_C);
OnFwd(OUT_A+OUT_C); //障害物の横を通過する
Wait(300);
Off(OUT_A+OUT_C);
Wait(50);
OnFwd(OUT_A);
OnFwd(OUT_A); //向きを変える
OnRev(OUT_C);
Wait(110);
Off(OUT_A+OUT_C);
Wait(50);
OnFwd(OUT_A+OUT_C);
OnFwd(OUT_A+OUT_C); //ラインのところに戻る
Wait(180);
Off(OUT_A+OUT_C);
Wait(50);
OnRev(OUT_A);
OnRev(OUT_A); //進行方向に向きを変える
OnFwd(OUT_C);
Wait(120);
Off(OUT_A+OUT_C);
Wait(50);
OnRev(OUT_A+OUT_C);
OnRev(OUT_A+OUT_C); //少し下がることでいろんな場所に対応
Wait(60);
Off(OUT_A+OUT_C);
Wait(50);
a=a+1;
}
}
}