2013a/Member

²ÝÂꣲ¤Ë¤Ä¤¤¤Æ

¥í¥Ü¥Ã¥ÈËÜÂξҲð

½é´ü¥Þ¥·¥ó

¥í¥Ü­¡

ÆóÂåÌÜ

¥í¥Ü­¢

»°ÂåÌÜ

¥í¥Ü­£

»ÍÂåÌÜ

¥í¥Ü­¤

ºÇ½ª¥Þ¥·¥ó

¥í¥Ü­¥

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

1 Âè°ì¤Î¥Ý¥¤¥ó¥È¡¼¥Ü¡¼¥ë¤Î¥­¥ã¥Ã¥Á

²óž¤ò¥Ù¡¼¥¹¤Ë¥Ü¡¼¥ë¤ò¥­¥ã¥Ã¥Á¡£¥¿¥¤¥Þ¡¼¤È¥¿¥Ã¥Á¥»¥ó¥µ¡¼¤òÍѤ¤¤ÆÀºÅÙ¤ò¸þ¾å¤µ¤»¤Þ¤·¤¿¡£ ¥×¥í¥°¥é¥à¤Ï°Ê¹ß¤Ë¼¨¤¹Ä̤ꡣ

2 ÂèÆó¤Î¥Ý¥¤¥ó¥È¡¼ºÇ½é¤Î¥Ñ¥¹

Æñ´Ø¤À¤Ã¤¿¤Î¤Ï¶õ¤­´Ì¤¬¤¢¤ë¤³¤È¡£¥·¥å¡¼¥È¤ÎÀµ³ÎÀ­¤Ï¹â¤«¤Ã¤¿¤Î¤Ç¥í¥Ü¤Î¥Ý¥¸¥·¥ç¥ó¤òÄ´À°¤¹¤ë¤³¤È¤Ç¹îÉþ¡£

3 Âè»°¤Î¥Ý¥¤¥ó¥È¡¼¥Ñ¥¹¤Î¼õ¤±¼è¤ê

¥í¥Ü¤ÎËÜÂΤ¬¤«¤Ê¤êŤ¤¤¦¤¨¤Ë¥¢¡¼¥à¤Î¹½Â¤¾åÆ°¤¯É¬ÍפϤʤ·¡£¤³¤³¤¬¤³¤Î¥í¥Ü¤ÎÍøÅÀ¤Î°ì¤Ä¤Ç¤¹¡£

4 Âè»Í¤Î¥Ý¥¤¥ó¥È¡¼¥·¥å¡¼¥È

¤³¤ì¤Ë¤Ä¤¤¤Æ¤Ï¤Û¤Ü´°àú¡£¥·¥å¡¼¥È¤ÎÀºÅ٤ϤۤÜɬÃæ¤Ç¤·¤¿¡£¥í¥Ü¤Î¹½Â¤¾å´Êñ¤Ê¥×¥í¥°¥é¥à¤Ç¥·¥å¡¼¥È¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤·¤¿¡£

¥×¥í¥°¥é¥à¾ÜºÙ

#define THRESHOLD 40
#define HHIPOWER 7 // ľÀþ¤È¥Ü¡¼¥ë¤òÂǤÁ½Ð¤¹¤È¤­ÍѤζ¯¤á¤Î¥Ñ¥ï¡¼
#define POWER 2 // ¥«¡¼¥Ö¡¢Àû²óÍѤμå¤á¤Î¥Ñ¥ï¡¼
#define LOWPOWER 0 // ¥Ü¡¼¥ë¤ò¥­¥ã¥Ã¥Á¤¹¤ëÍѤμ夤¥Ñ¥ï¡¼
#define set_power_HH SetPower(OUT_AC,HHIPOWER);
#define set_power_M SetPower(OUT_AC,POWER);
#define set_power_L SetPower(OUT_B,LOWPOWER);
#define go_forward set_power_HH; OnFwd(OUT_AC); // Á°¤Ë¿Ê¤àÆ°ºî
#define go_back set_power_HH; OnRev(OUT_AC); // ¸å¤í¤Ë¿Ê¤àÆ°ºî
#define turn_left1 set_power_M; Off(OUT_A); OnFwd(OUT_C); // º¸¤Ë¥«¡¼¥Ö¤¹¤ëÆ°ºî¡×
#define turn_right1 set_power_M; OnFwd(OUT_A); Off(OUT_C); // ±¦¤Ë¥«¡¼¥Ö¤¹¤ëÆ°ºî
#define turn_left2 set_power_M; OnRev(OUT_A); OnFwd(OUT_C); // º¸¤ËÀû²ó¤¹¤ëÆ°ºî
#define turn_right2 set_power_M; OnFwd(OUT_A); OnRev(OUT_C); // ±¦¤ËÀû²ó¤¹¤ëÆ°ºî
#define catch_ball set_power_L; OnFwd(OUT_B); // ¥Ü¡¼¥ë¤ò¥­¥ã¥Ã¥Á¤¹¤ëÆ°ºî
#define pass_ball set_power_HH; OnRev(OUT_B);Wait(150);Off(OUT_B); // ¥Ü¡¼¥ë¤òÂǤÁ½Ð¤¹Æ°ºî
#define STEP 1 // £±²ó¤ÎȽÃǤÇÆ°ºî¤µ¤»¤ë»þ´Ö

¡¦¤³¤³¤«¤é¤¬¥í¥Ü¥Ã¥È¤òÆ°¤«¤¹¤¿¤á¤Î»ØÎá

task main()
{
  SetSensor(SENSOR_1,SENSOR_LIGHT); // ¡Ö£±¡×¤Î¤È¤³¤í¤Ë¸÷¥»¥ó¥µ¡¼¤òÀßÃÖ
  SetSensor(SENSOR_2,SENSOR_TOUCH); // ¡Ö£²¡×¤Î¤È¤³¤í¤Ë¥¿¥Ã¥Á¥»¥ó¥µ¡¼¤òÀßÃÖ
  SetSensor(SENSOR_3,SENSOR_LIGHT); // ¡Ö£³¡×¤Î¤È¤³¤í¤Ë¸÷¥»¥ó¥µ¡¼¤òÀßÃÖ

Âè°ì¤Î¥Ý¥¤¥ó¥È
¥¢¡¼¥à¤ÎŤµ¤Ë¤è¤ê²¼¿Þ¤ÎÀÖ¤¤Ìð°õ¤Î¤¢¤¿¤ê¤«¤éº¸Àû²ó¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¥Ü¡¼¥ë¤ò¥­¥ã¥Ã¥Á¡£

¥é¥¤¥ó
   ClearTimer(0); // ¥¿¥¤¥Þ¡¼¤ò¥ê¥»¥Ã¥È
  while (FastTimer(0) <= 430) { // 4.3Éô֡¢Ä̾ï¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹
    if (SENSOR_3 < THRESHOLD-4) {
      turn_left2;
    } else 
      if (SENSOR_3 < THRESHOLD-3) {
        turn_left1;       
      } else if (SENSOR_3 < THRESHOLD+5) {
        go_forward;
      } else if (SENSOR_3 < THRESHOLD+10) {
        turn_right1;
      } else {
        turn_right2;
       } 
      Wait(STEP);
    }
   PlaySound(SOUND_UP); // 4.3Éô֡¢Ä̾ï¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¹Ô¤Ã¤¿¤é¡¢¥Ô¥í¥Ô¥í¡Á¤È¹â¤¤²»¤òÌĤ餹
 set_power_M; OnRev(OUT_A); OnFwd(OUT_C); Wait(580); // 5.8Éô֡¢º¸¤ËÀû²ó¤¹¤ë
  while(SENSOR_2==0){ // ¥¿¥Ã¥Á¥»¥ó¥µ¡¼¤¬¥ª¥Õ¤Î´Ö¡¢¥Ü¡¼¥ë¤ò¥­¥ã¥Ã¥Á¤¹¤ëÆ°ºî¤ò¹Ô¤¦
   catch_ball;
  }
  Off(OUT_B);

¥Ü¡¼¥ë¤ò¼è¤Ã¤Æ¤«¤é¿Ê¹ÔÊý¸þ¤Ë¥í¥Ü¥Ã¥È¤ò¸þ¤±¤ë¤Þ¤Ç
¥Ü¡¼¥ë¤ò¼è¤Ã¤Æ¤«¤é¤â¸÷¥»¥ó¥µ¡¼¤¬¹õ¤ËÈ¿±þ¤¹¤ë¤Þ¤Çº¸Àû²ó¤µ¤»¤ë¤³¤È¤Ë¤è¤Ã¤Æ¿Ê¹ÔÊý¸þ¤Ë¥í¥Ü¥Ã¥È¤ò»ý¤Ã¤Æ¤¤¤¯¡£¥Ü¡¼¥ë¤ò¼è¤Ã¤Æ¤«¤é¤¹¤°¤Ë¸÷¥»¥ó¥µ¡¼¤ò»È¤¦¤È¡¢½é¤á¤ËµÕÊý¸þ¤Î¹õÀþ¤ËÈ¿±þ¤·¤Æ¤·¤Þ¤¦¤Î¤Ç¡¢£²Éô֥¿¥¤¥Þ¡¼¤ò»È¤Ã¤ÆÀû²ó¤·¤Æ¡¢½é¤á¤Î¹õÀþ¤òÆÍÇˤ·¤Æ¤«¤é¸÷¥»¥ó¥µ¡¼¤ò»ÈÍÑ¡£

  Wait(200); // £²Éô֡¢¥Ü¡¼¥ë¤ò¥­¥ã¥Ã¥Á¤¹¤ë¤È¤­¤Îº¸Àû²ó¤ò³¤±¤ë
 Off(OUT_AC);
  while (SENSOR_3 > THRESHOLD-5) { // ¸÷¥»¥ó¥µ¡¼¤¬¹õ¤¤Àþ¤ËÈ¿±þ¤¹¤ë¤Þ¤Ç¡¢º¸¤ËÀû²ó
      turn_left2;
    } 
 Off(OUT_AC);

¥Ü¡¼¥ë¤òÂǤÁ½Ð¤¹
¥í¥Ü¥Ã¥È¤ò¿Ê¹ÔÊý¸þ¤Ë¸þ¤±¤¿¤é¡¢¤¹¤°¤Ë¥Ü¡¼¥ë¤òÂǤÁ½Ð¤¹Æ°ºî¤ËÆÍÆþ¡£¤½¤Î¤Þ¤ÞÂǤĤȤȴ̤Ëľ·â¤·¤Æ¤·¤Þ¤¦¤¿¤á¾¯¤·Ìá¤Ã¤Æ¤«¤é¥Ü¡¼¥ë¤òÂǤÁ½Ð¤¹¡£

 go_back;Wait(80);Off(OUT_AC);Wait(100); // 0.8Éôָå¤í¤Ë²¼¤¬¤Ã¤Æ¡¢£±ÉôÖÄä»ß
 pass_ball; // ¥Ü¡¼¥ë¤òÂǤÁ½Ð¤¹

¥Ü¡¼¥ë¤òÂǤÁ½Ð¤·¤Æ¤«¤é¡¢¥Ü¡¼¥ë¤ò¼õ¤±¤ë¤Þ¤Ç
Ä̾ï¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤·¤Æ¡¢¥Ü¡¼¥ë¤ò¼õ¤±¤ë°ÌÃ֤ޤǥ¿¥¤¥Þ¡¼¤ò»È¤Ã¤Æ°ÜÆ°¤¹¤ë¡£¥Ü¡¼¥ë¤òÂǤÁ½Ð¤·¤¿»þ¤Ë¸å¤í¤Ë²¼¤ë¤Î¤Ç¡¢¥é¥¤¥ó¤òæÀþ¤·¤Æ¤·¤Þ¤¦¤«¤é¡¢¾¯¤·Á°¤Ë¿Ê¤ó¤Ç¤«¤é¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤·¤Þ¤¹¡£¥Ü¡¼¥ë¤Ï¥¢¡¼¥à¤ÎÈÏ°ÏÆâ¤Ë½Ð¤µ¤ì¤ë¤È¡¢¼«Á³¤È¥¢¡¼¥à¤ÎÆ⦤˼ý¤Þ¤ë¤Î¤Ç¡¢¾¯¤·º¸¤Ë¥«¡¼¥Ö¤·¤Æ¡¢¥Ü¡¼¥ë¤ò¥¢¡¼¥à¤Î±ü¤Ë°ÜÆ°¤µ¤»¤Æ¤«¤é¥Ü¡¼¥ë¤ò¥­¥ã¥Ã¥Á¤¹¤ë¡£

¡¡¡¡go_forward;Wait(80);Off(OUT_AC); // 0.8ÉôÖÁ°¿Ê¤·¤Æ¡¢¹õ¤¤Àþ¤ËÈ¿±þ¤Ç¤­¤ë¤È¤³¤í¤Þ¤Ç°ÜÆ°¤¹¤ë
    ClearTimer(0); // ¥¿¥¤¥Þ¡¼¤ò¥ê¥»¥Ã¥È
  while (FastTimer(0) <= 170) { // 1.7Éô֡¢Ä̾ï¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹
    if (SENSOR_3 < THRESHOLD-4) {
      turn_right2;
    } else 
      if (SENSOR_3 < THRESHOLD-3) {
        turn_right1;       
      } else if (SENSOR_3 < THRESHOLD+5) {
        go_forward;
      } else if (SENSOR_3 < THRESHOLD+10) {
        turn_left1;
      } else {
        turn_left2;
       } 
      Wait(STEP);
    }
 Off(OUT_AC); // 1.7Éô֡¢Ä̾ï¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¹Ô¤Ã¤¿¤éÄä»ß¤¹¤ë
 Wait(1000); // Áê¼ê¤«¤é¤Î¥Ñ¥¹¤¬¤¯¤ë¤Þ¤Ç¤Î10ÉôÖÄä»ß¤·¤ÆÂÔ¤Ä
 turn_left1;Wait(100); // £±Éôֺ¸¤Ë¥«¡¼¥Ö¤·¤Æ¡¢¥Ü¡¼¥ë¤ò¥¢¡¼¥à¤Î±ü¤Þ¤Ç°ÜÆ°¤µ¤»¤ë
  while(SENSOR_2==0){ // ¥¿¥Ã¥Á¥»¥ó¥µ¡¼¤¬¥ª¥Õ¤Î´Ö¡¢¥Ü¡¼¥ë¤ò¥­¥ã¥Ã¥Á¤¹¤ëÆ°ºî¤ò³¤±¤ë
   catch_ball;
  }
  Off(OUT_B);
   PlaySound(SOUND_UP); // ¥Ü¡¼¥ë¤ò¥­¥ã¥Ã¥Á¤·¤¿¤é¡¢¥Ô¥í¥Ô¥í¡Á¤È¹â¤¤²»¤òÌĤ餹
}

¥í¥Ü¥³¥ó¤Çȯɽ¤·¤¿¥×¥í¥°¥é¥à¤Ï¤³¤³¤Þ¤Ç¡£

´Ì¤Ë¸þ¤«¤Ã¤Æ¥·¥å¡¼¥È
´Ì¤Ë¥·¥å¡¼¥È¤¹¤ë¤È¤­¤Î¥×¥í¥°¥é¥à¤â°ì±þźÉÕ¡£ ºÇ¸å¤Ë¥Ö¡¼¥ë¤ò¼õ¤±¤ë°ÌÃÖ¤«¤é¡¢¥·¥å¡¼¥È¤¹¤ë¤Þ¤Ç¤Î¥×¥í¥°¥é¥à¡£Ì¿ÃæΨ¤Ï¹â¤á¡£ ¤³¤³¤ÇÂç»ö¤Ê¤Î¤Ï¡¢¥·¥å¡¼¥È¤¹¤ë°ÌÃÖ¼è¤ê¤Ê¤Î¤Ç£±ÉÃÁ°¿Ê¡¢0.6Éú¸¤ËÀû²ó¤¹¤ë¤³¤È¤Ë¤è¤Ã¤ÆÀä¹¥¤Î°ÌÃÖ¤ËÃ夭¤Þ¤¹¡£¤³¤³¤Þ¤Ç¤­¤¿¤é¡¢¤½¤Î¤Þ¤Þ¥·¥å¡¼¥È¡£

task main()
{
  OnFwd(OUT_AC);Wait(100); // £±ÉÃÁ°¿Ê
  OnRev(OUT_A); OnFwd(OUT_C);Wait(60);Off(OUT_AC); // 0.6Éᢺ¸¤ËÀû²ó
  OnRev(OUT_B);Wait(100);Off(OUT_B); // ¥Ü¡¼¥ë¤òÂǤÁ½Ð¤¹
}

¤Þ¤È¤á


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