2019a/Member

Ìܼ¡

²ÝÂê2

²¼¤Î¿Þ¤Î¤è¤¦¤Ê¥³¡¼¥¹¤ò³Æ¥Á¡¼¥à¤ÇºîÀ®¤·¡¢¡Ö¥ß¥Ã¥·¥ç¥ó¡×¤ò¿ë¹Ô¤¹¤ë¤¿¤á¤Î¥í¥Ü¥Ã¥È¤òºîÀ®¤»¤è¡£ ¹õÀþ¤ÎÉý¤Ï20mm¤Ç¤Ê¤ë¤Ù¤¯¶ÑÅù¤ÊÇ»¤µ¤Ë¤¹¤ë¤³¤È¡£ ¥´¡¼¥ë¤Ë¤Ï¡¢Ä¹¤µ15¤Þ¤¿¤Ï16¤Î¥Ö¥í¥Ã¥¯¤ª¤¯¡£

map.png

¥³¡¼¥¹

AÃÏÅÀ¤«¤é½Ðȯ ¢ª M ¢ª K(ľ¿Ê) ¢ª L(¥Ô¥ó¥Ý¥ó¶Ì¤ò¤Ä¤«¤à) ¢ª K(±¦ÀÞ) ¢ª J(°ì»þÄä»ß¤Î¸å¡¢º¸ÀÞ) ¢ª I(ľ¿Ê) ¢ª H(ľ¿Ê) ¢ª G(º¸ÀÞ) ¢ª F ¢ª E ¢ª D(°ì»þÄä»ß¤Î¸å¡¢Ä¾¿Ê) ¢ª C(ľ¿Ê) ¢ª B(°ì»þÄä»ß) ¢ª ¥·¥å¡¼¥È¢ª AÃÏÅÀ¤ËÆþ¤ë(¥´¡¼¥ë)

¸òº¹ÅÀ¤Ç¤Ï1ÉôÖÄä»ß¤·¡¢Ãú»úÏ©¤Ç¤Ïľ³ÑÊý¸þ¤Ë¿ÊÆþ¤¹¤ë»þ¤Î¤ß°ì»þÄä»ß¤¹¤ë¤³¤È¡£

map_line.png

¥í¥Ü¥Ã¥È¤Ë¤Ä¤¤¤Æ

¥í¥Ü¥Ã¥È¤ÎÁ´ÂÎ

º£²ó¤Ï¡¤¥í¥Ü¥Æ¥£¥¯¥¹¤ÎºÇ½é¤Î¼ø¶È¤Çºî¤Ã¤¿¥í¥Ü¥Ã¥È¤ò²þÎɤ·¤Æºî¤Ã¤¿¡¥

robo_all.jpg

ƹÂÎ

¥Ü¡¼¥ë¤òÄϤàÉôʬ¤Î¼è¤êÉÕ¤±¤ò¹Íθ¤·¡¤¥Ð¥Ã¥Æ¥ê¡¼¤Î°ÌÃÖ¤ò¸å¤í¤Ë°ÜÆ°¤µ¤»¤¿¡¥

robo_honntai.jpg

¸÷¥»¥ó¥µ¡¼

¾®²ó¤ê¤¬Íø¤¯¤è¤¦¤Ë¤Ç¤­¤ë¤À¤±¥í¥Ü¥Ã¥È¤Î¼Ö¼´¤Ë¶á¤Å¤±¤Æºî¤Ã¤¿¡¥

senser.jpg senser_posi_new.jpg

¤Ä¤«¤àÉôʬ

arm.jpgarm_explain.jpg

²£¤«¤é¶´¤àµ¡¹½¤Ë¤·¤¿¡¥ ­¡Êý¸þ¤Ë²ó¤¹¤È¥¢¡¼¥à¤¬³«¤­¡¤­¢Êý¸þ¤Î²ó¤¹¤È¥¢¡¼¥à¤¬ÊĤ¸¤ë¡¥

¥×¥í¥°¥é¥à¤Ë¤Ä¤¤¤Æ

¥é¥¤¥ó¥È¥ì¡¼¥¹

¤Þ¤º¡¤¹õ¤¤Àþ¤òÄɽ¾¤¹¤ë¥é¥¤¥ó¥È¥ì¡¼¥¹¤Î¥×¥í¥°¥é¥ß¥ó¥°¤òºî¤Ã¤¿¡¥ ¡Ö´°Á´¤Ë¿¿¤ÃÇò¡×¡¤¡ÖÇò¤È¶­Ìܤδ֡ס¤¡Ö¶­Ìܡס¤¡Ö¹õ¤È¶­Ìܤδ֡ס¤ ¡Ö´°Á´¤Ë¹õ¡×¤Î£µ¤Ä¤ÎÉôʬ¤Ë¿§¤òʬ¤±¤Æ¸÷¤ÎÃͤò¬¤Ã¤¿¡¥ ¤½¤ì¤é¤ÎÃͤϰʲ¼¤Î¿Þ¤Î¤è¤¦¤Ë¤Ê¤Ã¤¿¡¥

light_number.png

¥×¥í¥°¥é¥ß¥ó¥°¤Ç¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤¹¤ë¡¥

#define black 20
#define white 50
#define lightgray 40
#define darkgray 28
#define center 35

¤Þ¤¿¡¤¥È¥ì¡¼¥¹»þ¤ÎÆ°ºî¤â¤½¤ì¤¾¤ìÄêµÁ¤·¤Æ¤ª¤¯¡¥

#define turn_right OnFwd(OUT_C,25);OnRev(OUT_B,15);//±¦ÀÞ
#define turn_left OnFwd(OUT_B,25);OnRev(OUT_C,15);//º¸ÀÞ
#define rotate_right OnFwd(OUT_C,20);OnRev(OUT_B,20);//±¦Àû²ó
#define rotate_left OnFwd(OUT_B,20);OnRev(OUT_C,20);//º¸Àû²ó
#define go_straight OnFwd(OUT_BC,20);//½ÐÎÏ20¤Îľ¿Ê
#define go_straight2 OnFwd(OUT_BC,15);//½ÐÎÏ15¤Îľ¿Ê

¥µ¥Ö¥ë¡¼¥Á¥ó

º¸Â¦¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹

sub followline_L(int stop_time)
{
    long t0=CurrentTick();
    while(CurrentTick()-t0<stop_time){ //¸½ºß¤Î»þ¹ï¤¬°ìÄê¤ÎÃͤòĶ¤¨¤ë¤Þ¤Ç
        if(SENSOR_1<black){            //¥»¥ó¥µ¡¼¤¬¹õ¤Î»þ
        rotate_left;                   //º¸Àû²ó
        }else if(SENSOR_1<darkgray){   //¥»¥ó¥µ¡¼¤¬¹õ³¥¤Ê¤é
        turn_left;                     //º¸ÀÞ
        }else if(SENSOR_1>lightgray){  //¥»¥ó¥µ¡¼¤¬Çò³¥¤Ê¤é
        turn_right;                    //±¦ÀÞ
        t0=CurrentTick();              //»þ´Ö¤ò¥ê¥»¥Ã¥È
        }else if(SENSOR_1<35){         //ÌÀ¤ë¤µ35°Ê²¼¤Ç
        go_straight;                   //ľ¿Ê
        t0=CurrentTick();              //»þ´Ö¤ò¥ê¥»¥Ã¥È
        }else{                         //¤½¤ì°Ê³°¤Ï
        rotate_right;                  //±¦Àû²ó
        t0=CurrentTick();              //»þ´Ö¤ò¥ê¥»¥Ã¥È
        }
    }    
    Off(OUT_BC);          //»þ¹ï¤¬°ìÄê¤ÎÃͤòĶ¤¨¤ë¤ÈÄä»ß
    Wait(1000);           //1ÉôÖÄä»ß
}

±¦Â¦¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹

sub followline_R(int stop_time)
{
    long t0=CurrentTick();
    while(CurrentTick()-t0<stop_time){  //¸½ºß¤Î»þ¹ï¤¬°ìÄê¤ÎÃͤòĶ¤¨¤ë¤Þ¤Ç
        if(SENSOR_1<black){             //¥»¥ó¥µ¡¼¤¬¹õ¤Î»þ
        rotate_right;                   //±¦Àû²ó
        }else if(SENSOR_1<darkgray){    //¥»¥ó¥µ¡¼¤¬¹õ³¥¤Ê¤é
        turn_right;                     //±¦ÀÞ
        }else if(SENSOR_1>lightgray){   //¥»¥ó¥µ¡¼¤¬Çò³¥¤Ê¤é
        turn_left;                      //º¸ÀÞ
        t0=CurrentTick();               //»þ´Ö¤ò¥ê¥»¥Ã¥È
        }else if(SENSOR_1<35){          //¥»¥ó¥µ¡¼¤¬35°Ê²¼¤Ê¤é
        go_straight;                    //ľ¿Ê
        t0=CurrentTick();               //»þ´Ö¤ò¥ê¥»¥Ã¥È
        }else{                          //¤½¤ì°Ê³°¤Ï
        rotate_left;                    //º¸Àû²ó
        t0=CurrentTick();               //»þ´Ö¤ò¥ê¥»¥Ã¥È
        }
    }    
    Off(OUT_BC);           //°ìÄê¤Î»þ´Ö¤òĶ¤¨¤ë¤ÈÄä»ß
    Wait(1000);            //°ìÉôÖÄä»ß
}

JÃÏÅÀ¤Ç¤ÎT»úÏ©¤Þ¤Ç±¦Â¦¤ò¥È¥ì¡¼¥¹¤¹¤ë¥µ¥Ö¥ë¡¼¥Á¥ó

sub followline_R2(int stop_time)
{
    long t0=CurrentTick();
    while(CurrentTick()-t0<stop_time){   //»þ¹ï¤¬¤¢¤ë°ìÄê¤ÎÃͤè¤ê¾®¤µ¤¤¤È¤­
        if(SENSOR_1<black){              //¹õ¤Ê¤é
        rotate_right;                    //±¦Àû²ó
        t0=CurrentTick();                //»þ´Ö¤ò¥ê¥»¥Ã¥È
        }else if(SENSOR_1<darkgray){     //³¥¹õ¿§¤Ê¤é
        turn_right;                      //±¦ÀÞ
        t0=CurrentTick();                //»þ´Ö¤ò¥ê¥»¥Ã¥È
        }else if(SENSOR_1>lightgray){    //³¥Çò¿§¤Ê¤é
        turn_left;                       //º¸ÀÞ
        }else if(SENSOR_1<35){           //ÌÀ¤ë¤µ35°Ê²¼¤Ç
        go_straight2;                    //¤æ¤Ã¤¯¤êľ¿Ê
        t0=CurrentTick();                //»þ´Ö¤ò¥ê¥»¥Ã¥È
        }else{                           //¤½¤ì°Ê³°¤Ê¤é
        rotate_left;                     //º¸Àû²ó
        }
    }    
    Off(OUT_BC);            //Ää»ß
    Wait(2000);             //2ÉôÖÄä»ß
}

¸òº¹ÅÀ²£ÃÇ

¸òº¹ÅÀǧ¼±

¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤·¤Æ¤¤¤ëºÝ¡¤¸òº¹ÅÀ¤Ë¤¿¤É¤êÃ夤¤Æ¤â¤½¤Î¤Þ¤Þ¥È¥ì¡¼¥¹¤ò³¤±¤Æ¤·¤Þ¤¤¶Ê¤¬¤Ã¤Æ¤·¤Þ¤¦¡¥¤½¤Î¤¿¤á¡¤¸òº¹ÅÀ¤òǧ¼±¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤¿¡¥¤Þ¤¿¡¤¾ò·ï¤Ç¤¢¤ë¸òº¹ÅÀ¤Ç¤Î1ÉÃÄä»ß¤Î¥×¥í¥°¥é¥à¤òÁȤ߹þ¤ó¤À¡¥

º¸Â¦¥È¥ì¡¼¥¹¤Î¸òº¹ÅÀǧ¼±

left_trace.png

º¸Â¦¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹¤Î¾ì¹ç¡¤¡Ö¹õ¡×¤È¡Ö¹õ³¥¡×¤Î­¢¤È­¤¤ÎÆ°ºî¤¬Ï¢Â³¤Ç²¿Éô֤«Â³¤¤¤¿¤È¤­¡¤»ß¤Þ¤ë¤è¤¦¤Ë¤¹¤ë¡¥

sub followline_L(int stop_time)
{
    long t0=CurrentTick();
    while(CurrentTick()-t0<stop_time){¡¡//stop_time¤Ë¤¤¤ì¤¿ÃͤòĶ²á¤¹¤ë¤È¼¡¤Î¥×¥í¥°¥é¥à¤Ø
        if(SENSOR_1<black){             //black¤¹¤Ê¤ï¤Á20¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ¹¤ë¤Èº¸¤ØÀû²ó
            rotate_left;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¤³¤ÎÆ°ºî¤¬Ï¢Â³¤¹¤ë¤È»ß¤Þ¤ë
        }else if(SENSOR_1<darkgray){¡¡¡¡//darkgray¤¹¤Ê¤ï¤Á28¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ¹¤ë¤Èº¸¤Ø
            turn_left;           ¡¡¡¡¡¡ //¤³¤ÎÆ°ºî¤¬Ï¢Â³¤¹¤ë¤È»ß¤Þ¤ë
        }else if(SENSOR_1>lightdark){¡¡¡¡//lightdray¤¹¤Ê¤ï¤Á40¤è¤êÂ礭¤¤Ãͤò¸¡ÃΤ¹¤ë¤È±¦¤Ø¶Ê¤¬¤ë
            turn_right;          ¡¡¡¡¡¡ //¤³¤ÎÆ°ºîÃæ¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤·Â³¤±¤ë
            t0=CurrentTick();
        }else if(SENSOR_1<center){¡¡¡¡¡¡//center¤¹¤Ê¤ï¤Á35¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ¹¤ë¤Èľ¿Ê¤¹¤ë
            go_straight;        ¡¡¡¡¡¡  //¤³¤ÎÆ°ºîÃæ¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤·Â³¤±¤ë
            t0=CurrentTick();
        }else{¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//white¤¹¤Ê¤ï¤Á50¤è¤êÂ礭¤¤Ãͤò¸¡ÃΤ¹¤ë¤È±¦¤ØÀû²ó
            rotate_right;        ¡¡¡¡¡¡ //¤³¤ÎÆ°ºîÃæ¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤·Â³¤±¤ë
            t0=CurrentTick();
        }
    }
    Off(OUT_BC);
    Wait(1000);
}

±¦Â¦¥È¥ì¡¼¥¹¤Î¸òº¹ÅÀǧ¼±

right_trace.png

º¸Â¦¤ÈƱÍͤˡֹõ¡×¤È¡Ö¹õ³¥¡×¤Î­¡¤È­£¤ÎÆ°ºî¤¬Ï¢Â³¤Ç²¿Éô֤«Â³¤¤¤¿¤È¤­»ß¤Þ¤ë¤è¤¦¤Ë¤¹¤ë¡¥

sub followline_R(int stop_time)
{
    long t0=CurrentTick();
    while(CurrentTick()-t0<stop_time){¡¡//stop_time¤Ë¤¤¤ì¤¿ÃͤòĶ²á¤¹¤ë¤È¼¡¤Î¥×¥í¥°¥é¥à¤Ø
        if(SENSOR_1<black){             //black¤¹¤Ê¤ï¤Á20¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ¹¤ë¤È±¦¤ØÀû²ó
            rotate_right;                //¤³¤ÎÆ°ºî¤¬Ï¢Â³¤¹¤ë¤È»ß¤Þ¤ë
        }else if(SENSOR_1<darkgray){¡¡¡¡//darkgray¤¹¤Ê¤ï¤Á28¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ¹¤ë¤È±¦¤Ø
            turn_right;                  //¤³¤ÎÆ°ºî¤¬Ï¢Â³¤¹¤ë¤È»ß¤Þ¤ë
        }else if(SENSOR_1>lightdark){¡¡¡¡//lightdray¤¹¤Ê¤ï¤Á40¤è¤êÂ礭¤¤Ãͤò¸¡ÃΤ¹¤ë¤Èº¸¤Ø¶Ê¤¬¤ë
            turn_left;                   //¤³¤ÎÆ°ºîÃæ¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤·Â³¤±¤ë
            t0=CurrentTick();
        }else if(SENSOR_1<center){¡¡¡¡¡¡//center¤¹¤Ê¤ï¤Á35¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ¹¤ë¤Èľ¿Ê¤¹¤ë
            go_straight;                 //¤³¤ÎÆ°ºîÃæ¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤·Â³¤±¤ë
            t0=CurrentTick();
        }else{¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//white¤¹¤Ê¤ï¤Á50¤è¤êÂ礭¤¤Ãͤò¸¡ÃΤ¹¤ë¤Èº¸¤ØÀû²ó
            rotate_left;                 //¤³¤ÎÆ°ºîÃæ¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤·Â³¤±¤ë
            t0=CurrentTick();
        }
    }
    Off(OUT_BC);
    Wait(1000);
} 

¤Þ¤¿¡¤¥³¡¼¥¹¤ÎK¤«¤éL¤Ë¸þ¤«¤¤¡¤L¤Ç»ß¤Þ¤ë¥×¥í¥°¥é¥ß¥ó¥°¤Ë¤ª¤¤¤Æ¤Ï¡¤±¦Â¦¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹¤Ç¡ÖÇò¡×¤È¡ÖÇò¤Î¶­Ìܡפέ¢¤È­¤¤ÎÆ°ºî¤òϢ³¤Ç¹Ô¤¦¤È»ß¤Þ¤ë¤è¤¦¤Ë¤·¤¿¡£lightdray¤¹¤Ê¤ï¤Á40¤è¤êÂ礭¤¤ÃÍ¡¢white¤¹¤Ê¤ï¤Á50¤è¤êÂ礭¤¤Ãͤò¸¡ÃΤ·¤¿»þ´Ö¤¬stop_time¤ÎÃͤλþ´Öʬ¤òĶ²á¤·¤¿¾ì¹ç¤Ë¤Ïwhile¤ÎÆ°ºî¤¬Ää»ß¤¹¤ë¡¥

sub followline_R2(int stop_time)
{
    long t0=CurrentTick();
    while(CurrentTick()-t0<stop_time){¡¡//stop_time¤Ë¤¤¤ì¤¿ÃͤòĶ²á¤¹¤ë¤È¼¡¤Î¥×¥í¥°¥é¥à¤Ø
        if(SENSOR_1<black){               //black¤¹¤Ê¤ï¤Á20¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ¹¤ë¤È±¦¤ØÀû²ó
            rotate_right;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¤³¤ÎÆ°ºîÃæ¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤·Â³¤±¤ë
            t0=CurrentTick();
        }else if(SENSOR_1<darkgray){¡¡  ¡¡//darkgray¤¹¤Ê¤ï¤Á28¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ¹¤ë¤È±¦¤Ø
            turn_right;                   //¤³¤ÎÆ°ºîÃæ¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤·Â³¤±¤ë
            t0=CurrentTick();
        }else if(SENSOR_1>lightdark){¡¡ ¡¡//lightdray¤¹¤Ê¤ï¤Á40¤è¤êÂ礭¤¤Ãͤò¸¡ÃΤ¹¤ë¤Èº¸¤Ø¶Ê¤¬¤ë
            turn_left;                    //¤³¤ÎÆ°ºî¤¬Ï¢Â³¤¹¤ë¤È»ß¤Þ¤ë
        }else if(SENSOR_1<center){¡¡  ¡¡¡¡//center¤¹¤Ê¤ï¤Á35¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ¹¤ë¤Èľ¿Ê¤¹¤ë
            go_straight2;                 //¤³¤ÎÆ°ºîÃæ¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤·Â³¤±¤ë
            t0=CurrentTick();
        }else{¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡  ¡¡//white¤¹¤Ê¤ï¤Á50¤è¤êÂ礭¤¤Ãͤò¸¡ÃΤ¹¤ë¤Èº¸¤ØÀû²ó
            rotate_left;                  //¤³¤ÎÆ°ºî¤¬Ï¢Â³¤¹¤ë¤È»ß¤Þ¤ë
        }
    }
    Off(OUT_BC);
    Wait(2000);
}

¥Ü¡¼¥ë¤Î¥·¥å¡¼¥È

º£²ó¤Î²ÝÂê¤Ç¤Ï¡¤¥³¡¼¥¹¤ÎÅÓÃæ¤Ç¥Ü¡¼¥ë¤òÄϤߡ¤¥´¡¼¥ëÁ°¤ÇÊü¤·¡¤¥·¥å¡¼¥È¤¹¤ëÆ°¤­¤¬¤¢¤ë¡¥»ä¤¿¤Á¤Î ¥°¥ë¡¼¥×¤Ç¤Ï¡¤¥Ü¡¼¥ë¤òÊü¤·¤¿¸å¤Ë¥í¥Ü¥Ã¥ÈËÜÂΤÇÁ°¤Ë²¡¤·½Ð¤·¤Æ¥·¥å¡¼¥È¤¹¤ë¥×¥í¥°¥é¥à¤òºî¤Ã¤¿¡¥¤Þ¤¿¡¤¤½¤ì¤¾¤ì¤ò #define ¤ÇÄêµÁ¤·¤¿¡¥

¥³¡¼¥¹¾å¤òÆ°¤«¤¹

¥³¡¼¥¹¤Î¾å¤òÆ°¤¯Î®¤ì¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¡¥

map_junnbann.png

¥á¥¤¥ó¥×¥í¥°¥é¥à

task main()
{
    SetSensorLight(S1);
    followline_R(150);     //1
    Blackto_White_L();     //2
    followline_L(200);     //3
    Blackto_White_R();     //4
    followline_R2(200);    //5
    catch;                 //¥Ü¡¼¥ë¤òÄϤà
    turn;                  //º¸¤ËÀû²ó
    followline_R(150);     //6
    Blackto_White();       //7
    followline_L(150);     //8
    Blackto_White_L();     //9
    followline_L(200);     //10
    Blackto_White();       //11
    followline_L(200);     //12
    Blackto_White();       //13
    followline_L(200);     //14
    Blackto_White();       //15
    followline_R(150);     //16
    Blackto_White();       //17
    followline_R(150);     //18
    release;               //¥Ü¡¼¥ë¤òÊü¤¹
    osidasi;               //¥´¡¼¥ë¤¹¤ë
}

Á´ÂÎ¤Î¥×¥í¥°¥é¥à

#define turn_right OnFwd(OUT_C,25);OnRev(OUT_B,15);
#define turn_left OnFwd(OUT_B,25);OnRev(OUT_C,15);
#define rotate_right OnFwd(OUT_C,20);OnRev(OUT_B,25);
#define rotate_left OnFwd(OUT_B,20);OnRev(OUT_C,25);
#define go_straight OnFwd(OUT_BC,20);
#define go_straight2 OnFwd(OUT_BC,15);
#define turn OnRev(OUT_C,25);OnFwd(OUT_B,25);Wait(1500);Off(OUT_BC);
#define catch OnRev(OUT_A,25);Wait(500);Off(OUT_A);
#define release OnFwd(OUT_A,25);Wait(500);Off(OUT_A);
#define osidasi OnFwd(OUT_BC,100);Wait(100);Off(OUT_BC);
#define black 20
#define white 50
#define lightgray 40
#define darkgray 28

sub followline_L(int stop_time)
{
    long t0=CurrentTick();
    while(CurrentTick()-t0<stop_time){
if(SENSOR_1<black){
   rotate_left;
}else if(SENSOR_1<darkgray){
   turn_left;
}else if(SENSOR_1>lightgray){
   turn_right;
   t0=CurrentTick();
}else if(SENSOR_1<35){
   go_straight;
   t0=CurrentTick();
}else{
   rotate_right;
   t0=CurrentTick();
}
    }    
    Off(OUT_BC);
    Wait(1000);
}

sub followline_R(int stop_time)
{
    long t0=CurrentTick();
    while(CurrentTick()-t0<stop_time){
if(SENSOR_1<black){
   rotate_right;
}else if(SENSOR_1<darkgray){
   turn_right;
}else if(SENSOR_1>lightgray){
   turn_left;
   t0=CurrentTick();
}else if(SENSOR_1<35){
   go_straight;
   t0=CurrentTick();
}else{
   rotate_left;
   t0=CurrentTick();
}
    }    
    Off(OUT_BC);
    Wait(1000);
}

sub followline_R2(int stop_time)
{
    long t0=CurrentTick();
    while(CurrentTick()-t0<stop_time){
if(SENSOR_1<black){
   rotate_right;
   t0=CurrentTick();
}else if(SENSOR_1<darkgray){
   turn_right;
   t0=CurrentTick();
}else if(SENSOR_1>lightgray){
   turn_left;
}else if(SENSOR_1<35){
   go_straight2;
   t0=CurrentTick();
}else{
   rotate_left;
}
    }    
    Off(OUT_BC);
    Wait(2000);
}

sub Blackto_White()
{
    while(SENSOR_1<darkgray){
    OnFwd(OUT_BC,15);
    }
    Off(OUT_BC);
}

sub Blackto_White_R()
{
    while(SENSOR_1<darkgray){
    OnFwd(OUT_C,20);
    OnRev(OUT_B,20);
    }
    Off(OUT_BC);
}

sub Blackto_White_L()
{
    while(SENSOR_1<lightgray){
    OnFwd(OUT_B,20);
    OnRev(OUT_C,20);
    }
    Off(OUT_BC);
}

task main()
{
    SetSensorLight(S1);
    followline_R(150);
    Blackto_White_L();
    followline_L(200);
    Blackto_White_R();
    followline_R2(200);
    catch;
    turn;
    followline_R(150);
    Blackto_White();
    followline_L(150);
    Blackto_White_L();
    followline_L(200);
    Blackto_White();
    followline_L(200);
    Blackto_White();
    followline_L(200);
    Blackto_White();
    followline_R(150);
    Blackto_White();
    followline_R(150);
    release;
    osidasi;
}

¤Þ¤È¤á

º£²ó¤â¤Ê¤ó¤È¤«²ÝÂê¤ò¥¯¥ê¥¢¤¹¤ë¤³¤È¤¬¤Ç¤­¤¿¡¥ ¤·¤«¤·¡¤¥×¥í¥°¥é¥ß¥ó¥°¤ÎÀ©ºî»þ¤Ë¤Ï¡¤¥×¥í¥°¥é¥à¼«ÂΤϴְã¤Ã¤Æ¤Ê¤¤¤Ï¤º¤Ê¤Î¤Ë¡¤¥í¥Ü¥Ã¥È¤¬Æ°¤«¤Ê¤«¤Ã¤¿¤êÆ°¤­¤¬Æߤ¯¤Ê¤ë¤³¤È¤¬Â¿¡¹¤¢¤Ã¤¿¡¥¤½¤Î¸¶°ø¤Ï¥â¡¼¥¿¤ÎÎô²½¤Ê¤É¤Î¸¶°ø¤â¤¢¤ë¤À¤í¤¦¤¬¡¤¤ª¤½¤é¤¯ÅÅÃÓÀÚ¤ì¤Ç¤Ï¤Ê¤¤¤«¤È¹Í¤¨¤é¤ì¤¿¡¥Á°²ó¤Î²ÝÂê¤Î»þ¤Ë¤Ï¤Û¤È¤ó¤É¤Ê¤Ã¤«¤¿¥Ï¥×¥Ë¥ó¥°¤À¤Ã¤¿¤¿¤á¤Ë¡¤ÅÅÃÓÀÚ¤ì¤È¤¤¤¦¤³¤È¤Ëµ¤ÉÕ¤«¤ºÂ¿¤¯¤Î̵Â̤ʻþ´Ö¤òÈñ¤ä¤·¤Æ¤·¤Þ¤Ã¤¿¡¥¾ï¤Ë¤¢¤é¤æ¤ë²ÄǽÀ­¤ä¸¶°ø¤ò¹Íθ¤·¤ÆÀ©ºî¤·¤Æ¤¤¤¯É¬Íפ¬¤¢¤ë¤È´¶¤¸¤¿¡¥¤Þ¤¿¡¤¥×¥í¥°¥é¥à¼«ÂΤâ¤Þ¤À¤Þ¤À;·×¤Ê½ê¤¬¤¢¤ë¤È»×¤¦¤Î¤Ç¡¤¼¡²ó¤Î²ÝÂê¤Ç¤Ï´Ê·é¤Ê¤è¤êÎɤ¤¥×¥í¥°¥é¥à¤òÀ©ºî¤·¤¿¤¤¡¥


źÉÕ¥Õ¥¡¥¤¥ë: fileright_trace.png 181·ï [¾ÜºÙ] fileleft_trace.png 149·ï [¾ÜºÙ] filearm_explain.jpg 165·ï [¾ÜºÙ] filemap_junnbann.png 133·ï [¾ÜºÙ] filelight_number.png 131·ï [¾ÜºÙ] filearm.jpg 175·ï [¾ÜºÙ] filesenser.jpg 163·ï [¾ÜºÙ] filesenser_posi_new.jpg 150·ï [¾ÜºÙ] filerobo_honntai.jpg 125·ï [¾ÜºÙ] filerobo_all.jpg 143·ï [¾ÜºÙ] filemap_line.png 143·ï [¾ÜºÙ] filemap.png 134·ï [¾ÜºÙ]

¥È¥Ã¥×   ÊÔ½¸ Åà·ë º¹Ê¬ ÍúÎò źÉÕ Ê£À½ ̾Á°Êѹ¹ ¥ê¥í¡¼¥É   ¿·µ¬ °ìÍ÷ ¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS
Last-modified: 2019-08-07 (¿å) 02:45:42