#contents *¥í¥Ü¥Ã¥È¤Î¾Ò²ð [#d2b4ef72] -¥µ¥ó¥×¥ë¤Î¥í¥Ü¥Ã¥È¤Ç¤Ï¹¶Î¬¤¹¤ë¥³¡¼¥¹¤Î¤è¤¦¤ÊµÞ¤Ê¥«¡¼¥Ö¤Ï¶Ê¤¬¤ê¤¤ë¤³¤È¤ÏÆñ¤·¤¤¡£~ ¤½¤³¤Ç¥â¡¼¥¿¡¼¤È¥â¡¼¥¿¡¼¤È¤Îµ÷Î¥¤ò½Ì¤á¤ë¤³¤È¤Ë¤è¤Ã¤Æ¾®²ó¤ê¤¬Íø¤¯¤è¤¦¤Ë¤·¡¢~ º£²ó¤Î¤è¤¦¤ÊµÞ¤Ê¥«¡¼¥Ö¤â¶Ê¤¬¤êÀÚ¤ì¤ë¤è¤¦¤Ë¤·¤¿¡£~ -´Ì¤ò¶´¤à¥®¥ß¥Ã¥¯¤Ë¤Ï¥â¡¼¥¿¡¼ÉÕ¤¤ÎÂ礤ʥϥµ¥ß¤ò»ÈÍѤ·¤¿¡£~ ´Ì¤¬¥í¥Ü¥Ã¥È¤Ë¿¨¤ì¤¿¤«¤É¤¦¤«¤ÎȽÄê¤ò¤¹¤ë¤¿¤á¤Ë¥Ð¥ó¥Ñ¡¼¤ò¼è¤êÉÕ¤±¤¿¥¿¥Ã¥Á¥»¥ó¥µ¡¼¤ò»È¤Ã¤¿¡£ #ref(DSC_0148.jpg) ¼Ì¿¿¤Î¥Ï¥µ¥ß¤¬³«ÊĤ¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ´Ì¤ò¤Ä¤«¤ó¤À¤êÎ¥¤·¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£ ¥Ï¥µ¥ß¤ÎÀèü¤Ë¤Ï¾®¤µ¤Ê¥¿¥¤¥ä¤ò¼è¤êÉÕ¤±¡¢´Ì¤¬¥Ï¥µ¥ß¤«¤é³ê¤êÍî¤Á¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¤¤ë¡£ *¥³¡¼¥¹¹¶Î¬Ë¡ [#l42dc28d] #ref(robotics-2013a-mission10.jpg) -¤³¤Î¥³¡¼¥¹¤Ç¤Ï»þ·×²ó¤ê¥³¡¼¥¹¤òôÅö¤·¤¿¡£~ -´Ì¤ò¤Ä¤«¤ßÌÜŪ¤Î¾ì½ê¤ËÃÖ¤¯¤¿¤á¤Ë¿Þ¤Î¤è¤¦¤Ë¥³¡¼¥¹¤ò£µÊ¬³ä¤·¡¢~ ¥×¥í¥°¥é¥à¤â¤½¤ì¤Ë¹ç¤ï¤»¤Æ£µ¤Ä¤Ëʬ¤±¤ÆºîÀ®¤·¤¿¡£ *¥×¥í¥°¥é¥à¤ÎÀâÌÀ [#sa2fe1d4] #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); } } *¤Þ¤È¤á [#o78fb8f6] **¥í¥Ü¥Ã¥ÈËÜÂΤˤĤ¤¤Æ [#ad75ad43] -¥Ï¥µ¥ßÉôʬ¤Î½ÅÎ̤¬Í½Á۰ʾå¤Ë½Å¤¯¡¢¥í¥Ü¥Ã¥ÈËÜÂΤΥХé¥ó¥¹¤ò¼è¤ë¤Î¤¬Æñ¤·¤«¤Ã¤¿¡£ **¥×¥í¥°¥é¥à¤Ë¤Ä¤¤¤Æ [#tcc7792e] -³ç¸ÌÉôʬ¤Îʸˡ¥ß¥¹¤¬Â¿¤«¤Ã¤¿¤Î¤Ç¡¢¼¡²ó¤«¤é¤Ï¥¤¥ó¥Ç¥ó¥È¤ò¤·¤Ã¤«¤ê¤¹¤ë¤Ê¤É¤·¤ÆÂкö¤·¤¿¤¤¡£ -Éô²°¤ÎÌÀ¤ë¤µ¡¢ÅÅÃӤλÄÎÌ¡¢¾²¤Î½À¤é¤«¤µ¤Ê¤É¤Ç¸÷¥»¥ó¥µ¤¬Ç§¼±¤¹¤ëÌÀ¤ë¤µ¤ä¥¿¥¤¥ä¤Î³ê¤ê¤Ê¤É¤¬°ã¤Ã¤¿¤¿¤á¡¢Áö¹Ô¤Ë¤«¤«¤ë»þ´Ö¤¬ÊѤï¤Ã¤¿¤Î¤ÇÄ´À°¤¬Æñ¤·¤«¤Ã¤¿¡£ -ºÇ¸å¤Î´Ì¤ò»ØÄê¤Î°ÌÃÖ¤ËÃÖ¤¯¥×¥í¥°¥é¥à¤Îºî¤ê¤¬´Å¤«¤Ã¤¿¤Î¤Ç¡¢¤·¤Ã¤«¤ê¤È¹Í¤¨¤Æ¤«¤éºî¤ê»Ï¤á¤¿¤¤¡£