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

DSC_0148.jpg

¼Ì¿¿¤Î¥Ï¥µ¥ß¤¬³«ÊĤ¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ´Ì¤ò¤Ä¤«¤ó¤À¤êÎ¥¤·¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ ¥Ï¥µ¥ß¤ÎÀèü¤Ë¤Ï¾®¤µ¤Ê¥¿¥¤¥ä¤ò¼è¤êÉÕ¤±¡¢´Ì¤¬¥Ï¥µ¥ß¤«¤é³ê¤êÍî¤Á¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¤¤ë¡£

¥³¡¼¥¹¹¶Î¬Ë¡

robotics-2013a-mission10.jpg

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

#define THRESHOLD 42 //¤·¤­¤¤ÃÍ
#define HIPOWER 5 //®¤µ¤ÎÃÍ¡Ê®¡Ë
#define LOWPOWER 1 //®¤µ¤ÎÃÍ¡ÊÃÙ¡Ë
#define set_power_H SetPower(OUT_AC,HIPOWER); //®¤¤²óž
#define set_power_L SetPower(OUT_AC,LOWPOWER); //ÃÙ¤¤²óž
#define go_forward set_power_H; OnFwd(OUT_AC); //Á°¿Ê
#define turn_left1 set_power_L; OnRev(OUT_A); OnFwd(OUT_C);//±¦Àû²ó
#define turn_left0 set_power_L; Off(OUT_A); OnFwd(OUT_C); //±¦ÀÞ
#define turn_right0 set_power_L; OnFwd(OUT_A); Off(OUT_C); //º¸ÀÞ
#define turn_right1 set_power_L; OnFwd(OUT_A); OnRev(OUT_C); //º¸Àû²ó
#define STEP 1 //¹õ¤òȽÃǤ¹¤ë´Ö³Ö
#define nMAX 3 //¸òº¹ÅÀ¤òȽÃǤ¹¤ë´ð½à¤ÎÃÍ
#define short_break Off(OUT_AC); Wait(10); //¾®µÙ»ß
#define cross_time 20 //¸òº¹ÅÀ¤òÅϤë»þ´Ö
#define cross_line go_forward set_power_H; OnFwd(OUT_AC); Wait(cross_time); short_break; //¸òº¹ÅÀ¤òÅϤëÆ°ºî
#define time1 1600 //·è¤á¤é¤ì¤¿¥Ý¥¤¥ó¥È¤Þ¤ÇÆ°ºî¤¹¤ë»þ´Ö
#define time3 900 
#define time5 900 
task main() {
 SetSensor(SENSOR_2, SENSOR_LIGHT);
 SetSensor(SENSOR_1, SENSOR_TOUCH);
 ClearTimer(0);
 int counter=0;
 int nOnline=0;
  if (SENSOR_1 == 0){ //­¡¤Î¥³¡¼¥¹¤ÎÅÓÃæ¤Þ¤ÇÄ̾ï¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹
   OnFwd(OUT_B);
  }
  while(FastTimer(0) <= time1){
   if (SENSOR_1 == 1){
    OnRev(OUT_B);
   }
   if (SENSOR_2 < THRESHOLD -4){
    turn_left1;
   } else if (SENSOR_2 < THRESHOLD -3){
    turn_left0;
   } else if (SENSOR_2 < THRESHOLD +0){
    go_forward;
   } else if (SENSOR_2 < THRESHOLD +2){
    turn_right0;
   } else {
    turn_right1;
   }
    Wait(STEP);
  }
 PlaySound(SOUND_CLICK);
 while(counter < 3){ //¸òº¹ÅÀ¤ò£³¤ÄÅϤë
   while(nOnline < nMAX){
    if (SENSOR_2 < THRESHOLD -3){
     turn_left1;
     nOnline++;
    } else {
    if (SENSOR_2 < THRESHOLD -2){
     turn_left0;
    } else if (SENSOR_2 < THRESHOLD -0){
     go_forward;
    } else if (SENSOR_2 < THRESHOLD +2){
     turn_right0;
    } else {
     turn_right1;
    } 
     nOnline=0;
    }
    Wait(STEP);
   }
   short_break;
   turn_right1; Wait(nMAX*STEP);
   cross_line;
   PlaySound(SOUND_UP);
   nOnline=0;
   counter++;
   }
 PlaySound(SOUND_CLICK);
 ClearTimer(0);
 while(FastTimer(0) <= time3){ //Ä̾ï¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹
  if (SENSOR_2 < THRESHOLD -4){
   turn_left1;
  } else if (SENSOR_2 < THRESHOLD -3){
   turn_left0;
  } else if (SENSOR_2 < THRESHOLD +0){
   go_forward;
  } else if (SENSOR_2 < THRESHOLD +2){
   turn_right0;
  } else {
   turn_right1;
  }
  Wait(STEP);
 }
 PlaySound(SOUND_CLICK);
 counter=0;
 while(counter < 1){ //¸òº¹ÅÀ¤ò°ì¤ÄÅϤë
  while(nOnline < nMAX){
   if (SENSOR_2 < THRESHOLD -4){
    turn_left1;
    nOnline++;
   } else {
    if (SENSOR_2 < THRESHOLD -3){
     turn_left0;
   } else if (SENSOR_2 < THRESHOLD -0){
     go_forward;
   } else if (SENSOR_2 < THRESHOLD +2){
     turn_right0;
   } else {
     turn_right1;
   } 
    nOnline=0;
   }
  Wait(STEP);
  }
  short_break;
  turn_right1; Wait(nMAX*STEP);
  cross_line;
  PlaySound(SOUND_UP);
  nOnline=0;
  counter++;
  }
 PlaySound(SOUND_CLICK);
 ClearTimer(0);
 while(FastTimer(0) <= time5){ //¥³¡¼¥¹ÅÓÃæ¤Þ¤ÇÄ̾ï¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹
  if (SENSOR_2 < THRESHOLD -4){
   turn_left1;
  } else if (SENSOR_2 < THRESHOLD -3){
   turn_left0;
  } else if (SENSOR_2 < THRESHOLD +0){
   go_forward;
  } else if (SENSOR_2 < THRESHOLD +4){
   turn_right0;
  } else {
   turn_right1;
   }
    Wait(STEP);
   }
 PlaySound(SOUND_CLICK);
counter=0;
while(counter < 1){ //¥¹¥¿¡¼¥È¤Î°ÌÃÖ¤òȽÃǤ·¤Æ¼¡¤ÎÌ¿Îá¤Ë°Ü¤ë
while(nOnline < nMAX){
 if (SENSOR_2 < THRESHOLD -4){
  turn_left1;
  nOnline++;
 } else {
  if (SENSOR_2 < THRESHOLD -3){
   turn_left0;
 } else if (SENSOR_2 < THRESHOLD -0){
  go_forward;
 } else if (SENSOR_2 < THRESHOLD +2){
  turn_right0;
 } else {
  turn_right1;
 } 
 nOnline=0;
}
Wait(STEP);
}
OnRev(OUT_B); //È¿ÂÐÊý¸þ¤ò¸þ¤¯
OnRev(OUT_A);
OnFwd(OUT_C);  
Wait(400);
Off(OUT_AC);
OnFwd(OUT_AC); //´Ì¤òÃÖ¤¯°ÌÃ֤ޤǿʤà
Wait(200);
OnFwd(OUT_B);
Off(OUT_AC);
Wait(100);
Off(OUT_B); //´Ì¤òÎ¥¤·¤Æ¸åÂह¤ë
OnRev(OUT_AC);
Wait(100);
OnRev(OUT_C); //È¿ÂÐÊý¸þ¤ò¸þ¤¯
OnFwd(OUT_A);  
Wait(400);
counter++;
  while(true){ //¥´¡¼¥ë¤Þ¤ÇÄ̾ï¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹
   if (SENSOR_2 < THRESHOLD -4){
    turn_left1;
   } else if (SENSOR_2 < THRESHOLD -3){
    turn_left0;
   } else if (SENSOR_2 < THRESHOLD +0){
    go_forward;
   } else if (SENSOR_2 < THRESHOLD +2){
    turn_right0;
   } else {
    turn_right1;
   }
  Wait(STEP);
  }
  PlaySound(SOUND_CLICK);
 }
}

¤Þ¤È¤á

¥í¥Ü¥Ã¥ÈËÜÂΤˤĤ¤¤Æ

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


źÉÕ¥Õ¥¡¥¤¥ë: fileDSC_0148.jpg 288·ï [¾ÜºÙ] filerobotics-2013a-mission10.jpg 340·ï [¾ÜºÙ]

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