task main() { SetSensor(SENSOR_1,SENSOR_TOUCH); //センサー1はタッチセンサーであると宣言 SetSensor(SENSOR_2,SENSOR_LIGHT); //センサー2・3は光センサーであると宣言 SetSensor(SENSOR_3,SENSOR_LIGHT); while(true) { OnFwd(OUT_A+OUT_C); if(SENSOR_1==1) //何かに当ったら・・・ { OnRev(OUT_A+OUT_C); Wait(50); //0.5秒間後退 OnFwd(OUT_A); Wait(150); //180度回転する OnFwd(OUT_C); } if(SENSOR_2<40) //ライントレース部分 { OnFwd(OUT_C);Off(OUT_A);} else{OnFwd(OUT_A+OUT_C);} if(SENSOR_3<40) { OnFwd(OUT_C);Off(OUT_A);} else{OnFwd(OUT_A+OUT_C); } } }
ライントレースって結構難しいんですよ。 コースは7の形をしていたのですが、急なカーブが多すぎて曲がりきれないことが判明。
task main() { SetSensor(SENSOR_1,SENSOR_TOUCH); //同じようにセンサーを定義 SetSensor(SENSOR_2,SENSOR_LIGHT); SetSensor(SENSOR_3,SENSOR_LIGHT); while(true){ OnFwd(OUT_A+OUT_C); if(SENSOR_1==1){ //何かに当ったら・・・ OnRev(OUT_A+OUT_C);Wait(100); OnFwd(OUT_A);Wait(70); //右を向く OnFwd(OUT_A+OUT_C);Wait(100);Off(OUT_A); OnFwd(OUT_C);Wait(70); OnFwd(OUT_A+OUT_C);Wait(300);Off(OUT_A); //コースをはずれて、前を追い越す OnFwd(OUT_C);Wait(70); OnFwd(OUT_A+OUT_C);Wait(100);Off(OUT_C); OnFwd(OUT_A);Wait(70); } else{ //ライントレース部 if(SENSOR_2<40) {OnFwd(OUT_C);Off(OUT_A);} if(SENSOR_3<40) {OnFwd(OUT_A);Off(OUT_C);} } } }