Ìܼ¡
ÀִݤÎÃæ¤ËÊÒÌ̤ϴ̤òÃÖ¤¤¤Æ¡¤¤â¤¦ÊÒÌ̤˴̤ξå¤Ë¥Ü¡¼¥ë¤ò¾è¤»¤¿¾õÂÖ¤ÇÀßÃÖ¤¹¤ë¡¥ÊÒÌ̤˾è¤Ã¤Æ¤¤¤ë¶õ¤´Ì¤ò¤â¤¦ÊÒÌ̤ζõ¤´Ì¤Ø±¿¤Ö¡¥A¤Þ¤¿¤ÏA'¤«¤é¥¹¥¿¡¼¥È¤·¡¤¥Ü¡¼¥ë¤ò´Ì¤Î¾å¤ËÃÖ¤¯¤³¤È¤Ç8ÅÀ²Ã»»¤µ¤ì¡¤¤¹¤Ù¤Æ±¿¤Ó½ª¤¨¤¿¤é½ªÎ»¡¥
¾Ü¤·¤¤¥ë¡¼¥ë¤Ï2019b/Mission3¤ò»²¾È¡¥
´Ì¤ò¤È¤ëµ¡¹½¤È´Ì¤Ë¾è¤»¤ëµ¡¹½¤ò¹Í¤¨¤ëɬÍפ¬¤¢¤ë¡¥¤Þ¤¿¡¤¥í¥Ü¥Ã¥È¤òÆó¤Ä¤Ë¤¹¤ë¤«°ì¤Ä¤Ë¤¹¤ë¤«¤â¤½¤ì¤Ë±þ¤¸¤Æ¹Í¤¨¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡¥
¥í¥Ü¥Ã¥È¤òÆ°¤«¤¹µ¡¹½¤Ï¾å¤Î¼Ì¿¿¤Î¤è¤¦¤Ë¥Ü¡¼¥ë¤ò¤Ä¤«¤àµ¡¹½¡¤¥Ü¡¼¥ë¤ò¤¿¤á¤Æ¤ª¤¯¶¶¡¤¥Ü¡¼¥ë¤ò²¡¤¹¤Î¤Ë»È¤¦¹üÁȤߤ«¤é¤Ê¤Ã¤Æ¤¤¤ë¡¥¸å¤í¤Ï½é¤á¥¿¥¤¥ä¤ò¤Ä¤±¤º¡¤Æ͵¯Êª¤Ç»Ù¤¨¤ë·Á¤Ç¤¢¤Ã¤¿¤¬¡¤Ë໤¤¬Â礤½¤¦¤À¤Ã¤¿¤Î¤Ç¥¿¥¤¥ä¤ò¤Ä¤±¤¿¡¥¥é¥¤¥ó¥È¥ì¡¼¥¹¤Ï¡¤½é¤á¸÷¥»¥ó¥µ¤òÆó¤Ä»È¤Ã¤Æ¥×¥í¥°¥é¥à¤òºî¤Ã¤Æ¤¤¤¿¤¬¡¤¤¦¤Þ¤¯ºî¤ë¤³¤È¤¬¤Ç¤¤Ê¤«¤Ã¤¿¤Î¤Ç´ðËÜ°ì¤Ä¤Î¸÷¥»¥ó¥µ¤ò»È¤¤¸òº¹ÅÀǧ¼±¤ò¤¹¤ë¤È¤¤À¤±Æó¤Ä»È¤¦¤è¤¦¤Ë¤·¤¿¡¥¾Ü¤·¤¯¤Ï¡¤¥é¥¤¥ó¥È¥ì¡¼¥¹¤Î¥×¥í¥°¥é¥à¤ÇÀâÌÀ¤·¤Þ¤¹¡¥´Ì¤Î°ÌÃ֤ϡ¤¹üÁȤߤËÉÕ¤±¤¿Ä¶²»ÇÈ¥»¥ó¥µ¤Ç´¶ÃΤ¹¤ë¤è¤¦¤Ê»ÅÁȤߤˤ·¤¿¡¥
½é¤á¤Ë¹Í¤¨¤¿¤Î¤¬¥¢¡¼¥à¤Îµ¡¹½¤Ç¥Ü¡¼¥ë¤ò¥¥ã¥Ã¥Á¤¹¤ëÊýË¡¤Ç¤¢¤Ã¤¿¤¬¡¤¤â¤Ã¤È¹©Éפ·¤¿¤È¤êÊý¤¬¤è¤¤¤È¤¤¤¦¤³¤È¤Ç²¼¤Î¿Þ¤Î¤è¤¦¤ÊÎØ¥´¥à¤ò»È¤Ã¤¿¤È¤êÊý¤Ë¤·¤¿¡¥
¥Ü¡¼¥ë¤ò¤È¤ë¤Ë¤Ï¡¤¥â¡¼¥¿¤ò¼´¤Ë¤·¤ÆÎØ¥´¥à¤ò³Ý¤±¤¿ÄϤàÉôʬ¤ò¥Ü¡¼¥ë¤Î¾å¤Ë¹ß¤¹¡¥¤½¤·¤Æ¡¤¥Ü¡¼¥ë¤ò¤Î¤Ã¤±¤¿¾õÂ֤ǡ¤¤È¤ëµ¡¹½¤ò180Åٶ᤯²óž¤µ¤»¸å¤í¤Ë¤¢¤ë¥Ü¡¼¥ë¤ò¤¿¤á¤ë¶¶¤Ëž¤¬¤·¤Æ¤ª¤¯ÊýË¡¤Ç¤¢¤ë¡¥¤³¤Îµ¡¹½¤ÎÎɤ¤¤È¤³¤í¤Ï¡¤µ¡ÂΤ¬´Ì¤ÎÁ°¤è¤ê¾¯¤·¤º¤ì¤Æ»ß¤Þ¤Ã¤¿¤È¤·¤Æ¤âÎØ¥´¥à¤Î¿½ÌÀ¤Ë¤è¤ê¥Ü¡¼¥ë¤ò¥¥ã¥Ã¥Á¤·¤Æ¤¯¤ì¤ë¤È¤³¤í¤Ç¤¹¡¥¤³¤ì¤Ë¤è¤ê¡¤¥é¥¤¥ó¥È¥ì¡¼¥¹¤Ë¤«¤Ê¤ê¤ÎÀµ³ÎÀ¤òµá¤á¤Ê¤¯¤Æ¤âºÑ¤à¤³¤È¤Ë¤Ê¤ê¡¤¥é¥¤¥ó¥È¥ì¡¼¥¹¤Î¥×¥í¥°¥é¥à¤¬´Êñ¤Ë¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡¥
½é¤á¤Ï¡¤¼ÖÂΤÎÁ°¤Ç¥Ü¡¼¥ë¤ò¥¥ã¥Ã¥Á¤·¤Æ¸å¤í¤Ç¥Ü¡¼¥ë¤òÃÖ¤³¤¦¤È¹Í¤¨¤Æ¤¤¤¿¤¬¡¤¥é¥¤¥ó¥È¥ì¡¼¥¹¤ÎÊýË¡¤¬Æñ¤·¤¯¤Ê¤Ã¤¿¤ê¡¤¼ÖÂΤ¬Â礤¯¤Ê¤ê¤¹¤®¤¿¤ê¤È¤¤¤í¤¤¤í¤ÈÂçÊѤʤ³¤È¤¬Â¿¤¤¤Î¤Ç¡¤²¼¤Î¿Þ¤Î¤è¤¦¤Ë¥Ü¡¼¥ë¤Î¥¥ã¥Ã¥Á¤ÈÃÖ¤¯Æ°ºî¤ò¤É¤Á¤é¤âÁ°¤Ç¹Ô¤¦µ¡¹½¤òºî¤Ã¤¿¡¥
¼Ì¿¿¤Î¡¤Î¤è¤¦¤Ë¸å¤í¤Ë¥â¡¼¥¿¤Ç²¼¤²¤ë¤È¡¤¢¤Î¤è¤¦¤Ë¥Ü¡¼¥ë¤ò¤¿¤á¤Æ¤ª¤¯¶¶¤¬»Ù¤¨¤ÎËÀ¤¬²¼¤¬¤ë¤³¤È¤Ç²¼¤¬¤ë¡¤¤½¤·¤Æ£¤Î¤è¤¦¤ËÄϤൡ¹½¤ò´Ì¤Î¾å¤Ë²¼¤²¤ë¤³¤È¤Ë¤è¤Ã¤Æ¥Ü¡¼¥ë¤¬°ì»þŪ¤Ë´Ì¤Î¾å¤Ë¾è¤ê¡¤¤â¤¦°ì¤Ä¤Î¼Ì¿¿¤Î¤è¤¦¤Ë¡¤Ç²¼¤²¤¿¹üÁȤߤÇÎØ¥´¥à¤Ë°ú¤Ã¤«¤«¤Ã¤Æ¤¤¤ë¥Ü¡¼¥ë¤ò²¡¤·¤ÆÍî¤È¤¹¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡¥¤³¤Î»þ¡¤¥Ü¡¼¥ë¤ò¶¶¤«¤é¤È¤ëµ¡¹½¤Ë¤¦¤Þ¤¯±¿¤Ö¤¿¤á¤Ë¶¶¤Ë²¼¤Î¤è¤¦¤Ê¹©Éפ¬»Ü¤·¤Æ¤¤¤ë¡¥
¾å¤Î¼Ì¿¿¤Î¤è¤¦¤Ë¡¤¶¶¤È¥Ü¡¼¥ë¤ò¤È¤ëµ¡¹½¤Î´Ö¤Ë¤Ï¥¹¥È¥Ã¥Ñ¡¼¤¬¤Ä¤¤¤Æ¤¤¤ë¡¥»ÅÁȤߤÏÎ٤οޤò»²¹Í¤Ë¤·¤Æ¤Û¤·¤¤¡¥¶¶¤Î½é´ü°ÌÃ֤Ͼ¯¤··¹¤¤¤Æ¤ª¤ê¡¤¥Ü¡¼¥ë¤Ï²¼¤Ë¤¿¤Þ¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡¥¤È¤ëµ¡¹½¤¬²¼¤ê¤ë¤ÈƱ»þ¤Ë¥¹¥È¥Ã¥Ñ¡¼¤Ï¾å¤¬¤ê¡¤¤½¤Î¤¿¤Þ¤Ã¤¿¥Ü¡¼¥ë¤ò°ì¤Ä¤À¤±¤¹¤¯¤¤¾å¤²¤Æ¤È¤ëµ¡¹½¤Ëž¤¬¤·¤Æ±¿¤Ö¡¥¤Þ¤¿¡¤¥¹¥È¥Ã¥Ñ¡¼¤¬¾å¤¬¤ë¤³¤È¤Ë¤è¤ê¸å¤í¤Ë¤¢¤ë¥Ü¡¼¥ë¤¬¤È¤ëµ¡¹½¤ËÍî¤Á¤Ê¤¤¤è¤¦¤Ë¤»¤»ß¤á¤ëÌò³ä¤â·ó¤Í¤Æ¤¤¤ë¡¥¤Þ¤¿¡¤¶¶¤¬½é´ü°ÌÃ֤λþ¤Ë·¹¤¤¤Æ¤ª¤ê¡¤¥Ü¡¼¥ë¤¬¼«Á³¤Ë¥¹¥È¥Ã¥Ñ¡¼¤Î¾å¤Ë¤¿¤Þ¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡¥
#define turn_right OnFwd(OUT_B,38); OnFwd(OUT_C,-25);//±¦ÀÞ #define turn_left OnFwd(OUT_C,38); OnFwd(OUT_B,-25);//º¸ÀÞ #define around_right OnFwd(OUT_B,43); OnFwd(OUT_C,-50);//±¦Àû²ó #define around_left OnFwd(OUT_C,35); OnFwd(OUT_B,-25);//º¸Àû²ó #define go_straight OnFwdSync(OUT_BC,43,0);//ľ¿Ê #define black 25 //¹õ¤ÎÃͤÏ25 #define gray 46 //¥°¥ì¡¼¤ÎÃͤÏ46 #define white 52 //Çò¤ÎÃͤÏ52 #define INBOX MAILBOX1 //¼õ¿®ÍѤΥ᡼¥ë¥Ü¥Ã¥¯¥¹ #define c 13 //¥â¡¼¥¿BC¤ò»ß¤Þ¤ë¥á¥Ã¥»
¾å¤Î¤è¤¦¤Ë¡¤¥í¥Ü¥Ã¥È¤ÎÆ°¤¤È¥é¥¤¥ó¥È¥ì¡¼¥¹»þ¤ÎïçÃͤÎÃͤòÀßÄꤹ¤ë¡¥
void follow_line(long tmin,long tmax) //º¸¥é¥¤¥ó¥È¥ì¡¼¥¹ { SetSensorLight(S1); //º¸¤Î¸÷¥»¥ó¥µ¡¼ SetSensorLight(S2); //±¦¤Î¸÷¥»¥ó¥µ¡¼ long t = CurrentTick(); long t_start = CurrentTick(); while((CurrentTick()-t<70 || CurrentTick()-t_start<tmin) && (CurrentTick()- t_start<tmax) && (msg != c)){ ReceiveRemoteNumber(INBOX,true,msg);//¥á¥Ã¥»¤¬Á÷¤é¤ì¤Æ¤¤¤Ê¤¤¤« if(SENSOR_1<black){ if(SENSOR_2<black){ go_straight;} else{ turn_left; t = CurrentTick(); } } else if(SENSOR_1<gray){ go_straight; t = CurrentTick();} else if(SENSOR_1<white){ turn_right; t = CurrentTick(); } else if(SENSOR_1>=white){ around_right; t = CurrentTick();} } Off(OUT_BC); Wait(1000); } void line_follow(long tmin,long tmax) //±¦¥é¥¤¥ó¥È¥ì¡¼¥¹ { SetSensorLight(S1); //º¸¤Î¸÷¥»¥ó¥µ¡¼ SetSensorLight(S2); //±¦¤Î¸÷¥»¥ó¥µ¡¼ long t = CurrentTick(); long t_start = CurrentTick(); while((CurrentTick()-t<70 || CurrentTick()-t_start<tmin) && (CurrentTick()- t_start<tmax) && (msg != c)){ ReceiveRemoteNumber(INBOX,true,msg); if(SENSOR_2<black){ if(SENSOR_1<black){ go_straight;} else{ turn_right; t = CurrentTick(); } } else if(SENSOR_2<gray){ go_straight; t = CurrentTick();} else if(SENSOR_2<white){ turn_left; t = CurrentTick(); } else if(SENSOR_1>=white){ around_left; t = CurrentTick();} } Off(OUT_BC); Wait(1000); }
¥é¥¤¥ó¥È¥ì¡¼¥¹¤Î¥×¥í¥°¥é¥à¤Ï¡¤¤Û¤È¤ó¤É²ÝÂê2¤ÈƱ¤¸¤Ç¤¢¤ë¡¥while¤Î·Ñ³¾ò·ï¤Ëmsg¤È¤¤¤¦¥á¥Ã¥»¡¼¥¸¤ò¼õ¤±¼è¤ë´Ø¿ô¤ËĶ²»ÇÈ¥»¥ó¥µ¤¬´Ì¤òǧ¼±¤·¤¿¤È¤¤ËÁ÷¤é¤ì¤ëc¤È¤¤¤¦¥â¡¼¥¿BC¤¬»ß¤Þ¤ë¤è¤¦¤Ê¥á¥Ã¥»¤¬Á÷¤é¤ì¤ë¤Þ¤Ç¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò³¤±¤ë¤È¤¤¤¦¾ò·ï¤òÉÕ¤±¤¯¤ï¤¨¤¿¡¥¤Þ¤¿¡¤¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò³«»Ï¤¹¤ë¤È¤¤Ë¤Ïɬ¤ºc¤È¤¤¤¦¥á¥Ã¥»¤¬¤ò·«¤é¤ì¤Æ¤¤¤Ê¤¤¤«³Îǧ¤¹¤ë¤è¤¦¤Ë¤·¤¿¡¥¥í¥Ü¥Ã¥È¤Îµ¡ÂΤΤȤ³¤í¤Ç¤âÀâÌÀ¤·¤¿¤¬¡¤½é¤á¤Ï¸÷¥»¥ó¥µ¤òÆó¤ÄÉÕ¤±¤Æ¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤·¤è¤¦¤È»î¤ß¤¿¤¬¤Ê¤«¤Ê¤«¤¦¤Þ¤¯¤¤¤«¤Ê¤«¤Ã¤¿¤Î¤Ç´ðËܤϤҤȤĤθ÷¥»¥ó¥µ¤Ç¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤·¸òº¹ÅÀǧ¼±¤Î»þ¤À¤±Æó¤Ä»È¤Ã¤¿¡¥¸òº¹ÅÀǧ¼±¤Î»ÅÁȤߤÏñ½ã¤Ë¡¤Æó¤Ä¤Î¸÷¥»¥ó¥µ¤¬¹õ¤ÎïçÃͤò¤È¤Ã¤¿¤È¤¤Ë¸òº¹ÅÀ¤Èǧ¼±¤¹¤ë¤è¤¦¤Ë¤·¤¿¡¥
¤³¤³¤Ç»È¤¦¡¤Ê¸»ú¤ÎÃÍ¡¥
#define P 40 #define I 40 #define D 90 #define speed2 40 long d; long wa = 0;
¥é¥¤¥ó¥È¥ì¡¼¥¹¤Î½é¤á¤Ë¥¢¡¼¥à¤Î½é´ü°ÌÃÖ¤ò·è¤á¤Æ¤ª¤¯¡¥¤³¤³¤ò´ð½à¤Ë¤·¤Æ¡¤¥¢¡¼¥à¤ÎÆ°¤¯Æ°ºî¤ò·è¤á¤ë¡¥¤³¤³¤ÇÍѤ¤¤¿¡¤RotateMotorPID¤ÏÆ°¤¯³ÑÅÙ¤òÀµ³Î¤Ë¤¹¤ë¤¿¤á¤ËÍѤ¤¤Æ¤¤¤ë¡¥
void first_set() //¥¢¡¼¥à¤ò½é´ü°ÌÃ֤ˤ¹¤ë { Wait(1000); OnFwd(OUT_B,speed2); OnFwd(OUT_C,speed2); Wait(2000); Off(OUT_BC); RotateMotorPID(OUT_C,-speed2,60,P,I,D); RotateMotorPID(OUT_B,speed2,-40,P,I,D); }
¤Þ¤¿¡¤Ä¶²»ÇÈ¥»¥ó¥µ¤ÎÃͤ¬ÊѲ½¤·¤Æ¤âÂбþ¤Ç¤¤ë¤è¤¦¤Ë50²ó¾²¤È¤Îµ÷Î¥¤ò¬¤Ã¤Æ¡¤¤½¤ÎÊ¿¶Ñ¤ò¥»¥ó¥µ¤Îµ÷Î¥¤È¤·¤ÆÀßÄꤹ¤ë¡¥
void search() //Ķ²»ÇÈ¥»¥ó¥µ¤ÎÃͤò³Îǧ¤¹¤ë { SetSensorLowspeed(S4);//ü»Ò4¤ËĶ²»ÇÈ¥»¥ó¥µ¡¼ while(i < 51){ wa = wa + SensorUS(S4); i++; } d = wa / i; //£µ£°²ó¬¤Ã¤¿¤Î¾²¤È¤ÎÊ¿¶Ñµ÷Î¥ }
¤³¤ì¤¬¡¤¥Ü¡¼¥ë¥¥ã¥Ã¥Á¤Î¥×¥í¥°¥é¥à¤Ç¤¢¤ë¡¥²¼¤Î3¹Ô¤Î¥×¥í¥°¥é¥à¤Ç½é´ü°ÌÃÖ¤ËÌᤷ¤Æ¤¤¤ë¡¥
void ball_catch() { Wait(100); OnFwd(OUT_B,25);//¤È¤ëµ¡¹½¤ò²¼¤Þ¤Ç²¼¤²¤ë Wait(1000); Off(OUT_B); OnFwd(OUT_C,40);Wait(1000);//Ķ²»ÇÈ¥»¥ó¥µ¤Î¤Ä¤¤¤Æ¤¤¤ë¹üÁȤߤò¸Â³¦¤Þ¤Ç²¼¤²¤ë Off(OUT_C); OnFwd(OUT_B,-20);Wait(2000);//¤È¤ëµ¡¹½¤ò´Ì¤Î¾å¤ËÃÖ¤¯ Off(OUT_B); RotateMotor(OUT_B,20,150);//¤È¤ëµ¡¹½¤ò¸å¤í¤ËÌᤷ¤Æ¥Ü¡¼¥ë¤ò¶¶¤ËÍî¤È¤¹ Off(OUT_B); OnFwd(OUT_C,-35);Wait(700); Off(OUT_BC); RotateMotor(OUT_B,-20,30); }
¤³¤ì¤¬¡¤¥Ü¡¼¥ë¤ò´Ì¤Ë¾è¤»¤ë¥×¥í¥°¥é¥à¤Ç¤¢¤ë¡¥¥Ü¡¼¥ë¤¬´°Á´¤Ë¥¹¥È¥Ã¥Ñ¡¼¤Þ¤Çž¤¬¤ë¤Þ¤ÇÂԤĻþ´Ö¤Ï¥Ü¡¼¥ë¤¬ºÇ¸å¤Î°ì¸Ä¤Î»þ¤Ç¤âÂбþ¤Ç¤¤ë¤è¤¦¤ËŤ¯¤È¤Ã¤Æ¤¢¤ë¡¥
#define speed1 20 //¥¹¥Ô¡¼¥É
void put_ball() //¥Ü¡¼¥ë¤òÃÖ¤¯ { RotateMotor(OUT_B,speed1,30);//¤È¤ëµ¡¹½¤ò¾¯¤·²¼¤²¤Æ¥¹¥È¥Ã¥Ñ¡¼¤Ë¥Ü¡¼¥ë¤¬°ú¤Ã¤«¤«¤ê¤ä¤¹¤¯¤¹¤ë OnFwd(OUT_C,2 * speed1);//Ķ²»ÇÈ¥»¥ó¥µ¤Î¤Ä¤¤¤¿¹üÁȤߤò¸Â³¦¤Þ¤Ç²¼¤²¤ë Wait(1000); RotateMotor(OUT_C,speed1,-5);//¶¶¤Î³ÑÅÙ¤ò¾¯¤··¹¤±¤Æ¥Ü¡¼¥ë¤ò¥¹¥È¥Ã¥Ñ¡¼¤Î¾å¤ËÍè¤ë¤è¤¦¤Ë¤¹¤ë Wait(8000);//¥Ü¡¼¥ë¤¬´°Á´¤Ëž¤¬¤ë¤Þ¤ÇÂÔ¤Ä RotateMotor(OUT_B,speed1,-120);//¶õ¤´Ì¤Î¾å¤Ë¤È¤ëµ¡¹½¤ò¥»¥Ã¥È Wait(600); RotateMotor(OUT_C,speed1,-30); //Ķ²»ÇÈ¥»¥ó¥µ¤Î¤Ä¤¤¤¿¹üÁȤߤǥܡ¼¥ë¤òÆͤ¯ Wait(400); RotateMotor(OUT_B,speed1 + 10,50); //¥»¥ó¥µ¤ò²¼¤í¤·¤¿¤Þ¤Þ¤È¤ëµ¡¹½¤ò¾å¤²¡¤¥Ü¡¼¥ë¤òÍî¤È¤¹ Wait(500); OnFwd(OUT_C,2 * speed1);//¤³¤³¤«¤é¡¤½é´ü°ÌÃÖ¤ËÌ᤹¥×¥í¥°¥é¥à Wait(1000); RotateMotor(OUT_B,speed1,70); RotateMotor(OUT_C,speed1,-40); RotateMotor(OUT_B,speed1,-30); }
¥Ü¡¼¥ë¤ò¤È¤Ã¤¿¸å¤Ë´Ì¤ò¤É¤«¤¹Æ°ºî¤Î¥×¥í¥°¥é¥à¡¥OnFwdSync¤ò»È¤¦¤³¤È¤ÇÀµ³Î¤Ë¿¿¤Ãľ¤°¿Ê¤à¤è¤¦¤Ë¤·¤¿¡¥
void poi(long ts, long tb) { OnFwdSync(OUT_BC,40,0); //B¤ÈC¤Î¥Ñ¥ï¡¼¤òƱ¤¸¤Ë¤·¤Æľ¿Ê¤µ¤»¤ë Wait(ts); Off(OUT_BC); OnFwdSync(OUT_BC,-40,0); Wait(tb); Off(OUT_BC); }
¥¹¥ì¥¤¥Ö¤Ç¤ÎÆ°ºî¤¬´°Î»¤¹¤ë¤Þ¤Ç¡¤¥Þ¥¹¥¿¡¼¤ÎÆ°¤¤ò»ß¤á¤ë¥×¥í¥°¥é¥à¡¥b¤¬12¤È¤¤¤¦ÃͤǤ¢¤ê¡¤¥¹¥ì¥¤¥Ö¦¤«¤é£â¤È¤¤¤¦¥á¥Ã¥»¤¬Á÷¤é¤ì¤ë¤Þ¤Ç·«¤êÊÖ¤¹¡¥
#define b 12 void wait() { while(b != 12){ ReceiveRemoteNumber(INBOX,true,b);} b = b - 12; }
¤³¤³¤Ç¡¤ÍѤ¤¤ëʸ»ú¤ÎÃÍ¡¥
#define OUTBOX MAILBOX2 //Á÷¿®¿®ÍѤΥ᡼¥ë¥Ü¥Ã¥¯¥¹ #define INBOX MAILBOX1 //¼õ¿®ÍѤΥ᡼¥ë¥Ü¥Ã¥¯¥¹ #define a 11 //tmin¤¬0¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò³«»Ï¤¹¤ë¥á¥Ã¥» #define b 12 //¥Ü¡¼¥ë¥¥ã¥Ã¥Á¤Î¥×¥í¥°¥é¥à¤òµ¯Æ°¤µ¤»¤ë¥á¥Ã¥» #define c 13 //¥â¡¼¥¿BC¤ò»ß¤Þ¤ë¥á¥Ã¥» #define f 15 //´Ì¤ò¤É¤«¤¹¥á¥Ã¥» #define g 17 //tmin¤¬5000¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò³«»Ï¤¹¤ë¥á¥Ã¥» #define j 18 //º¸ÀޤΥá¥Ã¥» #define k 19 //±¦ÀޤΥá¥Ã¥» #difine l 20 //¥Ð¥Ã¥¯¤Î¥á¥Ã¥» #define m 21 //±¦¥È¥ì¡¼¥¹¤Î¥á¥Ã¥» int msg; //¼õ¤±¼è¤Ã¤¿Ãͤò³ÊǼ¤¹¤ëÊÑ¿ô long t = 0;
[¥Þ¥¹¥¿¡¼¤Î¥×¥í¥°¥é¥à]
¥Ü¡¼¥ë¤ò¤È¤ë¤È¤³¤í¤Ï¡¤·«¤êÊÖ¤·¤ò»È¤Ã¤Æ´Êñ¤Ë¤·¤è¤¦¤È»×¤Ã¤¿¤¬¡¤¹Í¤¨¤ë»þ´Ö¤¬¤Ê¤«¤Ã¤¿¤¿¤áŤ¯¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¡¥ÀáÌܤÎÆ°ºî¤Î¸å¤Ï²»¤¬ÌĤë¤è¤¦¤Ë¤·¤Æ¤¤¤ë¡¥¥á¥Ã¥»¤òÁ÷¤Ã¤ÆÆ°ºî¤òÂ¥¤¹¤è¤¦¤Ê»ÅÁȤߤˤ·¤¿¤¬¤´¤Á¤ã¤´¤Á¤ã¤·¤ÆŤ¯¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¡¥
task main() { SetSensorLowspeed(S4);//ü»Ò4¤ËĶ²»ÇÈ¥»¥ó¥µ¡¼ first_set(); search(); PlaySound(SOUND_CLICK); //£±¸ÄÌܤΥܡ¼¥ë¤ò¤È¤ë SendRemoteNumber(CONN,OUTBOX,a); while(SensorUS(S4) > (d*3/4)){ t++;}//´Ì¤È¤Îµ÷Î¥¤¬Â¬¤Ã¤¿µ÷Î¥¤Î3/4¤ÎÃͤˤʤë¤Þ¤ÇÂÔ¤Ä PlaySound(SOUND_CLICK); SendRemoteNumber(CONN,OUTBOX,c);//while¤«¤éÈ´¤±½Ð¤»¤¿¤é¡¤¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò½ª¤ï¤ê¤Ë¤¹¤ë¥á¥Ã¥»¤òÁ÷¤ë wait(); ball_catch(); SendRemoteNumber(CONN,OUTBOX,f);//´Ì¤ò±ó¤¯¤Ø¤É¤«¤¹ wait(); //£²¸ÄÌܤΥܡ¼¥ë¤ò¤È¤ë search(); PlaySound(SOUND_CLICK); SendRemoteNumber(CONN,OUTBOX,g);//E¤Þ¤Ç¥é¥¤¥ó¥È¥ì¡¼¥¹ while(SensorUS(S4) > (d*3/4)){ t++;} PlaySound(SOUND_CLICK); SendRemoteNumber(CONN,OUTBOX,c); wait(); ball_catch(); SendRemoteNumber(CONN,OUTBOX,f); wait(); //£³¸ÄÌܤΥܡ¼¥ë¤ò¤È¤ë search(); PlaySound(SOUND_CLICK); SendRemoteNumber(CONN,OUTBOX,g);//F¤Þ¤Ç¥é¥¤¥ó¥È¥ì¡¼¥¹ while(SensorUS(S4) > (d*3/4)){ t++;} PlaySound(SOUND_CLICK); SendRemoteNumber(CONN,OUTBOX,c); wait(); ball_catch(); SendRemoteNumber(CONN,OUTBOX,f); wait(); SendRemoteNumber(CONN,OUTBOX,a);//F-G wait(); SendRemoteNumber(CONN,OUTBOX,j);//º¸ÀÞ wait(); PlaySound(SOUND_CLICK); SendRemoteNumber(CONN,OUTBOX,a);//G-H wait(); SendRemoteNumber(CONN,OUTBOX,j);//º¸ÀÞ PlaySound(SOUND_CLICK); SendRemoteNumber(CONN,OUTBOX,m);//H-H' wait(); SendRemoteNumber(CONN,OUTBOX,k);//±¦ÀÞ //£±¸ÄÌܤΥܡ¼¥ë¤òÃÖ¤¯ SendRemoteNumber(CONN,OUTBOX,m);//H'-G' wait(); SendRemoteNumber(CONN,OUTBOX,k);//±¦ÀÞ wait(); SendRemoteNumber(CONN,OUTBOX,m);//G'-F' while(SensorUS(S4) > (d*3/4)){ t++;} PlaySound(SOUND_CLICK); SendRemoteNumber(CONN,OUTBOX,c);//¥é¥¤¥ó¥È¥ì¡¼¥¹½ªÎ» wait(); put_ball(); //£²¸ÄÌܤΥܡ¼¥ë¤òÃÖ¤¯ SendRemoteNumber(CONN,OUTBOX,l);//G'¤Þ¤Ç¥Ð¥Ã¥¯ wait(); SendRemoteNumber(CONN,OUTBOX,j);//º¸ÀÞ wait(); SendRemoteNumber(CONN,OUTBOX,m);//G'-D' wait(); SendRemoteNumber(CONN,OUTBOX,k);//±¦ÀÞ wait(); SendRemoteNumber(CONN,OUTBOX,m);//D'-E' while(SensorUS(S4) > (d*3/4)){ t++;} PlaySound(SOUND_CLICK); SendRemoteNumber(CONN,OUTBOX,c);//¥é¥¤¥ó¥È¥ì¡¼¥¹½ªÎ» wait(); put_ball(); //3¸ÄÌܤΥܡ¼¥ë¤òÃÖ¤¯ SendRemoteNumber(CONN,OUTBOX,l);//¥Ð¥Ã¥¯ wait(); SendRemoteNumber(CONN,OUTBOX,j);//º¸ÀÞ wait(); SendRemoteNumber(CONN,OUTBOX,m);//D'-C' while(SensorUS(S4) > (d*3/4)){ t++;} PlaySound(SOUND_CLICK); SendRemoteNumber(CONN,OUTBOX,c);//¥é¥¤¥ó¥È¥ì¡¼¥¹½ªÎ» wait(); put_ball(); //½ªÎ»¡¡ }
[¥¹¥ì¥¤¥Ö¤Î¥×¥í¥°¥é¥à]
´ðËܤϡ¤¥Þ¥¹¥¿¡¼¤«¤é¥á¥Ã¥»¤ò¼õ¤±¼è¤ê¡¤¤½¤Î¥á¥Ã¥»¤Ë¹ç¤Ã¤¿Æ°ºî¤ò¤·¤Æ¤«¤é¥Þ¥¹¥¿¡¼¤Ë½ªÎ»¥á¥Ã¥»¤òÁ÷¤ëή¤ì¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡¥
task main() { while(true){ ReceiveRemoteNumber(INBOX,true,msg); if(msg == a){ //º¸¥é¥¤¥ó¥È¥ì¡¼¥¹ follow_line(0,400000); SendResponseNumber(OUTBOX,b); } if(msg == f){//´Ì¤ò°ÜÆ° poi(3000,3000); SendResponseNumber(OUTBOX,b); } if(msg == g){//º¸¥é¥¤¥ó¥È¥ì¡¼¥¹(¸òº¹ÅÀ̵»ë¤¢¤ê) follow_line(50000,400000); SendResponseNumber(OUTBOX,b); } if(msg == j){//º¸ÀÞ around_left; Wait(2000); Off(OUT_BC); SendResponseNumber(OUTBOX,b); } if(msg == k){//±¦ÀÞ around_right; wait(2000); Off(OUT_BC); SendResponseNumber(OUTBOX,b); } if(msg == l){//¥Ð¥Ã¥¯ OnFwdSync(OUT_BC,-40,0); //B¤ÈC¤Î¥Ñ¥ï¡¼¤òƱ¤¸¤Ë¤¹¤ë Wait(1000); Off(OUT_BC); SendResponseNumber(OUTBOX,b); } if(msg == m){//±¦¥é¥¤¥ó¥È¥ì¡¼¥¹ line_follow(0,500000); SendResponseNumber(OUTBOX,b); ¡¡¡¡} } }
·ë²Ì¤Ï¼ºÇÔ¤·¤¿¡¥¥é¥¤¥ó¥È¥ì¡¼¥¹¤ÎÃͤòĶ²»ÇÈ¥»¥ó¥µ¤Î¤è¤¦¤ËïçÃͤò¬¤Ã¤Æ¤«¤é¥È¥ì¡¼¥¹¤¹¤ë¤è¤¦¤Ë¤¹¤ì¤Ð¡¤ÅÅÃӤλÄÎ̤¬Â¿¤¯¤Æ¤â¾¯¤Ê¤¯¤Æ¤â´Ø·¸¤Ê¤¯Æ°¤¤¤Æ¤¯¤ì¤¿¤Î¤«¤Ê¤È»×¤¦¡¥¤Þ¤¿¡¤¥×¥í¥°¥é¥à¤ò¤â¤Ã¤È´Êñ¤Ë¤Ç¤¤¿¤Î¤Ç¤Ï¤Ê¤¤¤«¤È¸å²ù¤·¤Æ¤¤¤ë¡¥»þ´Ö¤¬¤Ê¤«¤Ã¤¿¤Î¤È¼«Ê¬¤Î¥×¥í¥°¥é¥à¤Îµ»½ÑÉÔ¤Ǥ¢¤Ã¤¿¡¥¤³¤Î¹ÖµÁ¤Î¤ª¤«¤²¤Ç¡¤¥×¥í¥°¥é¥à¤ä¥í¥Ü¥Ã¥È¤Î°·¤¤¤Ë¤Ï¤Ê¤ì¤ë¤³¤È¤¬¤Ç¤¤¿¤Î¤Ç¡¤¤³¤Î·Ð¸³¤òÀ¸¤«¤·¤Æ´èÄ¥¤Ã¤Æ¤¤¤¤¿¤¤¡¥