[[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 (a<2) { //タッチセンサーが2回反応したら止まる 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); //少しバックして距離をとる Wait(25); Off(OUT_A+OUT_C); Wait(50); OnRev(OUT_A); //向きを変える OnFwd(OUT_C); Wait(120); Off(OUT_A+OUT_C); Wait(50); OnFwd(OUT_A+OUT_C); //障害物の横を通れるくらい移動する Wait(180); Off(OUT_A+OUT_C); Wait(50); OnFwd(OUT_A); //向きを変える OnRev(OUT_C); Wait(110); Off(OUT_A+OUT_C); Wait(50); OnFwd(OUT_A+OUT_C); //障害物の横を通過する Wait(300); Off(OUT_A+OUT_C); Wait(50); OnFwd(OUT_A); //向きを変える OnRev(OUT_C); Wait(110); Off(OUT_A+OUT_C); Wait(50); OnFwd(OUT_A+OUT_C); //ラインのところに戻る Wait(180); Off(OUT_A+OUT_C); Wait(50); OnRev(OUT_A); //進行方向に向きを変える OnFwd(OUT_C); Wait(120); Off(OUT_A+OUT_C); Wait(50); OnRev(OUT_A+OUT_C); //少し下がることでいろんな場所に対応 Wait(60); Off(OUT_A+OUT_C); Wait(50); a=a+1; } } }