2006b/A1/課題2左
衝突後よけて通るプログラム†
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); //ここの判断で、黒い線をまたがせる
}
}
}