Ìܼ¡
º£²ó¤Î²ÝÂê¤Ï¥ë¡¼¥ÈA¢ªB¤Þ¤¿¤Ï¥ë¡¼¥ÈB¢ªA¤ò¤¦¤Þ¤¯¥é¥¤¥ó¥È¥ì¡¼¥¹¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£
¥ë¡¼¥ÈA¢ªB:AÃÏÅÀ ¢ª Pľ¿Ê ¢ª Qľ¿Ê ¢ª Q±¦ÀÞ ¢ª P±¦ÀÞ ¢ª Qº¸ÀÞ ¢ª Pº¸ÀÞ ¢ª BÃÏÅÀ
¥ë¡¼¥ÈB¢ªA:BÃÏÅÀ ¢ª P±¦ÀÞ ¢ª Q±¦ÀÞ ¢ª Pº¸ÀÞ ¢ª Qº¸ÀÞ ¢ª Qľ¿Ê ¢ª Pľ¿Ê ¢ª AÃÏÅÀ
º£²ó¤Î²ÝÂê¤Ï¤¿¤À¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤¹¤ë¤À¤±¤Ç¤Ê¤¯¸òº¹ÅÀ¤Ç¤ÎÆ°ºî¤¬½ÅÍפǤ¢¤ë¡£
º£²ó¡¢»ä¤Ï¥ë¡¼¥ÈB¢ªA¤òôÅö¤·¤Þ¤¹¡£
2015ǯ¸å´ü/²ÝÂꣲ
º£²ó¤Ï¥í¥Ü¥Ã¥È¤Ï´ðËÜŪ¤Ë¥Æ¥¥¹¥È¤Ë¾è¤Ã¤Æ¤¤¤ë¥Ù¡¼¥¹¤Î·¿¤Ç¤ä¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç³ä°¦¤·¤Þ¤¹¡£
º£²ó¤Ï¸òº¹ÅÀ¤ò¤É¤¦Ç§¼±¤·¡¢¥é¥¤¥ó¤ò¥È¥ì¡¼¥¹¤¹¤ë¤È¤Àþ¤Î¤É¤Á¤é¦¤ò¥È¥ì¡¼¥¹¤¹¤ë¤«¤ò½Å»ë¤·¤ÆÁȤó¤À¡£ ¤Þ¤¿¡¢¤Ç¤¤ë¤À¤±Á᤯¥´¡¼¥ë¤Ç¤¤ë¤è¤¦¤Ë¤¹¤ë¹©Éפ⤷¤¿¡£
¤³¤ÎÉôʬ¤Ç¤Ï¼ç¤Ë»°¤Ä¤Î»ö¤òÄêµÁ¤·¤Æ¤¤¤ë¡£°ì¤Ä¤Ï¹õ¤ÈÇò¤ò¸«Ê¬¤±¤ë¤¿¤á¤Î¿§¤ÎïçÃͤȥ¹¥Ô¡¼¥É¤Ç¤¢¤ë¡£Æó¤ÄÌܤϥ饤¥ó¥È¥ì¡¼¥¹¤ò¹Ô¤¦¤¿¤á¤ÎÆ°ºî¤Ç¤¢¤ë¡£»°¤ÄÌܤϸòº¹ÅÀ¤Ç¤ÎÆ°ºî¤Ç¤¢¤ë¡£²¼¤Î»°¤Ä¤ÎÄêµÁ¤¬¤½¤ì¤Ë¤¢¤¿¤ë¡£
//²ÝÂꡧ¸òº¹ÅÀ¤Ç£±ÉÃÄä»ß¡¢¥³¡¼¥¹B BÃÏÅÀ¢ªP±¦ÀÞ¢ªQ±¦ÀÞ¢ªPº¸ÀÞ¢ªQº¸ÀÞ¢ªQľ¿Ê¢ªPľ¿Ê¢ªAÃÏÅÀ
#define BLACK 35 //¤³¤ì°Ê²¼¤ÏÇ»¤¤¹õ #define WHITE 50 //¤³¤ì°Ê¾å¤ÏÇò #define LowSPEED 25 #define HighSPEED 30 #define Go OnFwd(OUT_AB,HighSPEED); // ľ¿Ê #define Go_left OnFwd(OUT_B,LowSPEED);Off(OUT_A); #define Go_right OnFwd(OUT_A,LowSPEED);Off(OUT_B); #define turn_left OnFwd(OUT_B,LowSPEED);OnRev(OUT_A,HighSPEED); #define turn_right OnFwd(OUT_A,LowSPEED);OnRev(OUT_B,HighSPEED); #define STEP 1 #define Chokushin Off(OUT_AB);Wait(1000);Go;Wait(700);break; #define Usetu Off(OUT_AB);Wait(1000);turn_right;Wait(700);Go;Wait(300);break; #define Sasetu Off(OUT_AB);Wait(1000);turn_left;Wait(500);Go;Wait(300);break;
sub KOUSATEN(int counter) { switch (counter) { case 0: Usetu; case 1: Usetu; case 2: Sasetu; case 3: Sasetu; case 4: Chokushin; case 5: Chokushin; default: Wait(1); } }
¤³¤Îsub´Ø¿ô¤Ç¸òº¹ÅÀ¤Ç¤ÎÆ°ºî¤ò·èÄꤷ¤Æ¤¤¤ë¡£²¼¤ÎMain´Ø¿ô¤Ç¸òº¹ÅÀ¤Î¿ô¤ò¿ô¤¨¤ëÉôʬ¤¬¤¢¤ê¡¢¤½¤³¤Ç¸òº¹ÅÀ¤ËÍè¤ë¤¿¤Ó¤Ësub´Ø¿ô¤ò¼Â¹Ô¤·¡¢ºÇ¸å¤Ëcounter¤È¤¤¤¦ÊÑ¿ô¤Ë£±¤ò²Ã¤¨¤ë¤³¤È¤ÇºÆ¤Ósub´Ø¿ô¤ËÆþ¤Ã¤¿»þ¼¡¤ÎÆ°ºî¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¸òº¹ÅÀ¤Ç¤ÎÆ°ºî¤Ï¾å¤ÇÄêµÁ¤·¤Æ¤¢¤ë¤È¤ª¤ê¤Ç¤¢¤ë¡£
task main() { SetSensorLight(S1); int counter = 0; int counter1 = 0; int counter2 = 0; Off(OUT_AB); Wait(1000); while (true) { if (SENSOR_1 < BLACK) { //Ç»¤¤¹õ¤Î¤È¤&br;
º£¤Þ¤Ç¤ËÄ̤俸òº¹ÅÀ¤Î¿ô¤¬£°¡¢£±¡¢£µ¡¢£¶¤Î¤É¤ì¤«¤Ç¤¢¤ë¤È¤¤«¤ÄÇ»¤¤Àþ¤Î¾å¤Ë¤¤¤ë¤È¤¤Ë¤³¤ì¤ò¼Â¹Ô¤¹¤ë¡£¤³¤Î»þ¤Ï¥é¥¤¥ó¤Î±¦Â¦¤Ë¤¤¤ë¤Î¤Çº¸Êý¸þ¤Ø¿Ê¤à¡£¤½¤·¤Æcounter1¤Ë£±¤ò²Ã¤¨¤ë¡£¤³¤ì¤Ë¤è¤Ã¤ÆÇ»¤¤Àþ¤Î¾å¤Ë¤¤¤ë»þ´Ö¤ò¥«¥¦¥ó¥È¤¤¤Æ¤¤¤ë¡£¤³¤Îcounter1¤¬°ìÄê°Ê¾å¤ÎÃͤˤʤä¿»þ¤Ë¸òº¹ÅÀ¤Ç¤¢¤ë¤Èǧ¼±¤·¤Æ¤¤¤ë¡£
if (counter == 0 || counter == 1 || counter == 5 || counter == 6) { Go_left; //º¸¤Ø counter1++;
º£¤Þ¤Ç¤ËÄ̤俸òº¹ÅÀ¤Î¿ô¤¬Æó¤Ä¤Ç¤¢¤ë¤È¤¤«¤ÄÇ»¤¤¹õÀþ¤Î¾å¤Ç¤¢¤ë¤È¤¤Ë¤³¤ì¤ò¼Â¹Ô¤¹¤ë¡£
¤³¤³¤Ç¤Ïcounter2¤È¤¤¤¦ÊÑ¿ô¤òÊ̤ËÍÑ°Õ¤·¤Æcounter2¤ÎÃͤ¬°ìÄê°Ê²¼¤Î»þ¤Ëcounter1¤ÎÃͤò½é´ü²½¤·¤Æ¤¤¤ë¡£µÕ¤Î¾ì¹ç¤Ïcounter1¤Ë£±¤ò²Ã¤¨¤ë¡£Æó¤Ä´Ø¿ô¤òÍÑ°Õ¤·¤Æ¤¤¤ëÍýͳ¤Ïcounter1¤ÎÃͤ¬£²£µ£°°Ê¾å¤Î»þ¤Ë¸òº¹ÅÀ¤Èǧ¼±¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¬»°¤ÄÌܤθòº¹ÅÀÁ°¤Ç¤Ï¤½¤ì¤Ç¤Ï¤¦¤Þ¤¯¤¤¤«¤Ê¤«¤Ã¤¿¤¿¤á¤Ç¤¢¤ë¡£
} else if (counter == 2) { Go_right; //±¦¤Ø counter2++; if (counter2 < 5000) { counter1 = 0; } else { counter1++; }
º£¤Þ¤Ç¤ËÄ̤俸òº¹ÅÀ¤Î¿ô¤¬£³¤Î»þ¤«¤Ä¹õ¤¤Àþ¤Î¾å¤Ç¤¢¤ë¤È¤¤Ë¤³¤ÎÆ°ºî¤ò¹Ô¤¦¡£¤³¤³¤Ç¤âcouter1¤Ë¤³¤ÎÆ°ºî¤ò¹Ô¤¦¤¿¤Ó¤Ë£±¤ò²Ã¤¨¤ë¡£
} else if(counter == 3) { Go_right; counter1++;
Ä̤俸òº¹ÅÀ¤Î¿ô¤¬¾åµ°Ê³°¤¹¤Ê¤ï¤Á£´¤Î»þ¤«¤Ä¹õ¤¤Àþ¤Î¾å¤Î¤È¤¤Ë¤³¤ÎÆ°ºî¤ò¹Ô¤¦¡£¤³¤ì¤âƱÍͤËcounter1¤Ë£±¤ò²Ã¤¨¤ë¡£
} else { turn_right; counter1++;
¤³¤³¤Ç¤Ï¾å¤Ç¿ô¤¨Â³¤±¤¿counter1¤¬£²£µ£°¤òĶ¤¨¤¿¤È¤¤ÎÆ°ºî¤Ç¤¢¤ë¡££²£µ£°¤òĶ¤¨¤¿¾ì¹ç¤Ï¸òº¹ÅÀ¤Ç¤¢¤ë¤ÈȽÃǤ·¤ÆÆ°ºî¤ò¹Ô¤¦¡£¶ñÂÎŪ¤Ë¤Ï¾å¤Çµ¤·¤¿sub´Ø¿ô¤ò¼Â¹Ô¤¹¤ë¡£ºÇ½é¤Ïcounter¤ÎÃͤϣ°¤Ç¤¢¤ë¤«¤é¾å¤ÎSub´Ø¿ô¤Ç¤Ï±¦ÀÞ¤ò¹Ô¤¦¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¤½¤·¤Æcounter¤Ë£±¤ò²Ã¤¨¤ë¡£¤³¤ì¤¬º£¤Þ¤Ç¤ËÄ̤俸òº¹ÅÀ¤Î¿ô¤Ë³ºÅö¤¹¤ë¡£¤½¤·¤Æcounter1¤ÎÃͤò½é´ü²½¤¹¤ë¤³¤È¤Ç¤Þ¤¿¥é¥¤¥ó¥È¥ì¡¼¥¹¤ËÌá¤ë¡£¤¿¤À¤·¥é¥¤¥ó¤Î±¦Â¦¤«º¸Â¦¤«¤Ç¥é¥¤¥ó¥È¥ì¡¼¥¹¤Ç¤ÎÆ°¤¤¬µÕ¤Ë¤Ê¤ë¤¿¤á¤½¤ì¤¾¤ì¤Î¸òº¹ÅÀ¤òÄ̲á¸å¤ÎÆ°ºî¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¡£
} if (counter1 > 250) { KOUSATEN(counter); counter++; counter1 = 0; }
BLACK¤è¤ê¤ÏÌÀ¤ë¤¤¤¬WHITE¤è¤ê°Å¤¤¾ì½ê¤Ï¶³¦ÀþÉÕ¶á¤Ç¤¢¤ë¤ÈȽÃǤ¹¤ë¡£¶³¦ÀþÉÕ¶á¤Ç¤ÏÁ°¿Ê¤ò¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¾¯¤·¤Ç¤â¥¿¥¤¥à¤ò½Ì¤á¤é¤ì¤ë¤è¤¦¤Ë¹©Éפò¤·¤Æ¤¤¤ë¡£
} else if (SENSOR_1 < WHITE) { //¶³¦ÉÕ¶á¤Ê¤é Go; //ľ¿Ê counter1 = 0;
¤³¤³¤ÏÇò¤¤Éôʬ¤Ç¤ÎÆ°ºî¤Ê¤Î¤ÇÀþ¤ò¸«¼º¤Ã¤Æ¤«¤éÀþ¤òõ¤¹Æ°ºî¤ò¹Ô¤¦¤È¤³¤í¤Ç¤¢¤ë¡£¾å¤Î¹õÀþ¾å¤Ç¤ÎÆ°ºîƱÍͤ˥饤¥ó¤Î±¦Â¦¤«º¸Â¦¤«¤ÇÆ°ºî¤¬°Û¤Ê¤ë¤Î¤Ç¤½¤ì¤¾¤ì¤Î¸òº¹ÅÀ¤òÄ̲ᤷ¤¿¸å¤ÇÆ°ºî¤¬°Û¤Ê¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
} else { //Çò¤Î¤È¤ if (counter == 0 || counter == 1) { Go_right; //±¦¤Ø counter1 = 0; } else if (counter == 2 || counter == 3) { turn_left; //º¸¤Ø counter1 = 0; } else if (counter == 5 || counter == 6){ Go_right; } else { turn_left; counter1 = 0; } } Wait(STEP); } }
¤³¤Î¥×¥í¥°¥é¥à¤Ç¤Ï´ðËÜŪ¤Ë¹õ¤¤Àþ¤Î¾å¤Ë¤¤¤ë¤È¤¤Ëcounter1¤Ë£±¤ò²Ã¤¨¤ëÆ°ºî¤ò·«¤êÊÖ¤·¡¢°ìÄê°Ê¾å¤Ë¤Ê¤Ã¤¿¤é¸òº¹ÅÀ¤Ç¤¢¤ë¤ÈȽÃǤ·¤Æ±¦ÀÞ¡¢º¸ÀÞ¡¢Ä¾¿Ê¤Î¤É¤ì¤«¤ò¹Ô¤¤counter¤Ë£±¤ò²Ã¤¨¤ë¡£counter¤Ïº£¤Þ¤Ç¤ËÄ̤俸òº¹ÅÀ¤Î¿ô¤òµÏ¿¤¹¤ëÊÑ¿ô¤Ç¤¢¤ë¡£
º£²ó¤Î¥×¥í¥°¥é¥à¤Ç¤Î¹©É×ÅÀ¤Ï¸òº¹ÅÀ¤Î¿ô¤ò¿ô¤¨¤Æ¤½¤Î¿ô¤Ë±þ¤¸¤Æ¥µ¥Ö¥ë¡¼¥Á¥ó¤ÎµóÆ°¤òÊѤ¨¤¿¤³¤È¤Ç¤¢¤ë¡£ ¤Þ¤¿Æó²óÌܤθòº¹ÅÀ¤ò²ó¤Ã¤¿¸å¤Ï¸íºîÆ°¤¬µ¯¤¤Ê¤¤¤è¤¦¤ËÊ̤δؿô¤Ç¥«¥¦¥ó¥È¤¹¤ë¤³¤È¤ò¤·¤¿¡£ ¤µ¤é¤Ë¸òº¹ÅÀ¤ò±Û¤¨¤¿»þ¤Ë¤Ç¤¤ë¤À¤±¥«¡¼¥Ö¤Î³°Â¦¤ò¥é¥¤¥ó¥È¥ì¡¼¥¹¤¹¤ë¤è¤¦¤Ë°ÜÆ°¤ò¤·¥«¡¼¥Ö¤ò¶Ê¤¬¤ë»þ¤ËÊÒÊý¤Î¥¿¥¤¥ä¤À¤±²ó¤¹¤«Î¾Êý¤ò²ó¤¹¤«¤Þ¤¿¡¢Çò¤È¹õ¤Î»þ¤Î²óžÊý¸þ¤òÊѤ¨¤ë¤³¤È¤â¹Ô¤Ã¤¿¡£
º£²ó¤Î²ÝÂê¤Ç¤ÎºÇ¸å¤Þ¤Ç¤ÎÀ®¸ùΨ¤Ï¤¢¤Þ¤ê¹â¤¯¤Ê¤«¤Ã¤¿¡£¥¿¥¤¥à¤âÂçÂΣ³Ê¬¤°¤é¤¤¤Ç¤¢¤Ã¤¿¡£À®¸ùΨ¤¬Ä㤤Í×°ø¤Î°ì¤Ä¤Ë»æ¤òÀÞ¤ê¶Ê¤²¤Æ¤·¤Þ¤Ã¤¿¤³¤È¤¬¤¢¤ë¤È»×¤¦¡£¤â¤·¼¡¤Îµ¡²ñ¤¬¤¢¤Ã¤¿¤é»æ¤ò´Ý¤á¤ë¤Ê¤É¤Î¹©Éפò¤·¤¿¤¤¡£
º£²ó¤Î²ÝÂê¤Ç¤ÏËÜÅö¤Ï£µÃʳ¬¤Ç¥é¥¤¥ó¤òǧ¼±¤·¤Æ³ê¤é¤«¤ËÆ°¤¯¤è¤¦¤Ë¤·¤«¤¿¤«¤Ã¤¿¤¬»æ¤òÀÞ¤ê¶Ê¤²¤Æ¤·¤Þ¤Ã¤¿¤³¤È¤ÈÀþ¤ÎÇ»¤µ¤¬ÉԶѰì¤Ç¤¢¤Ã¤¿¤¿¤áÉÔ²Äǽ¤Ç¤¢¤Ã¤¿¡£¼¡¤Îµ¡²ñ¤¬¤¢¤ì¤Ð¤½¤³¤ò²þÁ±¤·¥×¥í¥°¥é¥à¤â¤è¤ê²þÁ±¤·¤ÆÁ᤯¥´¡¼¥ë¤Ç¤¤ë¤è¤¦¤Ë¤·¤¿¤¤¡£¤Þ¤¿¤³¤Î¥ß¥Ã¥·¥ç¥ó¤Î¸åȾ¤ÇÅÅÃÓ¤¬¸º¤Ã¤Æ¤¤Æ¤¦¤Þ¤¯Æ°¤«¤Ê¤¯¤Ê¤ê¸ò´¹¤ò¤·¤¿¤éµÕ¤ËÆ°¤¤¹¤®¤Æ¤Þ¤¿Ä´À°¤·Ä¾¤¹¤³¤È¤Ë¤Ê¤ê¤È¤Æ¤â¶ìÏ«¤·¤¿¡£¼¡¤Î²ÝÂê¤Ï»þ´Ö¤Ç¤Ï¤Ê¤¯¥â¡¼¥¿¡¼¤Î²óž¤Ê¤É¤òÍøÍѤ·¤¿¥×¥í¥°¥é¥à¤·¤Æ¤¤¤¤¿¤¤¤È»×¤¦¡£²óž¿ô¤ÇÀ©¸æ¤¹¤ì¤Ð°ÜÆ°µ÷Î¥¤¬ÊѤï¤é¤Ê¤¤¤¿¤á¤Ç¤¢¤ë¡£