2015b/Member/A.T.9/Mission3
¤ò¥Æ¥ó¥×¥ì¡¼¥È¤Ë¤·¤ÆºîÀ®
[
¥È¥Ã¥×
] [
¿·µ¬
|
°ìÍ÷
|
¸¡º÷
|
ºÇ½ª¹¹¿·
|
¥Ø¥ë¥×
|
¥í¥°¥¤¥ó
]
³«»Ï¹Ô:
[[2015b/MemberOnly]]
Ìܼ¡
#contents
*¤Ï¤¸¤á¤Ë [#g8e6b645]
º£²ó¤Î²ÝÂê¤Î¥Æ¡¼¥Þ¤Ï¡¢¡Ö¥Ü¡¼¥ë¤òÎ¥¤ì¤¿¾ì½ê¤«¤é´Ì¤ËÅö¤Æ¡¢¥Ü¡¼¥ë¤ò²ó¼ý¤¹¤ë¡×¤Ç¤¢¤ë¡£»Í¿ÍÆóÁȤËʬ¤«¤ì¡¢¥Ü¡¼¥ë¤òÅꤲ¤ë¥í¥Ü¥Ã¥È¤È¥Ü¡¼¥ë¤ò²ó¼ý¤¹¤ë¥í¥Ü¥Ã¥È¤òºî¤ë¡£»ä¤Ï¡¢¥Ü¡¼¥ë¤ò´Ì¤Ë¤¢¤Æ¤ë¥í¥Ü¥Ã¥È¤òºîÀ®¤·¤¿¡£
*²ÝÂê¤È¥ë¡¼¥ë [#rf59c445]
²ÝÂê¡§ÅÀP¡¢Q¤Î¥Ü¡¼¥ë¤ò¥»¥ó¥¿¡¼¥é¥¤¥ó¤ò±Û¤¨¤º¤Ë´Ì¤ËÅö¤Æ¤ë¡£´Ì¤ËÅö¤¿¤Ã¤¿¥Ü¡¼¥ë¤ò²ó¼ý¤¹¤ë¡£
&ref(2015b/Member/A.T.9/Mission3/2015b-mission3.png);
¥ë¡¼¥ë
+¶¥µ»»þ´Ö¤Ï¥í¥Ü¥Ã¥ÈA¤¬START AÃÏÅÀ¤Î¥¹¥¿¡¼¥È¥é¥¤¥ó¤ò²£Àڤäơ¢¥í¥Ü¥Ã¥ÈB¤¬GOAL BÃÏÅÀ¤Î¥´¡¼¥ë¥é¥¤¥ó¤Ë㤹¤ë¤Þ¤Ç¡¢¤¢¤ë¤¤¤Ï¿³È½¤¬Â³¹ÔÉÔǽ¤ÈȽÃǤ¹¤ë¤Þ¤Ç¡£
+¥í¥Ü¥Ã¥ÈA¤ÏSTART AÃÏÅÀ¤«¤é½Ðȯ¤·¡¢PÃÏÅÀ¤Ë¤ª¤«¤ì¤¿ÀÖ¤¤¥Ü¡¼¥ë¤ò½¦¤Ã¤Æ350ml¤Î¥¢¥ë¥ß´Ì¤ËÅö¤Æ¤ë¡£¤½¤Î¸å¡¢¥í¥Ü¥Ã¥ÈB¤¬¥Ü¡¼¥ë¤ò²ó¼ý¤¹¤ë¡£°ú¤Â³¤ÀĤ¤¥Ü¡¼¥ë¤Ë¤Ä¤¤¤Æ¤âƱÍÍ¤ÎÆ°ºî¤ò·«¤êÊÖ¤¹¡£¥í¥Ü¥Ã¥ÈB¤Ï¥Ü¡¼¥ë¤ò²ó¼ý¤·¤¿¸å¡¢ºÇ½ªÅª¤ËGOAL B¤Þ¤Ç¥Ü¡¼¥ë¤ò±¿¤Ö¡£
+¥¢¥ë¥ß´Ì¤ÏÃæ¿È¤¬Æþ¤Ã¤Æ¤¤¤ë¤â¤Î¤ò»È¤¦
+¥Ü¡¼¥ë¤¬¥¢¥ë¥ß´Ì¤ËÅö¤¿¤ëÁ°¤Ë¥í¥Ü¥Ã¥ÈB¤¬¥Ü¡¼¥ë¤Ë¿¨¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤¡£
+¥í¥Ü¥Ã¥ÈA¤Ï¥»¥ó¥¿¡¼¥é¥¤¥ó¤òͤ¨¤Æ¤Ï¹Ô¤±¤Ê¤¤¡£
+¥¢¥ë¥ß´Ì¤ò5cm°Ê¾åư¤«¤·¤¿¾ì¹ç¤Ï¸ºÅÀ
*Åꤲ¤ÆÂ¦¥í¥Ü¥Ã¥È¤ÎÀâÌÀ [#ja7635eb]
¤³¤ì¤¬À½ºî¤·¤¿¥í¥Ü¥Ã¥È¤Ç¤¢¤ë¡£
&ref(2015b/Member/A.T.9/Mission3/IMG_2697.jpg);
**¥í¥Ü¥Ã¥È¤ÎÁ´ÂÎ¤ÎÆ°ºî¡¦Ìò³ä [#p673daa4]
Ͳ»ÇÈ¥»¥ó¥µ¡¼
¥Ü¡¼¥ë¤È´Ì¤Î°ÌÃÖ¤ò¸¡ÃΤ¹¤ë¤Î¤Ë»ÈÍѤ¹¤ë¡£º£²ó¤Î²ÝÂê¤ò¥¯¥ê¥¢¤¹¤ë¤¿¤á¤Ë°ìÈÖÂçÀڤʤâ¤Î¤Ç¤¢¤ë¡£
Áܺ÷¤·¤¿¤¤ÈϰϤò·è¤á¡¢¤½¤ÎÁܺ÷¤·¤¿ÈÏ°ÏÆâ¤Ç£±Èֶᤤ¾ã³²Êª¤Ë¥í¥Ü¥Ã¥È¤ò¸þ¤«¤»¤ë¡£¤·¤«¤·¡¢°ì¤ÄÃí°ÕÅÀ¤¬¤¢¤ê¡¢Ä¶²»ÇÈ¥»¥ó¥µ¡¼¤Ï¥í¥Ü¥Ã¥È¤ÎÃæ¿´¤Ç¤Ï¤Ê¤¯±¦Â¦¤Ë¤Ä¤¤¤Æ¤ë¡£¤½¤Î¤¿¤á¡¢¥Ü¡¼¥ë¤ò½¦¤¦¤¿¤á¤Ë¤Ï¾¯¤·±¦Àû²ó¤ò¤·¤Æ¡¢¥Ü¡¼¥ë¡¦´Ì¤¬¥í¥Ü¥Ã¥È¤ÎÃæ¿´¤Ë¸þ¤¯¤è¤¦¤Ë¤¹¤ëɬÍפ¬¤¢¤ë¡£
&ref(2015b/Member/A.T.9/Mission3/IMG_2702-1.jpg);
¥Ü¡¼¥ë¤ò¤Ä¤«¤à¡¢Åꤲ¤ëưºî
¥Ü¡¼¥ë¤Î°ÌÃÖ¤ò¸¡ÃΤ·¶á¤Å¤¤¤¿¸å¡¢¥Ü¡¼¥ë¤ò¤Ä¤«¤à¡¢¤½¤·¤Æ¡¢´Ì¤ÎÊý¸þ¤ØÅꤲ¤ë¡£¤³¤Îưºî¤ò¤¹¤ë¤Î¤¬²¼¤ÎÉôʬ¤Ç¤¢¤ë¡£¥ª¥ì¥ó¥¸¿§¤ÎÌð°õÊý¸þ¤Ë²ó¤¹¤È¥Ü¡¼¥ë¤ò¤Ä¤«¤ß¡¢ÀĤ¤Ìð°õ¤ÎÊý¸þ¤Ë²ó¤¹¤È¥Ü¡¼¥ë¤òÅꤲ¤ë¡£±¦¤Î¼Ì¿¿¤Ï¼ÂºÝ¤Ë¤Ä¤«¤ó¤Ç¤¤¤ë»þ¤Ç¤¢¤ë¡£
&ref(2015b/Member/A.T.9/Mission3/IMG_2699-1.jpg);
&ref(2015b/Member/A.T.9/Mission3/IMG_2700-1.jpg);
¸÷¥»¥ó¥µ¡¼
Æó¤ÄÌܤΥܡ¼¥ë¤ò¸«¤Ä¤±¤ëºÝ¤Ë¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤¹¤ë¤¿¤á»ÈÍѤ¹¤ë¡£
&ref(2015b/Member/A.T.9/Mission3/IMG_2696-1.jpg);
**¼õ¤±¼ê¦¤Î¥í¥Ü¥Ã¥È [#b81046fe]
°Ê²¼¤Î¥í¥Ü¥Ã¥È¤¬ÁêÊý¤Î¥Á¡¼¥à¤¬ºîÀ®¤·¤¿¡¢¥Ü¡¼¥ë¤ò¼õ¤±¼è¤ë¦¤Î¥í¥Ü¥Ã¥È¤Ç¤¢¤ë¡£¤³¤³¤Ç¤Ï¡¢¥Ü¡¼¥ë¤ò¼è¤ë»þ¤Îưºî¤À¤±´Êñ¤ËÀâÌÀ¤¹¤ë¡£
&ref(2015b/Member/A.T.9/Mission3/IMG_2704-1.jpg);
ÀĤ¤¤Þ¤ë¤Ç°Ï¤Þ¤ì¤¿¤Î¤¬Ä¶²»ÇÈ¥»¥ó¥µ¡¼¤Ç¤¢¤ê¡¢¥Ü¡¼¥ë¤¬Ä̲ᤷ¤¿¤é¡¢ÀִݤǰϤޤ줿ÏȤǤȤ館¤ë¤È¤¤¤¦¤â¤Î¤Ç¤¢¤ë¡£Ï¢·È¤Îưºî¤Ï¥Ö¥ë¡¼¥È¥¥¡¼¥¹¤ÇƱ´ü¤µ¤»¤Æ¤¢¤ë¤¿¤á¡¢»þ´Ö¤ÎÀ©¸æ¤Ç¹Ô¤¦¤è¤êÀµ³ÎÀ¤¬¤¢¤ë¡£
*¥×¥í¥°¥é¥à¤ÎÀâÌÀ [#vc213b68]
#define SPEED 50¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¡¡Â®ÅÙ¡¡Â®£µ£°¤ÎÄêµÁ
#define SPEED_SLOW 30 //¡¡Â®ÅÙ¡¡ÃÙ£³£°¤ÎÄêµÁ
const float diameter = 5.45;¡¡¡¡//¡¡¥¿¥¤¥ä¤Îľ·Â¡ÊÑ¡Ë
const float track = 10.35; //¡¡¥¿¥¤¥ä¤Î¥È¥ì¥Ã¥ÉÉý¡ÊÑ¡Ë
const float pi = 3.1415; //¡¡±ß¼þΨ
void fwdDist (float d){ // d¥»¥ó¥ÁÁ°¿Ê
long angle;
angle = d / (diameter * pi) * 360.0;
RotateMotorEx(OUT_AC,SPEED_SLOW,angle,0,true,true);
}
void turnAng(long ang){ // ³ÑÅÙangÅ٤λþ·×²ó¤ê¤ÎÀû²ó
long angle ;
angle = track/diameter*ang;
RotateMotorEx(OUT_AC,SPEED_SLOW,angle,100,true,true);
}
°Ê²¼¤Î¥×¥í¥°¥é¥à¤¬¥Ü¡¼¥ë¤òõ¤¹¤â¤Î¤Ç¤¢¤ë¡£º£²ó¤Î²ÝÂê¤Ç°ìÈÖÂçÀڤʤȤ³¤í¤Ç¤¢¤ë¡£
¡ã°ìÈֶᤤ¾ã³²Êª¤Îõ¤·Êý¡ä
int searchDirection(long ang){ // ¥Ü¡¼¥ë¤òõ¤·¤Æ¤½¤ÎÊý¸þ¤ò¸þ¤¡¢¥Ü¡¼¥ë¤Þ¤Ç¤Îµ÷Î¥¤òÊÖ¤¹
long angle, tacho_min;
int d_min;
d_min = 300; //¡¡¡¡¡¡¡¡²¾¤ÎºÇ¾®ÃÍ
tacho_min = 0;
¤Þ¤º¡¢³ÑÅÙ¤ò»ØÄꤷ¤½¤Î³ÑÅÙ¤ÎȾʬ¤ò»þ·×²ó¤ê¤ËÀû²ó¤¹¤ë¡£
angle = (track / diameter) * ang; //¡¡¡¡¡¡¡¡³ÑÅÙ¤«¤é¥¿¥¤¥ä¤Î²óž¤ò·×»»
turnAng(ang / 2); //¡¡¡¡¡¡¡¡»ØÄꤵ¤ì¤¿³ÑÅÙ¤ÎȾʬ¤òÀû²ó
ResetTachoCount(OUT_A); //¡¡¡¡¡¡¡¡³ÑÅٷ׬¤ò¥ê¥»¥Ã¥È
¤½¤Î¸å¡¢»ØÄꤷ¤¿³ÑÅÙʬȿ»þ·×²ó¤ê¤ËÀû²ó¤¹¤ë¡£Àû²ó¤·¤Æ¤¤¤ë»þ¤ËͲ»ÇÈ¥»¥ó¥µ¡¼¤òºîư¤µ¤»¡¢¸¡ÃΤ·¤¿°ìÈÖ¾®¤µ¤¤Ãͤòd_min¤ËÂåÆþ¤¹¤ë¡£°ìÈÖ¾®¤µ¤¤ÃÍ¡¢¤¹¤Ê¤ï¤Á¤½¤ì¤¬¡¢°ìÈֶᤤ¾ã³²Êª¤Ç¤¢¤ë¡£
OnFwdSync(OUT_AC,SPEED_SLOW,-100); //¡¡¡¡¡¡¡¡È¿»þ·×²ó¤ê¤ËÀû²ó
while(MotorTachoCount(OUT_A) <= angle){
if(SensorUS(S3) < d_min){
d_min = SensorUS(S3);¡¡ // ²¾¤ÎºÇ¾®Ãͤò¹¹¿·
tacho_min = MotorTachoCount(OUT_A);
}
}
»ØÄꤷ¤¿³ÑÅÙ¤òÀû²ó¤·¤¿¤Î¤Á¡¢¡Éd_min¤ËÂåÆþ¤µ¤ì¤¿¾ì½ê=¾ã³²Êª¤Î¾ì½ê¡É¤Ë¤à¤«¤»¤ë¤¿¤á»þ·×²ó¤ê¤ËÀû²ó¤µ¤»¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢¥í¥Ü¥Ã¥È¤Ï¥Ü¡¼¥ë¤ÎÊý¸þ¤ò¸þ¤¤¤¿¤³¤È¤Ë¤Ê¤ë¡£
OnFwdSyncEx(OUT_AC,SPEED_SLOW,100,RESET_NONE);
until(MotorTachoCount(OUT_A) <= tacho_min || SensorUS(S3) <= d_min);
Wait(15); //ÈùÄ´À°
Off(OUT_AC);
Wait(500);
return d_min;
}
void searchDirection2(long ang){ // ´Ì¤òõ¤·¤Æ¤½¤ÎÊý¸þ¤ò¸þ¤¯(°Ê²¼¡¡void search Direction(long ang)¡¡¤ÈÀâÌÀƱ¤¸)
long angle, tacho_min;¡¡¡¡¡¡¡¡
int d_min;
d_min = 300;
tacho_min = 0;
angle = (track / diameter) * ang;
turnAng(ang/2);
ResetTachoCount(OUT_C);
OnFwdSync(OUT_AC,SPEED_SLOW,-100);
while(MotorTachoCount(OUT_C) >= angle*-1){
if(SensorUS(S3) < d_min){
d_min = SensorUS(S3);
tacho_min = MotorTachoCount(OUT_C);
}
}
OnFwdSyncEx(OUT_AC,SPEED_SLOW,100,RESET_NONE);
until(MotorTachoCount(OUT_C) >= tacho_min || SensorUS(S3) <= d_min);
Wait(15);
Off(OUT_AC);
Wait(500);
}
void line () { // ¥é¥¤¥ó¥È¥ì¡¼¥¹¤Î¥×¥í¥°¥é¥à
float d;
int S = 0; //¡¡¡¡¡¡¸òº¹ÅÀ¤Î²ó¿ô¤ò·×¤ë¤¿¤á¤ÎÈ¢
SetSensorLight(S2);
long t_L = CurrentTick();
while(S<3){
while(CurrentTick() - t_L <= 170) { //±¦Àû²ó¤Î»þ´Ö¤¬£°¡¥£±£·°Ê²¼¤Î»þ¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò·«¤êÊÖ¤¹¡£
//£°¡¥£±£·Éäòͤ¨¤¿¾ì¹ç¸òº¹ÅÀ¤ÈȽÃǤ·¡¢¥ë¡¼¥×¤«¤éæ½Ð¤¹¤ë¡£
if (SENSOR_2 < 30) {
OnFwd(OUT_C,30);
OnRev(OUT_A,25);
} else if (SENSOR_2 < 38) {
OnFwd(OUT_C,30);
Off(OUT_A);
} else if (SENSOR_2 < 52) {
OnFwd(OUT_AC,30);
t_L = CurrentTick();
} else if (SENSOR_2 < 60) {
OnFwd(OUT_A,30);
Off(OUT_C);
t_L = CurrentTick();
} else {
OnFwd(OUT_A,30);
OnRev(OUT_C,25);
t_L = CurrentTick();
}
Wait(1);
}
S++;
if(S==1){ // ¸òº¹ÅÀ£±²óÌÜ¡ÊÅÀ£Ð¡Ë¤òº¸ÀÞ
Off(OUT_AC); // £ÑÅÀ¤Î¥Ü¡¼¥ë¤òÁÀ¤¦
Wait(1000);
RotateMotor(OUT_A,SPEED,210);
OnFwdSync(OUT_AC,SPEED_SLOW,0);
Wait(1000);
d = searchDirection(120); // QÅÀ£²¤ÄÌܤΥܡ¼¥ë¤òÁÀ¤¦
fwdDist(d - 8.0); // £¸£ã£í¼êÁ°¤Ç»ß¤Þ¤ë
RotateMotor(OUT_C,SPEED_SLOW,150); // ½¦¤¦Á°ÈùÄ´À°()
RotateMotor(OUT_B,33,80); // ¥¢¡¼¥à¤ò¾¯¤·ÊĤ¸¤ë
OnFwdSync(OUT_AC,SPEED,0); // ¥Ü¡¼¥ë½¦¤¤
Wait(450);
RotateMotor(OUT_B,33,80);
Off(OUT_AC);
t_L = CurrentTick();
} else if(S==2){ // ¸òº¹ÅÀ£²²óÌܤǥ饤¥ó¥È¥ì¡¼¥¹¤Î½èÍý¤ò½ªÎ»¤µ¤»¤ë
break;
}
}
}
task main(){
SetSensorLowspeed(S3); ¡¡// Ͳ»ÇÈ¥»¥ó¥µ¡¼¡Ê¥Ý¡¼¥È£³¡Ë
SetSensorLight(S2); // ¸÷¥»¥ó¥µ¡¼¡Ê¥Ý¡¼¥È£²¡Ë¡¡¡¡
int mail = 0;
int d = searchDirection(120); ¡¡¡¡// ¥Ü¡¼¥ëõ¤·
fwdDist(d - 8.0);
RotateMotor(OUT_C,SPEED_SLOW,125); // ½¦¤¦Á°ÈùÄ´À°
OnFwdSync(OUT_AC,SPEED,0); // ¥Ü¡¼¥ë½¦¤¤
Wait(450);
RotateMotor(OUT_B,33,80); // ¥Ü¡¼¥ë¤Ä¤«¤à
Off(OUT_AC);
fwdDist(-5); //¤Ä¤«¤ó¤À¸å£µ£ã£í¸å¤í¤Ø¿Ê¤à
RotateMotor(OUT_C,SPEED_SLOW,-300); // ´ÌÉÕ¶á¤Ë°Üư¡Ê£³£°£°ÅÙº¸Àû²ó¤·£±¡¥£¸ÉÃÁ°¿Ê¡Ë
OnFwdSync(OUT_AC,SPEED,0);
Wait(1800);
searchDirection2(90); // ³ÑÅÙ¹ç¤ï¤»
RotateMotor(OUT_C,SPEED_SLOW,90); // ȯ¼ÍÁ°ÈùÄ´À°¡ÊͲ»ÇÈ¥»¥ó¥µ¡¼¤¬Ãæ¿´¤Ç¤Ê¤¯±¦¤Ë¤Ä¤¤¤Æ¤¤¤ë¤¿¤á¡Ë
¥Ö¥ë¡¼¥È¥¥¡¼¥¹¤Ç¼õ¤±¼è¤ê¦¥í¥Ü¥Ã¥È¤Ë¥á¥Ã¥»¡¼¥¸¤òÁ÷¤ë¡£¡Ê¾Ü¤·¤¤ÀâÌÀ¤Ï¡É¥Ö¥ë¡¼¥È¥¥¡¼¥¹¤ÎÀâÌÀ¡É¤Ç¤¹¤ë¡Ë
SendRemoteNumber(1,MAILBOX1,10); // ¥¥ã¥Ã¥Á¦¤ò°Üư¤µ¤»¤ë
while(mail != 20){ // ¥¥ã¥Ã¥Á½àÈ÷´°Î»ÂÔ¤Á
Off(OUT_ABC);
Wait(1);
ReceiveRemoteNumber(MAILBOX1,false,mail);
}
OnFwd(OUT_B,-70); // ¥Ü¡¼¥ëȯ¼Í
Wait(800);
Off(OUT_B);
turnAng(210); // 210ÅÙÀû²ó¤·¥é¥¤¥ó¥È¥ì¡¼¥¹½àÈ÷¤Î¤¿¤á¤Î°Üư
OnFwd(OUT_AC,1);
Wait(1);
OnFwd(OUT_A,SPEED_SLOW);
OnFwd(OUT_C,SPEED_SLOW - 3);
until(SENSOR_2 < 40);
Off(OUT_A);
line(); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // ¥é¥¤¥ó¥È¥ì¡¼¥¹
Off(OUT_ABC);
}
**¥Ö¥ë¡¼¥È¥¥¡¼¥¹¤ÎÀâÌÀ [#n7f13714]
¾åµ¡¡task main ()¤ÎÃæ¤«¤é¥Ö¥ë¡¼¥È¥¥¡¼¥¹¤Î¥×¥í¥°¥é¥à¤ÎÉôʬ¤Î¤ßÈ´¿è
Åꤲ¤ÆÂ¦¤¬¿Æ¡¢¼õ¤±¼è¤ê¦¤¬»Ò¤È¤Ê¤ê¡¢¿Æ¤¬¥Ü¡¼¥ë¤òȯ¼Í¤¹¤ë¤Þ¤Ç¤ÎÍѰդ¬½ª¤ï¤Ã¤¿¤Î¤Á¤Ë¼õ¤±¼è¤ê¦¤Î¥í¥Ü¥Ã¥È¤¬¼õ¤±¼è¤ëÂÎÀ©¤ËÆþ¤ë¤è¤¦¤Ë¤·¤¿¡£¤³¤ì¤ò¤¹¤ë¤³¤È¤Ç¡¢Åꤲ¤ë¦¤Î¥í¥Ü¥Ã¥È¤¬¾ã³²Êª¤Î´Ì¤ò¸¡ÃΤ¹¤ëºÝ¤Ë´Ö°ã¤Ã¤Æ¼õ¤±¼è¤ë¦¤Î¥í¥Ü¥Ã¥È¤ò¸¡ÃΤ·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ç¤¢¤ë¡£¡ÊƱ»þ¤Ë¥¹¥¿¡¼¥È¤µ¤»¤Æ¤·¤Þ¤¦¤È¼õ¤±¼è¤ê¦¤Î¥í¥Ü¥Ã¥È¤¬¶á¤¯¤ËÍè¤Æ¤·¤Þ¤¤´Ö°ã¤Ã¤Æ¾ã³²Êª¤È¤·¤ÆÇ§ÃΤ·¤Æ¤·¤Þ¤¦¶²¤ì¤¬¤¢¤ë¡Ë
°Ê²¼¤Ï¡¢¥×¥í¥°¥é¥àÆâÍÆ
¼õ¤±¼è¤ê¦¤Ë¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®¤·¡¢Åꤲ¤ÆÂ¦¤Ï¤½¤Î¾ì¤ÇÂÔµ¡¤¹¤ë¡£¤³¤ÎÂÔµ¡¤·¤Æ¤¤¤ë»þ¤Ë¼õ¤±¼è¤ê¦¥í¥Ü¥Ã¥È¤¬¡¢´Ì¤Ë¶á¤Å¤¼õ¤±¼è¤ëÂÎÀ©¤ËÆþ¤ë¡£
SendRemoteNumber(1,MAILBOX1,10); // ¥¥ã¥Ã¥Á¦¤ò°Üư¤µ¤»¤ë
while(mail != 20){ // ¥¥ã¥Ã¥Á½àÈ÷´°Î»ÂÔ¤Á
Off(OUT_ABC);
Wait(1);
¤³¤³¤Ç¡¢¼õ¤±¼è¤ë½àÈ÷¤¬½ÐÍ輡Âè¡¢Åꤲ¤ÆÂ¦¤Ë°Ê²¼¤Î¥á¥Ã¥»¡¼¥¸¤¬Á÷¤é¤ì¤Æ¤¯¤ë¡£¡¡¡¡
ReceiveRemoteNumber(MAILBOX1,false,mail);
¤³¤ì¤ò¼õ¤±¼è¤ê¼¡Âè¡¢Åꤲ¤ÆÂ¦¤Ï´Ì¤Ë¸þ¤«¤Ã¤Æ¥Ü¡¼¥ë¤òÅꤲ¤ë¡£
*¹©É×ÅÀ [#m06927d2]
1.Åꤲ¤ëưºî
¥Ü¡¼¥ë¤òÅꤲ¤ë¦¤Î¥í¥Ü¥Ã¥È¤Ï¥Ü¡¼¥ë¤ò¡É³Î¼Â¤Ë¡É¤Ä¤«¤ß¡¦±ó¤¯¤Î´Ì¤ËÅö¤Æ¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£Àµ³Î¤µ¤¬¤È¤Æ¤âÍ׵ᤵ¤ì¤ë¡£¤½¤³¤Ç¡¢³Î¼Â¤Ë¤Ä¤«¤ß¿¿¤Ã¤¹¤°¤Ê¤²¤ë¤¿¤á¤Ë¡¢£²¤ÄÄޤε¡¹½¤Ë¤·¤¿¡££²¤ÄÄޤˤ¹¤ë¤³¤È¤Ç¡¢¥Ü¡¼¥ë¤¬º¸±¦¤Ë¤³¤Ü¤ì¤º¿¿¤Ã¤¹¤°¤Ä¤«¤à¤³¤È¤¬¤Ç¤¡¢¿¿¤Ã¤¹¤°¤Ê¤²¤ë¤³¤È¤¬½ÐÍè¤ë¡£
2.Ͳ»ÇÈ¥»¥ó¥µ¡¼¤ò»ÈÍѤ¹¤ë¤³¤È¡£
»þ´Ö¡¦³ÑÅÙ¤ËÍê¤ê¤¹¤®¤ë¤ÈÈùÄ´À°¤¬Â¿¤¯¤Ê¤Ã¤¿¤ê¡¢ÅÅÃӤξÃÌ×¶ñ¹ç¤Ë¤è¤Ã¤ÆÀµ³Î¤ÎÀºÅÙ¤ò½Ð¤¹¤³¤È¤¬½ÐÍè¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¡£¤½¤³¤Ç¡¢Ä¶²»ÇÈ¥»¥ó¥µ¡¼¤ò»È¤¤ÂоÝʪ¤Þ¤Ç¤Îµ÷Î¥¤ò¬¤ë¤³¤È¤Ç¡¢¥Ü¡¼¥ë¡¦´Ì¤Î°ÌÃÖ¤òÀµ³Î¤ËÃΤ뤳¤È¤¬½ÐÍè¤ë¡£
3.Ʊ´ü¤µ¤»¤ë
¥Ü¡¼¥ë¡¦´Ì¤òõ¤¹ºÝ¡¢¶á¤¯¤Ë¼õ¤±¼è¤ê¦¥í¥Ü¥Ã¥È¤ËÍè¤é¤ì¤Æ¤·¤Þ¤¦¤È´Ö°ã¤Ã¤Æ¤½¤Î¥í¥Ü¥Ã¥È¤ò¸¡ÃΤ·¤Æ¤·¤Þ¤¦¶²¤ì¤¬¤¢¤ë¡£¥Ö¥ë¡¼¥È¥¥¡¼¥¹¤ò»È¤¤¡¢ÊÌ¡¹¤Ëưºî¤ò¤µ¤»¤ë¤³¤È¤Ç¸íǧ¼±¤òËɤ°¤³¤È¤¬½ÐÍè¤ë¡£
¤Þ¤¿¡¢¤Ê¤²¤ë¦¤È¼õ¤±¼è¤ë¦¤Î¥í¥Ü¥Ã¥È¤Îưºî¤ËÀµ³ÎÀ¤¬¤Ç¤ë¡£¡Ê¸Ä¡¹¤Î¥¿¥¤¥Þ¡¼»ØÄê¤ÇÀ©¸æ¤ò¹Ô¤¦¤ÈÅÅÃӤξÃÌײøºÅù¤Ç¡¢Âç¤¤Ê¸íº¹¤¬½ÐÍè¤Æ¤·¤Þ¤¦¡£¡Ë
*²þÁ±ÅÀ [#i302e617]
+¥Ü¡¼¥ë¤Î°ÌÃÖ¤ò¸¡ÃΤǤ¤Ê¤¤¡£
¥Ü¡¼¥ë¤¬¾®¤µ¤¤¤¿¤á¡¢Ãµº÷Ãæ¤ÏÃÙ¤¯Àû²ó¤µ¤»¡¢¤µ¤é¤Ë°ìÈÖŤ¤Ä¾·Â¤ËͲ»ÇÈ¥»¥ó¥µ¡¼¤¬Åö¤¿¤é¤Ê¤¤¤È¸«¤Ä¤±¤ë¤³¤È¤¬½ÐÍè¤Ê¤¤¡£¸¡ÃÎÀºÅÙ¤ò¹â¤á¤ë¼êÃʤȤ·¤Æ¤Ï¡¢¥Ü¡¼¥ë¤Þ¤Ç¤Îµ÷Î¥¤ò½Ì¤á¤ë¡¢¤â¤Ã¤ÈÀû²ó¤òÃÙ¤¯¤¹¤ë¡¢¤¬Í¸ú¤Ç¤¢¤ë¤È¹Í¤¨¤é¤ì¤ë¡£
*¹Í»¡ [#r67bf01b]
Á´ÂΤηë²ÌŪ¤Ë¤ÏÅꤲ¤ë¦¤È¼õ¤±¼è¤ë¦¤Î¥í¥Ü¥Ã¥È¤¬¤·¤Ã¤«¤êÏ¢·È¤ò¼è¤ê¤¢¤¤¡¢²ÝÂê¤òÀ®¸ù¤·¤¿¤Î¤Ç¤è¤«¤Ã¤È»×¤¦¡£
Åꤲ¤ë¦¤Î¥í¥Ü¥Ã¥È¤Î·ë²Ì¤È¤·¤Æ¤Ï¡¢¥¹¥¿¡¼¥È¤·¤¿¤Î¤Á¥Ü¡¼¥ë¤ò¸¡ÃΤ¹¤ë¤³¤È¤¬½ÐÍè¤ì¤Ð¤½¤Î¤¢¤È¡¢¥Ü¡¼¥ë¤ò¤Ä¤«¤ß¡¦Åꤲ´Ì¤ËÀµ³Î¤Ë¤¢¤Æ¤ë¤³¤È¤¬½ÐÍè¤ë¡£¤³¤ÎÀ©ÅÙ¤¬¹â¤á¤é¤ì¤ë¤³¤È¤Ï¤¤¤¤¤³¤È¤À¤È»×¤¦¡£¤·¤«¤·¡¢¥Ü¡¼¥ë¤¬¸¡ÃΤǤ¤Ê¤¤¾ì¹ç¤¬¤ä¤Ï¤ê²ù¤ä¤Þ¤ì¤ë¡£¤â¤Ã¤È»þ´Ö¤ò¤«¤±¤ÆÀ©ÅÙ¤ò¹â¤á¤¿¤«¤Ã¤¿¡£
*´¶ÁÛ [#z18e9edd]
ºÇ¸å¤Î²ÝÂê¤Î¤³¤Î¥í¥Ü¥³¥ó¤Ç¡¢³ÑÅÙ¥»¥ó¥µ¡¼¡¦¸÷¥»¥ó¥µ¡¼¡¦Ä¶²»ÇÈ¥»¥ó¥µ¡¼¡¦Æ±´ü¡¢¤Ê¤É³Ø¤ó¤À¤³¤È¤ò¼è¤êÆþ¤ì¤ë¤³¤È¤¬¤Ç¤¡¢¤½¤ì¤¾¤ì¤ÎÌò³ä¤òÀ¸¤«¤»¤¿¤È»×¤¦¡£¥×¥í¥°¥é¥à¤âÅö½é¤ËÈæ¤Ù¤ì¤Ðû¤¯åºÎï¤Ë¤Þ¤È¤á¤ë¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤è¤¦¤Ë´¶¤¸¤ë¡£¤·¤«¤·¡¢¤Þ¤À¡¢¥ß¥¹¤â¿¤¯ÂǤĤΤâÃÙ¤¤¤Î¤Ç¤½¤³¤Î¤È¤³¤í¤ò¤â¤Ã¤ÈÅØÎϤ·¤¿¤¤¡£
½ªÎ»¹Ô:
[[2015b/MemberOnly]]
Ìܼ¡
#contents
*¤Ï¤¸¤á¤Ë [#g8e6b645]
º£²ó¤Î²ÝÂê¤Î¥Æ¡¼¥Þ¤Ï¡¢¡Ö¥Ü¡¼¥ë¤òÎ¥¤ì¤¿¾ì½ê¤«¤é´Ì¤ËÅö¤Æ¡¢¥Ü¡¼¥ë¤ò²ó¼ý¤¹¤ë¡×¤Ç¤¢¤ë¡£»Í¿ÍÆóÁȤËʬ¤«¤ì¡¢¥Ü¡¼¥ë¤òÅꤲ¤ë¥í¥Ü¥Ã¥È¤È¥Ü¡¼¥ë¤ò²ó¼ý¤¹¤ë¥í¥Ü¥Ã¥È¤òºî¤ë¡£»ä¤Ï¡¢¥Ü¡¼¥ë¤ò´Ì¤Ë¤¢¤Æ¤ë¥í¥Ü¥Ã¥È¤òºîÀ®¤·¤¿¡£
*²ÝÂê¤È¥ë¡¼¥ë [#rf59c445]
²ÝÂê¡§ÅÀP¡¢Q¤Î¥Ü¡¼¥ë¤ò¥»¥ó¥¿¡¼¥é¥¤¥ó¤ò±Û¤¨¤º¤Ë´Ì¤ËÅö¤Æ¤ë¡£´Ì¤ËÅö¤¿¤Ã¤¿¥Ü¡¼¥ë¤ò²ó¼ý¤¹¤ë¡£
&ref(2015b/Member/A.T.9/Mission3/2015b-mission3.png);
¥ë¡¼¥ë
+¶¥µ»»þ´Ö¤Ï¥í¥Ü¥Ã¥ÈA¤¬START AÃÏÅÀ¤Î¥¹¥¿¡¼¥È¥é¥¤¥ó¤ò²£Àڤäơ¢¥í¥Ü¥Ã¥ÈB¤¬GOAL BÃÏÅÀ¤Î¥´¡¼¥ë¥é¥¤¥ó¤Ë㤹¤ë¤Þ¤Ç¡¢¤¢¤ë¤¤¤Ï¿³È½¤¬Â³¹ÔÉÔǽ¤ÈȽÃǤ¹¤ë¤Þ¤Ç¡£
+¥í¥Ü¥Ã¥ÈA¤ÏSTART AÃÏÅÀ¤«¤é½Ðȯ¤·¡¢PÃÏÅÀ¤Ë¤ª¤«¤ì¤¿ÀÖ¤¤¥Ü¡¼¥ë¤ò½¦¤Ã¤Æ350ml¤Î¥¢¥ë¥ß´Ì¤ËÅö¤Æ¤ë¡£¤½¤Î¸å¡¢¥í¥Ü¥Ã¥ÈB¤¬¥Ü¡¼¥ë¤ò²ó¼ý¤¹¤ë¡£°ú¤Â³¤ÀĤ¤¥Ü¡¼¥ë¤Ë¤Ä¤¤¤Æ¤âƱÍÍ¤ÎÆ°ºî¤ò·«¤êÊÖ¤¹¡£¥í¥Ü¥Ã¥ÈB¤Ï¥Ü¡¼¥ë¤ò²ó¼ý¤·¤¿¸å¡¢ºÇ½ªÅª¤ËGOAL B¤Þ¤Ç¥Ü¡¼¥ë¤ò±¿¤Ö¡£
+¥¢¥ë¥ß´Ì¤ÏÃæ¿È¤¬Æþ¤Ã¤Æ¤¤¤ë¤â¤Î¤ò»È¤¦
+¥Ü¡¼¥ë¤¬¥¢¥ë¥ß´Ì¤ËÅö¤¿¤ëÁ°¤Ë¥í¥Ü¥Ã¥ÈB¤¬¥Ü¡¼¥ë¤Ë¿¨¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤¡£
+¥í¥Ü¥Ã¥ÈA¤Ï¥»¥ó¥¿¡¼¥é¥¤¥ó¤òͤ¨¤Æ¤Ï¹Ô¤±¤Ê¤¤¡£
+¥¢¥ë¥ß´Ì¤ò5cm°Ê¾åư¤«¤·¤¿¾ì¹ç¤Ï¸ºÅÀ
*Åꤲ¤ÆÂ¦¥í¥Ü¥Ã¥È¤ÎÀâÌÀ [#ja7635eb]
¤³¤ì¤¬À½ºî¤·¤¿¥í¥Ü¥Ã¥È¤Ç¤¢¤ë¡£
&ref(2015b/Member/A.T.9/Mission3/IMG_2697.jpg);
**¥í¥Ü¥Ã¥È¤ÎÁ´ÂÎ¤ÎÆ°ºî¡¦Ìò³ä [#p673daa4]
Ͳ»ÇÈ¥»¥ó¥µ¡¼
¥Ü¡¼¥ë¤È´Ì¤Î°ÌÃÖ¤ò¸¡ÃΤ¹¤ë¤Î¤Ë»ÈÍѤ¹¤ë¡£º£²ó¤Î²ÝÂê¤ò¥¯¥ê¥¢¤¹¤ë¤¿¤á¤Ë°ìÈÖÂçÀڤʤâ¤Î¤Ç¤¢¤ë¡£
Áܺ÷¤·¤¿¤¤ÈϰϤò·è¤á¡¢¤½¤ÎÁܺ÷¤·¤¿ÈÏ°ÏÆâ¤Ç£±Èֶᤤ¾ã³²Êª¤Ë¥í¥Ü¥Ã¥È¤ò¸þ¤«¤»¤ë¡£¤·¤«¤·¡¢°ì¤ÄÃí°ÕÅÀ¤¬¤¢¤ê¡¢Ä¶²»ÇÈ¥»¥ó¥µ¡¼¤Ï¥í¥Ü¥Ã¥È¤ÎÃæ¿´¤Ç¤Ï¤Ê¤¯±¦Â¦¤Ë¤Ä¤¤¤Æ¤ë¡£¤½¤Î¤¿¤á¡¢¥Ü¡¼¥ë¤ò½¦¤¦¤¿¤á¤Ë¤Ï¾¯¤·±¦Àû²ó¤ò¤·¤Æ¡¢¥Ü¡¼¥ë¡¦´Ì¤¬¥í¥Ü¥Ã¥È¤ÎÃæ¿´¤Ë¸þ¤¯¤è¤¦¤Ë¤¹¤ëɬÍפ¬¤¢¤ë¡£
&ref(2015b/Member/A.T.9/Mission3/IMG_2702-1.jpg);
¥Ü¡¼¥ë¤ò¤Ä¤«¤à¡¢Åꤲ¤ëưºî
¥Ü¡¼¥ë¤Î°ÌÃÖ¤ò¸¡ÃΤ·¶á¤Å¤¤¤¿¸å¡¢¥Ü¡¼¥ë¤ò¤Ä¤«¤à¡¢¤½¤·¤Æ¡¢´Ì¤ÎÊý¸þ¤ØÅꤲ¤ë¡£¤³¤Îưºî¤ò¤¹¤ë¤Î¤¬²¼¤ÎÉôʬ¤Ç¤¢¤ë¡£¥ª¥ì¥ó¥¸¿§¤ÎÌð°õÊý¸þ¤Ë²ó¤¹¤È¥Ü¡¼¥ë¤ò¤Ä¤«¤ß¡¢ÀĤ¤Ìð°õ¤ÎÊý¸þ¤Ë²ó¤¹¤È¥Ü¡¼¥ë¤òÅꤲ¤ë¡£±¦¤Î¼Ì¿¿¤Ï¼ÂºÝ¤Ë¤Ä¤«¤ó¤Ç¤¤¤ë»þ¤Ç¤¢¤ë¡£
&ref(2015b/Member/A.T.9/Mission3/IMG_2699-1.jpg);
&ref(2015b/Member/A.T.9/Mission3/IMG_2700-1.jpg);
¸÷¥»¥ó¥µ¡¼
Æó¤ÄÌܤΥܡ¼¥ë¤ò¸«¤Ä¤±¤ëºÝ¤Ë¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤¹¤ë¤¿¤á»ÈÍѤ¹¤ë¡£
&ref(2015b/Member/A.T.9/Mission3/IMG_2696-1.jpg);
**¼õ¤±¼ê¦¤Î¥í¥Ü¥Ã¥È [#b81046fe]
°Ê²¼¤Î¥í¥Ü¥Ã¥È¤¬ÁêÊý¤Î¥Á¡¼¥à¤¬ºîÀ®¤·¤¿¡¢¥Ü¡¼¥ë¤ò¼õ¤±¼è¤ë¦¤Î¥í¥Ü¥Ã¥È¤Ç¤¢¤ë¡£¤³¤³¤Ç¤Ï¡¢¥Ü¡¼¥ë¤ò¼è¤ë»þ¤Îưºî¤À¤±´Êñ¤ËÀâÌÀ¤¹¤ë¡£
&ref(2015b/Member/A.T.9/Mission3/IMG_2704-1.jpg);
ÀĤ¤¤Þ¤ë¤Ç°Ï¤Þ¤ì¤¿¤Î¤¬Ä¶²»ÇÈ¥»¥ó¥µ¡¼¤Ç¤¢¤ê¡¢¥Ü¡¼¥ë¤¬Ä̲ᤷ¤¿¤é¡¢ÀִݤǰϤޤ줿ÏȤǤȤ館¤ë¤È¤¤¤¦¤â¤Î¤Ç¤¢¤ë¡£Ï¢·È¤Îưºî¤Ï¥Ö¥ë¡¼¥È¥¥¡¼¥¹¤ÇƱ´ü¤µ¤»¤Æ¤¢¤ë¤¿¤á¡¢»þ´Ö¤ÎÀ©¸æ¤Ç¹Ô¤¦¤è¤êÀµ³ÎÀ¤¬¤¢¤ë¡£
*¥×¥í¥°¥é¥à¤ÎÀâÌÀ [#vc213b68]
#define SPEED 50¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¡¡Â®ÅÙ¡¡Â®£µ£°¤ÎÄêµÁ
#define SPEED_SLOW 30 //¡¡Â®ÅÙ¡¡ÃÙ£³£°¤ÎÄêµÁ
const float diameter = 5.45;¡¡¡¡//¡¡¥¿¥¤¥ä¤Îľ·Â¡ÊÑ¡Ë
const float track = 10.35; //¡¡¥¿¥¤¥ä¤Î¥È¥ì¥Ã¥ÉÉý¡ÊÑ¡Ë
const float pi = 3.1415; //¡¡±ß¼þΨ
void fwdDist (float d){ // d¥»¥ó¥ÁÁ°¿Ê
long angle;
angle = d / (diameter * pi) * 360.0;
RotateMotorEx(OUT_AC,SPEED_SLOW,angle,0,true,true);
}
void turnAng(long ang){ // ³ÑÅÙangÅ٤λþ·×²ó¤ê¤ÎÀû²ó
long angle ;
angle = track/diameter*ang;
RotateMotorEx(OUT_AC,SPEED_SLOW,angle,100,true,true);
}
°Ê²¼¤Î¥×¥í¥°¥é¥à¤¬¥Ü¡¼¥ë¤òõ¤¹¤â¤Î¤Ç¤¢¤ë¡£º£²ó¤Î²ÝÂê¤Ç°ìÈÖÂçÀڤʤȤ³¤í¤Ç¤¢¤ë¡£
¡ã°ìÈֶᤤ¾ã³²Êª¤Îõ¤·Êý¡ä
int searchDirection(long ang){ // ¥Ü¡¼¥ë¤òõ¤·¤Æ¤½¤ÎÊý¸þ¤ò¸þ¤¡¢¥Ü¡¼¥ë¤Þ¤Ç¤Îµ÷Î¥¤òÊÖ¤¹
long angle, tacho_min;
int d_min;
d_min = 300; //¡¡¡¡¡¡¡¡²¾¤ÎºÇ¾®ÃÍ
tacho_min = 0;
¤Þ¤º¡¢³ÑÅÙ¤ò»ØÄꤷ¤½¤Î³ÑÅÙ¤ÎȾʬ¤ò»þ·×²ó¤ê¤ËÀû²ó¤¹¤ë¡£
angle = (track / diameter) * ang; //¡¡¡¡¡¡¡¡³ÑÅÙ¤«¤é¥¿¥¤¥ä¤Î²óž¤ò·×»»
turnAng(ang / 2); //¡¡¡¡¡¡¡¡»ØÄꤵ¤ì¤¿³ÑÅÙ¤ÎȾʬ¤òÀû²ó
ResetTachoCount(OUT_A); //¡¡¡¡¡¡¡¡³ÑÅٷ׬¤ò¥ê¥»¥Ã¥È
¤½¤Î¸å¡¢»ØÄꤷ¤¿³ÑÅÙʬȿ»þ·×²ó¤ê¤ËÀû²ó¤¹¤ë¡£Àû²ó¤·¤Æ¤¤¤ë»þ¤ËͲ»ÇÈ¥»¥ó¥µ¡¼¤òºîư¤µ¤»¡¢¸¡ÃΤ·¤¿°ìÈÖ¾®¤µ¤¤Ãͤòd_min¤ËÂåÆþ¤¹¤ë¡£°ìÈÖ¾®¤µ¤¤ÃÍ¡¢¤¹¤Ê¤ï¤Á¤½¤ì¤¬¡¢°ìÈֶᤤ¾ã³²Êª¤Ç¤¢¤ë¡£
OnFwdSync(OUT_AC,SPEED_SLOW,-100); //¡¡¡¡¡¡¡¡È¿»þ·×²ó¤ê¤ËÀû²ó
while(MotorTachoCount(OUT_A) <= angle){
if(SensorUS(S3) < d_min){
d_min = SensorUS(S3);¡¡ // ²¾¤ÎºÇ¾®Ãͤò¹¹¿·
tacho_min = MotorTachoCount(OUT_A);
}
}
»ØÄꤷ¤¿³ÑÅÙ¤òÀû²ó¤·¤¿¤Î¤Á¡¢¡Éd_min¤ËÂåÆþ¤µ¤ì¤¿¾ì½ê=¾ã³²Êª¤Î¾ì½ê¡É¤Ë¤à¤«¤»¤ë¤¿¤á»þ·×²ó¤ê¤ËÀû²ó¤µ¤»¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢¥í¥Ü¥Ã¥È¤Ï¥Ü¡¼¥ë¤ÎÊý¸þ¤ò¸þ¤¤¤¿¤³¤È¤Ë¤Ê¤ë¡£
OnFwdSyncEx(OUT_AC,SPEED_SLOW,100,RESET_NONE);
until(MotorTachoCount(OUT_A) <= tacho_min || SensorUS(S3) <= d_min);
Wait(15); //ÈùÄ´À°
Off(OUT_AC);
Wait(500);
return d_min;
}
void searchDirection2(long ang){ // ´Ì¤òõ¤·¤Æ¤½¤ÎÊý¸þ¤ò¸þ¤¯(°Ê²¼¡¡void search Direction(long ang)¡¡¤ÈÀâÌÀƱ¤¸)
long angle, tacho_min;¡¡¡¡¡¡¡¡
int d_min;
d_min = 300;
tacho_min = 0;
angle = (track / diameter) * ang;
turnAng(ang/2);
ResetTachoCount(OUT_C);
OnFwdSync(OUT_AC,SPEED_SLOW,-100);
while(MotorTachoCount(OUT_C) >= angle*-1){
if(SensorUS(S3) < d_min){
d_min = SensorUS(S3);
tacho_min = MotorTachoCount(OUT_C);
}
}
OnFwdSyncEx(OUT_AC,SPEED_SLOW,100,RESET_NONE);
until(MotorTachoCount(OUT_C) >= tacho_min || SensorUS(S3) <= d_min);
Wait(15);
Off(OUT_AC);
Wait(500);
}
void line () { // ¥é¥¤¥ó¥È¥ì¡¼¥¹¤Î¥×¥í¥°¥é¥à
float d;
int S = 0; //¡¡¡¡¡¡¸òº¹ÅÀ¤Î²ó¿ô¤ò·×¤ë¤¿¤á¤ÎÈ¢
SetSensorLight(S2);
long t_L = CurrentTick();
while(S<3){
while(CurrentTick() - t_L <= 170) { //±¦Àû²ó¤Î»þ´Ö¤¬£°¡¥£±£·°Ê²¼¤Î»þ¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò·«¤êÊÖ¤¹¡£
//£°¡¥£±£·Éäòͤ¨¤¿¾ì¹ç¸òº¹ÅÀ¤ÈȽÃǤ·¡¢¥ë¡¼¥×¤«¤éæ½Ð¤¹¤ë¡£
if (SENSOR_2 < 30) {
OnFwd(OUT_C,30);
OnRev(OUT_A,25);
} else if (SENSOR_2 < 38) {
OnFwd(OUT_C,30);
Off(OUT_A);
} else if (SENSOR_2 < 52) {
OnFwd(OUT_AC,30);
t_L = CurrentTick();
} else if (SENSOR_2 < 60) {
OnFwd(OUT_A,30);
Off(OUT_C);
t_L = CurrentTick();
} else {
OnFwd(OUT_A,30);
OnRev(OUT_C,25);
t_L = CurrentTick();
}
Wait(1);
}
S++;
if(S==1){ // ¸òº¹ÅÀ£±²óÌÜ¡ÊÅÀ£Ð¡Ë¤òº¸ÀÞ
Off(OUT_AC); // £ÑÅÀ¤Î¥Ü¡¼¥ë¤òÁÀ¤¦
Wait(1000);
RotateMotor(OUT_A,SPEED,210);
OnFwdSync(OUT_AC,SPEED_SLOW,0);
Wait(1000);
d = searchDirection(120); // QÅÀ£²¤ÄÌܤΥܡ¼¥ë¤òÁÀ¤¦
fwdDist(d - 8.0); // £¸£ã£í¼êÁ°¤Ç»ß¤Þ¤ë
RotateMotor(OUT_C,SPEED_SLOW,150); // ½¦¤¦Á°ÈùÄ´À°()
RotateMotor(OUT_B,33,80); // ¥¢¡¼¥à¤ò¾¯¤·ÊĤ¸¤ë
OnFwdSync(OUT_AC,SPEED,0); // ¥Ü¡¼¥ë½¦¤¤
Wait(450);
RotateMotor(OUT_B,33,80);
Off(OUT_AC);
t_L = CurrentTick();
} else if(S==2){ // ¸òº¹ÅÀ£²²óÌܤǥ饤¥ó¥È¥ì¡¼¥¹¤Î½èÍý¤ò½ªÎ»¤µ¤»¤ë
break;
}
}
}
task main(){
SetSensorLowspeed(S3); ¡¡// Ͳ»ÇÈ¥»¥ó¥µ¡¼¡Ê¥Ý¡¼¥È£³¡Ë
SetSensorLight(S2); // ¸÷¥»¥ó¥µ¡¼¡Ê¥Ý¡¼¥È£²¡Ë¡¡¡¡
int mail = 0;
int d = searchDirection(120); ¡¡¡¡// ¥Ü¡¼¥ëõ¤·
fwdDist(d - 8.0);
RotateMotor(OUT_C,SPEED_SLOW,125); // ½¦¤¦Á°ÈùÄ´À°
OnFwdSync(OUT_AC,SPEED,0); // ¥Ü¡¼¥ë½¦¤¤
Wait(450);
RotateMotor(OUT_B,33,80); // ¥Ü¡¼¥ë¤Ä¤«¤à
Off(OUT_AC);
fwdDist(-5); //¤Ä¤«¤ó¤À¸å£µ£ã£í¸å¤í¤Ø¿Ê¤à
RotateMotor(OUT_C,SPEED_SLOW,-300); // ´ÌÉÕ¶á¤Ë°Üư¡Ê£³£°£°ÅÙº¸Àû²ó¤·£±¡¥£¸ÉÃÁ°¿Ê¡Ë
OnFwdSync(OUT_AC,SPEED,0);
Wait(1800);
searchDirection2(90); // ³ÑÅÙ¹ç¤ï¤»
RotateMotor(OUT_C,SPEED_SLOW,90); // ȯ¼ÍÁ°ÈùÄ´À°¡ÊͲ»ÇÈ¥»¥ó¥µ¡¼¤¬Ãæ¿´¤Ç¤Ê¤¯±¦¤Ë¤Ä¤¤¤Æ¤¤¤ë¤¿¤á¡Ë
¥Ö¥ë¡¼¥È¥¥¡¼¥¹¤Ç¼õ¤±¼è¤ê¦¥í¥Ü¥Ã¥È¤Ë¥á¥Ã¥»¡¼¥¸¤òÁ÷¤ë¡£¡Ê¾Ü¤·¤¤ÀâÌÀ¤Ï¡É¥Ö¥ë¡¼¥È¥¥¡¼¥¹¤ÎÀâÌÀ¡É¤Ç¤¹¤ë¡Ë
SendRemoteNumber(1,MAILBOX1,10); // ¥¥ã¥Ã¥Á¦¤ò°Üư¤µ¤»¤ë
while(mail != 20){ // ¥¥ã¥Ã¥Á½àÈ÷´°Î»ÂÔ¤Á
Off(OUT_ABC);
Wait(1);
ReceiveRemoteNumber(MAILBOX1,false,mail);
}
OnFwd(OUT_B,-70); // ¥Ü¡¼¥ëȯ¼Í
Wait(800);
Off(OUT_B);
turnAng(210); // 210ÅÙÀû²ó¤·¥é¥¤¥ó¥È¥ì¡¼¥¹½àÈ÷¤Î¤¿¤á¤Î°Üư
OnFwd(OUT_AC,1);
Wait(1);
OnFwd(OUT_A,SPEED_SLOW);
OnFwd(OUT_C,SPEED_SLOW - 3);
until(SENSOR_2 < 40);
Off(OUT_A);
line(); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // ¥é¥¤¥ó¥È¥ì¡¼¥¹
Off(OUT_ABC);
}
**¥Ö¥ë¡¼¥È¥¥¡¼¥¹¤ÎÀâÌÀ [#n7f13714]
¾åµ¡¡task main ()¤ÎÃæ¤«¤é¥Ö¥ë¡¼¥È¥¥¡¼¥¹¤Î¥×¥í¥°¥é¥à¤ÎÉôʬ¤Î¤ßÈ´¿è
Åꤲ¤ÆÂ¦¤¬¿Æ¡¢¼õ¤±¼è¤ê¦¤¬»Ò¤È¤Ê¤ê¡¢¿Æ¤¬¥Ü¡¼¥ë¤òȯ¼Í¤¹¤ë¤Þ¤Ç¤ÎÍѰդ¬½ª¤ï¤Ã¤¿¤Î¤Á¤Ë¼õ¤±¼è¤ê¦¤Î¥í¥Ü¥Ã¥È¤¬¼õ¤±¼è¤ëÂÎÀ©¤ËÆþ¤ë¤è¤¦¤Ë¤·¤¿¡£¤³¤ì¤ò¤¹¤ë¤³¤È¤Ç¡¢Åꤲ¤ë¦¤Î¥í¥Ü¥Ã¥È¤¬¾ã³²Êª¤Î´Ì¤ò¸¡ÃΤ¹¤ëºÝ¤Ë´Ö°ã¤Ã¤Æ¼õ¤±¼è¤ë¦¤Î¥í¥Ü¥Ã¥È¤ò¸¡ÃΤ·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ç¤¢¤ë¡£¡ÊƱ»þ¤Ë¥¹¥¿¡¼¥È¤µ¤»¤Æ¤·¤Þ¤¦¤È¼õ¤±¼è¤ê¦¤Î¥í¥Ü¥Ã¥È¤¬¶á¤¯¤ËÍè¤Æ¤·¤Þ¤¤´Ö°ã¤Ã¤Æ¾ã³²Êª¤È¤·¤ÆÇ§ÃΤ·¤Æ¤·¤Þ¤¦¶²¤ì¤¬¤¢¤ë¡Ë
°Ê²¼¤Ï¡¢¥×¥í¥°¥é¥àÆâÍÆ
¼õ¤±¼è¤ê¦¤Ë¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®¤·¡¢Åꤲ¤ÆÂ¦¤Ï¤½¤Î¾ì¤ÇÂÔµ¡¤¹¤ë¡£¤³¤ÎÂÔµ¡¤·¤Æ¤¤¤ë»þ¤Ë¼õ¤±¼è¤ê¦¥í¥Ü¥Ã¥È¤¬¡¢´Ì¤Ë¶á¤Å¤¼õ¤±¼è¤ëÂÎÀ©¤ËÆþ¤ë¡£
SendRemoteNumber(1,MAILBOX1,10); // ¥¥ã¥Ã¥Á¦¤ò°Üư¤µ¤»¤ë
while(mail != 20){ // ¥¥ã¥Ã¥Á½àÈ÷´°Î»ÂÔ¤Á
Off(OUT_ABC);
Wait(1);
¤³¤³¤Ç¡¢¼õ¤±¼è¤ë½àÈ÷¤¬½ÐÍ輡Âè¡¢Åꤲ¤ÆÂ¦¤Ë°Ê²¼¤Î¥á¥Ã¥»¡¼¥¸¤¬Á÷¤é¤ì¤Æ¤¯¤ë¡£¡¡¡¡
ReceiveRemoteNumber(MAILBOX1,false,mail);
¤³¤ì¤ò¼õ¤±¼è¤ê¼¡Âè¡¢Åꤲ¤ÆÂ¦¤Ï´Ì¤Ë¸þ¤«¤Ã¤Æ¥Ü¡¼¥ë¤òÅꤲ¤ë¡£
*¹©É×ÅÀ [#m06927d2]
1.Åꤲ¤ëưºî
¥Ü¡¼¥ë¤òÅꤲ¤ë¦¤Î¥í¥Ü¥Ã¥È¤Ï¥Ü¡¼¥ë¤ò¡É³Î¼Â¤Ë¡É¤Ä¤«¤ß¡¦±ó¤¯¤Î´Ì¤ËÅö¤Æ¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£Àµ³Î¤µ¤¬¤È¤Æ¤âÍ׵ᤵ¤ì¤ë¡£¤½¤³¤Ç¡¢³Î¼Â¤Ë¤Ä¤«¤ß¿¿¤Ã¤¹¤°¤Ê¤²¤ë¤¿¤á¤Ë¡¢£²¤ÄÄޤε¡¹½¤Ë¤·¤¿¡££²¤ÄÄޤˤ¹¤ë¤³¤È¤Ç¡¢¥Ü¡¼¥ë¤¬º¸±¦¤Ë¤³¤Ü¤ì¤º¿¿¤Ã¤¹¤°¤Ä¤«¤à¤³¤È¤¬¤Ç¤¡¢¿¿¤Ã¤¹¤°¤Ê¤²¤ë¤³¤È¤¬½ÐÍè¤ë¡£
2.Ͳ»ÇÈ¥»¥ó¥µ¡¼¤ò»ÈÍѤ¹¤ë¤³¤È¡£
»þ´Ö¡¦³ÑÅÙ¤ËÍê¤ê¤¹¤®¤ë¤ÈÈùÄ´À°¤¬Â¿¤¯¤Ê¤Ã¤¿¤ê¡¢ÅÅÃӤξÃÌ×¶ñ¹ç¤Ë¤è¤Ã¤ÆÀµ³Î¤ÎÀºÅÙ¤ò½Ð¤¹¤³¤È¤¬½ÐÍè¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¡£¤½¤³¤Ç¡¢Ä¶²»ÇÈ¥»¥ó¥µ¡¼¤ò»È¤¤ÂоÝʪ¤Þ¤Ç¤Îµ÷Î¥¤ò¬¤ë¤³¤È¤Ç¡¢¥Ü¡¼¥ë¡¦´Ì¤Î°ÌÃÖ¤òÀµ³Î¤ËÃΤ뤳¤È¤¬½ÐÍè¤ë¡£
3.Ʊ´ü¤µ¤»¤ë
¥Ü¡¼¥ë¡¦´Ì¤òõ¤¹ºÝ¡¢¶á¤¯¤Ë¼õ¤±¼è¤ê¦¥í¥Ü¥Ã¥È¤ËÍè¤é¤ì¤Æ¤·¤Þ¤¦¤È´Ö°ã¤Ã¤Æ¤½¤Î¥í¥Ü¥Ã¥È¤ò¸¡ÃΤ·¤Æ¤·¤Þ¤¦¶²¤ì¤¬¤¢¤ë¡£¥Ö¥ë¡¼¥È¥¥¡¼¥¹¤ò»È¤¤¡¢ÊÌ¡¹¤Ëưºî¤ò¤µ¤»¤ë¤³¤È¤Ç¸íǧ¼±¤òËɤ°¤³¤È¤¬½ÐÍè¤ë¡£
¤Þ¤¿¡¢¤Ê¤²¤ë¦¤È¼õ¤±¼è¤ë¦¤Î¥í¥Ü¥Ã¥È¤Îưºî¤ËÀµ³ÎÀ¤¬¤Ç¤ë¡£¡Ê¸Ä¡¹¤Î¥¿¥¤¥Þ¡¼»ØÄê¤ÇÀ©¸æ¤ò¹Ô¤¦¤ÈÅÅÃӤξÃÌײøºÅù¤Ç¡¢Âç¤¤Ê¸íº¹¤¬½ÐÍè¤Æ¤·¤Þ¤¦¡£¡Ë
*²þÁ±ÅÀ [#i302e617]
+¥Ü¡¼¥ë¤Î°ÌÃÖ¤ò¸¡ÃΤǤ¤Ê¤¤¡£
¥Ü¡¼¥ë¤¬¾®¤µ¤¤¤¿¤á¡¢Ãµº÷Ãæ¤ÏÃÙ¤¯Àû²ó¤µ¤»¡¢¤µ¤é¤Ë°ìÈÖŤ¤Ä¾·Â¤ËͲ»ÇÈ¥»¥ó¥µ¡¼¤¬Åö¤¿¤é¤Ê¤¤¤È¸«¤Ä¤±¤ë¤³¤È¤¬½ÐÍè¤Ê¤¤¡£¸¡ÃÎÀºÅÙ¤ò¹â¤á¤ë¼êÃʤȤ·¤Æ¤Ï¡¢¥Ü¡¼¥ë¤Þ¤Ç¤Îµ÷Î¥¤ò½Ì¤á¤ë¡¢¤â¤Ã¤ÈÀû²ó¤òÃÙ¤¯¤¹¤ë¡¢¤¬Í¸ú¤Ç¤¢¤ë¤È¹Í¤¨¤é¤ì¤ë¡£
*¹Í»¡ [#r67bf01b]
Á´ÂΤηë²ÌŪ¤Ë¤ÏÅꤲ¤ë¦¤È¼õ¤±¼è¤ë¦¤Î¥í¥Ü¥Ã¥È¤¬¤·¤Ã¤«¤êÏ¢·È¤ò¼è¤ê¤¢¤¤¡¢²ÝÂê¤òÀ®¸ù¤·¤¿¤Î¤Ç¤è¤«¤Ã¤È»×¤¦¡£
Åꤲ¤ë¦¤Î¥í¥Ü¥Ã¥È¤Î·ë²Ì¤È¤·¤Æ¤Ï¡¢¥¹¥¿¡¼¥È¤·¤¿¤Î¤Á¥Ü¡¼¥ë¤ò¸¡ÃΤ¹¤ë¤³¤È¤¬½ÐÍè¤ì¤Ð¤½¤Î¤¢¤È¡¢¥Ü¡¼¥ë¤ò¤Ä¤«¤ß¡¦Åꤲ´Ì¤ËÀµ³Î¤Ë¤¢¤Æ¤ë¤³¤È¤¬½ÐÍè¤ë¡£¤³¤ÎÀ©ÅÙ¤¬¹â¤á¤é¤ì¤ë¤³¤È¤Ï¤¤¤¤¤³¤È¤À¤È»×¤¦¡£¤·¤«¤·¡¢¥Ü¡¼¥ë¤¬¸¡ÃΤǤ¤Ê¤¤¾ì¹ç¤¬¤ä¤Ï¤ê²ù¤ä¤Þ¤ì¤ë¡£¤â¤Ã¤È»þ´Ö¤ò¤«¤±¤ÆÀ©ÅÙ¤ò¹â¤á¤¿¤«¤Ã¤¿¡£
*´¶ÁÛ [#z18e9edd]
ºÇ¸å¤Î²ÝÂê¤Î¤³¤Î¥í¥Ü¥³¥ó¤Ç¡¢³ÑÅÙ¥»¥ó¥µ¡¼¡¦¸÷¥»¥ó¥µ¡¼¡¦Ä¶²»ÇÈ¥»¥ó¥µ¡¼¡¦Æ±´ü¡¢¤Ê¤É³Ø¤ó¤À¤³¤È¤ò¼è¤êÆþ¤ì¤ë¤³¤È¤¬¤Ç¤¡¢¤½¤ì¤¾¤ì¤ÎÌò³ä¤òÀ¸¤«¤»¤¿¤È»×¤¦¡£¥×¥í¥°¥é¥à¤âÅö½é¤ËÈæ¤Ù¤ì¤Ðû¤¯åºÎï¤Ë¤Þ¤È¤á¤ë¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤è¤¦¤Ë´¶¤¸¤ë¡£¤·¤«¤·¡¢¤Þ¤À¡¢¥ß¥¹¤â¿¤¯ÂǤĤΤâÃÙ¤¤¤Î¤Ç¤½¤³¤Î¤È¤³¤í¤ò¤â¤Ã¤ÈÅØÎϤ·¤¿¤¤¡£
¥Ú¡¼¥¸Ì¾: