2019a/Member

²ÝÂꣲ

²¼¤Î¿Þ¤Î¤è¤¦¤Ê¥³¡¼¥¹¤ò³Æ¥Á¡¼¥à¤ÇºîÀ®¤·¡¢¡Ö¥ß¥Ã¥·¥ç¥ó¡×¤ò¿ë¹Ô¤¹¤ë¤¿¤á¤Î¥í¥Ü¥Ã¥È¤òºîÀ®¤»¤è¡£

http://yakushi.shinshu-u.ac.jp/robotics/?plugin=attach&refer=2019a%2FMission2&openfile=2019a-mission2.png

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

»ä¤Ï¾åµ­¤Î¥³¡¼¥¹¤Ç¥í¥Ü¥Ã¥È¤òÆ°¤«¤·¤Ê¤¬¤é¡¤¥Ô¥ó¥Ý¥ó¶Ì¤ò²ó¼ý¤·¡¢¤½¤ì¤ò¥´¡¼¥ë¤Þ¤Ç±¿¤Ó¤Þ¤·¤¿¡£

¥í¥Ü¥Ã¥È¤Î¹½Â¤

¥í¥Ü¥Ã¥È¤òºî¤ë¾å¤Ç¤³µ¤¤òÉÕ¤±¤¿¤³¤È¤Ï¾®²ó¤ê¤¬Íø¤¯¤È¤¤¤¦ÅÀ¤Ç¤¹¡¥ ¥í¥Ü¥Ã¥È¤¬Â礭¤¯¤Ê¤ê¤¹¤®¤Æ¸÷¥»¥ó¥µ¡¼¤È¥¿¥¤¥ä¤Îµ÷Î¥¤¬Î¥¤ì¤¹¤®¤Æ¤·¤Þ¤Ã¤¿¤é¼´¤¬¤Ö¤ì¤Æ¤·¤Þ¤¤¥×¥í¥°¥é¥à¤¬ÁÛÄꤷ¤Æ¤¤¤¿¤è¤¦¤ËÆ°¤«¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡¥ ¤Þ¤¿¡¤»ä¤¿¤Á¤Ï¥Ô¥ó¥Ý¥ó¶Ì¤ò±¿¤Ö¤¿¤á¤ÎÊýË¡¤È¤·¤Æ¥¢¡¼¥à¤ò¼è¤êÆþ¤ì¤Þ¤·¤¿¡¥ ¥¢¡¼¥à¤ò¾å¤²²¼¤²¤¹¤ë¤³¤È¤Ç¥Ô¥ó¥Ý¥ó¶Ì¤ò°ÜÆ°¤µ¤»¤ë¤Î¤ËÀ®¸ù¤·¤Þ¤·¤¿¡¥

Á´ÂÎÁü¤Ï°Ê²¼¤Î¼Ì¿¿¤ÎÄ̤ê¤Ç¤¹¡¥

­¡µ¡¹½

¥×¥í¥°¥é¥à¤ÎÀâÌÀ

ÄêµÁ¤·¤¿¥×¥í¥°¥é¥à

²¿²ó¤âƱ¤¸¥×¥í¥°¥é¥à¤ò½ñ¤¯¤³¤È¤Ï̵Â̤Ǥ¢¤ë¤¿¤áÄêµÁ¤·¤Þ¤·¤¿¡¥

#define black 30
#define white 50
#define speedH 30
#define speedL 10
#define mae OnFwd(OUT_BC,speedH);//ľ¿Ê
#define turnRRR OnFwd(OUT_C,speedH);OnRev(OUT_B,speedH);//Èù¡¹±¦Àû²ó
#define turnLLL OnFwd(OUT_B,speedH);OnRev(OUT_C,speedH);//Èù¡¹º¸Àû²ó
#define turnRR OnFwd(OUT_C,speedH);Off(OUT_B);//Èù±¦Àû²ó
#define turnLL OnFwd(OUT_B,speedH);Off(OUT_C);//Èùº¸Àû²ó
#define turnR OnFwd(OUT_C,speedH);OnFwd(OUT_B,speedL);//±¦Àû²ó
#define turnL OnFwd(OUT_B,speedH);OnFwd(OUT_C,speedL);//º¸Àû²ó
#define step 1
#define jikan 100
#define teishi Off(OUT_BC);Wait(300)      

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

¥é¥¤¥ó¥È¥ì¡¼¥¹¤ä¸òº¹ÅÀ¤Ç»ß¤Þ¤Ã¤¿¸å¤Ëľ¿Ê¤¹¤ë¤¿¤á¤Î¥×¥í¥°¥é¥à¤Ê¤É¤Ï¾å¤Î¤è¤¦¤ËÄêµÁ¤Ç¤­¤Ê¤¤¤¿¤á¥µ¥Ö¥ë¡¼¥Á¥ó¤È¤·¤ÆÄêµÁ¤·¤Þ¤·¤¿¡¥

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

¥é¥¤¥ó¥È¥ì¡¼¥¹¤Ï£´¤ÄÍÑ°Õ¤·¤Þ¤·¤¿¡¥¤½¤ì¤Ïľ¿Ê¤¹¤ë¤È¤­¤Îº¸Â¦¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹¡¤Ä¾¿Ê¤¹¤ë¤È¤­¤Î±¦Â¦¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹¡¤¥«¡¼¥Ö¤òÅϤë»þ¤Îº¸Â¦¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹¡¤¥«¡¼¥Ö¤òÅϤë»þ¤Î±¦Â¦¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹¤Ç¤¹¡¥¤Þ¤¿¤³¤é¤é¤ÏÁ´¤Æ¸òº¹ÅÀ¤Ç»ß¤Þ¤ë¤è¤¦¤ËÀßÄꤷ¤Æ¤¤¤Þ¤¹¡¥

¡¡¤½¤ì¤ò°Ê²¼¤ËºÜ¤»¤Þ¤¹¡¥

¡¡¸òº¹ÅÀ¤Ç»ß¤Þ¤ê¡¤Ä¾¿Ê¤¹¤ë¤È¤­¤Îº¸Â¦¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹

¸÷¥»¥ó¥µ¡¼¤¬»ØÄꤷ¤¿»þ´Ö°Ê¾å¡¤¹õ¤È¬Äꤷ¤¿¤é»ß¤Þ¤ë¤è¤¦¤Ë¥×¥í¥°¥é¥à¤µ¤ì¤Æ¤¤¤ë¡¥

¤³¤ì¤¬¸òº¹ÅÀ¤Ç»ß¤Þ¤ë¤Ç»ß¤Þ¤ë¤¿¤á¤Î¥×¥í¥°¥é¥à¤Ç¤¢¤ë¡¥

void linetraceSL()//¸òº¹ÅÀ¤Ç»ß¤Þ¤ë
{
    long t0=0,t_black=0,t_max=jikan;

    t0=CurrentTick();//t0¤Ï¸½ºß¤Î»þ´Ö
    while(t_black<t_max){//t_black¤¬t_max¤òĶ¤¨¤ë¤Þ¤Ç³¤±¤ë
     if(SENSOR_3>white){//¤â¤·¸÷¥»¥ó¥µ¡¼¤ÇÇò¤¬¤¬Â¬Äꤵ¤ì¤ë¤È
      turnRR;
     } else if(SENSOR_3>white-5){//¤â¤·¸÷¥»¥ó¥µ¡¼¤ÇÇò-5¤¬Â¬Äꤵ¤ì¤ë¤È
      turnR;
     } else if(SENSOR_3>black+5){//¤â¤·¸÷¥»¥ó¥µ¡¼¤Ç¹õ+5¤¬Â¬Äꤵ¤ì¤ë¤È
      mae;
     } else if(SENSOR_3>black){//¤â¤·¸÷¥»¥ó¥µ¡¼¤Ç¹õ¤¬Â¬Äꤵ¤ì¤ë¤È
      turnL;
     } else{
      turnLL;
      t0=CurrentTick();//t0¤Ï¸½ºß¤Î»þ´Ö
      until((SENSOR_3<black+5)&&(SENSOR_3>black));//¹õ+5¤«¹õ¤Ë¤Ê¤ë¤Þ¤Ç
      t_black=CurrentTick()-t0;
     }
     Wait(step);
    }
}

¸òº¹ÅÀ¤Ç»ß¤Þ¤ê¡¤Ä¾¿Ê¤¹¤ë¤È¤­¤Î±¦Â¦¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹

void linetraceSR()//¸òº¹ÅÀ¤Ç»ß¤Þ¤ë
{
    long t0=0,t_black=0,t_max=jikan;
    t0=CurrentTick();//t0¤Ï¸½ºß¤Î»þ´Ö
    while(t_black<t_max){//t_black¤¬t_max¤òĶ¤¨¤ë¤Þ¤Ç³¤±¤ë
     if(SENSOR_3>white){//¤â¤·¸÷¥»¥ó¥µ¡¼¤ÇÇò¤¬¤¬Â¬Äꤵ¤ì¤ë¤È
      turnLL;
     } else if(SENSOR_3>white-5){//¤â¤·¸÷¥»¥ó¥µ¡¼¤ÇÇò-5¤¬Â¬Äꤵ¤ì¤ë¤È
      turnL;
     } else if(SENSOR_3>black+5){//¤â¤·¸÷¥»¥ó¥µ¡¼¤Ç¹õ+5¤¬Â¬Äꤵ¤ì¤ë¤È
      mae;
     } else if(SENSOR_3>black){//¤â¤·¸÷¥»¥ó¥µ¡¼¤Ç¹õ¤¬Â¬Äꤵ¤ì¤ë¤È
      turnR;
     } else{
      turnRR;
      t0=CurrentTick();//t0¤Ï¸½ºß¤Î»þ´Ö
      until((SENSOR_3<black+5)&&(SENSOR_3>black));//¹õ+5¤«¹õ¤Ë¤Ê¤ë¤Þ¤Ç
      t_black=CurrentTick()-t0;
     }
     Wait(step);
    }
}

¸òº¹ÅÀ¤Ç»ß¤Þ¤ê¡¤¥«¡¼¥Ö¤òÅϤë»þ¤Îº¸Â¦¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹

void linetraceCL()//¸òº¹ÅÀ¤Ç»ß¤Þ¤ë
{
    long t0=0,t_black=0,t_max=jikan;
    t0=CurrentTick();//t0¤Ï¸½ºß¤Î»þ´Ö
    while(t_black<t_max){//t_black¤¬t_max¤òĶ¤¨¤ë¤Þ¤Ç³¤±¤ë
     if(SENSOR_3>white){//¤â¤·¸÷¥»¥ó¥µ¡¼¤ÇÇò¤¬¤¬Â¬Äꤵ¤ì¤ë¤È
      turnRRR;
     } else if(SENSOR_3>white-5){//¤â¤·¸÷¥»¥ó¥µ¡¼¤ÇÇò-5¤¬Â¬Äꤵ¤ì¤ë¤È
      turnRR;
     } else if(SENSOR_3>black+5){//¤â¤·¸÷¥»¥ó¥µ¡¼¤Ç¹õ+5¤¬Â¬Äꤵ¤ì¤ë¤È
      mae;
     } else if(SENSOR_3>black){//¤â¤·¸÷¥»¥ó¥µ¡¼¤Ç¹õ¤¬Â¬Äꤵ¤ì¤ë¤È
      turnLL;
     } else{
      turnLLL;
      t0=CurrentTick();//t0¤Ï¸½ºß¤Î»þ´Ö
      until((SENSOR_3<black+5)&&(SENSOR_3>black));//¹õ+5¤«¹õ¤Ë¤Ê¤ë¤Þ¤Ç
      t_black=CurrentTick()-t0;
     }
     Wait(step);
    }
}

¸òº¹ÅÀ¤Ç»ß¤Þ¤ê¡¤¥«¡¼¥Ö¤òÅϤë»þ¤Î±¦Â¦¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹

void linetraceCR()//¸òº¹ÅÀ¤Ç»ß¤Þ¤ë
{
    long t0=0,t_black=0,t_max=jikan;         
    t0=CurrentTick();//t0¤Ï¸½ºß¤Î»þ´Ö
    while(t_black<t_max){//t_black¤¬t_max¤òĶ¤¨¤ë¤Þ¤Ç³¤±¤ë
     if(SENSOR_3>white){
      turnLL;
     } else if(SENSOR_3>white-5){//¤â¤·¸÷¥»¥ó¥µ¡¼¤ÇÇò-5¤¬Â¬Äꤵ¤ì¤ë¤È
      turnL;
     } else if(SENSOR_3>black+5){//¤â¤·¸÷¥»¥ó¥µ¡¼¤Ç¹õ+5¤¬Â¬Äꤵ¤ì¤ë¤È
      mae;
     } else if(SENSOR_3>black){//¤â¤·¸÷¥»¥ó¥µ¡¼¤Ç¹õ¤¬Â¬Äꤵ¤ì¤ë¤È
      turnR;
     } else{
      turnRR;
      t0=CurrentTick();//t0¤Ï¸½ºß¤Î»þ´Ö
      until((SENSOR_3<black+5)&&(SENSOR_3>black));//¹õ+5¤«¹õ¤Ë¤Ê¤ë¤Þ¤Ç
      t_black=CurrentTick()-t0;
     }
     Wait(step);
    }
}

¸òº¹ÅÀ¤Çľ¿Ê¤¹¤ë¥×¥í¥°¥é¥à

¤Þ¤º¡¤¸÷¥»¥ó¥µ¡¼¤¬Çò-5¤òĶ¤¨¤ë¤Þ¤Ç¤Þ¤Ã¤¹¤°¿Ê¤ß¡¤¼¡¤Ë¸÷¥»¥ó¥µ¡¼¤¬¸÷¥»¥ó¥µ¡¼¤¬¹õ+5¤òĶ¤¨¤ë¤Þ¤Ç±¦¤Ë¶Ê¤¬¤ë¡¥¤³¤ì¤¬¸òº¹ÅÀ¤Çľ¿Ê¤¹¤ë¥×¥í¥°¥é¥à¤Ç¤¢¤ë¡¥

void crossline()//¸òº¹ÅÀ¤òÅϤë
{
    mae;
    until(SENSOR_3>white-5);//¸÷¥»¥ó¥µ¡¼¤¬Çò-5¤òĶ¤¨¤ë¤Þ¤Ç
    turnR
    until(SENSOR_3>black+5);//¸÷¥»¥ó¥µ¡¼¤¬¹õ+5¤òĶ¤¨¤ë¤Þ¤Ç
}

±¦¤Ë¶Ê¤¬¤ë¥×¥í¥°¥é¥à

void Rcurve()//±¦¤Ë¶Ê¤¬¤ë
{
    turnRRR;
    until(SENSOR_3>white-5);//¸÷¥»¥ó¥µ¡¼¤¬Çò-5¤òĶ¤¨¤ë¤Þ¤Ç
}

º¸¤Ë¶Ê¤¬¤ë¥×¥í¥°¥é¥à

void Lcurve()//º¸¤Ë¶Ê¤¬¤ë
{
    turnLLL
    until(SENSOR_3>white);//¸÷¥»¥ó¥µ¡¼¤¬Çò¤òĶ¤¨¤ë¤Þ¤Ç
}

¥í¥Ü¥Ã¥È¤Î¸þ¤­¤òÊѤ¨¤ë¥×¥í¥°¥é¥à

void kaiten()//¥í¥Ü¥Ã¥È¤ò180Åٲ󞤵¤»¤ë
{
    mae;
    Wait(900)
    OnFwd(OUT_B,20);OnRev(OUT_C,10);
    until(SENSOR_3<black+5);
}

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

¥á¥¤¥ó¥×¥í¥°¥é¥à¤Ï¡¢ÄêµÁ¤·¤¿¤â¤Î¤òÁȤ߹ç¤ï¤»¤Þ¤¹¡¥

task main()
{
    SetSensorLight(S3);
    linetraceCL();//M¢ªK
    crossline();//¸òº¹ÅÀ¤òÅϤë
    OnFwd(OUT_BC,30);Wait(2900);Off(OUT_BC);//K¢ªL
    OnFwd(OUT_A,30);Wait(1000);Off(OUT_A);//¥¢¡¼¥à¤ò²¼¤²¤Æ¥Ô¥ó¥Ý¥ó¶Ì¤ò¼è¤ë
    kaiten();//¥í¥Ü¥Ã¥È¤Î¸þ¤­¤òÊѤ¨¤ë
    linetraceSR();L¢ªK
    Rcurve();//±¦¤Ë¶Ê¤¬¤ë
    linetreceSL();//K¢ªJ 
¡¡¡¡teishi;//°ì»þÄä»ß
    Lcurve();//º¸¤Ë¶Ê¤¬¤ë
    linetraceCL();//J¢ªI
    croseline();//¸òº¹ÅÀ¤òÅϤë
    linetraceCL();//J¢ªH
    croseline();//¸òº¹ÅÀ¤òÅϤë
    linetraceCL();//H¢ªG
    Lcurve();//º¸¤Ë¶Ê¤¬¤ë
    linetraceSL();//G¢ªF
    Lcurve();//º¸¤Ë¶Ê¤¬¤ë
    linetraceSL();//F¢ªE
    Lcurve();//º¸¤Ë¶Ê¤¬¤ë
    linetraceSL();//E¢ªD
    teishi;//°ì»þÄä»ß
    crossline();//¸òº¹ÅÀ¤òÅϤë
    linetraceCR();//D¢ªB
    teishi;//°ì»þÄä»ß
    OnRev(OUT_A,30);Wait(1000);Off(OUT_A);//¥¢¡¼¥à¤ò¾å¤²¤Æ¥Ô¥ó¥Ý¥ó¶Ì¤ò½Ð¤¹ 
}

¤Þ¤È¤á

º£²ó¤Î¥×¥í¥°¥é¥à¤Ï¥µ¥Ö¥ë¡¼¥Á¥ó¤ò¿¤¯ÍѤ¤¤Þ¤·¤¿¡¥»Ï¤á¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤¹¤ë¤À¤±¤Ç¤â¥í¥Ü¥Ã¥È¤¬»×¤¦¤è¤¦¤ËÆ°¤«¤ºÂçÊѶìÏ«¤·¤Þ¤·¤¿¡¥¤·¤«¤·¡¤·ë²Ì¤È¤·¤ÆǼÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¥×¥í¥°¥é¥à¤¬¤Ç¤­¤¿¤Î¤ÇÎɤ«¤Ã¤¿¤Ç¤¹¡¥¤¿¤À¡¤¥Ü¡¼¥ë¤ò¼è¤ë¤È¤³¤í¤Ç»ß¤Þ¤ë¤¿¤á¤Î¸úΨŪ¤Ê¥×¥í¥°¥é¥à¤¬»×¤¤¤Ä¤«¤Ê¤«¤Ã¤¿¤Î¤Ç¡¤¼¡¤Ï¤½¤³¤ò²þÎɤ·¤Æ¤¤¤­¤¿¤¤¤Ç¤¹¡¥


źÉÕ¥Õ¥¡¥¤¥ë: fileIMG_1785.jpg 233·ï [¾ÜºÙ]

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