[[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¤¬º¸¥¿¥¤¥ä
¡¦¥â¡¼¥¿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¤Ïº¸¥¿¥¤¥ä
¥â¡¼¥¿A¤Ï¥¢¡¼¥àÉôʬ¡¢¥â¡¼¥¿B¤Ï±¦¥¿¥¤¥ä¡¢¥â¡¼¥¿C¤Ïº¸¥¿¥¤¥ä¡£¥â¡¼¥¿A¤À¤±¤Ç¡¢2¤Ä¤Î¥¢¡¼¥à¤òÆ°¤«¤¹¡£

»È¤Ã¤¿¥»¥ó¥µ¤Ï¡¢¸÷¥»¥ó¥µ¤ÈĶ²»ÇÈ¥»¥ó¥µ
»È¤Ã¤¿¥»¥ó¥µ¤Ï¡¢¸÷¥»¥ó¥µ¤ÈĶ²»ÇÈ¥»¥ó¥µ¡£Ä¶²»ÇÈ¥»¥ó¥µ¤Ï¡¢(¥»¥ó¥µ¤Î°ÌÃ֤δط¸¤â¤¢¤ê)ÂоݤȤε÷Î¥¤òÀµ³Î¤Ë¬¤ì¤Ê¤«¤Ã¤¿¡£¤Ê¤Î¤Ç¡¢¡Ö¤½¤³¤Ë¥Ü¡¼¥ë¤¬¤¢¤ë¤Î¤«¤É¤¦¤«¡×¤ÎȽÃǤ˻Ȥä¿¡£¥»¥ó¥µ¤¬¥Ü¡¼¥ë¤ò´¶ÃΤ·¤¿»þ¡¢ÃͤÏ20Á°¸å¤ò¼¨¤·¤¿¤Î¤Ç¡¢¡ÖĶ²»ÇÈ¥»¥ó¥µ¤ÎÃÍ < 30¡×¤È¤Ê¤Ã¤¿»þ¤Ë¡Ö¥Ü¡¼¥ë¤¬Â¸ºß¤¹¤ë¡×¤È¤ß¤Ê¤·¤¿¡£

¥â¡¼¥¿°ì¤Ä¤ÇÆó¤Ä¤Î¥¢¡¼¥à¤òÆ°¤«¤¹
***¥í¥Ü¥Ã¥È¤ÎÆ°¤­ [#mb50a946]

          ´Ì¢«¢«¥Ü¡¼¥ë
  ¡¡¡¡       ¢¬
    ¡¡¡¡     ¢¬Ä¶²»ÇÈ¥»¥ó¥µ
      ¡¡¡¡ ¥í¥Ü¥Ã¥È

¾å¿Þ¤Î¤è¤¦¤ËĶ²»ÇÈ¥»¥ó¥µ¤ò¸þ¤±¤ë¡£

¥Ü¡¼¥ë¤¬Ä̤ê²á¤®¤¿»þ¡¢Ä¶²»ÇÈ¥»¥ó¥µ¤Ï¥Ü¡¼¥ë¤ò´¶Ã΢ª0.8ÉÃÄä»ß¡£¤½¤·¤ÆĶ²»ÇÈ¥»¥ó¥µºÆµ¯Æ°¡£¤½¤Î¸å¤Î¥Ü¡¼¥ë¤ÎÆ°¤¯¸þ¤­¤Ë¤è¤Ã¤Æ¡¢¥í¥Ü¥Ã¥È¤ÎÆ°ºî¤¬ÊѤï¤ë¡£
¥Ü¡¼¥ë¤¬Ä̤ê²á¤®¤¿»þ : Ķ²»ÇÈ¥»¥ó¥µ¤Ï¥Ü¡¼¥ë¤ò´¶Ã΢ª0.8ÉÃÄä»ß¡£¤½¤·¤ÆĶ²»ÇÈ¥»¥ó¥µºÆµ¯Æ°¡£¤½¤Î¸å¤Î¥Ü¡¼¥ë¤ÎÆ°¤¯¸þ¤­¤Ë¤è¤Ã¤Æ¡¢¥í¥Ü¥Ã¥È¤ÎÆ°ºî¤¬ÊѤï¤ë¡£

1.¥Ü¡¼¥ë¤¬Ä·¤ÍÊ֤俤Ȥ­

        ´Ì¢ª¢ª¥Ü¡¼¥ë
           ¢¬
           ¢¬Ä¶²»ÇÈ¥»¥ó¥µ
        ¥í¥Ü¥Ã¥È
¤³¤Î¤È¤­¡¢Ä¶²»ÇÈ¥»¥ó¥µ¤ÇºÆ¤Ó´¶Ã΢ª¥í¥Ü¥Ã¥Èľ¿Ê¢ª¥Ü¡¼¥ë¤ò¤Ä¤«¤à¢ª¥é¥¤¥ó¥È¥ì¡¼¥¹¤Ê¤É¤ò»È¤¤¥´¡¼¥ë¤Ø¹Ô¤­¡¢¥Ü¡¼¥ë¤òÎ¥¤¹
Ķ²»ÇÈ¥»¥ó¥µ¤ÇºÆ¤Ó´¶Ã΢ª¥í¥Ü¥Ã¥Èľ¿Ê¢ª¥Ü¡¼¥ë¤ò¤Ä¤«¤à¢ª¥é¥¤¥ó¥È¥ì¡¼¥¹¤Ê¤É¤ò»È¤¤¥´¡¼¥ë¤Ø¹Ô¤­¡¢¥Ü¡¼¥ë¤òÎ¥¤¹

2.¥Ü¡¼¥ë¤¬º¸¤Ëή¤ì¤Æ¤·¤Þ¤Ã¤¿¤È¤­

2.1 Ä·¤ÍÊ֤俥ܡ¼¥ë¤ò´¶ÃΤ·¤Ê¤¤

 ¥Ü¡¼¥ë¢«¢«¡¡¡¡
          ´Ì
             ¢¬
             ¢¬Ä¶²»ÇÈ¥»¥ó¥µ
           ¥í¥Ü¥Ã¥È
¤³¤Î¤È¤­Ä¶²»ÇÈ¥»¥ó¥µ¤Ï¡¢¥Ü¡¼¥ë¤ò´¶ÃΤ·¤Ê¤¤¢ª¥í¥Ü¥Ã¥Èº¸¤Ø¸þ¤«¤¦
Ķ²»ÇÈ¥»¥ó¥µ¤Ï¥Ü¡¼¥ë¤ò´¶ÃΤ·¤Ê¤¤¢ª¥í¥Ü¥Ã¥Èº¸¤Ø¸þ¤«¤¦

2.2 ´Ì¤Îº¸Â¦¤Ë¸þ¤«¤¤¡¢¥Ü¡¼¥ë¤òõº÷
     ¥Ü¡¼¥ë
  ¢¬¢¬¢¬¢¬¢¬¢¬ ´Ì
    ¢¬¢¬¢¬¢¬
       ¢¬¢¬        Ìð°õ¤Ï¡¢Ä¶²»ÇÈ¥»¥ó¥µ¤¬ºîÍѤ¹¤ëÈÏ°Ï 
     ¥í¥Ü¥Ã¥È

¡ù´Ì¤ò´¶ÃΤ·¤Ê¤¤ÄøÅ٤ˡ¢¥í¥Ü¥Ã¥È(Ķ²»ÇÈ¥»¥ó¥µ)¤ò²óž¤µ¤»¤ë¡£

¡¦¥Ü¡¼¥ë¤¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç

¥Ü¡¼¥ë¤ÎÊý¤ò¸þ¤­¡¢Ä¾¿Ê¡£¤½¤Î¸å¥Ü¡¼¥ë¤ò¤Ä¤«¤à

¡¦¥Ü¡¼¥ë¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç

¥í¥Ü¥Ã¥È¤ò²¼¿Þ¤Î¸þ¤­¤ËÌᤷ¤Æ¡¢¾¯¤·¿Ê¤ó¤Ç¡¢ºÆ¤Ó¡ù¤ÎÆ°ºî
 ¡¡¡¡¡¡¡¡´Ì
     ¢¬
     ¢¬      Ìð°õ¤ÎÊý¤Ø¸þ¤¯
  ¥í¥Ü¥Ã¥È


*¡Ö¥Ü¡¼¥ë¤ò´Ì¤ËÅö¤Æ¤ë¥í¥Ü¥Ã¥È¡×¤Î¥×¥í¥°¥é¥à [#k14bab2c]
*¡Ö¥Ü¡¼¥ë¤ò²ó¼ý¤¹¤ë¥í¥Ü¥Ã¥È¡×¤Î¥×¥í¥°¥é¥à [#z16e8d55]
¼«Ê¬¤¬Ã´Åö¤·¤¿¤Î¤Ï¡¢¼ç¤Ë¤³¤ÎÉôʬ¤Ç¤¹¡£
**ÄêµÁ¡¢´Ø¿ô [#y0213ca1]
***¥Þ¥¯¥í [#m15c1f4b]
 #define SPEED 50	//Dist¤Ê¤É¤Î¥â¡¼¥¿¤Î¥Ñ¥ï¡¼¤Ë¡¢Éý¹­¤¯»ÈÍÑ
 #define SPEED_SLOW 30      //´Ø¿ôhand,turnAng¤Ê¤É¤Ç»ÈÍÑ
 #define THRESHOLD 45		//ïçÃÍ
 #define STEP 1		//Wait¤Î°ú¿ô¤È¤·¤Æ»È¤¦
 #define STOP 3		//¡Ö¥Ü¡¼¥ë¤¬¥»¥ó¥µ¤ÎÁ°¤ò²£Àڤ信פ«¤É¤¦¤«¤òÄ´¤Ù¤ëÃÍ
***hand...¥Ü¡¼¥ë¤ò¤Ä¤«¤à´Ø¿ô [#y627f394]
 sub hand(int ang, int plmi) {	//¥Ü¡¼¥ë¤ò¤Ä¤«¤àÆ°ºî
        /*plmi = 1 ¢ª ¥¢¡¼¥à³«
          plmi = -1 ¢ª ¥¢¡¼¥àÊÄ */
 	RotateMotor(OUT_A, SPEED_SLOW * plmi, ang);
 }
***Dist...»ØÄꤷ¤¿µ÷Î¥¿Ê¤à´Ø¿ô [#gc626d6c]
 const float diameter=5.45;	     //¥¿¥¤¥ä¤Îľ·Â(cm)
 const float pi=3.1415;          //±ß¼þΨ
 const float track = 10.35;	//¥¿¥¤¥ä¤Î¥È¥ì¥Ã¥ÉÉý

 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);
 }
***turnAng...»ØÄꤷ¤¿³ÑÅÙÀû²ó¤¹¤ë´Ø¿ô [#l31c83ee]
 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);
 }
***searchDirection...ºÇûµ÷Î¥¤ÎÊý¤ò¸þ¤¯´Ø¿ô [#wd8a8862]

 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;  //¡ÖĶ²»ÇÈ¥»¥ó¥µ¤Î¼¨¤·¤¿ºÇ¾®Ã͡פòÊÖ¤¹
 }
***¥é¥¤¥ó¥È¥ì¡¼¥¹¤¹¤ë¤¿¤á¤Î´Ø¿ô [#l58de8e2]
´Ø¿ô¡Ötrace¡×¤Ç»È¤¦´Ø¿ô
 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¤òÁ°Å¾
 } 
 
´Ø¿ôtrace...¡ÖtimeÉðÊÆâ¡¢¤«¤Ä¡¢TachoCount < target¡×¤Î´Ö¥é¥¤¥ó¥È¥ì¡¼¥¹(ľ¿Ê¤¹¤ë¥Ñ¥ï¡¼ = speed3)

1.¸òº¹ÅÀ¤«¤É¤¦¤«¤ò¸«¶Ë¤á¤ëºÝ¤Ë¡¢¥¿¥¤¥Þ¡¼¤Ç¤Ï¤Ê¤¯¥¿¥¤¥ä¤Î²óž¤·¤¿³ÑÅÙ(TachoCount)¤òÍøÍÑ

Î㤨¤Ð¡¢º¸Àû²ó¤·¤¿»þ(¸÷¥»¥ó¥µÃÍ < THRESHOLD - 15)¤Î¥¿¥¤¥ä¤Î²óž¿ô¤¬target¤òĶ¤¨¤¿¤È¤­¡¢¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò½ªÎ»¤¹¤ë

2.¡Ö¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò½ªÎ»¤¹¤ë»þ´Ö¡×¤òÀßÄê¤Ç¤­¤ë

¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò³¤±¤ë»þ´Ö¤ò¡¢°ú¿ôtime¤ÇÍ¿¤¨¤é¤ì¤ë¡£1¤ÎÊýË¡¤¬¼ºÇÔ¤·¤¿¤È¤­¤ÎÊݸ±¤Ç»È¤¨¤ë¡£
 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);	
 }	  
 
**¥á¥¤¥ó´Ø¿ô [#z16c056e]
/*--------(1)----------*/
#ref(2015b/Member/rmsun/Mission3/¥í¥Ü¥³¥ó1.gif,480*332)
/*--------(2)---------*/
#ref(2015b/Member/rmsun/Mission3/2015b-missiona.jpg,480*332)
/*--------(3)---------*/

 task main() {
 /*----------(1)--------------*/
 	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);
 	}
 	
 /*------------(2)------------*/
 	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);  //¥Ü¡¼¥ë¤òÎ¥¤¹
 	}
 /*-----(3)--------*/
 	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);  //¥Ü¡¼¥ë¤òÎ¥¤¹
 	}
 
 				
 }


¥È¥Ã¥×   ¿·µ¬ °ìÍ÷ ¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS