[[2016a/Member]] ¡¦Ìܼ¡ #contents *²ÝÂê [#ubab1e3f] ²¼¤Î¿Þ¤Î¤è¤¦¤Ê¥³¡¼¥¹¤ò³Æ¥Á¡¼¥à¤ÇºîÀ®¤·¡¢¡Ö¥ß¥Ã¥·¥ç¥ó¡×¤ò¿ë¹Ô¤¹¤ë¤¿¤á¤Î¥í¥Ü¥Ã¥È¤òºîÀ®¤»¤è¡£ *¥³¡¼¥¹¿Þ [#id45d691] http://yakushi.shinshu-u.ac.jp/robotics/?2016a%2FMission2 (»²¾È) *¥ß¥Ã¥·¥ç¥ó [#oc3264ca] ¼¡¤Î¤¤¤º¤ì¤«¤Î·ÐÏ©¤ò¹õ¤¤Àþ¤Ë¤½¤Ã¤ÆÆ°¤¯¥í¥Ü¥Ã¥È¤òºîÀ®¤¹¤ë (¾¤Î¥á¥ó¥Ð¡¼¤È¤ÏÊ̤ηÐÏ©¤Ë¤Ê¤ë¤è¤¦¤Ë¤¹¤ë)¡£¤¿¤À¤·¡¢¤Ê¤ë¤Ù¤¯Â®¤¯Àµ³Î¤ËÆ°¤¯¥í¥Ü¥Ã¥È¤Ë¤Ê¤ë¤è¤¦¤Ë¹©Éפ·¤Æ¡¢¸òº¹ÅÀ¤Ç¤Ï1ÉôÖÄä»ß¤¹¤ë¤³¤È¡£ •AÃÏÅÀ¤«¤éBÃÏÅÀ¤Ø (°ì¿ÍÌÜ) ◦AÃÏÅÀ ¢ª Pľ¿Ê ¢ª Qľ¿Ê ¢ª Qľ¿Ê ¢ª Rº¸ÀÞ ¢ª BÃÏÅÀ •BÃÏÅÀ¤«¤éCÃÏÅÀ¤Ø (Æó¿ÍÌÜ) ◦BÃÏÅÀ ¢ª R±¦ÀÞ ¢ª Qľ¿Ê ¢ª Qľ¿Ê ¢ªP±¦ÀÞ ¢ª S±¦ÀÞ ¢ª CÃÏÅÀ •CÃÏÅÀ¤«¤éAÃÏÅÀ¤Ø (»°¿ÍÌÜ) ◦CÃÏÅÀ ¢ª Sº¸ÀÞ ¢ª Pº¸ÀÞ ¢ª Qľ¿Ê ¢ª Qľ¿Ê ¢ª R±¦ÀÞ ¢ª Pº¸ÀÞ ¢ª AÃÏÅÀ »ä¤Ï¡¢BÃÏÅÀ¤«¤éCÃÏÅÀ¤Î¥ë¡¼¥È¤òôÅö¤·¤¿¡£ *¥á¥ó¥Ð¡¼ [#qb973488] tom¡¦funatsu¡¦tatsuya *¥í¥Ü¥Ã¥È¤ÎÀâÌÀ [#j547dadf] »äã¤Ï¡¢NXT¤È¸À¤¦¼ïÎà¤Î¥í¥Ü¥Ã¥È¤ò»ÈÍѤ·¤¿¡£ #ref(2016a/Member/tom/Mission2/IMG_2677.JPG) #ref(2016a/Member/tom/Mission2/IMG_2679.JPG) ¡ã¥»¥ó¥µ¡¼Éôʬ¡ä #ref(2016a/Member/tom/Mission2/IMG_2678.JPG) *¥×¥í¥°¥é¥à [#k22b8b3f] ¡¦ÄêµÁ #define BLACK 43 //¹õ¿§¤ÎÄêµÁ #define WHITE 54 //Çò¿§¤ÎÄêµÁ #define SPEED1 19 #define go_forward OnFwd(OUT_BC,SPEED1); //Á°¿Ê #define turn_left(t,w1,w2) OnFwd(OUT_B,w1); OnRev(OUT_C,w2); Wait(t);Off(OUT_BC); #define turn_left1 OnFwd(OUT_B,SPEED1);Off(OUT_C); //¡ #define turn_left2 OnFwd(OUT_B,SPEED1);OnRev(OUT_C,SPEED1);¡¡//¢ #define turn_right(t,w1,w2) OnFwd(OUT_C,w1); OnRev(OUT_A,w2); Wait(t);Off(OUT_BC); #define turn_right1 Off(OUT_B);OnFwd(OUT_C,SPEED1);¡¡//¡ #define turn_right2 OnRev(OUT_B,SPEED1);OnFwd(OUT_C,SPEED1);¡¡//¢ #define short_break Off(OUT_BC);Wait(1000);PlaySound(SOUND_UP);¡¡//1ÉûߤޤäƲ»¤òÌĤ餹 #define cross_line go_forward;Wait(200);Off(OUT_BC);Wait(1000);¡¡//¸òº¹ÅÀ¤òÅϤë #define nMAX 350¡¡¥«¡¼¥Ö¤È¤ß¤Ê¤»¤ë²ó¿ô¤ÎºÇÂçÃÍ ¡¤ÏÂ礤¯¶Ê¤¬¤ë¡¡¢¤Ï¾®¤µ¤¯¶Ê¤¬¤ë º£²ó¤Ï¤³¤ÎÄêµÁ¤ò»È¤Ã¤¿¡£ ¡¦¥µ¥Ö¥ë¡¼¥Á¥ó void line_trace()//¹õ¤¤Àþ¾å¤Ë±è¤Ã¤ÆÁö¤ë { SetSensorLight(S1); int nOnline=0; while (nOnline < nMAX ) {¡¡////¹õ¤¬nMAX²ó³¤«¤Ê¤¤¸Â¤êÀþ¤Îº¸Ã¼¤ò¥È¥ì¡¼¥¹¤¹¤ë if (SENSOR_1 < BLACK-5) { turn_right2; nOnline++; //¥«¥¦¥ó¥¿¤òÁý¤ä¤¹ } else { if (SENSOR_1 < BLACK) { turn_right1; } else if (SENSOR_1 < WHITE) { go_forward; } else if (SENSOR_1 < WHITE+5) { turn_left1; } else { turn_left2; } nOnline=0; //¥«¥¦¥ó¥¿¤ò£°¤Ë¤¹¤ë } Wait(STEP); } short_break; nOnline=0; //¥«¥¦¥ó¥¿¤ò£°¤Ë¤¹¤ë Off(OUT_BC); } void line_closs()//µ¡ÂΤθþ¤¤òÄ´À°¤¹¤ë { cross_line; SetSensorLight(S1); do{ if (SENSOR_1 < BLACK) { turn_right1; } else if (SENSOR_1 > WHITE) { turn_left2; } } while((SENSOR_1 > BLACK)&&(SENSOR_1 < WHITE)); Off(OUT_BC); } ¸÷¥»¥ó¥µ¡¼¤¬¹õ¤ònMAX(330)²ó°Ê¾åϢ³¤ÇȽÃǤ¹¤ë¤È¸òº¹ÅÀ¤È¤ß¤Ê¤·Ää»ß¤¹¤ë¡£ ¸÷¥»¥ó¥µ¡¼¤¬¹õ¤ònMAX(350)²ó°Ê¾åϢ³¤ÇȽÃǤ¹¤ë¤È¸òº¹ÅÀ¤È¤ß¤Ê¤·Ää»ß¤¹¤ë¡£ void line_right()//¸òº¹ÅÀ¤Ç±¦¤Ë¶Ê¤¬¤ë { cross_line; turn_right(1000,40,40); SetSensorLight(S1); do{ //Àþ¤Îº¸Ã¼¤òõ¤¹ if (SENSOR_1 < BLACK) { turn_right1; } else if (SENSOR_1 > WHITE) { turn_left2; } } while((SENSOR_1 > BLACK)&&(SENSOR_1 < WHITE)); Off(OUT_BC); } ¸òº¹ÅÀ¤òÅϤêÀڤ俸塢¼¡¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹¤Î¤¿¤á¤Ë¥í¥Ü¥Ã¥È¤Î¸þ¤¤òÄ´À᤹¤ë¥×¥í¥°¥é¥à¡£ void line_left()¸òº¹ÅÀ¤Çº¸¤Ë¶Ê¤¬¤ë { cross_line; turn_left(1000,40,40) //º¸¤Ë¶Ê¤¬¤ë SetSensorLight(S1); do{ //Àþ¤Îº¸Ã¼¤òõ¤¹ if (SENSOR_1 < BLACK) { turn_right1; } else if (SENSOR_1 > WHITE) { turn_left2; } } while((SENSOR_1 > BLACK)&&(SENSOR_1 < WHITE)); Off(OUT_BC); } void line_closs¤Îº¸ÀÞÈÇ¡£ void last_move()CÃÏÅÀ¤Ë¥´¡¼¥ë¤¹¤ë¡£ { go_forward; Wait(1500); Off(OUT_BC); } ¥´¡¼¥ë¤·¤¿¤é¡¢²»¤òÌĤ餹¡£ ¡¦¥á¥¤¥ó¥×¥í¥°¥é¥à task main() { line_trace(); line_right(); line_trace(); line_closs(); line_trace(); line_closs(); line_trace(); line_right(); line_trace(); line_right(); line_trace(); last_move(); } ¥µ¥Ö¥ë¡¼¥Á¥ó¤ò»ÈÍѤ·¤ÆBÃÏÅÀ¤«¤éCÃÏÅÀ¤Ø¸þ¤«¤¦¥×¥í¥°¥é¥à¡£ *È¿¾ÊÅÀ [#o8744fcd] ¥¹¥¿¡¼¥È¤«¤é¥´¡¼¥ë¤¹¤ë¤Þ¤Ç4ʬ3ÉäȻþ´Ö¤¬¤«¤«¤Ã¤¿¡£ ¥´¡¼¥ëÃÏÅÀ¤Èǧ¼±¤·¤Ê¤¤¤³¤È¤¬Â¿¤«¤Ã¤¿¡£ *´¶ÁÛ [#m3902dd1] ÅÅÃӤλÄÎ̤ˤè¤Ã¤Æ¥â¡¼¥¿¡¼¤Î½ÐÎϤ¬ÊѤï¤Ã¤Æ¤·¤Þ¤¦¤³¤È¤¬Â¿¡¹¤¢¤Ã¤¿¡£ ¤½¤ÎÅ٤ˡ¢¥×¥í¥°¥é¥à¤òÊѹ¹¤·¡¢Ä´À°¤¹¤ë¤Î¤Ë¤Ï¶ìÏ«¤·¤¿¡£ º£Å٤ϡ¢¥»¥ó¥µ¡¼¤Ë¤è¤ë¥³¡¼¥¹Ç§¼±¤Î´¶ÅÙ¤ò¾å¤²¡¢¤è¤ê³Î¼Â¤Ê¤â¤Î¤Ë¤·¤¿¤¤¡£