[[2015b/Member]] Ìܼ¡ #contents *¥í¥Ü¥³¥ó¤ÎÀâÌÀ [#p90c333d] #ref(2015b/Member/rmsun/Mission3/2015b-mission31.png, 480*332) ¥í¥Ü¥Ã¥ÈA¤ÏSTART AÃÏÅÀ¤«¤é½Ðȯ¤·¡¢PÃÏÅÀ¤Ë¤ª¤«¤ì¤¿ÀÖ¤¤¥Ü¡¼¥ë¤ò½¦¤Ã¤Æ350ml¤Î¥¢¥ë¥ß´Ì¤ËÅö¤Æ¤ë¡£¤½¤Î¸å¡¢¥í¥Ü¥Ã¥ÈB¤¬¥Ü¡¼¥ë¤ò²ó¼ý¤¹¤ë¡£°ú¤Â³¤ÀĤ¤¥Ü¡¼¥ë¤Ë¤Ä¤¤¤Æ¤âƱÍͤÎÆ°ºî¤ò·«¤êÊÖ¤¹¡£¥í¥Ü¥Ã¥ÈB¤Ï¥Ü¡¼¥ë¤ò²ó¼ý¤·¤¿¸å¡¢ºÇ½ªÅª¤ËGOAL B¤Þ¤Ç¥Ü¡¼¥ë¤ò±¿¤Ö¡£ ¾Ü¤·¤¤ÀâÌÀ¤Ïhttp://yakushi.shinshu-u.ac.jp/robotics/?2015b%2FMission3¤ò»²¾È *¥í¥Ü¥Ã¥È¤ÎÀâÌÀ [#p06dabf5] #ref(2015b/Member/rmsun/Mission3/IMG_1411.JPG, 480*360); ¼Ì¿¿º¸:¥Ü¡¼¥ë¤ò´Ì¤ËÅö¤Æ¤ë¥í¥Ü¥Ã¥È ¼Ì¿¿±¦:¥Ü¡¼¥ë¤ò²ó¼ý¤¹¤ë¥í¥Ü¥Ã¥È **¡Ö¥Ü¡¼¥ë¤ò´Ì¤ËÅö¤Æ¤ë¥í¥Ü¥Ã¥È¡× [#k9cf5b32] ***¥í¥Ü¥Ã¥È¤Î¹½Â¤ [#i789b231] &ref(2015b/Member/rmsun/Mission3/IMG_1410a.JPG,360*480); &ref(2015b/Member/rmsun/Mission3/IMG_1409a.JPG,480*360); ¥â¡¼¥¿A¤Ï¥¢¡¼¥à¤ÎÉôʬ¡¢¥â¡¼¥¿B¤¬±¦¥¿¥¤¥ä¡¢¥â¡¼¥¿C¤¬º¸¥¿¥¤¥ä »È¤Ã¤¿¥»¥ó¥µ¤Ï¡¢¸÷¥»¥ó¥µ¤ÈĶ²»ÇÈ¥»¥ó¥µ¡£ Ķ²»ÇÈ¥»¥ó¥µ¤Ï¾å²¼¤ËÆ°¤¯¡£ ¥¢¡¼¥à¤ÎÆ°¤¤ÈĶ²»ÇÈ¥»¥ó¥µ¤¬Ï¢Æ°¤·¤Æ¤¤¤ë¡£ ¡¦¥¢¡¼¥à³«¤¯¡¢Ä¶²»ÇÈ¥»¥ó¥µ²¼¸þ¤¢Î¥¢¡¼¥àÊĤ¸¤ë¡¢Ä¶²»ÇÈ¥»¥ó¥µÀµÌ̤ò¸þ¤¯ ***¥í¥Ü¥Ã¥È¤ÎÆ°¤ [#q2a47db6] ¡Ä¶²»ÇÈ¥»¥ó¥µ¤ò²¼¸þ¤¤Ë¤·¤Æ¡¢¥Ü¡¼¥ë¤òõ¤¹(¥é¥¤¥ó¥È¥ì¡¼¥¹¤·¤Ê¤¬¤é) ¢¥Ü¡¼¥ë¤ò¸«¤Ä¤±¤ë¤È¥¢¡¼¥à¤òÊĤ¸¡¢Ä¶²»ÇÈ¥»¥ó¥µ¤ÏÀµÌ̸þ¤¤Ë £Ä¶²»ÇÈ¥»¥ó¥µ¤Ç´Ì¤òõ¤¹ ¤´Ì¤ÎÊý¤ò¸þ¤¯ ¥¥Ü¡¼¥ë¤òÊü¤Ä **¡Ö¥Ü¡¼¥ë¤ò²ó¼ý¤¹¤ë¥í¥Ü¥Ã¥È¡× [#l707841a] ***¥í¥Ü¥Ã¥È¤Î¹½Â¤ [#y585dbcb] #ref(2015b/Member/rmsun/Mission3/IMG_1406a.JPG,360*480) &ref(2015b/Member/rmsun/Mission3/IMG_1407a.JPG,240*180); &ref(2015b/Member/rmsun/Mission3/IMG_1408a.JPG,180*240); ¥â¡¼¥¿A¤Ï¥¢¡¼¥àÉôʬ¡¢¥â¡¼¥¿B¤Ï±¦¥¿¥¤¥ä¡¢¥â¡¼¥¿C¤Ïº¸¥¿¥¤¥ä »È¤Ã¤¿¥»¥ó¥µ¤Ï¡¢¸÷¥»¥ó¥µ¤ÈĶ²»ÇÈ¥»¥ó¥µ ¥â¡¼¥¿°ì¤Ä¤ÇÆó¤Ä¤Î¥¢¡¼¥à¤òÆ°¤«¤¹ ***¥í¥Ü¥Ã¥È¤ÎÆ°¤ [#mb50a946] ´Ì¢«¢«¥Ü¡¼¥ë ¡¡¡¡ ¢¬ ¡¡¡¡ ¢¬Ä¶²»ÇÈ¥»¥ó¥µ ¡¡¡¡ ¥í¥Ü¥Ã¥È ¾å¿Þ¤Î¤è¤¦¤ËĶ²»ÇÈ¥»¥ó¥µ¤ò¸þ¤±¤ë¡£ ¥Ü¡¼¥ë¤¬Ä̤ê²á¤®¤¿»þ¡¢Ä¶²»ÇÈ¥»¥ó¥µ¤Ï¥Ü¡¼¥ë¤ò´¶Ã΢ª0.8ÉÃÄä»ß¡£¤½¤·¤ÆĶ²»ÇÈ¥»¥ó¥µºÆµ¯Æ°¡£¤½¤Î¸å¤Î¥Ü¡¼¥ë¤ÎÆ°¤¯¸þ¤¤Ë¤è¤Ã¤Æ¡¢¥í¥Ü¥Ã¥È¤ÎÆ°ºî¤¬ÊѤï¤ë¡£ 1.¥Ü¡¼¥ë¤¬Ä·¤ÍÊ֤俤Ȥ ´Ì¢ª¢ª¥Ü¡¼¥ë ¢¬ ¢¬Ä¶²»ÇÈ¥»¥ó¥µ ¥í¥Ü¥Ã¥È ¤³¤Î¤È¤¡¢Ä¶²»ÇÈ¥»¥ó¥µ¤ÇºÆ¤Ó´¶Ã΢ª¥í¥Ü¥Ã¥Èľ¿Ê¢ª¥Ü¡¼¥ë¤ò¤Ä¤«¤à¢ª¥é¥¤¥ó¥È¥ì¡¼¥¹¤Ê¤É¤ò»È¤¤¥´¡¼¥ë¤Ø¹Ô¤¡¢¥Ü¡¼¥ë¤òÎ¥¤¹ 2.¥Ü¡¼¥ë¤¬º¸¤Ëή¤ì¤Æ¤·¤Þ¤Ã¤¿¤È¤ 2.1 Ä·¤ÍÊ֤俥ܡ¼¥ë¤ò´¶ÃΤ·¤Ê¤¤ ¥Ü¡¼¥ë¢«¢«¡¡¡¡ ´Ì ¢¬ ¢¬Ä¶²»ÇÈ¥»¥ó¥µ ¥í¥Ü¥Ã¥È ¤³¤Î¤È¤Ä¶²»ÇÈ¥»¥ó¥µ¤Ï¡¢¥Ü¡¼¥ë¤ò´¶ÃΤ·¤Ê¤¤¢ª¥í¥Ü¥Ã¥Èº¸¤Ø¸þ¤«¤¦ 2.2 ´Ì¤Îº¸Â¦¤Ë¸þ¤«¤¤¡¢¥Ü¡¼¥ë¤òõº÷ ¥Ü¡¼¥ë ¢¬¢¬¢¬¢¬¢¬¢¬ ´Ì ¢¬¢¬¢¬¢¬ ¢¬¢¬ Ìð°õ¤Ï¡¢Ä¶²»ÇÈ¥»¥ó¥µ¤¬ºîÍѤ¹¤ëÈÏ°Ï ¥í¥Ü¥Ã¥È ¡ù´Ì¤ò´¶ÃΤ·¤Ê¤¤ÄøÅ٤ˡ¢¥í¥Ü¥Ã¥È(Ķ²»ÇÈ¥»¥ó¥µ)¤ò²óž¤µ¤»¤ë¡£ ¡¦¥Ü¡¼¥ë¤¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç ¥Ü¡¼¥ë¤ÎÊý¤ò¸þ¤¡¢Ä¾¿Ê¡£¤½¤Î¸å¥Ü¡¼¥ë¤ò¤Ä¤«¤à ¡¦¥Ü¡¼¥ë¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç ¥í¥Ü¥Ã¥È¤ò²¼¿Þ¤Î¸þ¤¤ËÌᤷ¤Æ¡¢¾¯¤·¿Ê¤ó¤Ç¡¢ºÆ¤Ó¡ù¤ÎÆ°ºî ¡¡¡¡¡¡¡¡´Ì ¢¬ ¢¬ Ìð°õ¤ÎÊý¤Ø¸þ¤¯ ¥í¥Ü¥Ã¥È *¡Ö¥Ü¡¼¥ë¤ò´Ì¤ËÅö¤Æ¤ë¥í¥Ü¥Ã¥È¡×¤Î¥×¥í¥°¥é¥à [#k14bab2c] *¡Ö¥Ü¡¼¥ë¤ò²ó¼ý¤¹¤ë¥í¥Ü¥Ã¥È¡×¤Î¥×¥í¥°¥é¥à [#z16e8d55] #define SPEED 50 //Dist¤Ê¤É¤Î¥â¡¼¥¿¤Î¥Ñ¥ï¡¼¤Ë¡¢Éý¹¤¯»ÈÍÑ #define SPEED_SLOW 30 //´Ø¿ôhand,turnAng¤Ê¤É¤Ç»ÈÍÑ #define THRESHOLD 45 //ïçÃÍ #define STEP 1 //Wait¤Î°ú¿ô¤È¤·¤Æ»È¤¦ #define STOP 3 //¡Ö¥Ü¡¼¥ë¤¬¥»¥ó¥µ¤ÎÁ°¤ò²£Àڤ信פ«¤É¤¦¤«¤òÄ´¤Ù¤ëÃÍ const float diameter=5.45; //¥¿¥¤¥ä¤Îľ·Â(cm) const float pi=3.1415; //±ß¼þΨ const float track = 10.35; //¥¿¥¤¥ä¤Î¥È¥ì¥Ã¥ÉÉý sub hand(int ang, int plmi) { //¥Ü¡¼¥ë¤ò¤Ä¤«¤àÆ°ºî /*plmi = 1 ¢ª ¥¢¡¼¥à³« plmi = -1 ¢ª ¥¢¡¼¥àÊÄ */ RotateMotor(OUT_A, SPEED_SLOW * plmi, ang); } sub Dist(float d, int fwd_or_rev){ //dcmÁ°Å¾(¸åž) /*fwd_or_rev = 1 ¢ª Á°Å¾ fwd_or_rev = -1 ¢ª ¸åž */ long angle; angle = d / (diameter * pi) * 360.0; RotateMotorEx(OUT_BC, SPEED * fwd_or_rev, angle, 0, true, true); Wait(100); } sub turnAng(int ang, int R_or_L) { /* R_or_L = 1 ¢ª »þ·×²ó¤ê R_or_L = -1 ¢ª Ⱦ»þ·×²ó¤ê */ long angle; angle = track / diameter * ang; RotateMotorEx(OUT_BC, SPEED_SLOW , angle, 100* R_or_L, true, true); Wait(100); } int searchDirection(int ang) //¥Ü¡¼¥ë¤òõ¤¹´Ø¿ô { SetSensorLowspeed(S1); long angle, tacho_min = 0, tacho_corr; int d_min; d_min= 300; //²¾¤ÎºÇ¾®ÃÍ angle = (track / diameter) * ang; turnAng(10, 1); //10ÅÙ±¦Àû²ó(´Ì¤Î¸íǧ¤òËɤ°¤¿¤á¡¢10ÅÙ¤·¤«Àû²ó¤·¤Ê¤¤) ResetTachoCount(OUT_B); OnFwdSync(OUT_BC, SPEED, -100); while(MotorTachoCount(OUT_B) <= angle) { //angle¤À¤±º¸Àû²ó if (SensorUS(S1) < d_min) { d_min = SensorUS(S1); tacho_min = MotorTachoCount(OUT_B); } } if (d_min < 30) { //¡ÖĶ²»ÇÈ¥»¥ó¥µ¤Î¼¨¤·¤¿ºÇ¾®Ã͡פ¬30°Ê²¼¤Î¤È¤ OnFwdSyncEx(OUT_BC,SPEED, 100, RESET_NONE); //ºÇ¾®ÃͤÀ¤Ã¤¿Êý¸þ¤ò¸þ¤¯ until(MotorTachoCount(OUT_B) <= tacho_min || SensorUS(S1) <= d_min); } else { //30°Ê¾å¤Î¤È¤ turnAng(ang - 10, 1); //ang-10¤À¤±±¦Àû²ó(´Ø¿ô³«»ÏÁ°¤ÈƱ¤¸¸þ¤¤ËÌá¤ë) } Off(OUT_BC); Wait(500); //0.5ÉôÖÄä»ß return d_min; //¡ÖĶ²»ÇÈ¥»¥ó¥µ¤Î¼¨¤·¤¿ºÇ¾®Ã͡פòÊÖ¤¹ } sub turn_left(int speedA, int speedB) { //º¸¤Ë¶Ê¤¬¤ë OnFwd(OUT_B,speedA); //°ú¿ôspeedA¤Î¥Ñ¥ï¡¼¤Ç¡¢¥â¡¼¥¿B¤òÁ°Å¾ OnRev(OUT_C,speedB); //°ú¿ôspeedB¤Î¥Ñ¥ï¡¼¤Ç¡¢¥â¡¼¥¿C¤ò¸åž } sub turn_right(int speedA, int speedB) { //±¦¤Ë¶Ê¤¬¤ë OnFwd(OUT_C,speedB); //°ú¿ôspeedB¤Î¥Ñ¥ï¡¼¤Ç¡¢¥â¡¼¥¿C¤òÁ°Å¾ OnRev(OUT_B,speedA); //°ú¿ôspeedA¤Î¥Ñ¥ï¡¼¤Ç¡¢¥â¡¼¥¿B¤ò¸åž } sub go_forward(int speed3) { //¤Þ¤Ã¤¹¤°¿Ê¤à OnFwd(OUT_BC,speed3); //speed3¤Î¥Ñ¥ï¡¼¤Ç¡¢¥â¡¼¥¿BC¤òÁ°Å¾ } sub trace(int time, long target, int speed3) { SetSensorLight(S2); int speed1 = 25; //¥â¡¼¥¿¤Î¥Ñ¥ï¡¼ÍÑ int speed2 = 20; //¥â¡¼¥¿¤Î¥Ñ¥ï¡¼ÍÑ(speed1¤è¤ê¾¯¤·¼å¤¤) long tacho = 0; //¡Ö¤½¤Î¾ì¤Çº¸Àû²ó¤¹¤ë¡×Æ°ºî¤ò¤·Â³¤±¤¿¤È¤¤Î¡¢²óž³Ñ¤Î¹ç·× long t; //¥¿¥¤¥Þ¡¼¤ò»È¤¦¤È¤¤Ë»ÈÍÑ t = CurrentTick(); //¤³¤³¤Ç¸½ºß»þ¹ï¤òt¤ËÂåÆþ(CurrentTick() - t¡¡¤È»È¤¦¤³¤È¤Ç¡¢·Ð²á»þ´Ö¤¬¤ï¤«¤ë) while (CurrentTick() - t < time && tacho < target) { if (SENSOR_2 < THRESHOLD -15){ //¸÷¥»¥ó¥µ¤Î¿ôÃͤ¬¡¢THRESHOLD-15¤è¤êÄ㤤¤È¤ turn_left(speed1, speed1); //º¸±¦¤Î¥â¡¼¥¿¤òspeed1¤Çº¸Àû²ó(¤½¤Î¾ì¤Çº¸²óž) } else if (SENSOR_2 < THRESHOLD -7) { //¸÷¥»¥ó¥µ¤Î¿ôÃͤ¬¡¢THRESHOLD-7¤è¤êÄ㤤¤È¤ tacho = 0; //tacho(turn_left1¤·Â³¤±¤¿»þ¤Î¡¢¥¿¥¤¥ä¤Î²óž³Ñ¤Î¹ç·×)¤ò0¤Ë¤¹¤ë¡£ turn_left(speed1, speed2); //±¦¥â¡¼¥¿¤òspeed1¡¢º¸¥â¡¼¥¿¤òspeed2(speed1¤è¤ê¾¯¤·¼å¤¤)¤Ë¤·¤Æ¡¢º¸Àû²ó } else if (SENSOR_2 < THRESHOLD +7){ //¸÷¥»¥ó¥µ¤Î¿ôÃͤ¬¡¢THRESHOLD+7¤è¤êÄ㤤¤È¤ tacho = 0; //tacho¤ò0¤Ë¤¹¤ë go_forward(speed3); //º¸±¦¤Î¥â¡¼¥¿¤òspeed3¤Ë¤·¤Æ¡¢Ä¾¿Ê } else if (SENSOR_2 < THRESHOLD +15){ //¸÷¥»¥ó¥µ¤Î¿ôÃͤ¬¡¢THRESHOLD+15¤è¤êÄ㤤¤È¤ tacho = 0; /*tacho¤ò0¤Ë¤¹¤ë*/ turn_right(speed1, speed2); /*±¦¥â¡¼¥¿¤òspeed2¡¢º¸¥â¡¼¥¿¤òspeed1¤Ë¤·¤Æ¡¢±¦Àû²ó*/ } else { /*¸÷¥»¥ó¥µ¤Î¿ôÃͤ¬¡¢THRESHOLD+15¤è¤ê¹â¤¤¤È¤*/ tacho = 0; /*tacho¤ò0¤Ë¤¹¤ë*/ turn_right(speed1, speed1); /*º¸±¦¤Î¥â¡¼¥¿¤òspeed1¤Ç±¦Àû²ó(¤½¤Î¾ì¤Ç±¦²óž)*/ } Wait(STEP); //STEP(0.001)ÉäÀ¤±Æ°¤¯ if (SENSOR_2 >= THRESHOLD-15) { /*¸÷¥»¥ó¥µ¤Î¿ôÃͤ¬¡¢THRESHOLD-15¤è¤ê¹â¤¤¤È¤ (=¤½¤Î¾ì¤Çº¸²óž¤·¤Æ¤¤¤Ê¤¤¤È¤) */ ResetTachoCount(OUT_B); /*¥â¡¼¥¿¤Î²óž¿ô¤ò¥ê¥»¥Ã¥È(¤½¤Î¾ì¤Çº¸²óž¤·¤¿¤È¤°Ê³°¤Ï¥ê¥»¥Ã¥È)*/ } tacho += MotorTachoCount(OUT_B); /*tacho¤Ë¡¢¥â¡¼¥¿¤Î²óž³Ñ¤òÂåÆþ(¡Ö¤½¤Î¾ì¤Çº¸²óž¤·¤¿»þ¡×¤Î²óž³Ñ¤·¤«ÂåÆþ¤µ¤ì¤Ê¤¤)*/ } Off(OUT_BC); Wait(STEP); PlaySound(SOUND_CLICK); } task main() { long t; Wait(30000); //30ÉÃÂÔµ¡ Dist(48, 1); //48cmÁ°¿Ê turnAng(91, -1); //90ÅÙº¸Àû²ó SetSensorLowspeed(S1); //Ķ²»ÇÈ¥»¥ó¥µµ¯Æ° int ball = 0; //ÊÑ¿ô¡Öball¡×...Ķ²»ÇÈ¥»¥ó¥µ¤ÎÃÍ < 30 ¤ò¼¨¤·¤¿²ó¿ô¤ò¼¨¤¹ while (1) { //¥Ü¡¼¥ë¤¬Ä̲᤹¤ëÍͻҤòÄ´¤Ù¤ë if (SensorUS(S1) < 30) { /*¥»¥ó¥µÃÍ < 30(¥Ü¡¼¥ë¤¬¥»¥ó¥µ¤ÎÁ°¤òÄ̤ê²á¤®¤¿¤È¤¡¢¥»¥ó¥µÃͤ¬20ÄøÅÙ¤ò¼¨¤¹¤¿¤á)*/ ball++; } if (ball == STOP) { //Ä̲ᤷ¤¿²ó¿ô¤¬STOP(=3)¤Ë¤Ê¤Ã¤¿¤é break; //¥ë¡¼¥×¤òÈ´¤±½Ð¤¹ } Wait(STEP); //STEP(0.001)ÉÃ´Ö } Wait(800); //0.8ÉôÖÂÔµ¡ PlaySound(SOUND_CLICK); //¼¡¤ÎÆ°ºî¤ËÆþ¤ë¤³¤È¤òÃΤ餻¤ë t = CurrentTick(); while (CurrentTick() - t < 2000) { //2Éäδַ«¤êÊÖ¤¹ if (SensorUS(S1) < 30) { //¥»¥ó¥µÃÍ < 30¤Î¤È¤ ball++; //ball + 1 ..¤Ä¤Þ¤êball = STOP + 1 break; //¥ë¡¼¥×¤òÈ´¤±½Ð¤¹ } Wait(STEP); } if (ball == STOP + 1) { //Ķ²»ÇÈ¥»¥ó¥µ < 30¤ò¼¨¤¹¤Þ¤ÇÁ°¿Ê OnFwd(OUT_BC, SPEED_SLOW); //SPEED_SLOW(=30)¤Î¥Ñ¥ï¡¼¤ÇÁ°¿Ê while (ball < STOP + 2) { if (SensorUS(S1) < 30) { ball++; } } Off(OUT_BC); //1ÉÃÄä»ß Wait(1); Dist(35, 1); //35cmÁ°¿Ê hand(70, -1); //¥Ü¡¼¥ë¤ò¤Ä¤«¤à turnAng(30, -1); //30ÅÙ±¦Àû²ó(¥é¥¤¥ó¥È¥ì¡¼¥¹¤Î¹õÀþ¤ËÆþ¤ë¤¿¤á) Dist(8, 1); //8cmÁ°¿Ê(¥é¥¤¥ó¥È¥ì¡¼¥¹¤Î¹õÀþ¤ËÆþ¤ë¤¿¤á) trace(20000, 15, 40); /*¡Ö20ÉðÊÆâ && TachoCount < 15¡×¤Î´Ö¥é¥¤¥ó¥È¥ì¡¼¥¹*/ trace(7000, 1000, 50); /*¡Ö7ÉðÊÆâ && TachoCount < 1000¡×¤Î´Ö¥é¥¤¥ó¥È¥ì¡¼¥¹*/ trace(15000, 10, 40); /*¡Ö15ÉðÊÆâ && TachoCount < 10¡×¤Î´Ö¥é¥¤¥ó¥È¥ì¡¼¥¹*/ turnAng(75, 1); //75ÅÙ±¦Àû²ó Dist(15,1); //15cmÁ°¿Ê turnAng(20, 1); //20ÅÙ±¦Àû²ó SetSensorLight(S2); //¸÷¥»¥ó¥µ¡¼µ¯Æ° OnFwd(OUT_BC, SPEED); //¹õÀþ¤Þ¤ÇSPEED(=50)¤Î¥Ñ¥ï¡¼¤ÇÁ°¿Ê while (SENSOR_2 > THRESHOLD - 15) {} Off(OUT_BC); //Ää»ß hand(70, 1); //¥Ü¡¼¥ë¤òÎ¥¤¹ } else { turnAng(90, -1); //90ÅÙº¸Àû²ó Dist(40, 1); //40cm¿Ê¤à turnAng(90, 1); //90ÅÙ±¦Àû²ó Off(OUT_BC); Wait(STEP); //0.001ÉôÖÄä»ß while (1) { int d = searchDirection(60); //60ÅÙ¤ÎÈϰϤǥܡ¼¥ë¤òõ¤¹ if (d < 30) { /*searchDirection(60)¤ÎÊÖ¤êÃÍ < 30¤Î¤È¤(õ¤·¤¿ÈϰϤ˥ܡ¼¥ë¤¬¤¢¤Ã¤¿¤È¤)*/ Dist(20, 1); //20cm¿Ê¤à hand(70, -1); //¥Ü¡¼¥ë¤ò¤Ä¤«¤à break; //¥ë¡¼¥×¤«¤éÈ´¤±½Ð¤¹ } else { OnFwd(OUT_BC, SPEED); //0.5Éÿʤà Wait(500); searchDirection(0); /*searchDirection¤ò2Ϣ³¤Ç»È¤¦¤È¥Ð¥°¤ë¤¿¤áseachDirection(0)¤ò¤Ï¤µ¤à*/ } } trace(10000, 10000, 45); //¤É¤³¤«¤Î¥é¥¤¥ó¤Ë¤Î¤ë,¥í¥Ü¥Ã¥È¤Î¸þ¤¤ò¥´¡¼¥ëÊý¸þ¤Ë¸þ¤±¤ë Dist(40, 1); //40cm¿Ê¤à¡¢ SetSensorLight(S2); //¸÷¥»¥ó¥µ¡¼µ¯Æ° OnFwd(OUT_BC, SPEED); //SPEED(=50)¤Î¥Ñ¥ï¡¼¤Ç¡¢¹õÀþ¤ËÅþ㤹¤ë¤Þ¤Çľ¿Ê while (SENSOR_2 > THRESHOLD - 15) {} trace(3000, 10000, 40); //¡Ö3ÉðÊÆâ && TachoCount < 10000¡×¤Î´Ö¥é¥¤¥ó¥È¥ì¡¼¥¹ hand(70, 1); //¥Ü¡¼¥ë¤òÎ¥¤¹ } }