¢¨¼«Ê¬¤Ï±¦²ó¤êôÅö¤Ç¤¹
#define zone1 37 #define zone2 45 #define zone3 60 #define zone4 65 #define zensin OnFwd(OUT_BC,40) //Á°¿Ê¤·¤Þ¤¹ #define sasetu OnFwd(OUT_B,40);Off(OUT_C) //º¸ÀÞ¤·¤Þ¤¹ #define kyuusasetu OnFwd(OUT_B,40);OnRev(OUT_C,35) //º¸Àû²ó¤·¤Þ¤¹ #define usetu OnFwd(OUT_C,40);Off(OUT_B) //±¦ÀÞ¤·¤Þ¤¹ #define kyuuusetu OnFwd(OUT_C,40);OnRev(OUT_B,35) //±¦Àû²ó¤·¤Þ¤¹ #define STEP 1 #define nMAX 200 #define short_break Off(OUT_BC);Wait(1000); task main () { SetSensorLight(S3); int nOnline=0; long t0 = CurrentTick(); int n=0;
while (CurrentTick()-t0 <= 6000) { //ºÇ½é¤Î£¶Éô֤Ϲõ¤Ê¤é±¦¡¢Çò¤Ê¤éº¸¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹ if (SENSOR_3 < zone1) { kyuuusetu; } else if (SENSOR_3 < zone2) { usetu; } else if (SENSOR_3 < zone3) { zensin; } else if (SENSOR_3 < zone4) { sasetu; } else { kyuusasetu; } Wait(STEP); } OnRev(OUT_A,50);Wait(500);Off(OUT_A);¡¡//´Ì¤òÄϤߤޤ¹
while (CurrentTick()-t0 <= 18000) { while(nOnline < nMAX && CurrentTick()-t0 <= 18000) {¡¡//nOnline¤¬nMAX¤òĶ¤¨¤ë¡¢¤â¤·¤¯¤Ï18Éðʾ夿¤Ã¤¿¤é¤³¤ÎwhileÀá¤ò¤ä¤á¤ë¡£ if (SENSOR_3 < zone1) { kyuuusetu; nOnline++; } else { if (SENSOR_3 < zone2) { usetu; } else if (SENSOR_3 < zone3) { zensin; } else if (SENSOR_3 < zone4) { sasetu; } else { kyuusasetu; } nOnline=0; } Wait(STEP); } kyuusasetu;Wait(nMAX*STEP); OnFwd(OUT_BC,40);Wait(200); nOnline=0; }sasetu;Wait(100);
while (CurrentTick()-t0 <= 34000) { while(nOnline < nMAX && CurrentTick()-t0 <= 34000) { if (SENSOR_3 < zone1) { kyuusasetu; nOnline++; } else { if (SENSOR_3 < zone2) { sasetu; } else if (SENSOR_3 < zone3) { zensin; } else if (SENSOR_3 < zone4) { usetu; } else { kyuuusetu; } nOnline=0; } Wait(STEP); } kyuuusetu;Wait(nMAX*STEP); OnFwd(OUT_BC,40);Wait(200); nOnline=0; }usetu;Wait(200);
while (CurrentTick()-t0 <= 40000) { while(nOnline < nMAX && CurrentTick()-t0 <= 40000) { if (SENSOR_3 < zone1) { kyuuusetu; nOnline++; } else { if (SENSOR_3 < zone2) { usetu; } else if (SENSOR_3 < zone3) { zensin; } else if (SENSOR_3 < zone4) { sasetu; } else { kyuusasetu; } nOnline=0; } Wait(STEP); } kyuusasetu;Wait(nMAX*STEP); OnFwd(OUT_BC,40);Wait(200); nOnline=0; }
while (n<2) { while(nOnline < nMAX && n<2) { if (SENSOR_3 < zone1) { kyuuusetu; nOnline++; } else { if (SENSOR_3 < zone2) { usetu; } else if (SENSOR_3 < zone3) { zensin; } else if (SENSOR_3 < zone4) { sasetu; } else { kyuusasetu; } nOnline=0; } Wait(STEP); } kyuusasetu;Wait(nMAX*STEP); OnFwd(OUT_BC,40);Wait(200); nOnline=0;n++; }
OnRev(OUT_BC,50);Wait(500); OnFwd(OUT_C,50);OnRev(OUT_B,50);Wait(300); OnFwd(OUT_C,50);OnRev(OUT_B,50);until(SENSOR_3 < 50); long t1 = CurrentTick();
while (CurrentTick()-t1 <= 1800) { if (SENSOR_3 < zone1) { kyuusasetu; } else if (SENSOR_3 < zone2) { sasetu; } else if (SENSOR_3 < zone3) { zensin; } else if (SENSOR_3 < zone4) { usetu; } else { kyuuusetu; } Wait(STEP); }
usetu;Wait(270);Off(OUT_BC); OnFwd(OUT_A,50);Wait(300);Off(OUT_A); OnRev(OUT_BC,50);Wait(400); OnFwd(OUT_B,50);OnRev(OUT_C,50);Wait(300); OnFwd(OUT_B,50);OnRev(OUT_C,50);until(SENSOR_3 < 50); long t2 = CurrentTick();
while (CurrentTick()-t2 <= 3900) { if (SENSOR_3 < zone1) { kyuuusetu; } else if (SENSOR_3 < zone2) { usetu; } else if (SENSOR_3 < zone3) { zensin; } else if (SENSOR_3 < zone4) { sasetu; } else { kyuusasetu; } Wait(STEP); } Off(OUT_BC); }