¥á¥ó¥Ð¡¼¾Ò²ð

²ÝÂê

[ÌÜɸ]

[¿Þ] http://yakushi.shinshu-u.ac.jp/robotics/?plugin=ref&page=2013a%2FMission1&src=robotics-2013a-mission1.jpg

¥í¥Ü¥Ã¥È¾Ò²ð

480¡ß640,¼Ì¿¿1

640¡ß480,¼Ì¿¿2

¥×¥í¥°¥é¥à¤Î³µÍ×(È¿»þ·×¼þ¤ê)

­¡¥¹¥¿¡¼¥È¤«¤é7.5Éø塢¥¢¡¼¥à¤òÊĤ¸¤Æ´Ì¤òÄϤࡣ

­¢¤½¤Î¤Þ¤Þ¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¹Ô¤¤¡¢26Éøå¥È¥ì¡¼¥¹¤¹¤ë°ÌÃÖ¤ÎÊѹ¹

­£36ÉøåºÆ¤Ó°ÌÃÖ¤ÎÊѹ¹

­¤¤â¤·55Éøå°Ê¹ß¤Ë¸òº¹ÅÀ¤Ë¤Ö¤Ä¤«¤Ã¤¿¾ì¹ç¡¢¸þ¤­¤ò180Åٲ󞤷¤¿¸å´Ì¤òÃÖ¤¯¡£

­¥¥é¥¤¥ó¥È¥ì¡¼¥¹¤Ë¤è¤ê¥´¡¼¥ë¤Ø¸þ¤«¤¦¡£

¥×¥í¥°¥é¥à

#define white1 39
#define white2 45
#define black1 60
#define black2 65
#define go_forward OnFwd(OUT_BC,40)¡¡//Á°¿Ê
#define turn_left2 OnFwd(OUT_C,40);Off(OUT_B)¡¡//º¸ÀÞ
#define turn_left1 OnFwd(OUT_C,40);OnRev(OUT_B,30) //µÞº¸ÀÞ
#define turn_right2 OnFwd(OUT_B,40);Off(OUT_C)  //±¦ÀÞ
#define turn_right1 OnFwd(OUT_B,40);OnRev(OUT_C,20)  //µÞ±¦ÀÞ
#define STEP 1
#define nMAX 180
#define short_break Off(OUT_BC);Wait(1000);
task main ()
{
   SetSensorLight(S3);
   int nOnline=0;
   long t0 = CurrentTick();
   int n=0;
   while (CurrentTick()-t0 <= 7500) {  /¥¹¥¿¡¼¥È¤«¤é7.5Éäޤǥ饤¥ó¥È¥ì¡¼¥¹
       if (SENSOR_3 < white1) {
           turn_left1;
       } else if (SENSOR_3 < white2) {
           turn_left2;
       } else if (SENSOR_3 < black1) {
           go_forward;
       } else if (SENSOR_3 < black2) {
           turn_right2;
       } else {
           turn_right1;
       }
      Wait(STEP);
   }
      OnFwd(OUT_A,50);Wait(800);Off(OUT_A);¡¡/¡¡7.5ÉäË㤷¤¿¤é¥¢¡¼¥à¤Ç´Ì¤òÄϤà
   while (CurrentTick()-t0 <= 26000) {¡¡¡¡/ ¥¹¥¿¡¼¥È¤«¤é26Éäˤʤë¤Þ¤ÇºÆ¤Ó¥é¥¤¥ó¥È¥ì¡¼¥¹
       while(nOnline < nMAX && CurrentTick()-t0 <= 26000) {
           if (SENSOR_3 < white1) {
           turn_left1;
           nOnline++;
     } else {
         if (SENSOR_3 < white2) {
           turn_left2;
       } else if (SENSOR_3 < black1) {
           go_forward;
       } else if (SENSOR_3 < black2) {
           turn_right2;
       } else {
           turn_right1;
         }
       nOnline=0;
       }
      Wait(STEP);
   }
   turn_right2;Wait(nMAX*STEP);
   OnFwd(OUT_BC,30);Wait(200);¡¡¡¡/ 0.2ÉäÀ¤±Á°¿Ê¤¹¤ë»ö¤Ë¤è¤ê¥È¥ì¡¼¥¹¤¹¤ëÀþ¤Îº¸±¦¤Îȿž(¢¨)
   nOnline=0;¡¡¡¡¡¡/¡¡¥«¥¦¥ó¥¿¡¼¤Î¥ê¥»¥Ã¥È
 }turn_right1;Wait(100);

819¡ß460,¼Ì¿¿3

(¢¨)¤Ë¤Ä¤¤¤Æ
¾å¤Î¿Þ¤Ï²«¿§¤ÎÀþ¤¬¥í¥Ü¥Ã¥È¤Îµ°ÀפǤ¢¤ë¡£
¾å¤Î¥×¥í¥°¥é¥à¤Ç¤ÏÀÖ¤¤´Ý¤Ç°Ï¤Þ¤ì¤¿ÊÕ¤ê¤ËÍ褿»þ¤Ë¼Ð¤á¤ËÁ°¿Ê¤µ¤»¤ë¤³¤È¤Ë¤è¤Ã¤Æ
Àþ¤Î±¦Â¦¤òÄ̤äƤ¤¤¿¥í¥Ü¥Ã¥È¤òÀþ¤Îº¸Â¦¤Ë°ÜÆ°¤µ¤»¤ë¡£
¤½¤¦¤¹¤ë»ö¤Ç¸òº¹ÅÀ¤òÅϤëºÝ¤Ë±Ô³Ñ¤Ê¸òº¹ÅÀ¤òÄ̤ë»ö¤¬¤Ç¤­¤ë¡£
¤Þ¤¿¡¢Àִݤ¬£²¤Ä¤¢¤ë¤Î¤Ï¡¢¤³¤Î¸å¤Î¥×¥í¥°¥é¥à¤Ë¤â¤³¤ÎÆ°ºî¤¬¹Ô¤ï¤ì¤ë¤«¤é¤Ç¤¢¤ë¡£
¤½¤Î²Õ½ê¤ò(¢¨2)¤È¤¹¤ë
   while (CurrentTick()-t0 <= 36000) { / ¥¹¥¿¡¼¥È¤«¤é36Éøå¤Þ¤Ç¥é¥¤¥ó¥È¥ì¡¼¥¹
       while(nOnline < nMAX && CurrentTick()-t0 <= 36000) {¡¡/36É÷Ф俾ì¹ç¼¡¤Î¥×¥í¥°¥é¥à¤Ë°Ü¤ë
           if (SENSOR_3 < white1) {
           turn_right1;
           nOnline++;
     } else {
         if (SENSOR_3 < white2) {
           turn_right2;
       } else if (SENSOR_3 < black1) {
           go_forward;
       } else if (SENSOR_3 < black2) {
           turn_left2;
       } else {
           turn_left1;
         }
       nOnline=0;
       }
      Wait(STEP);
   }
   turn_left2;Wait(nMAX*STEP);
   OnFwd(OUT_BC,30);Wait(200);¡¡/Á°¿Ê¤µ¤»¤ë¤³¤È¤Ë¤è¤ê¥È¥ì¡¼¥¹¤¹¤ëÀþ¤Îȿž(¢¨2)
   nOnline=0;
 }turn_left1;Wait(200);
   while (n<2) {
       while(nOnline < nMAX && n<2) { /¤â¤·£²²óÌܤθòº¹ÅÀ¤ò´¶ÃΤ·¤¿¾ì¹ç¸å¤í¤Ë²¼¤¬¤ëÆ°ºî¤ò¹Ô¤¦
           if (SENSOR_3 < white1) {
           turn_left1;
           nOnline++;
     } else {
         if (SENSOR_3 < white2) {
           turn_left2;
       } else if (SENSOR_3 < black1) {
           go_forward;
       } else if (SENSOR_3 < black2) {
           turn_right2;
       } else {
           turn_right1;
         }
       nOnline=0;
       }
      Wait(STEP);
   }
   turn_right2;Wait(nMAX*STEP);
   OnRev(OUT_BC,30);Wait(200); /¸å¤í¤Ë²¼¤¬¤ë
   nOnline=0;n++;
 }
   OnRev(OUT_BC,50);Wait(500);OnFwd(OUT_C,50);OnRev(OUT_B,50);Wait(300);
   OnFwd(OUT_C,50);OnRev(OUT_B,50);until(SENSOR_3 < 50);¡¡¡¡/ ¾å¤Î2¹Ô¤Ë¤è¤Ã¤Æ¥í¥Ü¥Ã¥È¤ÏU¥¿¡¼¥ó¤¹¤ë
   long t1 = CurrentTick();¡¡/ &#12959;¤³¤³¤«¤ét0¤«¤ét1¤Î¥¿¥¤¥Þ¡¼¤ËÀÚ¤êÂؤ¨
     while (CurrentTick()-t1 <= 1800) {
       if (SENSOR_3 < white1) {
           turn_right1;
       } else if (SENSOR_3 < white2) {
           turn_right2;
       } else if (SENSOR_3 < black1) {
           go_forward;
       } else if (SENSOR_3 < black2) {
           turn_left2;
       } else {
           turn_left1;
       }
      Wait(STEP);
   }
   turn_left1;Wait(270);Off(OUT_BC);OnRev(OUT_A,50);Wait(300);Off(OUT_A);
   OnRev(OUT_BC,50);Wait(600);OnFwd(OUT_B,50);OnRev(OUT_C,50);Wait(300);
   OnFwd(OUT_B,50);OnRev(OUT_C,50);until(SENSOR_3 < 50);
   long t2 = CurrentTick();¡¡¡¡/ ¾å¤Î£³¹Ô¤Î¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤ÆU¥¿¡¼¥ó¤ò¤·¤¿¥í¥Ü¥Ã¥È¤¬Äê°ÌÃ֤ޤǿʤߴ̤òÃÖ¤¤¤Æu¥¿¡¼¥ó¤¹¤ë

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡/ ㊟¤³¤³¤«¤é¤Ït1¤«¤ét2¤Ë¥¿¥¤¥Þ¡¼¤òÊѹ¹

       while (CurrentTick()-t2 <= 3900) {
       if (SENSOR_3 < white1) 
{
           turn_left1;
       } else if (SENSOR_3 < white2) {
           turn_left2;
       } else if (SENSOR_3 < black1) {
           go_forward;
       } else if (SENSOR_3 < black2) {
           turn_right2;
       } else {
           turn_right1;
       }
      Wait(STEP);
   }
   Off(OUT_BC);¡¡/¥´¡¼¥ë¤·¤¿¤¿¤á¥×¥í¥°¥é¥à¤Î½ªÎ»
}

´¶ÁÛ

¡¦º£²ó¤Î²ÝÂê¤òÄ̤¸¤Æ¡¢ºÇ½é¤Ï¾å¼ê¤¯¥é¥¤¥ó¥È¥ì¡¼¥¹¤·¤Ê¤«¤Ã¤¿¤¿¤á¡¢¥Ñ¥ï¡¼¤òÍî¤È¤·¤ÆÆ°¤«¤¹¤³¤È¤ÇÀµ³Î¤Ê¥È¥ì¡¼¥¹¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£

¡¦È¯É½¤ÎºÝ¤Ë¤Ï¡¢º£¤Þ¤Ç¾å¼ê¤¯¤¤¤Ã¤Æ¤¤¤¿¤Î¤Ë¡¢ËÜÈ֤Ǥϵޤ˼ºÇÔ¤·¤Æ¤·¤Þ¤¤¡¢¥¿¥¤¥Þ¡¼¤Ç¤ÎÁàºî¤ÎÆñ¤·¤µ¤ò¼Â´¶¤·¤¿¡£

¡¦¸òº¹ÅÀ¤Ç¤Î¼ºÇÔ¤¬Â¿¤«¤Ã¤¿¤¿¤á¡¢¤â¤¦¾¯¤·²þÎɤ¹¤Ù¤­¤Ç¤¢¤Ã¤¿¡£


źÉÕ¥Õ¥¡¥¤¥ë: file6.jpg 346·ï [¾ÜºÙ] file5.png 171·ï [¾ÜºÙ] file̵Âê.png 168·ï [¾ÜºÙ] file3.JPG 351·ï [¾ÜºÙ] file2.JPG 342·ï [¾ÜºÙ] file1.JPG 167·ï [¾ÜºÙ] filerobotics-2013a-mission1.jpg 194·ï [¾ÜºÙ]

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