¿Þ¤Î¤è¤¦¤Ê¥³¡¼¥¹¤ò³Æ¼«¤ÇºîÀ®¤·¤¿¾å¤Ç¡¢¼¡¤Î¤è¤¦¤ÊÆ°ºî¤ò¤¹¤ë¥í¥Ü¥Ã¥È¤òºîÀ®¤»¤è¡£ ¥³¡¼¥¹¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¼ø¶ÈÃæÀâÌÀ¤¹¤ë¡Ê²¼¤Î¿Þ¤Ë¤ª¤¤¤Æ¡¢¹õ¤¤Àþ¤ÎÂÀ¤µ¤Ï20mm¤Ç¡¢Àþ¤ÎÃæ±û¤Þ¤Ç¤Îµ÷Î¥¤¬cmɽ¼¨¤µ¤ì¤Æ¤¤¤ë¡Ë¡£
¥¹¥¿¡¼¥ÈÃÏÅÀ¤«¤é½Ðȯ¤·¡¢¹õ¤¤Àþ¤Ë¤½¤Ã¤ÆÆ°¤¯¡£ °ì¤ÄÌܤν½»ú¤Î¸òº¹ÅÀ¤ÈÆó¤Ä¤á¤Î½½»ú¤Î¸òº¹ÅÀ¤Î´Ö¤ËÃÖ¤«¤ì¤¿¥Ô¥ó¥Ý¥ó¶Ì¤ò¤Ä¤«¤à¡£ ¤µ¤é¤Ë¹õÀþ¤Ë±è¤Ã¤ÆÆ°¤¤¤Æ¥´¡¼¥ëÃÏÅÀ¤òÌܻؤ¹¡£ ¥´¡¼¥ë¤Ë¸þ¤±¤Æ¥Ô¥ó¥Ý¥ó¶Ì¤ò¥·¥å¡¼¥È¤¹¤ë¡£ ¤¿¤À¤·T»úÏ©¤Ç¤Ï¡¢Ä¾¿Ê¡¢±¦ÀÞ¡¢º¸ÀÞ¤òÀµ¤·¤¯È½ÃǤµ¤»¤ë¤³¤È¡£¤Þ¤¿Æó¿Í°ìÁȤÇƱ¤¸¥í¥Ü¥Ã¥È¤ò»ÈÍѤ·¡¢¸ß¤¤¤Ë¥¹¥¿¡¼¥ÈÃÏÅÀ¤È¥´¡¼¥ëÃÏÅÀ¤òÆþ¤ìÂؤ¨¤ë¤³¤È¡£¥í¥Ü¥Ã¥ÈËÜÂΤ϶¦Ä̤Τâ¤Î¤ò»È¤¦¤È¤¹¤ë¡£
¤µ¤é¤Ë°Ê²¼¤Î¤è¤¦¤ÊÆ°ºî¤ËÄ©À魯¤ë¤³¤È¤¬Ë¾¤Þ¤·¤¤¡£
¥´¡¼¥ë¥¨¥ê¥¢³°¤«¤é¥Ô¥ó¥Ý¥ó¶Ì¤ò¥·¥å¡¼¥È¤¹¤ë¡£ ¶ÊÀþÉôÃæ±û¤Î¾ã³²Êª¤ËÀÜ¿¨¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤³¤È¡£ ²ÝÂê1¤Î¥³¡¼¥¹
²ÝÂꥳ¡¼¥¹¤Î¥«¡¼¥Ö¤ÎȾ·Â¤¬¾®¤µ¤¤¤Î¤Ç½ÐÍè¤ë¤À¤±¼ÖÂΤò¾®¤µ¤¯¤·¤Þ¤·¤¿¡£¼ÖÉý¤¬¾®¤µ¤¯¤Ê¤Ã¤Æµ¡Æ°À¤¬¾å¤¬¤Ã¤¿¤È»×¤¤¤Þ¤¹¡£
¸÷¥»¥ó¥µ¤òÃÏÌ̤ËÂФ·¤Æ¿âľ¤Ë¥¿¥¤¥ä¤Î¶á¤¯¤ËÀßÃÖ¤·¤Þ¤·¤¿¡£¤³¤ì¤Ë¤è¤ê¹õÀþ¤Îǧ¼±¤¬¤è¤êÀµ³Î¤Ë¤Ê¤Ã¤¿¤È»×¤¤¤Þ¤¹¡£
¤³¤ì¤Ï¥¢¡¼¥à¤ò¾å¤²¤¿¾õÂ֤Ǥ¹¡£¥¢¡¼¥à¤Î¥â¡¼¥¿¡¼¤òÀѤ߾夲¤ë¤³¤È¤Ç¼ÖÂΤò¥³¥ó¥Ñ¥¯¥È¤Ë¼ý¤á¡¢¥¢¡¼¥à¤¬µå¤ËÀÜ¿¨¤·¤Æ¤·¤Þ¤¦¤Î¤òËɤ°¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤Ï¥¢¡¼¥à¤ò²¼¤·¤¿¾õÂ֤Ǥ¹¡£¥¢¡¼¥à¤Ïµå¤ò¤Ä¤«¤à¤Î¤Ç¤Ï¤Ê¤¯¡¢¥³¤Î»ú¤È¼ÖÂΤǵå¤ò°Ï¤à¤è¤¦¤Ë¤·¤Þ¤·¤¿¡£¤³¤Î¥¢¡¼¥à¤Ç¿¾¯¤Îµå¤È¤Î°ÌÃ֤Υº¥ì¤âµöÍƤµ¤ì¤Þ¤¹¡£
#define Line 43¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¹õ¤ÈÇò¤Î¶³¦ÃÍ #define Max 10¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡//¹õ¤Îǧ¼±¡Êº¸Àû²ó¡Ë¤òϢ³¤Ç¹Ô¤¨¤ëºÇÂçÃÍ #define speed 30¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡//°ÜÆ°¤ËÍѤ¤¤ë¥â¡¼¥¿¡¼¤Î¥¹¥Ô¡¼¥É #define step 1¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //¥é¥¤¥ó¥È¥ì¡¼¥¹¤¹¤ë´Ö³Ö»þ´Ö¡Ê0.001ÉÃ¡Ë #define time 190¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //¹õÀþ¤ò²£ÃǤ¹¤ë»þ´Ö
sub go_fwd() { OnFwd(OUT_AC,speed); }¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//Á°¿Ê
sub turn_left() { OnFwd(OUT_A,speed);OnRev(OUT_C,speed); }¡¡//º¸Àû²ó
sub turn_right() { OnRev(OUT_A,speed);OnFwd(OUT_C,speed); }¡¡//±¦Àû²ó
sub short_break() { Off(OUT_AC);Wait(700); }¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//°ì»þÄä»ß
sub cross() { OnFwd(OUT_AC,speed);Wait(time); }¡¡¡¡¡¡¡¡ //¹õÀþ¤ò²£ÃÇ
task main() { SetSensorLight(S1);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //¥»¥ó¥µ£±¤Ë¸÷¥»¥ó¥µ¤òÀßÃÖ int nOnline=0;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¥»¥ó¥µ¤¬¹õÀþ¤ËÈ¿±þ¤·¤¿²ó¿ô¤ò£°¤ËÄêµÁ int nCrossline=0;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //¹õÀþ¤Ë²£ÃǤ·¤¿²ó¿ô¤ò£°¤ËÄêµÁ
go_fwd();¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //¹õÀþ¤Ë¤Ê¤ë¤Þ¤ÇÁ°¿Ê until(SENSOR_1 <= Line);
short_break();¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//°ì»þÄä»ß¤·¤Æ¤«¤é¹õÀþ¤ò²£ÃǤ·¤Æ°ì»þÄä»ß
cross();
short_break();
while(nCrossline < 4){¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//£³²ó¹õÀþ¤ò²£ÃǤ¹¤ë´Ö¤Ï²¼µ¤ò·«¤êÊÖ¤¹ while(nOnline < Max){¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //¡¹õ¤Îǧ¼±¤¬ºÇÂçÃͤè¤ê¾®¤µ¤¤´Ö¤Ï²¼µ¤ò·«¤êÊÖ¤¹ if(SENSOR_1 < Line-15){¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //¥»¥ó¥µ¡ã¶³¦ÃÍ-15¤Çº¸Àû²ó¡¦¹õ¤Îǧ¼±¤¬£±²óÁý¤¨¤ë turn_left();nOnline++; }else{ if(SENSOR_1 < Line-7){¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¶³¦ÃÍ-15<¥»¥ó¥µ<¶³¦ÃÍ-7¤Çº¸Àû²ó turn_left(); }else if(SENSOR_1 < Line+7){¡¡¡¡¡¡¡¡¡¡¡¡//¶³¦ÃÍ-7<¥»¥ó¥µ<¶³¦ÃÍ+7¤ÇÁ°¿Ê go_fwd(); }else{ turn_right();}¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¤½¤ì°Ê³°¡Ê¶³¦ÃÍ+7<¥»¥ó¥µ¡Ë¤Ç±¦Àû²ó nOnline=0; }¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¹õ¤Îǧ¼±¤ò¥ê¥»¥Ã¥È Wait(step); }¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //¡¤ò0.001Éäδֳ֤ǹԤ¦ cross();¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¹õ¤Îǧ¼±¤¬ºÇÂçÃͰʾå¤Ë¤Ê¤Ã¤¿¤é¹õÀþ¤ò²£ÃÇ short_break(); nOnline=0;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¹õ¤Îǧ¼±¤ò¥ê¥»¥Ã¥È nCrossline++;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //¹õÀþ¤ò²£ÃǤ·¤¿²ó¿ô¤ò£±²óÁý¤ä¤¹ if(nCrossline < 2){¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //²£ÃDzó¿ô¤¬£²²ó¤è¤ê¾®¤µ¤¤¡Ê£±²ó¡Ë»þ¢ OnFwd(OUT_AC,speed);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¾¯¤·Á°¿Ê¤·±¦Àû²ó¤·¤Æ¤«¤é°ì»þÄä»ß Wait(200); turn_right(); Wait(180); short_break(); OnFwd(OUT_B,28);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¥Ð¡¼¤ò²¼¤í¤¹ Wait(680); Off(OUT_B); } } OnRev(OUT_B,28);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//²£ÃÇ£´²óÌܤˤʤë»þ¥Ð¡¼¤ò¾å¤²¤ÆÁ´Ää»ß Wait(680); Off(OUT_ABC); }
º£²ó¤Î²ÝÂê¤Ç¤Ï¼ÖÂΤòºî¤ë¤³¤È¤è¤ê¤â¥×¥í¥°¥é¥à¤ò¥¼¥í¤«¤éºî¤ë¤Û¤¦¤¬ÂçÊѤǤ·¤¿¡£º£¤Þ¤Ç½¬¤Ã¤¿¥×¥í¥°¥é¥à¤Ç¡¢Ç¡²¿¤Ë¤·¤Æ¼«Ê¬¤ÎÁÛÁü¤·¤¿Æ°ºî¤òɽ¤¹¤«¤¬Æñ¤·¤«¤Ã¤¿¤Ç¤¹¡£Æä˥С¼¤Î¾å¤²²¼¤²¤Î¥¿¥¤¥ß¥ó¥°¤Ë¿¤¯»þ´Ö¤òÈñ¤ä¤·¤Þ¤·¤¿¡£¤É¤³¤Ëµå¤¬¤¢¤Ã¤Æ¤É¤³¤Ç½ª¤ï¤ê¤Ê¤Î¤«¡¢¤Îɽ¸½¤ò»Ï¤á¤Ï»þ´Ö¤òÍѤ¤¤Æ¤ä¤í¤¦¤È¤·¤Þ¤·¤¿¡£¤·¤«¤·¤³¤ÎÊýË¡¤Ç¤Ï¥Ð¥Ã¥Æ¥ê¡¼¤ä¾²¤Î´Ä¶¼¡Âè¤ÇÀßÄꤷľ¤µ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£¤½¤Î¤¿¤á²£ÃDzó¿ô¤Î¥«¥¦¥ó¥È¤Èif¤òÍѤ¤¤Æ¥¿¥¤¥ß¥ó¥°¤ò·è¤á¤Þ¤·¤¿¡£½ÐÍ褿¤éĶ²»ÇÈ¥»¥ó¥µ¤ò»È¤Ã¤¿¥×¥í¥°¥é¥ß¥ó¥°¤ËÄ©À路¤¿¤¤¤È»×¤¤¤Þ¤¹¡£