2009a¤ØÌá¤ë
¥¿¥¤¥ä¤Î²óž¤Ë¥Ç¥£¥Õ¥¡¥ì¥ó¥·¥ã¥ë¥®¥¢(Ä̾ΥǥÕ)¤òÍѤ¤¡¢ÆâÎغ¹¤ò½¤Àµ¤·¤¿¡£
°ì¤Ä¤Î¥â¡¼¥¿¡¼¤Çº¸±¦¤Î²óž¤ò¤µ¤»¤ë¤Ë¤Ï¡¢º¸±¦¤Î¥®¥¢¤Î¿ô¤ò¶ö¿ô¤È´ñ¿ô¤ÇÊѤ¨¡¢¤µ¤é¤Ë¥¹¥È¥Ã¥Ñ¡¼¤ÇµÕÊý¸þ¤Î²óž¤òÍÞ¤¨¤ëɬÍפ¬¤¢¤Ã¤¿¡£
¥¿¥¤¥ä¤Þ¤Ç¤Î¥®¥¢¤Ï¤½¤ì¤¾¤ì¼¡¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£(±¦¤Î¼Ì¿¿¡§º¸¥¿¥¤¥ä¡¡º¸¤Î¼Ì¿¿¡§±¦¥¿¥¤¥ä)
Åꤲ¤ëÆ°ºî¤ËÂѤ¨¤ë¤¿¤á¶¯ÅٽŻë¤ÇÀ©ºî¤·¤¿¡£
¥â¡¼¥¿¡¼¤ËÀܳ¤¹¤ë¤È¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¡£
´°À®¤·¤¿¥í¥Ü¥Ã¥È¤Ï¤³¤Î¤è¤¦¤Ê¤â¤Î¡£¾®²ó¤ê¤¬Íø¤¯¤è¤¦¤Ë3ÎؤòºÎÍÑ¡£¤Þ¤¿¸÷¥»¥ó¥µ¤ÏÆó¤ÄÅëºÜ¤·¡¢Á´ÂÎŪ¤Ë¶¯ÅÙ¤ò¾å¤²¤¿¡£
¶¯ÅÙ¤ò½Å»ë¤·¤¿¥¢¡¼¥àÉôʬ¤¬½Å¤¹¤®¤Æ¥Û¥¤¡¼¥ë¤¬¤¦¤Þ¤¯Èô¤Ð¤Ê¤«¤Ã¤¿¤¿¤á¡¢·ÚÎ̲½¤·¤¿¡£
¡Á´Êý¸þ¤«¤é»ß¤Þ¤Ã¤Æ¤¤¤ë²ûÃæÅÅÅô¤ÎÊý¸þ¤òõ¤·¤À¤·¡¢²ûÃæÅÅÅô¤òÁÀ¤Ã¤Æ¥Ö¥í¥Ã¥¯¤òÅꤲ
¤ë¥×¥í¥°¥é¥à¡£
¢²ûÃæÅÅÅô¤ò¤æ¤Ã¤¯¤êÆ°¤«¤·¤¿¤È¤²ûÃæÅÅÅô¤Ë¸þ¤«¤Ã¤Æ¿Ê¤ß¡¢²ûÃæÅÅÅô¤ÎÆ°¤¤ò»ß¤á¤ì¤Ð°ìÄê¤Îµ÷Î¥(²ûÃæÅÅÅô¤«¤é30cm°Ê¾åÎ¥¤ì¤¿µ÷Î¥)¤Þ¤Ç¶á¤Å¤¤¤Æ²ûÃæÅÅÅô¤òÁÀ¤Ã¤Æ¥Ö¥í¥Ã¥¯¤òÅꤲ¤ë¥×¥í¥°¥é¥à¡£
¶¦Ä̤ÎÌ¿Îá
OnFwd(OUT_A);¡¡¡§¡¡µ¡ÂΤò±¦²ó¤ê¤ËÀû²ó
OnRev(OUT_A);¡¡¡§¡¡µ¡ÂΤòº¸²ó¤ê¤ËÀû²ó
#define TURN_TIME 300 //°ì¼þ¤¹¤ë»þ´Ö task main() { int light_max=0; //¸÷¥»¥ó¥µ¤ÎºÇÂçÃÍ int t_max=0; //¸÷¥»¥ó¥µ¤ÎºÇÂçÃͤòÍ¿¤¨¤ë»þ¹ï SetSensor(SENSOR_1,SENSOR_LIGHT); //¥»¥ó¥µ¡¼1¤Ï¸÷¥»¥ó¥µ¡¼ ClearTimer(0); //¥¿¥¤¥Þ¡¼¥»¥Ã¥È OnFwd(OUT_A); //±¦²ó¤ê¤Ë²óž while(FastTimer(0)<TURN_TIME){ //µ¡ÂΤ¬°ì¼þ¤¹¤ë¤Þ¤Ç·«¤êÊÖ¤¹ if (SENSOR_1>light_max){ //¥»¥ó¥µ¡¼¤¬Æɤ߼è¤Ã¤¿ÌÀ¤ë¤µ¤¬º£¤Þ¤Ç¤Î¸÷¥»¥ó¥µ¤ÎºÇÂçÃͤò¾å²ó¤Ã¤Æ¤¤¤¿¾ì¹ç light_max=SENSOR_1; //¸÷¥»¥ó¥µ¤ÎºÇÂçÃͤ˸½ºß¥»¥ó¥µ¡¼¤¬Æɤ߼è¤Ã¤¿ÃͤòÂåÆþ t_max=FastTimer(0); //¸½ºß¤Î»þ¹ï¤ò¸÷¥»¥ó¥µ¤ÎºÇÂçÃͤòÍ¿¤¨¤ë»þ¹ï¤ËÂåÆþ } } Off(OUT_A); //°ìöÄä»ß Wait(50); OnFwd(OUT_A); //±¦²ó¤ê¤Ë²óž Wait(t_max); Off(OUT_A); //²óžÄä»ß OnRev(OUT_C); //¥Ö¥í¥Ã¥¯¤òÅꤲ¤ë Wait(40); Off(OUT_C); //Ää»ß }
#define TURN_TIME 300 //°ì¼þ¤¹¤ë»þ´Ö
task main()
{
¡¡ int light_max=0; //¸÷¥»¥ó¥µ¤ÎºÇÂçÃÍ
¡¡ int t_max=0; //¸÷¥»¥ó¥µ¤ÎºÇÂçÃͤòÍ¿¤¨¤ë»þ¹ï
¡¡ SetSensor(SENSOR_1,SENSOR_LIGHT); //¥»¥ó¥µ¡¼1¤Ï¸÷¥»¥ó¥µ¡¼
¡¡ ClearTimer(0); //¥¿¥¤¥Þ¡¼¥»¥Ã¥È
¡¡ OnFwd(OUT_A); //±¦²ó¤ê¤Ë²óž
¡¡ while(FastTimer(0)<TURN_TIME){
¡¡ if (SENSOR_1>light_max){
¡¡ light_max=SENSOR_1;
¡¡ t_max=FastTimer(0);
¡¡ }
¡¡ }
¡¡ Off(OUT_A); //°ìöÄä»ß
¡¡ Wait(50);
¡¡ OnRev(OUT_A); //º¸²ó¤ê¤Ë²óž
¡¡ Wait(TURN_TIME-t_max);
¡¡ Off(OUT_A);
¡¡ OnRev(OUT_C); //¥Ö¥í¥Ã¥¯¤òÅꤲ¤ë
¡¡ Wait(40);
¡¡ Off(OUT_C);
¡¡ }
#define THERESHOLD 45 //¸÷¤òÄɤ¦Æ°ºî¤ÇÍѤ¤¤ëÆ®ÃÍ #define LIGHTMAX 50 //¥Ö¥í¥Ã¥¯¤òÅꤲ¤ëÆ°ºî¤ÇÍѤ¤¤ëÆ®ÃÍ task main () { SetSensor(SENSOR_1,SENSOR_LIGHT); //¥»¥ó¥µ¡¼1¤Ï¸÷³Ø¥»¥ó¥µ¡¼ SetSensor(SENSOR_3,SENSOR_LIGHT); //¥»¥ó¥µ¡¼3¤Ï¸÷³Ø¥»¥ó¥µ¡¼ while(SENSOR_3<=LIGHTMAX){ //¥í¥Ü¥Ã¥È¤¬¸÷¸»¤Ë¤¢¤ëÄøÅ٤ޤǶá¤Å¤¯¤Þ¤Ç·«¤êÊÖ¤¹ if (SENSOR_1<THERESHOLD){ if (SENSOR_3<THERESHOLD){ OnRev(OUT_A); } else { OnFwd(OUT_A); } } else { if (SENSOR_3<THERESHOLD){ OnRev(OUT_A); } else { OnRev(OUT_A); } } } //¤³¤³¤Þ¤Çwhile¤Î´Ö Off(OUT_A); //°ÜÆ°Ää»ß OnRev(OUT_C); //¥Ö¥í¥Ã¥¯¤òÅꤲ¤ë Wait(40); Off(OUT_C); //¥¢¡¼¥àÄä»ß }
¥Ç¥£¥Õ¥¡¥ì¥ó¥·¥ã¥ë¥®¥¢¤Ë¤Ä¤¤¤ÆÍý²ò¤ò¿¼¤á¤ë¤³¤È¤¬½ÐÍ褿¡£
º¸±¦¤Î¥®¥¢Èæ¤òÊѤ¨¤¿¤³¤È¤Çº¸±¦¤Î²óž¥¹¥Ô¡¼¥É¤¬°Û¤Ê¤Ã¤Æ¤¤¤¿¤ê¡¢Æ±¿´±ß¾õ¤Ç»þ·×
²ó¤ê¤ÈÈ¿»þ·×²ó¤ê¤¬½ÐÍè¤Ê¤«¤Ã¤¿¤Î¤Ç¡¢¥×¥í¥°¥é¥à¤Ç½¤Àµ¤·¤Æ¤¤¤¯²áÄø¤¬¶ìÏ«¤·¤¿¡£