[[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()
¥â¡¼¥¿B¤Ï±¦¤Î¥¿¥¤¥ä¤Ë¡¢¥â¡¼¥¿C¤Ïº¸¤Î¥¿¥¤¥ä¤Ë¼è¤êÉÕ¤±¤¿¡£
*¥×¥í¥°¥é¥à [#o7491a14]
**ÄêµÁ¡¢¥µ¥Ö¥ë¡¼¥Á¥ó [#fc43c816]
***¥Þ¥¯¥í [#ed90eab8]
 #define THRESHOLD 50		//ïçÃÍ
 #define STEP 1		//Wait¤Î°ú¿ô¤È¤·¤Æ»È¤¦
***°ú¿ô¤òÊÑ¿ô¤ËÂåÆþ¤¹¤ë¡Öscan_move¡×¡Öscan_angle¡× [#cfa984f0]
¡¦scan_move¤Ç»È¤¦¤¿¤á¤ÎÊÑ¿ô

ÊÑ¿ôtarget...¸òº¹ÅÀ¤«¤É¤¦¤«¤òȽÊ̤¹¤ë¤¿¤á¤Î¿ôÃÍ
ÊÑ¿ôspeed3...¥í¥Ü¥Ã¥È¤¬Ä¾¿Ê¤¹¤ë¤È¤­¤Î¡¢¥â¡¼¥¿¤Î¥Ñ¥ï¡¼
 int target;	//¸òº¹ÅÀ¤«¤É¤¦¤«¤òȽÃǤ¹¤ë¤È¤­¡¢´ð½à¤È¤¹¤ë¿ôÃÍ
 int speed3;	//ľ¿Ê¤¹¤ë¤È¤­¤Î¡¢¥â¡¼¥¿¤Î¥Ñ¥ï¡¼¤Ë»ÈÍÑ
¡¦°ú¿ô¤Ç¤È¤Ã¤¿Ãͤò¡¢target, speed3¤ËÂåÆþ¤¹¤ë¡Öscan_move¡× 
 sub scan_move(int aim, int power) {	//°ú¿ô¤Ë¤È¤Ã¤¿Ãͤò¡¢target, speed3¤ËÂåÆþ¤¹¤ë
 	target = aim;					//°ú¿ôaim¤ò¡¢target¤ËÂåÆþ
 	speed3 = power;				//°ú¿ôpower¤ò¡¢speed3¤ËÂåÆþ
 }
¡¦scan_angle¤Ç»È¤¦¤¿¤á¤ÎÊÑ¿ô

¼¡¤Î£³¤Ä¤ÎÊÑ¿ô¤Ï¡¢¸òº¹ÅÀ¤Ë¤Ö¤Ä¤«¤Ã¤¿¸å¡¢¤É¤ó¤ÊÆ°ºî¤ò¤¹¤ë¤Î¤«¤ò·è¤á¤ë¡£
 int R_ang;	//¸òº¹ÅÀ¤Ç±¦Àû²ó¤¹¤ë¤È¤­¤Î¡¢¥â¡¼¥¿¤Î²óž³Ñ
 int L_ang;	//¸òº¹ÅÀ¤Çº¸Àû²ó¤¹¤ë¤È¤­¤Î¡¢¥â¡¼¥¿¤Î²óž³Ñ
 int GO_ang;	//¸òº¹ÅÀ¤Çľ¿Ê¤¹¤ë¤È¤­¤Î¡¢¥â¡¼¥¿¤Î²óž³Ñ
¡¦°ú¿ô¤Ç¤È¤Ã¤¿Ãͤò¡¢L_ang, GO_ang, R_ang¤ËÂåÆþ¤¹¤ë¡Öscan_angle¡×
 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¡×
 sub turn_left(int speedA, int speedB) {	//º¸¤Ë¶Ê¤¬¤ë
 	OnFwd(OUT_B,speedA); 			//°ú¿ôspeedA¤Î¥Ñ¥ï¡¼¤Ç¡¢¥â¡¼¥¿B¤òÁ°Å¾
 	OnRev(OUT_C,speedB);				//°ú¿ôspeedB¤Î¥Ñ¥ï¡¼¤Ç¡¢¥â¡¼¥¿C¤ò¸åž
 }
¡¦¥â¡¼¥¿¤Î¥Ñ¥ï¡¼¤ò°ú¿ô¤Ë¤È¤Ã¤Æ¡¢±¦Àû²ó¤¹¤ë¡Öturn_right¡×
 sub turn_right(int speedA, int speedB) {	//±¦¤Ë¶Ê¤¬¤ë
 	OnFwd(OUT_C,speedB); 			//°ú¿ôspeedB¤Î¥Ñ¥ï¡¼¤Ç¡¢¥â¡¼¥¿C¤òÁ°Å¾
 	OnRev(OUT_B,speedA);				//°ú¿ôspeedA¤Î¥Ñ¥ï¡¼¤Ç¡¢¥â¡¼¥¿B¤ò¸åž
 }
¡¦¥â¡¼¥¿¤Î¥Ñ¥ï¡¼¤ò°ú¿ô¤Ë¤È¤Ã¤Æ¡¢Ä¾¿Ê¤¹¤ë¡Ögo_forward¡×
 sub go_forward(int speed3) {		//¤Þ¤Ã¤¹¤°¿Ê¤à
 	OnFwd(OUT_BC,speed3);			//speed3¤Î¥Ñ¥ï¡¼¤Ç¡¢¥â¡¼¥¿BC¤òÁ°Å¾
 }
***¸òº¹ÅÀ¤Ë¤Ö¤Ä¤«¤Ã¤¿¤È¤­¤ÎÆ°ºî¡Öcross_action¡× [#x441724f]
¸òº¹ÅÀ¤Ë¤Ö¤Ä¤«¤Ã¤¿ºÝ¡¢¤½¤Î¸òº¹ÅÀ¤òľ¿Ê¤¹¤ë 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¤Î³ÑÅÙʬ¡¢Ä¾¿Ê
 }
**¥á¥¤¥ó´Ø¿ô¤Ç»È¤¦ÊÑ¿ô [#pc00e5c2]
**¸òº¹ÅÀ¤´¤È¤ËÆ°ºî¤òÊѤ¨¤ë [#p37e981a]
¤³¤³¤Ç¤ÎÁàºî¤Ï¡¢¡Ö¸òº¹ÅÀ¤ÎȽÊ̡פä¡Ö¸òº¹ÅÀ¤Ë¤Ö¤Ä¤«¤Ã¤¿ºÝ¤ÎÆ°ºî¡×¤Ë±Æ¶Á¤òµÚ¤Ü¤¹

count¤ÎÃͤ«¤é¡¢º£²¿¸ÄÌܤθòº¹ÅÀ¤Ë¤¤¤ë¤Î¤«¤òȽÃÇ
count¤¬0¤Î¤È¤­¤Ï¡¢¡Ö1¸ÄÌܤθòº¹ÅÀ¤Þ¤Ç¤Î¡¢¥í¥Ü¥Ã¥È¤Î¥¹¥Ô¡¼¥É¡×¤È¡¢¡Ö1¸ÄÌܤθòº¹ÅÀ¤ÎȽÊÌ´ð½à¡×¡¢¡Ö1¸ÄÌܤθòº¹ÅÀ¤Ë¤Ö¤Ä¤«¤Ã¤¿¤È¤­¤ÎÆ°ºî¡×¤òÀßÄꤹ¤ë

count¤¬n(À°¿ô)¤Î¤È¤­¤Ï¡¢¡Ön + 1¸ÄÌܤθòº¹ÅÀ¤Þ¤Ç¤Î¡¢¥í¥Ü¥Ã¥È¤Î¥¹¥Ô¡¼¥É¡×¤È¡¢¡Ön + 1¸ÄÌܤθòº¹ÅÀ¤ÎȽÊÌ´ð½à¡×¡¢¡Ön + 1¸ÄÌܤθòº¹ÅÀ¤Ë¤Ö¤Ä¤«¤Ã¤¿¤È¤­¤ÎÆ°ºî¡×¤òÀßÄꤹ¤ë

**¥é¥¤¥ó¥È¥ì¡¼¥¹¼Â¹Ô [#kd2fed47]
***¹õ¤¤Àþ¤Ë±è¤Ã¤ÆÆ°¤¯¤¿¤á¤Î¥×¥í¥°¥é¥à [#w024bec7]
***¸òº¹ÅÀ¤ÎȽÊÌ [#k2345a37]
tacho¤Ï¡¢¡Ö¥â¡¼¥¿B¤¬²óž¤·¤¿³ÑÅ١פòÃßÀѤ¹¤ë¤¿¤á¤ÎÊÑ¿ô¡£tacho¤Ë¤Ä¤¤¤Æ

­¡¡ÖSENSOR_2 < THRESHOLD(ïçÃÍ) - 15¡×°Ê³°¤Î¤È¤­¡¢tacho¤ò0¤Ë¤¹¤ë¡£

­¢¡ÖSENSOR_2 < THRESHOLD(ïçÃÍ) - 15¡×°Ê³°¤Î¤È¤­¡¢TachoCountB(¥â¡¼¥¿B¤¬²óž¤·¤¿³ÑÅÙ)¤ò0¤Ë¥ê¥»¥Ã¥È¤¹¤ë

­£tacho = ¤Ï¡¢¡Ö¥â¡¼¥¿B¤¬²óž¤·¤¿³ÑÅ١פòtacho¤ËÂåÆþ¤·¤Æ¤¤¤ë¤³¤È¤òɽ¤·¤Æ¤¤¤ë

¤Î­¡,­¢,­£¤¬À®¤êΩ¤Ä

­¢¡¢­£¤è¤ê¡¢tacho¤Ë0°Ê³°¤ÎÃͤ¬ÂåÆþ¤µ¤ì¤ë¤Î¤Ï¡¢¡ÖSENSOR_2 < THRESHOLD - 15¡×¤òËþ¤¿¤¹¤È¤­(¥í¥Ü¥Ã¥È¤¬¤½¤Î¾ì¤Çº¸Àû²ó¤¹¤ë¤È¤­)¤À¤±¤Ç¤¢¤ë

­¡¤è¤ê¡¢°ìÅ٤Ǥâ¡ÖSENSOR_2 < THRESHOLD - 15¡×¤òËþ¤¿¤µ¤Ê¤«¤Ã¤¿¤é¡¢tacho¤Ï0¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë¡£

¤Ä¤Þ¤ê¡¢tacho > target¤È¤Ê¤ë¤Î¤Ï¡¢Ï¢Â³Åª¤Ë¡ÖSENSOR_2 < THRESHOLD - 15¡×¤òËþ¤¿¤·Â³¤±¤Æ¤¤¤ë(¤½¤Î¾ìº¸Àû²ó¤¬¡¢Ï¢Â³¤·¤Æµ¯¤³¤Ã¤Æ¤¤¤ë)¤È¤­¤À¤±

**¸òº¹ÅÀ¤Ë¤Ö¤Ä¤«¤Ã¤¿ºÝ¤ÎÆ°ºî [#iaee8719]
¡Ö¸òº¹ÅÀ¤´¤È¤ÎÆ°ºî¤òÊѤ¨¤ë¡×

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