[[2015b/Member]] Ìܼ¡ #contents *¥é¥¤¥ó¥È¥ì¡¼¥¹¤¹¤ë¥í¥Ü¥Ã¥È [#p5d41d92] ¹õ¤¤Àþ¤Ë±è¤Ã¤ÆÆ°¤¯¥í¥Ü¥Ã¥È¤òÀ©ºî¤·¤¿¡£ **Áö¹Ô¤¹¤ë·ÐÏ© [#i456d28d] #ref(2015b/Member/rmsun/Mission2/2015b-mission2.png,716*500, ·ÐÏ©) ¾å¤Î¿Þ¤ò¡¢¡ÖBÃÏÅÀ ¢ª P±¦ÀÞ ¢ª Q±¦ÀÞ ¢ª Pº¸ÀÞ ¢ª Qº¸ÀÞ ¢ª Qľ¿Ê ¢ª Pľ¿Ê ¢ª AÃÏÅÀ¡×¤Î½ç¤ËÁö¹Ô¤¹¤ë *¥í¥Ü¥Ã¥ÈËÜÂÎ [#oc260a58] ½é´ü¥í¥Ü¥Ã¥È¤Ë¸÷¥»¥ó¥µ¤òÉÕ¤±¤¿¹½Â¤ #ref(2015b/Member/rmsun/Mission2/IMG_1320.JPG, 480*360) ¥â¡¼¥¿B¤Ï±¦¤Î¥¿¥¤¥ä¤Ë¡¢¥â¡¼¥¿C¤Ïº¸¤Î¥¿¥¤¥ä¤Ë¼è¤êÉÕ¤±¤¿¡£ *ÄêµÁ¡¢¥µ¥Ö¥ë¡¼¥Á¥ó [#fc43c816] **¥Þ¥¯¥í [#ed90eab8] #define THRESHOLD 50 //ïçÃÍ #define STEP 1 //Wait¤Î°ú¿ô¤È¤·¤Æ»È¤¦ **°ú¿ô¤òÊÑ¿ô¤ËÂåÆþ¤¹¤ë¡Öscan_move¡×¡Öscan_angle¡× [#cfa984f0] ***scan_move¤Ç»È¤¦¤¿¤á¤ÎÊÑ¿ô [#nd1c0e86] ÊÑ¿ôtarget...¸òº¹ÅÀ¤«¤É¤¦¤«¤òȽÊ̤¹¤ë¤¿¤á¤Î¿ôÃÍ ÊÑ¿ôspeed3...¥í¥Ü¥Ã¥È¤¬Ä¾¿Ê¤¹¤ë¤È¤¤Î¡¢¥â¡¼¥¿¤Î¥Ñ¥ï¡¼ int target; //¸òº¹ÅÀ¤«¤É¤¦¤«¤òȽÃǤ¹¤ë¤È¤¡¢´ð½à¤È¤¹¤ë¿ôÃÍ int speed3; //ľ¿Ê¤¹¤ë¤È¤¤Î¡¢¥â¡¼¥¿¤Î¥Ñ¥ï¡¼¤Ë»ÈÍÑ ***°ú¿ô¤Ç¤È¤Ã¤¿Ãͤò¡¢target, speed3¤ËÂåÆþ¤¹¤ë¡Öscan_move¡× [#jaf76196] sub scan_move(int aim, int power) { //°ú¿ô¤Ë¤È¤Ã¤¿Ãͤò¡¢target, speed3¤ËÂåÆþ¤¹¤ë target = aim; //°ú¿ôaim¤ò¡¢target¤ËÂåÆþ speed3 = power; //°ú¿ôpower¤ò¡¢speed3¤ËÂåÆþ } ***scan_angle¤Ç»È¤¦¤¿¤á¤ÎÊÑ¿ô [#l26dabd8] ¼¡¤Î£³¤Ä¤ÎÊÑ¿ô¤Ï¡¢¸òº¹ÅÀ¤Ë¤Ö¤Ä¤«¤Ã¤¿¸å¡¢¤É¤ó¤ÊÆ°ºî¤ò¤¹¤ë¤Î¤«¤ò·è¤á¤ë¡£ int R_ang; //¸òº¹ÅÀ¤Ç±¦Àû²ó¤¹¤ë¤È¤¤Î¡¢¥â¡¼¥¿¤Î²óž³Ñ int L_ang; //¸òº¹ÅÀ¤Çº¸Àû²ó¤¹¤ë¤È¤¤Î¡¢¥â¡¼¥¿¤Î²óž³Ñ int GO_ang; //¸òº¹ÅÀ¤Çľ¿Ê¤¹¤ë¤È¤¤Î¡¢¥â¡¼¥¿¤Î²óž³Ñ ***°ú¿ô¤Ç¤È¤Ã¤¿Ãͤò¡¢L_ang, GO_ang, R_ang¤ËÂåÆþ¤¹¤ë¡Öscan_angle¡× [#bad74399] sub scan_angle(int l, int g, int r) { //°ú¿ô¤Ë¤È¤Ã¤¿Ãͤò¡¢L_ang, GO_ang, R_ang¤ËÂåÆþ L_ang = l; //°ú¿ôl¤ò¡¢L_ang¤ËÂåÆþ GO_ang = g; //°ú¿ôg¤ò¡¢GO_ang¤ËÂåÆþ R_ang = r; //°ú¿ôr¤ò¡¢R_ang¤ËÂåÆþ } **º¸Àû²ó¡¢±¦Àû²ó¡¢Ä¾¿Ê¤ò¤¹¤ë¡Öturn_left¡×¡Öturn_right¡×¡Ögo_forward¡× [#n86fb666] ***¥â¡¼¥¿¤Î¥Ñ¥ï¡¼¤ò°ú¿ô¤Ë¤È¤Ã¤Æ¡¢º¸Àû²ó¤¹¤ë¡Öturn_left¡× [#jd7c11d9] sub turn_left(int speedA, int speedB) { //º¸¤Ë¶Ê¤¬¤ë OnFwd(OUT_B,speedA); //°ú¿ôspeedA¤Î¥Ñ¥ï¡¼¤Ç¡¢¥â¡¼¥¿B¤òÁ°Å¾ OnRev(OUT_C,speedB); //°ú¿ôspeedB¤Î¥Ñ¥ï¡¼¤Ç¡¢¥â¡¼¥¿C¤ò¸åž } ***¥â¡¼¥¿¤Î¥Ñ¥ï¡¼¤ò°ú¿ô¤Ë¤È¤Ã¤Æ¡¢±¦Àû²ó¤¹¤ë¡Öturn_right¡× [#i434e9e0] sub turn_right(int speedA, int speedB) { //±¦¤Ë¶Ê¤¬¤ë OnFwd(OUT_C,speedB); //°ú¿ôspeedB¤Î¥Ñ¥ï¡¼¤Ç¡¢¥â¡¼¥¿C¤òÁ°Å¾ OnRev(OUT_B,speedA); //°ú¿ôspeedA¤Î¥Ñ¥ï¡¼¤Ç¡¢¥â¡¼¥¿B¤ò¸åž } ***¥â¡¼¥¿¤Î¥Ñ¥ï¡¼¤ò°ú¿ô¤Ë¤È¤Ã¤Æ¡¢Ä¾¿Ê¤¹¤ë¡Ögo_forward¡× [#hcbd6781] sub go_forward(int speed3) { //¤Þ¤Ã¤¹¤°¿Ê¤à OnFwd(OUT_BC,speed3); //speed3¤Î¥Ñ¥ï¡¼¤Ç¡¢¥â¡¼¥¿BC¤òÁ°Å¾ } **¸òº¹ÅÀ¤Ë¤Ö¤Ä¤«¤Ã¤¿¤È¤¤ÎÆ°ºî¡Öcross_action¡× [#x441724f] ¸òº¹ÅÀ¤Ë¤Ö¤Ä¤«¤Ã¤¿ºÝ¡¢1ÉôÖÄä»ß¤·¤¿¤¢¤È¡¢¤½¤Î¸òº¹ÅÀ¤òľ¿Ê¤¹¤ë or ±¦ÀÞ¤¹¤ë or º¸ÀÞ¤¹¤ë ¡Öcross_action¡×¤Ï¡¢¡Öscan_ang¡×¤ÇÃͤ¬ÂåÆþ¤µ¤ì¤¿¡ÖL_ang¡×¡ÖR_ang¡×¡ÖGO_ang¡×¡¢¤½¤ì¤Ë²Ã¤¨¤Æ¥â¡¼¥¿¤Î¥Ñ¥ï¡¼¤È¤·¤Æ¡Öspeed1¡×¤ò°ú¿ô¤Ë¤È¤ë sub cross_action(int speed1, int L_ang, int R_ang, int GO_ang) { //¸òº¹ÅÀ¤ËÆþ¤Ã¤¿»þ¤ÎÆ°ºî(count¤¬2¤È7¤Î¤È¤°Ê³°) Off(OUT_BC); //¥â¡¼¥¿¡¼Ää»ß Wait(1000); //1Éô֡ݡ RotateMotorEx(OUT_BC, speed1, L_ang, -100, true, true); //speed1¤Î¥Ñ¥ï¡¼¤Ç¡¢L_ang¤Î³ÑÅÙʬ¡¢¤½¤Î¾ìº¸Àû²ó¡Ý¢ Wait(100); //´Ö¤ËWait¤ò¶´¤Þ¤Ê¤¤¤È¸íºîÆ°¤¹¤ë¤¿¤á RotateMotorEx(OUT_BC, speed1, R_ang, 100, true, true); //speed1¤Î¥Ñ¥ï¡¼¤Ç¡¢R_ang¤Î³ÑÅÙʬ¡¢¤½¤Î¾ì±¦Àû²ó¡Ý£ Wait(100); //¸íºîÆ°¤òËɤ°¤¿¤á RotateMotorEx(OUT_BC, speed1, GO_ang, 0, true, true); //speed1¤Î¥Ñ¥ï¡¼¤Ç¡¢GO_ang¤Î³ÑÅÙʬ¡¢Ä¾¿Ê¡Ý¤ } ¾å¤Î¥×¥í¥°¥é¥à¤ÎÆ°ºî¤òÀâÌÀ¤¹¤ë¤È ¡1Éô֥í¥Ü¥Ã¥È¤òÄä»ß¤µ¤»¤ë ¢¥â¡¼¥¿¤òL_angÅٲ󞤵¤»¤Æ¡¢¤½¤Î¾ìº¸Àû²ó £¥â¡¼¥¿¤òR_angÅٲ󞤵¤»¤Æ¡¢¤½¤Î¾ì±¦Àû²ó ¤¥â¡¼¥¿¤òGO_angÅٲ󞤵¤»¤Æ¡¢Ä¾¿Ê ¤Î½ç¤Ë¼Â¹Ô¤µ¤ì¤ë ¡Ö¥â¡¼¥¿¤¬0ÅÙÆ°¤¯ = Æ°¤«¤Ê¤¤¡×¤È¹Í¤¨¤ë¤È ¡¦R_ang = 0, GO_ang = 0¤Î¤È¤¡¢¸òº¹ÅÀ¤òº¸ÀÞ¤¹¤ë(¢¤¬¼Â¹Ô¤µ¤ì¤ë) ¡¦L_ang = 0, R_ang = 0¤Î¤È¤¡¢¸òº¹ÅÀ¤òľ¿Ê¤¹¤ë(¤¤¬¼Â¹Ô¤µ¤ì¤ë) ¡¦L_ang = 0¤Î¤È¤¡¢¸òº¹ÅÀ¤ò±¦ÀÞ¤¹¤ë(£¢ª¤¤Î½ç¤Ç¼Â¹Ô¤µ¤ì¤ë) *¥á¥¤¥ó´Ø¿ô [#pc00e5c2] task main() { **¥á¥¤¥ó´Ø¿ô¤Ç¿·¤·¤¯»È¤¦ÊÑ¿ô [#e21b6be8] ÊÑ¿ôcount...¸òº¹ÅÀ¤Ë¤Ö¤Ä¤«¤Ã¤¿²ó¿ô¤òÂåÆþ ÊÑ¿ôtacho...¥â¡¼¥¿B¤Î²óž¿ô¤òÃßÀѤ¹¤ë SetSensorLight(S2); int speed1 = 20; //¥â¡¼¥¿¤Î¥Ñ¥ï¡¼ÍÑ int speed2 = 15; //¥â¡¼¥¿¤Î¥Ñ¥ï¡¼ÍÑ(speed1¤è¤ê¾¯¤·¼å¤¤) int count = 0; //²¿²ó¸òº¹ÅÀ¤Ë¤Ö¤Ä¤«¤Ã¤¿¤«¤òÂåÆþ¤¹¤ë int tacho = 0; //¡Ö¤½¤Î¾ì¤Çº¸Àû²ó¤¹¤ë¡×Æ°ºî¤ò¤·Â³¤±¤¿¤È¤¤Î¡¢²óž³Ñ¤Î¹ç·× long t; //¥¿¥¤¥Þ¡¼¤ò»È¤¦¤È¤¤Ë»ÈÍÑ **count < 8 ¤Î´Ö¤À¤±·«¤êÊÖ¤¹ [#vd93a9c5] while (count < 8){ //count < 8¡¡¤Î´Ö¡¢¥ë¡¼¥×¤ò³¤±¤ë ***¸òº¹ÅÀ¤´¤È¤ËÆ°ºî¤òÊѤ¨¤ë [#p37e981a] ¤³¤³¤Ç¤ÎÁàºî¤Ï¡¢¡Ö¸òº¹ÅÀ¤ÎȽÊ̡פä¡Ö¸òº¹ÅÀ¤Ë¤Ö¤Ä¤«¤Ã¤¿ºÝ¤ÎÆ°ºî¡×¤Ë±Æ¶Á¤òµÚ¤Ü¤¹ switch(count) { //count¤ÎÃͤˤè¤Ã¤ÆÆ°ºî¤¬ÊѤï¤ë //Îã:case count¤ÎÃÍ : scan_move(target¤ÎÃÍ,speed3¤ÎÃÍ); scan_angle(º¸Àû²ó¤¹¤ë³ÑÅÙ,ľ¿Ê¤¹¤ë³ÑÅÙ,±¦Àû²ó¤¹¤ë³ÑÅÙ); case 0 : scan_move(20, 50); scan_angle(0, 70, 50); break; case 1 : scan_move(28, 60); scan_angle(0, 80, 20); break; case 2 : scan_move(10000, 40); break; case 3 : scan_move(20, 45); scan_angle(40, 0, 0); break; case 4 : scan_move(30, 50); scan_angle(160, 0, 0); break; case 5 : scan_move(20, 50); scan_angle(0, 50, 0); break; case 6 : scan_move(20, 60); break; case 7 : scan_move(25, 40); scan_angle(0, 0, 0); break; default : break; } count¤ÎÃͤ«¤é¡¢º£²¿¸ÄÌܤθòº¹ÅÀ¤Ë¤¤¤ë¤Î¤«¤òȽÃÇ Î㤨¤Ð¡¢count¤¬0¤Î¤È¤¤Ï¡¢¡Ö1¸ÄÌܤθòº¹ÅÀ¤Þ¤Ç¤Î¡¢¥í¥Ü¥Ã¥È¤Î¥¹¥Ô¡¼¥É¡×¤È¡¢¡Ö1¸ÄÌܤθòº¹ÅÀ¤ÎȽÊÌ´ð½à¡×¡¢¡Ö1¸ÄÌܤθòº¹ÅÀ¤Ë¤Ö¤Ä¤«¤Ã¤¿¤È¤¤ÎÆ°ºî¡×¤òÀßÄꤹ¤ë &ref(2015b/Member/rmsun/Mission2/2015b-mission2a.png,480*335); &ref(2015b/Member/rmsun/Mission2/2015b-mission2c.png,480*335); ¾å¿Þ¤è¤ê¡¢Üô(count=0)¢ª²«(count=1)¢ª²«ÎÐ(count=2)¢ªÎÐ(count=3)¢ª¿å¿§(count=4)¢ªÀÄ(count=5)¢ª»ç(count=6)¢ªÀÖ(count=7)¤Î½ç¤Ë¿Ê¤à count=2¤Î»þ¤À¤±¤Ï¡¢¸òº¹ÅÀ¤ËÅþ㤹¤ëÁ°¤Ëcount¤¬ÀÚ¤êÂؤï¤ë¡£ ***¹õ¤¤Àþ¤Ë±è¤Ã¤ÆÆ°¤¯¤¿¤á¤Î¥×¥í¥°¥é¥à [#w024bec7] t = CurrentTick(); //¤³¤³¤Ç¸½ºß»þ¹ï¤òt¤ËÂåÆþ(CurrentTick() - t¡¡¤È»È¤¦¤³¤È¤Ç¡¢·Ð²á»þ´Ö¤¬¤ï¤«¤ë) while ((tacho < target) && ((count != 2) || (CurrentTick() - t < 22500))) { //¡Ö¥é¥¤¥ó¥È¥ì¡¼¥¹¤¹¤ë¥ë¡¼¥×¡× /*¡Ötarget(»ØÄꤷ¤¿³ÑÅÙ)¤ò¥¿¥¤¥ä¤Î²óž¿ô¤¬Ä¶¤¨¤Ê¤¤¡× ¤Þ¤¿¤Ï ¡Öcount=2¤Î¤È¤¤Ë¡¢22.5É÷вᤷ¤Æ¤¤¤Ê¤¤¡× ¡¡¡¡ ¢¬¤Î¾ò·ï¤òËþ¤¿¤·¤Æ¤¤¤ë´Ö¤À¤±¥ë¡¼¥×¤ò³¤±¤ë*/ //¤Ä¤Þ¤ê¡¢count != 2¤Î»þ¤Ï¡¢tacho >= target¤òËþ¤¿¤¹¤È¤¤Ë¥ë¡¼¥×¤òÈ´¤±½Ð¤¹ count = 2¤Î»þ¤Ï¡¢22.5É÷вᤷ¤¿¤È¤¤Ë¥ë¡¼¥×¤òÈ´¤±½Ð¤¹ 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¤Ë¡¢¥â¡¼¥¿¤Î²óž³Ñ¤òÂåÆþ(¡Ö¤½¤Î¾ì¤Çº¸²óž¤·¤¿»þ¡×¤Î²óž³Ñ¤·¤«ÂåÆþ¤µ¤ì¤Ê¤¤)¡Ý£ } tacho¤Ï¡¢¡Ö¥â¡¼¥¿B¤¬²óž¤·¤¿³ÑÅ١פòÃßÀѤ¹¤ë¤¿¤á¤ÎÊÑ¿ô¡£tacho¤Ë¤Ä¤¤¤Æ ¡¡ÖSENSOR_2 < THRESHOLD(ïçÃÍ) - 15¡×°Ê³°¤Î¤È¤¡¢tacho¤ò0¤Ë¤¹¤ë¡£ ¢¡ÖSENSOR_2 < THRESHOLD(ïçÃÍ) - 15¡×°Ê³°¤Î¤È¤¡¢TachoCountB(¥â¡¼¥¿B¤¬²óž¤·¤¿³ÑÅÙ)¤ò0¤Ë¥ê¥»¥Ã¥È¤¹¤ë £tacho += MotorTachoCount(OUT_B) ¤Ï¡¢¡Ö¥â¡¼¥¿B¤¬²óž¤·¤¿³ÑÅ١פòtacho¤ËÄɲ䷤Ƥ¤¤ë¤³¤È¤òɽ¤·¤Æ¤¤¤ë ¤Î¡,¢,£¤¬À®¤êΩ¤Ä ¢¡¢£¤è¤ê¡¢tacho¤Ë0°Ê³°¤ÎÃͤ¬ÂåÆþ¤µ¤ì¤ë¤Î¤Ï¡¢¡ÖSENSOR_2 < THRESHOLD - 15¡×¤òËþ¤¿¤¹¤È¤(¥í¥Ü¥Ã¥È¤¬¤½¤Î¾ì¤Çº¸Àû²ó¤¹¤ë¤È¤)¤À¤±¤Ç¤¢¤ë ¡¤è¤ê¡¢°ìÅ٤Ǥâ¡ÖSENSOR_2 < THRESHOLD - 15¡×¤òËþ¤¿¤µ¤Ê¤«¤Ã¤¿¤é¡¢tacho¤Ï0¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë¡£ ¤Ä¤Þ¤ê¡¢tacho > target¤È¤Ê¤ë¤Î¤Ï¡¢Ï¢Â³Åª¤Ë¡ÖSENSOR_2 < THRESHOLD - 15¡×¤òËþ¤¿¤·Â³¤±¤Æ¤¤¤ë(¤½¤Î¾ìº¸Àû²ó¤¬¡¢Ï¢Â³¤·¤Æµ¯¤³¤Ã¤Æ¤¤¤ë)¤È¤¤À¤± ***¸òº¹ÅÀ¤Ë¤Ö¤Ä¤«¤Ã¤¿ºÝ¤ÎÆ°ºî [#iaee8719] //¢¢°Ê²¼¤Ï¡Ö¥é¥¤¥ó¥È¥ì¡¼¥¹¤¹¤ë¥ë¡¼¥×¡×¤òÈ´¤±¤À¤·¤¿»þ¤ÎÆ°ºî¢¢ if ((count != 2) && (count != 7)) { //count¤ÎÃͤ¬¡¢2or7°Ê³°¤Î¤È¤ cross_action(speed1, L_ang, R_ang, GO_ang); //¥µ¥Ö¥ë¡¼¥Á¥ócross_action(¸òº¹ÅÀ¤ÎºÝ¤ÎÆ°ºî)¤ò¼Â¹Ô } count++; //count¤Ë1¤ò²Ã¤¨¤ë tacho = 0; //tacho¤ò0¤Ë¤¹¤ë ResetTachoCount(OUT_B); //¥â¡¼¥¿¤Î²óž³Ñ¤ò¥ê¥»¥Ã¥È(¸òº¹ÅÀ¤ÎÆ°ºî¤Î»þ¤Î¡¢¥â¡¼¥¿¤Î²óž³Ñ¤ò¥ê¥»¥Ã¥È) } **¤¹¤Ù¤Æ¤Î¥ë¡¼¥×¤¬½ª¤ï¤Ã¤¿¸å¤ÎÆ°ºî [#p21d902b] //¢¢°Ê²¼¤Ï¡¢¤¹¤Ù¤Æ¤Î¥ë¡¼¥×¤¬½ª¤ï¤Ã¤¿»þ¤ÎÆ°ºî¢¢ Off(OUT_BC); //¥í¥Ü¥Ã¥È¤òÄä»ß¤µ¤»¤ë } *¥á¥¤¥ó´Ø¿ô¤Î¤Þ¤È¤á [#t51b7b45] ¥×¥í¥°¥é¥à¤ò°ì¤Ä°ì¤ÄÀâÌÀ¤·¤¿¤¿¤á¡¢¥×¥í¥°¥é¥à¤ÎÁ´ÂÎÁü¤¬¤Ä¤«¤á¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£¤Ê¤Î¤Ç¡¢while¥ë¡¼¥×¤ä¡¢ÊÑ¿ô¤ÎÂåÆþ´Ø·¸¤òÃæ¿´¤Ë¤Þ¤È¤á¤¿¤â¤Î¤òºÜ¤»¤ë /*task main() { count = 0; //¸òº¹ÅÀ¤Ë¤Ö¤Ä¤«¤Ã¤¿²ó¿ô¤òÂåÆþ¤¹¤ë tacho = 0; //¥â¡¼¥¿B¤Î²óž³Ñ¤Î¹ç·× long t; while (count < 8){ //count < 8¡¡¤Î´Ö¡¢¥ë¡¼¥×¤ò³¤±¤ë switch(count) { //count¤ÎÃͤˤè¤Ã¤ÆÆ°ºî¤òÊѤ¨¤ë /*count¤´¤È¤Ç¡¢¡target(¸òº¹ÅÀ¤ÎȽÃÇ´ð½à) ¢speed3(ľ¿Ê»þ¤Î¥Ñ¥ï¡¼) £L_ang, R_ang, GO_ang(¸òº¹ÅÀ¤ËÅö¤¿¤Ã¤¿ºÝ¤ÎÆ°ºî) ¤ò·è¤á¤ë*/ } while ((tacho < target) && ((count != 2) || (CurrentTick() - t < 22500))) { //¡Ö¥é¥¤¥ó¥È¥ì¡¼¥¹¤¹¤ë¥ë¡¼¥×¡× //¸÷¥»¥ó¥µ¤ò»È¤Ã¤Æ¡¢¼ÂºÝ¤Ë¥é¥¤¥ó¥È¥ì¡¼¥¹ ¡¡¡¡¡¡¡¡//(SENSOR_2 >= THRESHOLD-15)¤Î¤È¤¤Ï¡¢tacho = 0 //¥â¡¼¥¿B¤¬Æ°¤¤¤¿¤È¤¡¢¤½¤Î²óž¿ô¤¬¡ÖMotorTachoCount(OUT_B)¡×¤ËÂåÆþ¤µ¤ì¤ë if (SENSOR_2 >= THRESHOLD-15) { //¸÷¥»¥ó¥µ¤Î¿ôÃͤ¬¡¢THRESHOLD-15¤è¤ê¹â¤¤¤È¤ (=¤½¤Î¾ì¤Çº¸²óž¤·¤Æ¤¤¤Ê¤¤¤È¤) ResetTachoCount(OUT_B); //¥â¡¼¥¿¤Î²óž¿ô¤ò¥ê¥»¥Ã¥È(¤½¤Î¾ì¤Çº¸²óž¤·¤¿¤È¤°Ê³°¤Ï¥ê¥»¥Ã¥È) } tacho += MotorTachoCount(OUT_B); //tacho¤Ë¡¢¥â¡¼¥¿¤Î²óž¿ô¤òÂåÆþ(¡Ö¤½¤Î¾ì¤Çº¸²óž¤·¤¿»þ¡×¤Î²óž³Ñ¤·¤«ÂåÆþ¤µ¤ì¤Ê¤¤) } //¢¢°Ê²¼¤Ï¡Ö¥é¥¤¥ó¥È¥ì¡¼¥¹¤¹¤ë¥ë¡¼¥×¡×¤òÈ´¤±¤À¤·¤¿»þ¤ÎÆ°ºî¢¢ if ((count != 2) && (count != 7)) { //count¤ÎÃͤ¬¡¢2or7°Ê³°¤Î¤È¤ cross_action(speed1, L_ang, R_ang, GO_ang); //¥µ¥Ö¥ë¡¼¥Á¥ócross_action(¸òº¹ÅÀ¤ÎºÝ¤ÎÆ°ºî)¤ò¼Â¹Ô } count++; //count¤Ë1¤ò²Ã¤¨¤ë tacho = 0; //tacho¤ò0¤Ë¤¹¤ë ResetTachoCount(OUT_B); //¥â¡¼¥¿¤Î²óž³Ñ¤ò¥ê¥»¥Ã¥È(¸òº¹ÅÀ¤ÎÆ°ºî¤Î»þ¤Î¡¢¥â¡¼¥¿¤Î²óž³Ñ¤ò¥ê¥»¥Ã¥È) } //¢¢°Ê²¼¤Ï¡¢¤¹¤Ù¤Æ¤Î¥ë¡¼¥×¤¬½ª¤ï¤Ã¤¿»þ¤ÎÆ°ºî¢¢ Off(OUT_BC); } */ *¹©É×ÅÀ [#ffe0873a] ¡¦¼ø¶È¤Ç½¬¤Ã¤¿¥×¥í¥°¥é¥à¤È´ðËÜŪ¤ËƱ¤¸¤À¤¬¡¢¸òº¹ÅÀ¤òȽÊ̤¹¤ë¤È¤¡¢¥¿¥¤¥Þ¡¼¤Ç¤Ï¤Ê¤¯¥â¡¼¥¿¤Î²óž¿ô¤ò»È¤Ã¤¿¡£¤½¤Î¤ª¤«¤²¤Ç¡¢¸òº¹ÅÀ¤´¤È¤Ë¥¹¥Ô¡¼¥É¤òÊѤ¨¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£¤½¤·¤Æ¡¢NXT¤ÎÅÅÃÓ»ÄÎ̤ˤè¤Ã¤ÆÆ°¤¤¬ÊѤï¤ë¤³¤È¤â¾¯¤Ê¤«¤Ã¤¿¡£ ¡¦±¦Àû²ó¡¢º¸Àû²ó¡¢Ä¾¿Ê¤ÎÁȤ߹ç¤ï¤»¤Ç¡¢¸òº¹ÅÀ¤Ç¤Î¿Ê¤ßÊý(±¦ÀÞ¡¢º¸ÀÞ¡¢¿¿¤Ãľ¤°¡¢¤Ê¤É)¤ò·è¤á¤¿¤³¤È *È¿¾ÊÅÀ [#tc347190] ¡¦¾ò·ïʬ´ô¤ä¡¢¥µ¥Ö¥ë¡¼¥Á¥ó¤ò̵Â̤Ë¿¤¯»È¤Ã¤Æ¤¤¤ë(caseʸ¤Ç½ñ¤«¤ì¤Æ¤¤¤ë²Õ½ê¤ÏÆäË) ¡¦TachoCount¤ò¿®ÍѤ·¤¹¤®¤Æ¤¤¤¿¡£¸íº¹¤¬¤«¤Ê¤ê¤¢¤Ã¤¿¤Î¤Ç¡¢¥¿¥¤¥Þ¡¼¤ò»È¤Ã¤¿Êý¤¬Àµ³Î¤À¤Ã¤¿¤«¤â¤·¤ì¤Ê¤¤¡£