¼Ì¿¿¤Î¥Ï¥µ¥ß¤¬³«ÊĤ¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ´Ì¤ò¤Ä¤«¤ó¤À¤êÎ¥¤·¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£ ¥Ï¥µ¥ß¤ÎÀèü¤Ë¤Ï¾®¤µ¤Ê¥¿¥¤¥ä¤ò¼è¤êÉÕ¤±¡¢´Ì¤¬¥Ï¥µ¥ß¤«¤é³ê¤êÍî¤Á¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¤¤ë¡£
#define THRESHOLD 42 //¤·¤¤¤ÃÍ #define HIPOWER 5 //®¤µ¤ÎÃÍ¡Ê®¡Ë #define LOWPOWER 1 //®¤µ¤ÎÃÍ¡ÊÃÙ¡Ë #define set_power_H SetPower(OUT_AC,HIPOWER); //®¤¤²óž #define set_power_L SetPower(OUT_AC,LOWPOWER); //ÃÙ¤¤²óž #define go_forward set_power_H; OnFwd(OUT_AC); //Á°¿Ê #define turn_left1 set_power_L; OnRev(OUT_A); OnFwd(OUT_C);//±¦Àû²ó #define turn_left0 set_power_L; Off(OUT_A); OnFwd(OUT_C); //±¦ÀÞ #define turn_right0 set_power_L; OnFwd(OUT_A); Off(OUT_C); //º¸ÀÞ #define turn_right1 set_power_L; OnFwd(OUT_A); OnRev(OUT_C); //º¸Àû²ó #define STEP 1 //¹õ¤òȽÃǤ¹¤ë´Ö³Ö #define nMAX 3 //¸òº¹ÅÀ¤òȽÃǤ¹¤ë´ð½à¤ÎÃÍ #define short_break Off(OUT_AC); Wait(10); //¾®µÙ»ß #define cross_time 20 //¸òº¹ÅÀ¤òÅϤë»þ´Ö #define cross_line go_forward set_power_H; OnFwd(OUT_AC); Wait(cross_time); short_break; //¸òº¹ÅÀ¤òÅϤëÆ°ºî #define time1 1600 //·è¤á¤é¤ì¤¿¥Ý¥¤¥ó¥È¤Þ¤ÇÆ°ºî¤¹¤ë»þ´Ö #define time3 900 #define time5 900
task main() { SetSensor(SENSOR_2, SENSOR_LIGHT); SetSensor(SENSOR_1, SENSOR_TOUCH); ClearTimer(0); int counter=0; int nOnline=0;
if (SENSOR_1 == 0){ //¡¤Î¥³¡¼¥¹¤ÎÅÓÃæ¤Þ¤ÇÄ̾ï¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹ OnFwd(OUT_B); } while(FastTimer(0) <= time1){ if (SENSOR_1 == 1){ OnRev(OUT_B); } if (SENSOR_2 < THRESHOLD -4){ turn_left1; } else if (SENSOR_2 < THRESHOLD -3){ turn_left0; } else if (SENSOR_2 < THRESHOLD +0){ go_forward; } else if (SENSOR_2 < THRESHOLD +2){ turn_right0; } else { turn_right1; } Wait(STEP); } PlaySound(SOUND_CLICK);
while(counter < 3){ //¸òº¹ÅÀ¤ò£³¤ÄÅϤë while(nOnline < nMAX){ if (SENSOR_2 < THRESHOLD -3){ turn_left1; nOnline++; } else { if (SENSOR_2 < THRESHOLD -2){ turn_left0; } else if (SENSOR_2 < THRESHOLD -0){ go_forward; } else if (SENSOR_2 < THRESHOLD +2){ turn_right0; } else { turn_right1; } nOnline=0; } Wait(STEP); } short_break; turn_right1; Wait(nMAX*STEP); cross_line; PlaySound(SOUND_UP); nOnline=0; counter++; } PlaySound(SOUND_CLICK);
ClearTimer(0); while(FastTimer(0) <= time3){ //Ä̾ï¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹ if (SENSOR_2 < THRESHOLD -4){ turn_left1; } else if (SENSOR_2 < THRESHOLD -3){ turn_left0; } else if (SENSOR_2 < THRESHOLD +0){ go_forward; } else if (SENSOR_2 < THRESHOLD +2){ turn_right0; } else { turn_right1; } Wait(STEP); } PlaySound(SOUND_CLICK);
counter=0; while(counter < 1){ //¸òº¹ÅÀ¤ò°ì¤ÄÅϤë while(nOnline < nMAX){ if (SENSOR_2 < THRESHOLD -4){ turn_left1; nOnline++; } else { if (SENSOR_2 < THRESHOLD -3){ turn_left0; } else if (SENSOR_2 < THRESHOLD -0){ go_forward; } else if (SENSOR_2 < THRESHOLD +2){ turn_right0; } else { turn_right1; } nOnline=0; } Wait(STEP); } short_break; turn_right1; Wait(nMAX*STEP); cross_line; PlaySound(SOUND_UP); nOnline=0; counter++; } PlaySound(SOUND_CLICK);
ClearTimer(0); while(FastTimer(0) <= time5){ //¥³¡¼¥¹ÅÓÃæ¤Þ¤ÇÄ̾ï¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹ if (SENSOR_2 < THRESHOLD -4){ turn_left1; } else if (SENSOR_2 < THRESHOLD -3){ turn_left0; } else if (SENSOR_2 < THRESHOLD +0){ go_forward; } else if (SENSOR_2 < THRESHOLD +4){ turn_right0; } else { turn_right1; } Wait(STEP); } PlaySound(SOUND_CLICK);
counter=0; while(counter < 1){ //¥¹¥¿¡¼¥È¤Î°ÌÃÖ¤òȽÃǤ·¤Æ¼¡¤ÎÌ¿Îá¤Ë°Ü¤ë while(nOnline < nMAX){ if (SENSOR_2 < THRESHOLD -4){ turn_left1; nOnline++; } else { if (SENSOR_2 < THRESHOLD -3){ turn_left0; } else if (SENSOR_2 < THRESHOLD -0){ go_forward; } else if (SENSOR_2 < THRESHOLD +2){ turn_right0; } else { turn_right1; } nOnline=0; } Wait(STEP); } OnRev(OUT_B); //È¿ÂÐÊý¸þ¤ò¸þ¤¯ OnRev(OUT_A); OnFwd(OUT_C); Wait(400); Off(OUT_AC); OnFwd(OUT_AC); //´Ì¤òÃÖ¤¯°ÌÃ֤ޤǿʤà Wait(200); OnFwd(OUT_B); Off(OUT_AC); Wait(100); Off(OUT_B); //´Ì¤òÎ¥¤·¤Æ¸åÂह¤ë OnRev(OUT_AC); Wait(100); OnRev(OUT_C); //È¿ÂÐÊý¸þ¤ò¸þ¤¯ OnFwd(OUT_A); Wait(400); counter++;
while(true){ //¥´¡¼¥ë¤Þ¤ÇÄ̾ï¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹ if (SENSOR_2 < THRESHOLD -4){ turn_left1; } else if (SENSOR_2 < THRESHOLD -3){ turn_left0; } else if (SENSOR_2 < THRESHOLD +0){ go_forward; } else if (SENSOR_2 < THRESHOLD +2){ turn_right0; } else { turn_right1; } Wait(STEP); } PlaySound(SOUND_CLICK); } }