[[2006b/A1/課題2左]] #contents *衝突後よけて通るプログラム [#y951c4d2] task main() { SetSensor(SENSOR_1,SENSOR_LIGHT);//光センサーのセット SetSensor(SENSOR_2,SENSOR_TOUCH);//タッチセンサーのセット SetSensor(SENSOR_3,SENSOR_LIGHT);//光センサーのセット while(true){ if(SENSOR_1 >=40 && SENSOR_3 >=40){ OnFwd(OUT_A+OUT_C); }//両方の光センサーが明るいと判断すると、前進。 else if(SENSOR_1 <40 && SENSOR_3< 40){ OnFwd(OUT_C+OUT_A); }//両方の光センサーが暗いと判断しても、前進。 else if(SENSOR_3 < 40){ OnFwd(OUT_A); OnRev(OUT_C); Wait(4); }//右の光センサーが暗いと判断すると右に曲がる。 else{ OnFwd(OUT_C); OnRev(OUT_A); Wait(4); }//左の光センサーが暗いと判断すると左に曲がる。 if(SENSOR_2 == 1){ //タッチセンサーの反応 OnRev(OUT_A+OUT_C); Wait(50); //少し後退 OnFwd(OUT_A); OnRev(OUT_C); Wait(90); //右に方向転換 OnFwd(OUT_A+OUT_C); Wait(100); //前進 OnRev(OUT_A); Wait(90); //左に方向転換 OnFwd(OUT_A); Wait(100); //前進 OnRev(OUT_A); Wait(90); //左に方向転換 OnFwd(OUT_A); //ここで、黒い線にあたるまで前進。 until(SENSOR_1<26 ||SENSOR_3<26); Wait(20); OnRev(OUT_C); Wait(45); //ある程度回転させる until(SENSOR_1 < 40); //ここの判断で、黒い線をまたがせる } } }