¥í¥Ü¥Ã¥È¤òÀû²ó¤µ¤»¤ÆȾ·Â1m°ÊÆâ¤Ë¤¢¤ë²ûÃæÅÅÅô¤òõ¤·¤Æ¡¢²ûÃæÅÅÅô¤Ë¥Ô¥ó¥Ý¥ó¶Ì¤òÅö¤Æ¤ë¥í¥Ü¥Ã¥È¤òÀ½ºî¤¹¤ë¡£
º£²ó»È¤Ã¤¿¥í¥Ü¥Ã¥È¤Î¤Û¤È¤ó¤É¤Î¹½Â¤¤Ï²ÝÂꣲ¤Î¥í¥Ü¥Ã¥È¤ÈƱ¤¸¤Ê¤Î¤Ç¾Ü¤·¤¤¹½Â¤¤Ï²¼µ£Õ£Ò£Ì¤ò»²¾È
http://yakushi.shinshu-u.ac.jp/robotics/?2015a%2FMember%2Ftsuyoshi%2FMission2#ga88d64c
¤Þ¤¿¡¢Êѹ¹¤·¤¿ÅÀ¤Ï¥»¥ó¥µ¡¼¤òËÜÂΤËÁ°¸þ¤¤Ë¼è¤êÉÕ¤±¤¿¤³¤È¤È¤½¤Î¥»¥ó¥µ¡¼¤¬¤Ç¤¤ë¤À¤±ÀµÌ̤«¤é¤Î¸÷¤À¤±¤ò´¶ÃΤǤ¤ë¤è¤¦¤Ë¼þ¤ê¤ò¥Ö¥í¥Ã¥¯¤Ç°Ï¤Ã¤¿¤³¤È¡¢¥Ü¡¼¥ë¤¬¤Þ¤Ã¤¹¤°Å¾¤¬¤ë¤è¤¦¤Ë¥ì¡¼¥ë¤ò¼è¤êÉÕ¤±¤¿¤³¤È¤Ç¤¢¤ë¡£
(¼Ì¿¿¤Ï±¦¤«¤éº£²ó»È¤Ã¤¿¥í¥Ü¥Ã¥È¤ÎÁ´ÂΤμ̿¿¡¢¥»¥ó¥µ¡¼¤Î¼þÊդμ̿¿¡¢¥ì¡¼¥ë¤Î¼Ì¿¿)
#define short_break Off(OUT_AC);Wait(100); #define clip_on OnRev(OUT_B);Wait(10);Off(OUT_B); task main () { SetSensor(SENSOR_2,SENSOR_LIGHT); ClearTimer(0); //0ÈÖÌܤΥ¿¥¤¥Þ¡¼¤ò¥ê¥»¥Ã¥È ClearTimer(1); //1ÈÖÌܤΥ¿¥¤¥Þ¡¼¤ò¥ê¥»¥Ã¥È int light_max; //À°¿ô·¿¤ÎÊÑ¿ô¤òÀë¸À light_max = 0; //²¾¤ÎºÇÂçÃÍ int time_max; //À°¿ô·¿¤ÎÊÑ¿ô¤òÀë¸À time_max = 0; //²¾¤ÎºÇÂçÃͤòÍ¿¤¨¤ë»þ´Ö int run_time; //À°¿ô·¿¤ÎÊÑ¿ô¤òÀë¸À run_time = 280; //£±¼þ¤¹¤ë¤Î¤Ë¤«¤«¤ë»þ´Ö OnFwd(OUT_A);OnRev(OUT_C); //È¿»þ·×²ó¤ê¤Ë²óž while(FastTimer(0)<run_time) //£±²óž¤¹¤ë¤Þ¤Ç { if(SENSOR_2>light_max) //light_max¤ÎÃͤòĶ¤¨¤¿¤é { light_max = SENSOR_2; //light_max¤òÅɤêÂؤ¨¤ë ClearTimer(1); } } time_max = FastTimer(1); short_break; //£±¼þ¤·¤¿¤é£±ÉÃÂÔµ¡ OnRev(OUT_A);OnFwd(OUT_C); Wait(time_max); //²ûÃæÅÅÅô¤ÎÊý¸þ¤ò¸þ¤¯ short_break; OnFwd(OUT_AC);Wait(50);clip_on;Wait(10); //¥·¥å¡¼¥È Off(OUT_AC); }
#define short_break Off(OUT_AC);Wait(100); #define clip_on OnRev(OUT_B);Wait(10);Off(OUT_B);
[²òÀâ]
¥â¡¼¥¿¡¼AC¤ò£±ÉôÖÄä»ß¤µ¤»¤ë ¥·¥å¡¼¥È
task main () { SetSensor(SENSOR_2,SENSOR_LIGHT); ClearTimer(0); //0ÈÖÌܤΥ¿¥¤¥Þ¡¼¤ò¥ê¥»¥Ã¥È ¡ ClearTimer(1); //1ÈÖÌܤΥ¿¥¤¥Þ¡¼¤ò¥ê¥»¥Ã¥È ¢ int light_max; //À°¿ô·¿¤ÎÊÑ¿ô¤òÀë¸À light_max = 0; //²¾¤ÎºÇÂçÃÍ int time_max; //À°¿ô·¿¤ÎÊÑ¿ô¤òÀë¸À time_max = 0; //²¾¤ÎºÇÂçÃͤ«¤éÄä»ß¤Þ¤Ç¤Î»þ´Ö int run_time; //À°¿ô·¿¤ÎÊÑ¿ô¤òÀë¸À run_time = 280; //£±¼þ¤¹¤ë¤Î¤Ë¤«¤«¤ë»þ´Ö
[²òÀâ]
¡Àû²ó¤ò»Ï¤á¤Æ¤«¤é280É÷ФĤޤǤλþ´Ö¤ò·×¤ë¡£ ¢ºÇÂçÃͤò¸«¤Ä¤±¤Æ¤«¤éÄä»ß¤¹¤ë¤Þ¤Ç¤Î»þ´Ö¤ò·×¤ë¡£
OnFwd(OUT_A);OnRev(OUT_C); //È¿»þ·×²ó¤ê¤Ë²óž while(FastTimer(0)<run_time) //£±²óž¤¹¤ë¤Þ¤Ç ¡ { if(SENSOR_2>light_max) //light_max¤ÎÃͤòĶ¤¨¤¿¤é { light_max = SENSOR_2; //light_max¤òÅɤêÂؤ¨¤ë ¢ ClearTimer(1); } } time_max = FastTimer(1); short_break; //£±¼þ¤·¤¿¤é£±ÉÃÂÔµ¡ OnRev(OUT_A);OnFwd(OUT_C); //»þ·×²ó¤ê¤ËÀû²ó Wait(time_max); //²ûÃæÅÅÅô¤ÎÊý¸þ¤ò¸þ¤¯ £ short_break; OnFwd(OUT_AC);Wait(50);clip_on;Wait(10); //¥·¥å¡¼¥È ¤ Off(OUT_AC); }
[²òÀâ]
¡360¡ëÈ¿»þ·×²ó¤ê¤ËÀû²ó¤·¤ÆÁ´Êý°Ì¤ÎÃͤòµ²¯¤¹¤ë¡£ ¢light_max¤è¤ê¤âÂ礤ÊÃͤò¸«¤Ä¤±¤¿¤é¤½¤ÎÃͤòºÇÂçÃͤȤ·¤Æµ²±¤¹¤ë¡£ £time_max¤Î»þ´Ö¤À¤±»þ·×²ó¤ê¤ËÀû²ó¤¹¤ë¡£ ¤¥·¥å¡¼¥È¤¹¤ë¡£
º£²ó¤ÏÁ°²ó¤Î¥í¥Ü¥Ã¥È¤ò»È¤¤¤Þ¤ï¤»¤ë¡¢²ÝÂ꤬¤½¤â¤½¤â½Å¤¯¤Ê¤¤¡¢Áá¤á¤Ë¼è¤êÁȤ᤿¡¢¤Ê¤É¤Ç¥¹¥à¡¼¥º¤Ë¿Ê¤ó¤À¡£¤Þ¤¿¡¢ÀèÀ¸¤ÎÀâÌÀ¤òʹ¤¤¤Æ¤¤¤ì¤Ð¤Û¤È¤ó¤Éº¤¤é¤Ê¤«¤Ã¤¿¡£¤³¤ÎÄ´»Ò¤Ç¥í¥Ü¥³¥ó¤âÀ®¸ù¤µ¤»¤¿¤¤¡£