2019a/Member/Asahi/Mission3
¤ò¥Æ¥ó¥×¥ì¡¼¥È¤Ë¤·¤ÆºîÀ®
[
¥È¥Ã¥×
] [
¿·µ¬
|
°ìÍ÷
|
¸¡º÷
|
ºÇ½ª¹¹¿·
|
¥Ø¥ë¥×
|
¥í¥°¥¤¥ó
]
³«»Ï¹Ô:
[[2019a/Member]]
*²ÝÂê¤Ë¤Ä¤¤¤Æ [#j84d3ca0]
¾Ü¤·¤¯¤Ï¥ê¥ó¥¯¤ò»²¾È2019a/Mission3
*¥í¥Ü¥Ã¥È¤Ë¤Ä¤¤¤Æ [#facc07ea]
º£²ó¤Î¥í¥Ü¥Ã¥È¤Ï¡¤£²¤Ä¤ÎNXT¤òÄÌ¿®¤µ¤»¤ë¤³¤È¤Ç¥â¡¼¥¿¡¼¤ò£´¤Ä»ÈÍѤǤ¤ë¤è¤¦¤Ë¤·¡¤£²¤Ä¤ò°ÜÆ°ÍÑ¡¤£²¤Ä¤ò¥Ü¡¼¥ë¤ò¥¥ã¥Ã¥Á¤¹¤ë¥¢¡¼¥àÍѤȤ¹¤ë¤³¤È¤Ç¥¹¥à¡¼¥º¤ËÆ°¤¯¤è¤¦¤Ë¹©Éפ·¤¿¡¥
Á´Âοޤϰʲ¼¤ÎÄ̤ê
&ref(2019a/Member/Asahi/Mission3/IMG_1866.JPG,50%,¡µ¡¹½);
&ref(2019a/Member/Asahi/Mission3/IMG_1864.JPG,50%,¡µ¡¹½);
**¥»¥ó¥µ¡¼¤Î¼è¤êÉÕ¤±°ÌÃ֤ˤĤ¤¤Æ [#sb6dc43f]
¥»¥ó¥µ¡¼¤ò¼è¤êÉÕ¤±¤ëºÝ¡¤¥¿¥¤¥ä¤«¤éÎ¥¤ì¤¹¤®¤Ê¤¤¤è¤¦¤Ë¤·¤¿¡¥¼´¤«¤é±ó¤¹¤®¤ë¤È¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¹Ô¤¦ºÝ¡¤»Ù¾ã¤¬½Ð¤ë¤«¤é¤À¡¥¤µ¤é¤Ë¡¤¥»¥ó¥µ¡¼¤¬¤·¤Ã¤«¤ê¤Èǧ¼±¤Ç¤¤ë¤è¤¦¤Ë¿âľ¤Ë¼è¤êÉÕ¤±¤¿¡¥
**¥¢¡¼¥à¤Ë¤Ä¤¤¤Æ [#y1753b87]
º£²ó¤Ï¥Ü¡¼¥ë¤ò¤Ä¤«¤à¤¿¤á¤ÎÊýË¡¤È¤·¤Æ¡¤¥¢¡¼¥à¤òºÎÍѤ·¤¿¡¥£±¤Ä¤Î¥â¡¼¥¿¡¼¤ò¥¢¡¼¥à¤òÊĤ¸¤¿¤ê¡¤³«¤¤¤¿¤ê¤¹¤ë¤³¤È¤Ë»È¤¤¡¤¤â¤¦°ì¤Ä¤Î¥â¡¼¥¿¡¼¤Ç¥¢¡¼¥à¤Î¾å²¼¤òÄ´Àᤷ¤¿¡¥¤³¤Î»þ¡¤Â礤¤¥®¥¢¤È¾®¤µ¤¤¥®¥¢¤òÁȤ߹ç¤ï¤»¤ë¤³¤È¤Ë¤è¤Ã¤Æ¥¢¡¼¥à¤ò¾å¤²¤¿ºÝ¡¤¥¢¡¼¥à¼«ÂΤνŤµ¤Ç²¼¤¬¤ë¤È¤¤¤¦¤³¤È¤òËɤ¤¤À¡¥
*¥×¥í¥°¥é¥à¤Ë¤Ä¤¤¤Æ [#i014699a]
¤³¤Î¥í¥Ü¥Ã¥È¤Ï¡¤£²¤Ä¤ÎNXT¡Ê¥Þ¥¹¥¿¡¼Â¦¤È¥¹¥ì¥¤¥Ö¦¡Ë¤ÇÄÌ¿®¤ò¹Ô¤¤¡¤¥Þ¥¹¥¿¡¼Â¦¤Ïµ¡ÂΤΰÜÆ°¡¤¥¹¥ì¥¤¥Ö¦¤Ï¥¢¡¼¥à¤Î³«ÊÄ¡¦¾å²¼¤ò¤½¤ì¤¾¤ìôÅö¤·¤Æ¤¤¤ë¡¥
**¥Þ¥¹¥¿¡¼¤Î¥×¥í¥°¥é¥à [#j6999681]
***ÄêµÁ [#tbc2f6b5]
¤Þ¤º¡¤°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤·¤¿¡¥
#define black 30 //´°Á´¤Ë¹õ¤Î¤È¤¤ÎÃÍ
#define white 50 //´°Á´¤ËÇò¤Î¤È¤¤ÎÃÍ
#define speedH 60 //®¤¤¥¹¥Ô¡¼¥É
#define speedL 30 //ÃÙ¤¤¥¹¥Ô¡¼¥É
#define speedM 20 //µÕ²óž¤È¤¤Î¥¹¥Ô¡¼¥É
#define mae OnFwd(OUT_BC,speedH); //Á°¿Ê¤ÎÆ°ºî
#define ushiro OnRev(OUT_BC,speedH); //¸åÂà¤ÎÆ°ºî
#define turnRRR OnFwd(OUT_C,speedH);OnRev(OUT_B,speedM); //°ìÈÖ¥¥Ä¤¤±¦¶Ê¤¬¤ê
#define turnLLL OnFwd(OUT_C,speedH);OnRev(OUT_C,speedM); //°ìÈÖ¥¥Ä¤¤º¸¶Ê¤¬¤ê
#define turnRR OnFwd(OUT_C,speedH);Off(OUT_B); //±¦¶Ê¤¬¤ê
#define turnLL OnFwd(OUT_B,speedH);Off(OUT_C); //º¸¶Ê¤¬¤ê
#define turnR OnFwd(OUT_C,speedH);OnFwd(OUT_B,speedL); //´Ë¤á¤Î±¦¶Ê¤¬¤ê
#define turnL OnFwd(OUT_B,speedH);OnFwd(OUT_C,speedL); //´Ë¤á¤Îº¸¶Ê¤¬¤ê
#define step 1 //¥é¥¤¥ó¥È¥ì¡¼¥¹¤ÎÆ°ºî»þ´Ö
#define jikan 100 //´°Á´¤Ë¹õ¤Çµï³¤±¤é¤ì¤ë»þ´Ö¤ÎºÇÂçÃ͡ʤ·¤¤¤ÃÍ¡Ë
#define teishi Off(OUT_BC);Wait(300); //°ì»þÄä»ß
#define CONN 1 //¥¹¥ì¥¤¥Ö¤ÎÈÖ¹æ
#define SIGNAL1 11 //¥¹¥ì¥¤¥Ö¤ËÁ÷¤ë¿®¹æ¤ÎÈÖ¹æ
#define SIGNAL2 12 //Ʊ¾å
#define SIGNAL3 13 //Ʊ¾å
#define SIGNAL4 14 //Ʊ¾å
#define curveL OnFwd(OUT_B,20);OnRev(OUT_C,10); //º¸¤Ë²óž¤·¤Æ¥«¡¼¥Ö¤¹¤ëÆ°ºî
***ľÀþ¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹¡Ê¸òº¹ÅÀ¤Ëº¹¤·³Ý¤«¤ë¤È¥ë¡¼¥×¤«¤éÈ´¤±¤ë¡Ë¤Î¥µ¥Ö¥ë¡¼¥Á¥ó [#g929b9c4]
¸÷¥»¥ó¥µ¡¼¤¬»ØÄꤷ¤¿»þ´Ö°Ê¾å¡¤¹õ¤È¬Äꤷ¤¿¤é»ß¤Þ¤ë¤è¤¦¤Ë¥×¥í¥°¥é¥à¤µ¤ì¤Æ¤¤¤ë¡¥
void linetraceS() //´°Á´¤Ë¹õ¤¬jikan°Ê¾å¤À¤Ã¤¿¤é³°¤ì¤ë
{
long t0=0,t_black=0,t_max=jikan;
t0=CurrentTick();
while(t_black<t_max){ //t_black¤¬t_max¤ÎÃͤè¤êÂ礤¯¤Ê¤Ã¤¿¤é¥ë¡¼¥×¤«¤éÈ´¤±¤ë
if(SENSOR_3>white){ //´°Á´¤ËÇò¤Î¤È¤
turnRR; //±¦¶Ê¤¬¤ê
} else if(SENSOR_3>white-5){ //Çò¤è¤ê¤Î³¥¿§¤Î¤È¤
turnR; //´Ë¤¤±¦¶Ê¤¬¤ê
} else if(SENSOR_3>black+5){ //³¥¿§¤Î¤È¤
mae; //Á°¿Ê
} else if(SENSOR_3>black){ //¹õ´ó¤ê¤Î³¥¿§¤Î¤È¤
turnL; //´Ë¤¤º¸¶Ê¤¬¤ê
} else{ //´°Á´¤Ë¹õ¤Î¤È¤
turnLL; //º¸¶Ê¤¬¤ê
t0=CurrentTick(); //¸½ºß»þ´Ö¤òt0¤È¤¹¤ë(»þ´Ö¤ò¬¤ê»Ï¤á¤ë)
until((SENSOR_3<black+5)&&(SENSOR_3>black));//¹õ´ó¤ê¤Î³¥¿§¤Ë¤Ê¤ë¤Þ¤Ç¬¤ê³¤±¤ë
t_black=CurrentTick()-t0; //¸½ºß»þ¹ï¤«¤ét0¤ÎÃͤò°ú¤¤¤¿¤â¤Î
}
Wait(step);
}
}
***¥«¡¼¥Ö¤Î¤È¤¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹¡Ê¸òº¹ÅÀ¤Ëº¹¤·³Ý¤«¤ë¤È¥ë¡¼¥×¤«¤éÈ´¤±¤ë¡Ë¤Î¥µ¥Ö¥ë¡¼¥Á¥ó [#zf0d28b1]
´ðËÜŪ¤Ë¤ÏľÀþ¤Î»þ¤Î¥µ¥Ö¥ë¡¼¥Á¥ó¤È»÷¤Æ¤¤¤ë¤¬¡¤¥«¡¼¥Ö¤Î»þ¤ËľÀþ¤Î¥µ¥Ö¥ë¡¼¥Á¥ó¤Ç¹Ô¤¦¤È¶Ê¤¬¤ë¤Î¤¬¤¤Ä¤¹¤®¤Æ¾å¼ê¤¯¥é¥¤¥ó¥È¥ì¡¼¥¹½ÐÍè¤Ê¤«¤Ã¤¿¤Î¤Ç¡¤¶Ê¤¬¤ë¤È¤¤Ë¥¿¥¤¥ä¤ËµÕ²óž¤ò²Ã¤¨¤¿¤Î¤ò¤³¤Î»þ¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹¤È¤·¤¿¡¥
void linetraceS() //´°Á´¤Ë¹õ¤¬jikan°Ê¾å¤À¤Ã¤¿¤é³°¤ì¤ë
{
long t0=0,t_black=0,t_max=jikan;
t0=CurrentTick();
while(t_black<t_max){ //t_black¤¬t_max¤ÎÃͤè¤êÂ礤¯¤Ê¤Ã¤¿¤é¥ë¡¼¥×¤«¤éÈ´¤±¤ë
if(SENSOR_3>white){ //´°Á´¤ËÇò¤Î¤È¤
turnRRR; //¥¥Ä¤¤±¦¶Ê¤¬¤ê
} else if(SENSOR_3>white-5){ //Çò¤è¤ê¤Î³¥¿§¤Î¤È¤
turnRR; //±¦¶Ê¤¬¤ê
} else if(SENSOR_3>black+5){ //³¥¿§¤Î¤È¤
mae; //Á°¿Ê
} else if(SENSOR_3>black){ //¹õ´ó¤ê¤Î³¥¿§¤Î¤È¤
turnLL; //º¸¶Ê¤¬¤ê
} else{ //´°Á´¤Ë¹õ¤Î¤È¤
turnLLL; //¥¥Ä¤¤º¸¶Ê¤¬¤ê
t0=CurrentTick(); //¸½ºß»þ´Ö¤òt0¤È¤¹¤ë(»þ´Ö¤ò¬¤ê»Ï¤á¤ë)
until((SENSOR_3<black+5)&&(SENSOR_3>black));//¹õ´ó¤ê¤Î³¥¿§¤Ë¤Ê¤ë¤Þ¤Ç¬¤ê³¤±¤ë
t_black=CurrentTick()-t0; //¸½ºß»þ¹ï¤«¤ét0¤ÎÃͤò°ú¤¤¤¿¤â¤Î
}
Wait(step);
}
}
***¸òº¹ÅÀ¤òľ¿Ê¤·¤ÆÆÍÇˤ¹¤ë¥µ¥Ö¥ë¡¼¥Á¥ó [#o8048ad6]
¸òº¹ÅÀ¤Ç»ß¤Þ¤ê¡¥¤òÆÍÇˤ¹¤ë¤¿¤á¤Ë¡¤¤Þ¤ºÇò¤è¤ê¤Î³¥¿§¤Ë¤Ê¤ë¤Þ¤ÇÁ°¿Ê¤·¤½¤Î¸å¹õ´ó¤ê¤Î³¥¿§¤Ë¤Ê¤ë¤Þ¤Ç±¦¶Ê¤¬¤ê¤ò³¤±¤ë¤È¤¤¤¦¥×¥í¥°¥é¥à¤òÁȤó¤À¡¥
void crossline()
{
mae; //Á°¿Ê
until(SENSOR_3>white-5);//Çò¤è¤ê¤Î¥°¥ì¡¼¤Þ¤Ç
turnRR; //±¦¶Ê¤¬¤ê
until(SENSOR_3<black); //¹õ´ó¤ê¤Î¥°¥ì¡¼¤Þ¤Ç
}
***¸òº¹ÅÀ¤ò¶Ê¤¬¤ë¥µ¥Ö¥ë¡¼¥Á¥ó [#x185dbc5]
¡¦±¦¤Ë¶Ê¤¬¤ë¤È¤¤Î¥µ¥Ö¥ë¡¼¥Á¥ó
void Rcurve()
{
turnRRR; //¥¥Ä¤¤±¦¶Ê¤¬¤ê
until(SENSOR_3>white); //´°Á´¤ËÇò¤Ë¤Ê¤ë¤Þ¤Ç
}
¡¦º¸¤Ë¶Ê¤¬¤ë¤È¤¤Î¥µ¥Ö¥ë¡¼¥Á¥ó
void Lcurve()
{
curveL; //º¸¶Ê¤¬¤ê
until(SENSOR_3>white); //´°Á´¤ËÇò¤Ë¤Ê¤ë¤Þ¤Ç
}
***²óž¤¹¤ë¥µ¥Ö¥ë¡¼¥Á¥ó [#a4669234]
¥³¡¼¥¹¤ÎL¡¦L'¤ÎÃÏÅÀ¤Ë¤ª¤¤¤Æ¡¤¥Ü¡¼¥ë¤òÄϤó¤À¤¢¤ÈÆ»¤ò°ú¤ÊÖ¤¹ºÝ²óž¤¹¤ë¥µ¥Ö¥ë¡¼¥Á¥ó
void kaiten()
{
mae;
Wait(900);
OnFwd(OUT_C,20);OnRev(OUT_B,10);
until(SENSOR_3<black+5);
}
***¥Ü¡¼¥ë¤òÄϤࡦΥ¤¹ºÝ¤Î¥µ¥Ö¥ë¡¼¥Á¥ó¡Ê¥Þ¥¹¥¿¡¼Â¦¡Ë [#w18c5592]
¡¦¥Ü¡¼¥ë¤òÄϤàºÝ¤Î¥µ¥Ö¥ë¡¼¥Á¥ó
ÄϤàºÝ¥Þ¥¹¥¿¡¼¤È¥¹¥ì¥¤¥Ö¤Ç¤ä¤ê¼è¤ê¤¹¤ë¿®¹æ¤òmsg1¤È¤·¤Æ¤½¤³¤ËSIGNAL1(¤³¤³¤Ç¤Ï¥Ü¡¼¥ëÁ°¤Ë¤Ä¤¤¤¿¤³¤È¤òÃΤ餻¤ë¿®¹æ),SIGNAL2(¤³¤³¤Ç¤ÏÄϤàÆ°ºî¤¬½ªÎ»¤·¤¿¤³¤È¤òÃΤ餻¤ë¿®¹æ)¤òÂåÆþ¤·¡¤¤½¤ì¤òMAILBOX1¤òÄ̤·¤Æ¤ä¤ê¼è¤ê¤·¤Æ¤¤¤ë¡¥
void catch()
{
int msg1; //msg1¤òÄêµÁ¤¹¤ë
SendRemoteNumber(CONN,MAILBOX1,SIGNAL1); //CONN(¤³¤³¤Ç¤Ï¥¹¥ì¥¤¥Ö£±)¤ËMAILX1¤òÄÌ
¤·¤ÆSIGNAL1(¤³¤³¤Ç¤Ï¥Ü¡¼¥ëÁ°¤Ë¤Ä¤¤¤¿
¤³¤È¤òÃΤ餻¤ë¿®¹æ)¤òÁ÷¿®¤¹¤ë
while(msg1!=SIGNAL2){ //msg1¤ÎÃͤ¬SIGNAL2(¤³¤³¤Ç¤ÏÄϤàÆ°ºî¤¬
½ªÎ»¤·¤¿¤³¤È¤òÃΤ餻¤ë¿®¹æ)¤Ë¤Ê¤Ã¤¿
¤é¥ë¡¼¥×¤òÈ´¤±¤ë
ReceiveRemoteNumber(MAILBOX1,true,msg1); //MAILBOX1¤Ç¥¹¥ì¥¤¥Ö¤«¤é¿®¹æ¤ò¼õ¤±¼è¤ë
Off(OUT_BC); //¥ë¡¼¥×¤Î´Ö¡ÊÄϤàÆ°ºî¤¬½ªÎ»¤·¤¿¤³¤È¤ò
ÃΤ餻¤ë¿®¹æ¤¬¥¹¥ì¥¤¥Ö¤«¤éµ¢¤Ã¤Æ¤¯¤ë
¤Þ¤Ç¡Ëµ¡ÂΤòÄä»ß¤µ¤»¤ë
}
¡¦¥Ü¡¼¥ë¤òÎ¥¤¹ºÝ¤Î¥µ¥Ö¥ë¡¼¥Á¥ó
Î¥¤¹ºÝ¥Þ¥¹¥¿¡¼¤È¥¹¥ì¥¤¥Ö¤Ç¤ä¤ê¼è¤ê¤¹¤ë¿®¹æ¤òmsg2¤È¤·¤Æ¤½¤³¤ËSIGNAL3(¤³¤³¤Ç¤Ï¥´¡¼¥ë¤ÎÈ¢¤ÎÁ°¤Ë¤Ä¤¤¤¿¤³¤È¤òÃΤ餻¤ë¿®¹æ),SIGNAL4(¤³¤³¤Ç¤Ï¥Ü¡¼¥ë¤òÎ¥¤¹Æ°ºî¤¬½ªÎ»¤·¤¿¤³¤È¤òÃΤ餻¤ë¿®¹æ)¤òÂåÆþ¤·¡¤¤½¤ì¤òMAILBOX2¤òÄ̤·¤Æ¤ä¤ê¼è¤ê¤·¤Æ¤¤¤ë¡¥
void release()
{
int msg2; //msg2¤òÄêµÁ¤¹¤ë
SendRemoteNumber(CONN,MAILBOX2,SIGNAL3); //¥¹¥ì¥¤¥Ö¤ËMAILBOX2¤òÄ̤·¤ÆSIGNAL3(¤³
¤³¤Ç¤Ï¥´¡¼¥ë¤ÎÈ¢¤ÎÁ°¤Ë¤Ä¤¤¤¿¤³¤È¤òÃÎ
¤é¤»¤ë¿®¹æ)¤òÁ÷¿®¤¹¤ë
while(msg2!=SIGNAL4){ //msg2¤ÎÃͤ¬SIGNAL4(¤³¤³¤Ç¤Ï¥Ü¡¼¥ë¤òÎ¥
¤¹Æ°ºî¤¬½ªÎ»¤·¤¿¤³¤È¤òÃΤ餻¤ë¿®¹æ)¤Ë
¤Ê¤Ã¤¿¤é¥ë¡¼¥×¤òÈ´¤±¤ë
ReceiveRemoteNumber(MAILBOX2,true,msg2);//MAILBOX2¤Ç¥¹¥ì¥¤¥Ö¤«¤é¿®¹æ¤ò¼õ¤±¼è¤ë
Off(OUT_BC); //¥ë¡¼¥×¤Î´Ö¡ÊÎ¥¤¹Æ°ºî¤¬½ªÎ»¤·¤¿¤³¤È¤ò
ÃΤ餻¤ë¿®¹æ¤¬¥¹¥ì¥¤¥Ö¤«¤éµ¢¤Ã¤Æ¤¯¤ë
¤Þ¤Ç¡Ëµ¡ÂΤòÄä»ß¤µ¤»¤ë
}
}
*¥×¥í¥°¥é¥àÁ´ÂÎ [#f6a316a5]
º£²ó¤Î²ÝÂê¤Ç¤Ï¡¤È¢¤ÎÃæ¤Î¥Ü¡¼¥ë¤ò1¤Ä¡¤L¡¤L'¤ÎÃÏÅÀ¤Î¡¡¥Ü¡¼¥ë¤ò¤½¤ì¤¾¤ì¼è¤ë¤³¤È¤Ë¤·¤¿¡¥
task main()
{
SetSensorLight(S3);
mae; //Á°¿Ê
Wait(300);
linetraceC(); //M to K
Lcurve(); //È¢¤ÎÊý¤Ë¸þ¤¤òÊѤ¨¤ë
linetraceC(); //K to J
OnRev(OUT_C,speedL); //¸þ¤¤ÎÈùÄ´À°
Wait(500); //¾å¤ËƱ¤¸
catch(); //¥Ü¡¼¥ë¤òÄϤà
linetraceC(); //J to I
Lcurve(); //I¤ÎÊý¤Ë¸þ¤¤òÊѤ¨¤ë
linetraceC(); //I to C
Lcurve(); //B¤ÎÊý¤Ë¸þ¤¤òÊѤ¨¤ë
linetraceS(); //C to B
Rcurve(); //Ãæ±û¤ÎÀþ¤ÎÊý¤Ë¸þ¤¤òÊѤ¨¤ë
linetraceC(); //B to Ãæ±û¤ÎÀþ
Rcurve(); //A'¤ÎÊý¤Ë¸þ¤¤òÊѤ¨¤ë
linetraceS(); //to A'
Lcurve(); //B'¤ÎÊý¤Ë¸þ¤¤òÊѤ¨¤ë
linetraceC(); //to B'
Lcurve(); //C'¤ÎÊý¤Ë¸þ¤¤òÊѤ¨¤ë
linetraceS(); //B' to D'
Rcurve(); //H'¤ÎÊý¤Ë¸þ¤¤òÊѤ¨¤ë
linetraceC(); //D' to H'
OnRev(OUT_C,speedL); //¸þ¤¤ÎÈùÄ´À°
Wait(500); //¾å¤ËƱ¤¸
release(); //¥Ü¡¼¥ë¤ò¤Ï¤Ê¤¹
ushiro;//£²¤ÄÌܤΥܡ¼¥ë
Wait(2000);
OnFwd(OUT_C,20);OnRev(OUT_B,10);
until(SENSOR_3>white-5);
linetraceC(); //C' to D'
crossline(); //¸òº¹ÅÀ¤òÅϤë
linetraceS();//B' to C'
Lcurve(); //º¸¤Ë¶Ê¤¬¤ë
linetraceS();//M' to B'
Rcurve();//±¦¤Ë¶Ê¤¬¤ë
linetraceS();//M' to B'
Lcurve(); //¸þ¤¤òÊѤ¨¤ë
linetraceC();// K' to M'
crossline();//¸òº¹ÅÀ¤òÅϤë
OnFwd(OUT_BC,30);Wait(2900);Off(OUT_BC);//L' to K'
catch();//L'¤Î¥Ü¡¼¥ë¤òÄϤà
OnRev(OUT_BC,30);Wait(2900);Off(OUT_BC);//K' to L'
Lcurve();//J'¤ÎÊý¤Ë¸þ¤¤òÊѤ¨¤ë
linetraceS();//J' to K'
release();//L'¤Î¥Ü¡¼¥ë¤òÎ¥¤¹
ushiro;//£³¤ÄÌܤΥܡ¼¥ë
Wait(2000);
OnFwd(OUT_C,20);OnRev(OUT_B,10);
until(SENSOR_3>white-5);
linetraceC();//M' to K'
Rcurve();//¸þ¤¤òÊѤ¨¤ë
linetraceS();//B' to M'
Rcurve();//¸þ¤¤òÊѤ¨¤ë
linetraceS();//B' to M'
Lcurve();//¸þ¤¤òÊѤ¨¤ë
linetraceS();//B' to M'
crossline();//¸òº¹ÅÀ¤òÅϤë
linetraceS();//»æ¤Î¶³¦¤Þ¤Ç¿Ê¤à
Lcurve();//¸þ¤¤òÊѤ¨¤ë
linetraceC();//to B
crossline(); // K
linetraceS(); //K to L
Wait(2900);
catch(); //L¤Ç¥Ü¡¼¥ë¤òÄϤà
kaiten();//L¤Ç²óž
linetraceC();//L to M
Rcurve();//M
linetraceS();//toB¤ÈM¤Î´Ö¤Î³Ñ
Lcurve();//B¤ÈM¤Î´Ö¤Î³Ñ
linetraceS(); //toÆóËç¤Î´Ö¤ÎÀþ¤Ëº¹¤·³Ý¤«¤ë¤È¤³¤í
Rcurve();//ÆóËç¤Î´Ö¤ÎÀþ¤Ëº¹¤·³Ý¤«¤ë¤È¤³¤í
linetraceS();//´Ö¤ÎÀþ¾å
Lcurve();//´Ö¤ÎÀ褫¤éº¸¤Î¥³¡¼¥È¤ËÈ´¤±¤ë¤È¤³¤í
linetraceS();//toB
Lcurve();//B'
linetraceS();//B'toD'
Rcurve(); //D'
linetraceS(); //D'toH'
release();//H'¤Ç¥Ü¡¼¥ë¤òÎ¥¤¹
}
**¥¹¥ì¥¤¥Ö¦¤Î¥×¥í¥°¥é¥à [#l93ce642]
***ÄêµÁ [#b6b83cff]
#define SIGNAL1 11 //¥Þ¥¹¥¿¡¼¤È¤ä¤ê¼è¤ê¤¹¤ë¿®¹æ¤ÎÈÖ¹æ
#define SIGNAL2 12 //Ʊ¾å
#define SIGNAL3 13 //Ʊ¾å
#define SIGNAL4 14 //Ʊ¾å
#define tukamu OnRev(OUT_A,20);Wait(800);//¥Ü¡¼¥ë¤òÄϤà
#define hanasu OnFwd(OUT_A,20);Wait(300);//¥Ü¡¼¥ë¤òÍî¤È¤¹
#define up OnFwd(OUT_B,50);Wait(1800);//¥¢¡¼¥à¤ò¾å¤²¤ë
#define down OnRev(OUT_B,50);Wait(900);//¥¢¡¼¥à¤ò²¼¤í¤¹
***¥×¥í¥°¥é¥àÁ´ÂÎ [#ie6ec132]
task main ()
{
int msg1; // ¼õ¤±¼è¤Ã¤¿Ãͤò³ÊǼ¤¹¤ëÊÑ¿ô
int msg2; // Ʊ¾å
while(true){
ReceiveRemoteNumber(MAILBOX1,true,msg1);//MAILBOX1¤Ç¼õ¤±¼è¤Ã¤¿¿®¹æ¤òmsg1¤Ë³ÊǼ
ReceiveRemoteNumber(MAILBOX2,true,msg2);//MAILBOX2¤Ç¼õ¤±¼è¤Ã¤¿¿®¹æ¤òmsg2¤Ë³ÊǼ
if(msg1==SIGNAL1){ //msg1¤ËSIGNAL1¤¬Æþ¤Ã¤Æ¤¤¤¿¤Ê¤é
down;
tukamu;
up;
Off(OUT_AB); //¥â¡¼¥¿¡¼¤òÄä»ß¤µ¤»¤ë
SendResponseNumber(MAILBOX1,SIGNAL2);//¥Þ¥¹¥¿¡¼Â¦¤ÎMAILBOX1¤ËSIGNAL2¤òÁ÷¤ë
}
if(msg2==SIGNAL3){ //msg2¤ËSIGNAL3¤¬Æþ¤Ã¤Æ¤¤¤¿¤Ê¤é
hanasu;
Off(OUT_A); //¥â¡¼¥¿¡¼¤òÄä»ß
SendResponseNumber(MAILBOX2,SIGNAL4);//¥Þ¥¹¥¿¡¼Â¦¤ÎMAILBOX2¤ËSIGNAL4¤òÁ÷¤ë
}
}
}
*¤Þ¤È¤á [#n4876335]
·ëÏÀ¤«¤é¤¤¤Ã¤Æ¡¤¥í¥Ü¥Ã¥È¤Ï¤¦¤Þ¤¯Æ°¤«¤Ê¤«¤Ã¤¿¡¥
¹Í¤¨¤é¤ì¤ëÍýͳ¤È¤·¤Æ¤Ï¡¤
¡¦»î¹Ô²ó¿ô¤¬Â¤ê¤Ê¤«¤Ã¤¿
¡¦¥×¥í¥°¥é¥à¤ò¼êʬ¤±¤·¤Æºî¤Ã¤¿ºÝ¤Ë¡¤°Õ»×ÁÂÄ̤¬½ÐÍè¤Æ¤¤¤Ê¤«¤Ã¤¿
¤Ê¤É¤¬¤¢¤²¤é¤ì¤ë¡¥
¥í¥Ü¥Ã¥È¼«ÂΤϤ«¤Ê¤ê¤Î¼«¿®ºî¤À¤Ã¤¿¤¿¤á¤Ë»ÄÇ°¤À¤Ã¤¿¡¥
½ªÎ»¹Ô:
[[2019a/Member]]
*²ÝÂê¤Ë¤Ä¤¤¤Æ [#j84d3ca0]
¾Ü¤·¤¯¤Ï¥ê¥ó¥¯¤ò»²¾È2019a/Mission3
*¥í¥Ü¥Ã¥È¤Ë¤Ä¤¤¤Æ [#facc07ea]
º£²ó¤Î¥í¥Ü¥Ã¥È¤Ï¡¤£²¤Ä¤ÎNXT¤òÄÌ¿®¤µ¤»¤ë¤³¤È¤Ç¥â¡¼¥¿¡¼¤ò£´¤Ä»ÈÍѤǤ¤ë¤è¤¦¤Ë¤·¡¤£²¤Ä¤ò°ÜÆ°ÍÑ¡¤£²¤Ä¤ò¥Ü¡¼¥ë¤ò¥¥ã¥Ã¥Á¤¹¤ë¥¢¡¼¥àÍѤȤ¹¤ë¤³¤È¤Ç¥¹¥à¡¼¥º¤ËÆ°¤¯¤è¤¦¤Ë¹©Éפ·¤¿¡¥
Á´Âοޤϰʲ¼¤ÎÄ̤ê
&ref(2019a/Member/Asahi/Mission3/IMG_1866.JPG,50%,¡µ¡¹½);
&ref(2019a/Member/Asahi/Mission3/IMG_1864.JPG,50%,¡µ¡¹½);
**¥»¥ó¥µ¡¼¤Î¼è¤êÉÕ¤±°ÌÃ֤ˤĤ¤¤Æ [#sb6dc43f]
¥»¥ó¥µ¡¼¤ò¼è¤êÉÕ¤±¤ëºÝ¡¤¥¿¥¤¥ä¤«¤éÎ¥¤ì¤¹¤®¤Ê¤¤¤è¤¦¤Ë¤·¤¿¡¥¼´¤«¤é±ó¤¹¤®¤ë¤È¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¹Ô¤¦ºÝ¡¤»Ù¾ã¤¬½Ð¤ë¤«¤é¤À¡¥¤µ¤é¤Ë¡¤¥»¥ó¥µ¡¼¤¬¤·¤Ã¤«¤ê¤Èǧ¼±¤Ç¤¤ë¤è¤¦¤Ë¿âľ¤Ë¼è¤êÉÕ¤±¤¿¡¥
**¥¢¡¼¥à¤Ë¤Ä¤¤¤Æ [#y1753b87]
º£²ó¤Ï¥Ü¡¼¥ë¤ò¤Ä¤«¤à¤¿¤á¤ÎÊýË¡¤È¤·¤Æ¡¤¥¢¡¼¥à¤òºÎÍѤ·¤¿¡¥£±¤Ä¤Î¥â¡¼¥¿¡¼¤ò¥¢¡¼¥à¤òÊĤ¸¤¿¤ê¡¤³«¤¤¤¿¤ê¤¹¤ë¤³¤È¤Ë»È¤¤¡¤¤â¤¦°ì¤Ä¤Î¥â¡¼¥¿¡¼¤Ç¥¢¡¼¥à¤Î¾å²¼¤òÄ´Àᤷ¤¿¡¥¤³¤Î»þ¡¤Â礤¤¥®¥¢¤È¾®¤µ¤¤¥®¥¢¤òÁȤ߹ç¤ï¤»¤ë¤³¤È¤Ë¤è¤Ã¤Æ¥¢¡¼¥à¤ò¾å¤²¤¿ºÝ¡¤¥¢¡¼¥à¼«ÂΤνŤµ¤Ç²¼¤¬¤ë¤È¤¤¤¦¤³¤È¤òËɤ¤¤À¡¥
*¥×¥í¥°¥é¥à¤Ë¤Ä¤¤¤Æ [#i014699a]
¤³¤Î¥í¥Ü¥Ã¥È¤Ï¡¤£²¤Ä¤ÎNXT¡Ê¥Þ¥¹¥¿¡¼Â¦¤È¥¹¥ì¥¤¥Ö¦¡Ë¤ÇÄÌ¿®¤ò¹Ô¤¤¡¤¥Þ¥¹¥¿¡¼Â¦¤Ïµ¡ÂΤΰÜÆ°¡¤¥¹¥ì¥¤¥Ö¦¤Ï¥¢¡¼¥à¤Î³«ÊÄ¡¦¾å²¼¤ò¤½¤ì¤¾¤ìôÅö¤·¤Æ¤¤¤ë¡¥
**¥Þ¥¹¥¿¡¼¤Î¥×¥í¥°¥é¥à [#j6999681]
***ÄêµÁ [#tbc2f6b5]
¤Þ¤º¡¤°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤·¤¿¡¥
#define black 30 //´°Á´¤Ë¹õ¤Î¤È¤¤ÎÃÍ
#define white 50 //´°Á´¤ËÇò¤Î¤È¤¤ÎÃÍ
#define speedH 60 //®¤¤¥¹¥Ô¡¼¥É
#define speedL 30 //ÃÙ¤¤¥¹¥Ô¡¼¥É
#define speedM 20 //µÕ²óž¤È¤¤Î¥¹¥Ô¡¼¥É
#define mae OnFwd(OUT_BC,speedH); //Á°¿Ê¤ÎÆ°ºî
#define ushiro OnRev(OUT_BC,speedH); //¸åÂà¤ÎÆ°ºî
#define turnRRR OnFwd(OUT_C,speedH);OnRev(OUT_B,speedM); //°ìÈÖ¥¥Ä¤¤±¦¶Ê¤¬¤ê
#define turnLLL OnFwd(OUT_C,speedH);OnRev(OUT_C,speedM); //°ìÈÖ¥¥Ä¤¤º¸¶Ê¤¬¤ê
#define turnRR OnFwd(OUT_C,speedH);Off(OUT_B); //±¦¶Ê¤¬¤ê
#define turnLL OnFwd(OUT_B,speedH);Off(OUT_C); //º¸¶Ê¤¬¤ê
#define turnR OnFwd(OUT_C,speedH);OnFwd(OUT_B,speedL); //´Ë¤á¤Î±¦¶Ê¤¬¤ê
#define turnL OnFwd(OUT_B,speedH);OnFwd(OUT_C,speedL); //´Ë¤á¤Îº¸¶Ê¤¬¤ê
#define step 1 //¥é¥¤¥ó¥È¥ì¡¼¥¹¤ÎÆ°ºî»þ´Ö
#define jikan 100 //´°Á´¤Ë¹õ¤Çµï³¤±¤é¤ì¤ë»þ´Ö¤ÎºÇÂçÃ͡ʤ·¤¤¤ÃÍ¡Ë
#define teishi Off(OUT_BC);Wait(300); //°ì»þÄä»ß
#define CONN 1 //¥¹¥ì¥¤¥Ö¤ÎÈÖ¹æ
#define SIGNAL1 11 //¥¹¥ì¥¤¥Ö¤ËÁ÷¤ë¿®¹æ¤ÎÈÖ¹æ
#define SIGNAL2 12 //Ʊ¾å
#define SIGNAL3 13 //Ʊ¾å
#define SIGNAL4 14 //Ʊ¾å
#define curveL OnFwd(OUT_B,20);OnRev(OUT_C,10); //º¸¤Ë²óž¤·¤Æ¥«¡¼¥Ö¤¹¤ëÆ°ºî
***ľÀþ¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹¡Ê¸òº¹ÅÀ¤Ëº¹¤·³Ý¤«¤ë¤È¥ë¡¼¥×¤«¤éÈ´¤±¤ë¡Ë¤Î¥µ¥Ö¥ë¡¼¥Á¥ó [#g929b9c4]
¸÷¥»¥ó¥µ¡¼¤¬»ØÄꤷ¤¿»þ´Ö°Ê¾å¡¤¹õ¤È¬Äꤷ¤¿¤é»ß¤Þ¤ë¤è¤¦¤Ë¥×¥í¥°¥é¥à¤µ¤ì¤Æ¤¤¤ë¡¥
void linetraceS() //´°Á´¤Ë¹õ¤¬jikan°Ê¾å¤À¤Ã¤¿¤é³°¤ì¤ë
{
long t0=0,t_black=0,t_max=jikan;
t0=CurrentTick();
while(t_black<t_max){ //t_black¤¬t_max¤ÎÃͤè¤êÂ礤¯¤Ê¤Ã¤¿¤é¥ë¡¼¥×¤«¤éÈ´¤±¤ë
if(SENSOR_3>white){ //´°Á´¤ËÇò¤Î¤È¤
turnRR; //±¦¶Ê¤¬¤ê
} else if(SENSOR_3>white-5){ //Çò¤è¤ê¤Î³¥¿§¤Î¤È¤
turnR; //´Ë¤¤±¦¶Ê¤¬¤ê
} else if(SENSOR_3>black+5){ //³¥¿§¤Î¤È¤
mae; //Á°¿Ê
} else if(SENSOR_3>black){ //¹õ´ó¤ê¤Î³¥¿§¤Î¤È¤
turnL; //´Ë¤¤º¸¶Ê¤¬¤ê
} else{ //´°Á´¤Ë¹õ¤Î¤È¤
turnLL; //º¸¶Ê¤¬¤ê
t0=CurrentTick(); //¸½ºß»þ´Ö¤òt0¤È¤¹¤ë(»þ´Ö¤ò¬¤ê»Ï¤á¤ë)
until((SENSOR_3<black+5)&&(SENSOR_3>black));//¹õ´ó¤ê¤Î³¥¿§¤Ë¤Ê¤ë¤Þ¤Ç¬¤ê³¤±¤ë
t_black=CurrentTick()-t0; //¸½ºß»þ¹ï¤«¤ét0¤ÎÃͤò°ú¤¤¤¿¤â¤Î
}
Wait(step);
}
}
***¥«¡¼¥Ö¤Î¤È¤¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹¡Ê¸òº¹ÅÀ¤Ëº¹¤·³Ý¤«¤ë¤È¥ë¡¼¥×¤«¤éÈ´¤±¤ë¡Ë¤Î¥µ¥Ö¥ë¡¼¥Á¥ó [#zf0d28b1]
´ðËÜŪ¤Ë¤ÏľÀþ¤Î»þ¤Î¥µ¥Ö¥ë¡¼¥Á¥ó¤È»÷¤Æ¤¤¤ë¤¬¡¤¥«¡¼¥Ö¤Î»þ¤ËľÀþ¤Î¥µ¥Ö¥ë¡¼¥Á¥ó¤Ç¹Ô¤¦¤È¶Ê¤¬¤ë¤Î¤¬¤¤Ä¤¹¤®¤Æ¾å¼ê¤¯¥é¥¤¥ó¥È¥ì¡¼¥¹½ÐÍè¤Ê¤«¤Ã¤¿¤Î¤Ç¡¤¶Ê¤¬¤ë¤È¤¤Ë¥¿¥¤¥ä¤ËµÕ²óž¤ò²Ã¤¨¤¿¤Î¤ò¤³¤Î»þ¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹¤È¤·¤¿¡¥
void linetraceS() //´°Á´¤Ë¹õ¤¬jikan°Ê¾å¤À¤Ã¤¿¤é³°¤ì¤ë
{
long t0=0,t_black=0,t_max=jikan;
t0=CurrentTick();
while(t_black<t_max){ //t_black¤¬t_max¤ÎÃͤè¤êÂ礤¯¤Ê¤Ã¤¿¤é¥ë¡¼¥×¤«¤éÈ´¤±¤ë
if(SENSOR_3>white){ //´°Á´¤ËÇò¤Î¤È¤
turnRRR; //¥¥Ä¤¤±¦¶Ê¤¬¤ê
} else if(SENSOR_3>white-5){ //Çò¤è¤ê¤Î³¥¿§¤Î¤È¤
turnRR; //±¦¶Ê¤¬¤ê
} else if(SENSOR_3>black+5){ //³¥¿§¤Î¤È¤
mae; //Á°¿Ê
} else if(SENSOR_3>black){ //¹õ´ó¤ê¤Î³¥¿§¤Î¤È¤
turnLL; //º¸¶Ê¤¬¤ê
} else{ //´°Á´¤Ë¹õ¤Î¤È¤
turnLLL; //¥¥Ä¤¤º¸¶Ê¤¬¤ê
t0=CurrentTick(); //¸½ºß»þ´Ö¤òt0¤È¤¹¤ë(»þ´Ö¤ò¬¤ê»Ï¤á¤ë)
until((SENSOR_3<black+5)&&(SENSOR_3>black));//¹õ´ó¤ê¤Î³¥¿§¤Ë¤Ê¤ë¤Þ¤Ç¬¤ê³¤±¤ë
t_black=CurrentTick()-t0; //¸½ºß»þ¹ï¤«¤ét0¤ÎÃͤò°ú¤¤¤¿¤â¤Î
}
Wait(step);
}
}
***¸òº¹ÅÀ¤òľ¿Ê¤·¤ÆÆÍÇˤ¹¤ë¥µ¥Ö¥ë¡¼¥Á¥ó [#o8048ad6]
¸òº¹ÅÀ¤Ç»ß¤Þ¤ê¡¥¤òÆÍÇˤ¹¤ë¤¿¤á¤Ë¡¤¤Þ¤ºÇò¤è¤ê¤Î³¥¿§¤Ë¤Ê¤ë¤Þ¤ÇÁ°¿Ê¤·¤½¤Î¸å¹õ´ó¤ê¤Î³¥¿§¤Ë¤Ê¤ë¤Þ¤Ç±¦¶Ê¤¬¤ê¤ò³¤±¤ë¤È¤¤¤¦¥×¥í¥°¥é¥à¤òÁȤó¤À¡¥
void crossline()
{
mae; //Á°¿Ê
until(SENSOR_3>white-5);//Çò¤è¤ê¤Î¥°¥ì¡¼¤Þ¤Ç
turnRR; //±¦¶Ê¤¬¤ê
until(SENSOR_3<black); //¹õ´ó¤ê¤Î¥°¥ì¡¼¤Þ¤Ç
}
***¸òº¹ÅÀ¤ò¶Ê¤¬¤ë¥µ¥Ö¥ë¡¼¥Á¥ó [#x185dbc5]
¡¦±¦¤Ë¶Ê¤¬¤ë¤È¤¤Î¥µ¥Ö¥ë¡¼¥Á¥ó
void Rcurve()
{
turnRRR; //¥¥Ä¤¤±¦¶Ê¤¬¤ê
until(SENSOR_3>white); //´°Á´¤ËÇò¤Ë¤Ê¤ë¤Þ¤Ç
}
¡¦º¸¤Ë¶Ê¤¬¤ë¤È¤¤Î¥µ¥Ö¥ë¡¼¥Á¥ó
void Lcurve()
{
curveL; //º¸¶Ê¤¬¤ê
until(SENSOR_3>white); //´°Á´¤ËÇò¤Ë¤Ê¤ë¤Þ¤Ç
}
***²óž¤¹¤ë¥µ¥Ö¥ë¡¼¥Á¥ó [#a4669234]
¥³¡¼¥¹¤ÎL¡¦L'¤ÎÃÏÅÀ¤Ë¤ª¤¤¤Æ¡¤¥Ü¡¼¥ë¤òÄϤó¤À¤¢¤ÈÆ»¤ò°ú¤ÊÖ¤¹ºÝ²óž¤¹¤ë¥µ¥Ö¥ë¡¼¥Á¥ó
void kaiten()
{
mae;
Wait(900);
OnFwd(OUT_C,20);OnRev(OUT_B,10);
until(SENSOR_3<black+5);
}
***¥Ü¡¼¥ë¤òÄϤࡦΥ¤¹ºÝ¤Î¥µ¥Ö¥ë¡¼¥Á¥ó¡Ê¥Þ¥¹¥¿¡¼Â¦¡Ë [#w18c5592]
¡¦¥Ü¡¼¥ë¤òÄϤàºÝ¤Î¥µ¥Ö¥ë¡¼¥Á¥ó
ÄϤàºÝ¥Þ¥¹¥¿¡¼¤È¥¹¥ì¥¤¥Ö¤Ç¤ä¤ê¼è¤ê¤¹¤ë¿®¹æ¤òmsg1¤È¤·¤Æ¤½¤³¤ËSIGNAL1(¤³¤³¤Ç¤Ï¥Ü¡¼¥ëÁ°¤Ë¤Ä¤¤¤¿¤³¤È¤òÃΤ餻¤ë¿®¹æ),SIGNAL2(¤³¤³¤Ç¤ÏÄϤàÆ°ºî¤¬½ªÎ»¤·¤¿¤³¤È¤òÃΤ餻¤ë¿®¹æ)¤òÂåÆþ¤·¡¤¤½¤ì¤òMAILBOX1¤òÄ̤·¤Æ¤ä¤ê¼è¤ê¤·¤Æ¤¤¤ë¡¥
void catch()
{
int msg1; //msg1¤òÄêµÁ¤¹¤ë
SendRemoteNumber(CONN,MAILBOX1,SIGNAL1); //CONN(¤³¤³¤Ç¤Ï¥¹¥ì¥¤¥Ö£±)¤ËMAILX1¤òÄÌ
¤·¤ÆSIGNAL1(¤³¤³¤Ç¤Ï¥Ü¡¼¥ëÁ°¤Ë¤Ä¤¤¤¿
¤³¤È¤òÃΤ餻¤ë¿®¹æ)¤òÁ÷¿®¤¹¤ë
while(msg1!=SIGNAL2){ //msg1¤ÎÃͤ¬SIGNAL2(¤³¤³¤Ç¤ÏÄϤàÆ°ºî¤¬
½ªÎ»¤·¤¿¤³¤È¤òÃΤ餻¤ë¿®¹æ)¤Ë¤Ê¤Ã¤¿
¤é¥ë¡¼¥×¤òÈ´¤±¤ë
ReceiveRemoteNumber(MAILBOX1,true,msg1); //MAILBOX1¤Ç¥¹¥ì¥¤¥Ö¤«¤é¿®¹æ¤ò¼õ¤±¼è¤ë
Off(OUT_BC); //¥ë¡¼¥×¤Î´Ö¡ÊÄϤàÆ°ºî¤¬½ªÎ»¤·¤¿¤³¤È¤ò
ÃΤ餻¤ë¿®¹æ¤¬¥¹¥ì¥¤¥Ö¤«¤éµ¢¤Ã¤Æ¤¯¤ë
¤Þ¤Ç¡Ëµ¡ÂΤòÄä»ß¤µ¤»¤ë
}
¡¦¥Ü¡¼¥ë¤òÎ¥¤¹ºÝ¤Î¥µ¥Ö¥ë¡¼¥Á¥ó
Î¥¤¹ºÝ¥Þ¥¹¥¿¡¼¤È¥¹¥ì¥¤¥Ö¤Ç¤ä¤ê¼è¤ê¤¹¤ë¿®¹æ¤òmsg2¤È¤·¤Æ¤½¤³¤ËSIGNAL3(¤³¤³¤Ç¤Ï¥´¡¼¥ë¤ÎÈ¢¤ÎÁ°¤Ë¤Ä¤¤¤¿¤³¤È¤òÃΤ餻¤ë¿®¹æ),SIGNAL4(¤³¤³¤Ç¤Ï¥Ü¡¼¥ë¤òÎ¥¤¹Æ°ºî¤¬½ªÎ»¤·¤¿¤³¤È¤òÃΤ餻¤ë¿®¹æ)¤òÂåÆþ¤·¡¤¤½¤ì¤òMAILBOX2¤òÄ̤·¤Æ¤ä¤ê¼è¤ê¤·¤Æ¤¤¤ë¡¥
void release()
{
int msg2; //msg2¤òÄêµÁ¤¹¤ë
SendRemoteNumber(CONN,MAILBOX2,SIGNAL3); //¥¹¥ì¥¤¥Ö¤ËMAILBOX2¤òÄ̤·¤ÆSIGNAL3(¤³
¤³¤Ç¤Ï¥´¡¼¥ë¤ÎÈ¢¤ÎÁ°¤Ë¤Ä¤¤¤¿¤³¤È¤òÃÎ
¤é¤»¤ë¿®¹æ)¤òÁ÷¿®¤¹¤ë
while(msg2!=SIGNAL4){ //msg2¤ÎÃͤ¬SIGNAL4(¤³¤³¤Ç¤Ï¥Ü¡¼¥ë¤òÎ¥
¤¹Æ°ºî¤¬½ªÎ»¤·¤¿¤³¤È¤òÃΤ餻¤ë¿®¹æ)¤Ë
¤Ê¤Ã¤¿¤é¥ë¡¼¥×¤òÈ´¤±¤ë
ReceiveRemoteNumber(MAILBOX2,true,msg2);//MAILBOX2¤Ç¥¹¥ì¥¤¥Ö¤«¤é¿®¹æ¤ò¼õ¤±¼è¤ë
Off(OUT_BC); //¥ë¡¼¥×¤Î´Ö¡ÊÎ¥¤¹Æ°ºî¤¬½ªÎ»¤·¤¿¤³¤È¤ò
ÃΤ餻¤ë¿®¹æ¤¬¥¹¥ì¥¤¥Ö¤«¤éµ¢¤Ã¤Æ¤¯¤ë
¤Þ¤Ç¡Ëµ¡ÂΤòÄä»ß¤µ¤»¤ë
}
}
*¥×¥í¥°¥é¥àÁ´ÂÎ [#f6a316a5]
º£²ó¤Î²ÝÂê¤Ç¤Ï¡¤È¢¤ÎÃæ¤Î¥Ü¡¼¥ë¤ò1¤Ä¡¤L¡¤L'¤ÎÃÏÅÀ¤Î¡¡¥Ü¡¼¥ë¤ò¤½¤ì¤¾¤ì¼è¤ë¤³¤È¤Ë¤·¤¿¡¥
task main()
{
SetSensorLight(S3);
mae; //Á°¿Ê
Wait(300);
linetraceC(); //M to K
Lcurve(); //È¢¤ÎÊý¤Ë¸þ¤¤òÊѤ¨¤ë
linetraceC(); //K to J
OnRev(OUT_C,speedL); //¸þ¤¤ÎÈùÄ´À°
Wait(500); //¾å¤ËƱ¤¸
catch(); //¥Ü¡¼¥ë¤òÄϤà
linetraceC(); //J to I
Lcurve(); //I¤ÎÊý¤Ë¸þ¤¤òÊѤ¨¤ë
linetraceC(); //I to C
Lcurve(); //B¤ÎÊý¤Ë¸þ¤¤òÊѤ¨¤ë
linetraceS(); //C to B
Rcurve(); //Ãæ±û¤ÎÀþ¤ÎÊý¤Ë¸þ¤¤òÊѤ¨¤ë
linetraceC(); //B to Ãæ±û¤ÎÀþ
Rcurve(); //A'¤ÎÊý¤Ë¸þ¤¤òÊѤ¨¤ë
linetraceS(); //to A'
Lcurve(); //B'¤ÎÊý¤Ë¸þ¤¤òÊѤ¨¤ë
linetraceC(); //to B'
Lcurve(); //C'¤ÎÊý¤Ë¸þ¤¤òÊѤ¨¤ë
linetraceS(); //B' to D'
Rcurve(); //H'¤ÎÊý¤Ë¸þ¤¤òÊѤ¨¤ë
linetraceC(); //D' to H'
OnRev(OUT_C,speedL); //¸þ¤¤ÎÈùÄ´À°
Wait(500); //¾å¤ËƱ¤¸
release(); //¥Ü¡¼¥ë¤ò¤Ï¤Ê¤¹
ushiro;//£²¤ÄÌܤΥܡ¼¥ë
Wait(2000);
OnFwd(OUT_C,20);OnRev(OUT_B,10);
until(SENSOR_3>white-5);
linetraceC(); //C' to D'
crossline(); //¸òº¹ÅÀ¤òÅϤë
linetraceS();//B' to C'
Lcurve(); //º¸¤Ë¶Ê¤¬¤ë
linetraceS();//M' to B'
Rcurve();//±¦¤Ë¶Ê¤¬¤ë
linetraceS();//M' to B'
Lcurve(); //¸þ¤¤òÊѤ¨¤ë
linetraceC();// K' to M'
crossline();//¸òº¹ÅÀ¤òÅϤë
OnFwd(OUT_BC,30);Wait(2900);Off(OUT_BC);//L' to K'
catch();//L'¤Î¥Ü¡¼¥ë¤òÄϤà
OnRev(OUT_BC,30);Wait(2900);Off(OUT_BC);//K' to L'
Lcurve();//J'¤ÎÊý¤Ë¸þ¤¤òÊѤ¨¤ë
linetraceS();//J' to K'
release();//L'¤Î¥Ü¡¼¥ë¤òÎ¥¤¹
ushiro;//£³¤ÄÌܤΥܡ¼¥ë
Wait(2000);
OnFwd(OUT_C,20);OnRev(OUT_B,10);
until(SENSOR_3>white-5);
linetraceC();//M' to K'
Rcurve();//¸þ¤¤òÊѤ¨¤ë
linetraceS();//B' to M'
Rcurve();//¸þ¤¤òÊѤ¨¤ë
linetraceS();//B' to M'
Lcurve();//¸þ¤¤òÊѤ¨¤ë
linetraceS();//B' to M'
crossline();//¸òº¹ÅÀ¤òÅϤë
linetraceS();//»æ¤Î¶³¦¤Þ¤Ç¿Ê¤à
Lcurve();//¸þ¤¤òÊѤ¨¤ë
linetraceC();//to B
crossline(); // K
linetraceS(); //K to L
Wait(2900);
catch(); //L¤Ç¥Ü¡¼¥ë¤òÄϤà
kaiten();//L¤Ç²óž
linetraceC();//L to M
Rcurve();//M
linetraceS();//toB¤ÈM¤Î´Ö¤Î³Ñ
Lcurve();//B¤ÈM¤Î´Ö¤Î³Ñ
linetraceS(); //toÆóËç¤Î´Ö¤ÎÀþ¤Ëº¹¤·³Ý¤«¤ë¤È¤³¤í
Rcurve();//ÆóËç¤Î´Ö¤ÎÀþ¤Ëº¹¤·³Ý¤«¤ë¤È¤³¤í
linetraceS();//´Ö¤ÎÀþ¾å
Lcurve();//´Ö¤ÎÀ褫¤éº¸¤Î¥³¡¼¥È¤ËÈ´¤±¤ë¤È¤³¤í
linetraceS();//toB
Lcurve();//B'
linetraceS();//B'toD'
Rcurve(); //D'
linetraceS(); //D'toH'
release();//H'¤Ç¥Ü¡¼¥ë¤òÎ¥¤¹
}
**¥¹¥ì¥¤¥Ö¦¤Î¥×¥í¥°¥é¥à [#l93ce642]
***ÄêµÁ [#b6b83cff]
#define SIGNAL1 11 //¥Þ¥¹¥¿¡¼¤È¤ä¤ê¼è¤ê¤¹¤ë¿®¹æ¤ÎÈÖ¹æ
#define SIGNAL2 12 //Ʊ¾å
#define SIGNAL3 13 //Ʊ¾å
#define SIGNAL4 14 //Ʊ¾å
#define tukamu OnRev(OUT_A,20);Wait(800);//¥Ü¡¼¥ë¤òÄϤà
#define hanasu OnFwd(OUT_A,20);Wait(300);//¥Ü¡¼¥ë¤òÍî¤È¤¹
#define up OnFwd(OUT_B,50);Wait(1800);//¥¢¡¼¥à¤ò¾å¤²¤ë
#define down OnRev(OUT_B,50);Wait(900);//¥¢¡¼¥à¤ò²¼¤í¤¹
***¥×¥í¥°¥é¥àÁ´ÂÎ [#ie6ec132]
task main ()
{
int msg1; // ¼õ¤±¼è¤Ã¤¿Ãͤò³ÊǼ¤¹¤ëÊÑ¿ô
int msg2; // Ʊ¾å
while(true){
ReceiveRemoteNumber(MAILBOX1,true,msg1);//MAILBOX1¤Ç¼õ¤±¼è¤Ã¤¿¿®¹æ¤òmsg1¤Ë³ÊǼ
ReceiveRemoteNumber(MAILBOX2,true,msg2);//MAILBOX2¤Ç¼õ¤±¼è¤Ã¤¿¿®¹æ¤òmsg2¤Ë³ÊǼ
if(msg1==SIGNAL1){ //msg1¤ËSIGNAL1¤¬Æþ¤Ã¤Æ¤¤¤¿¤Ê¤é
down;
tukamu;
up;
Off(OUT_AB); //¥â¡¼¥¿¡¼¤òÄä»ß¤µ¤»¤ë
SendResponseNumber(MAILBOX1,SIGNAL2);//¥Þ¥¹¥¿¡¼Â¦¤ÎMAILBOX1¤ËSIGNAL2¤òÁ÷¤ë
}
if(msg2==SIGNAL3){ //msg2¤ËSIGNAL3¤¬Æþ¤Ã¤Æ¤¤¤¿¤Ê¤é
hanasu;
Off(OUT_A); //¥â¡¼¥¿¡¼¤òÄä»ß
SendResponseNumber(MAILBOX2,SIGNAL4);//¥Þ¥¹¥¿¡¼Â¦¤ÎMAILBOX2¤ËSIGNAL4¤òÁ÷¤ë
}
}
}
*¤Þ¤È¤á [#n4876335]
·ëÏÀ¤«¤é¤¤¤Ã¤Æ¡¤¥í¥Ü¥Ã¥È¤Ï¤¦¤Þ¤¯Æ°¤«¤Ê¤«¤Ã¤¿¡¥
¹Í¤¨¤é¤ì¤ëÍýͳ¤È¤·¤Æ¤Ï¡¤
¡¦»î¹Ô²ó¿ô¤¬Â¤ê¤Ê¤«¤Ã¤¿
¡¦¥×¥í¥°¥é¥à¤ò¼êʬ¤±¤·¤Æºî¤Ã¤¿ºÝ¤Ë¡¤°Õ»×ÁÂÄ̤¬½ÐÍè¤Æ¤¤¤Ê¤«¤Ã¤¿
¤Ê¤É¤¬¤¢¤²¤é¤ì¤ë¡¥
¥í¥Ü¥Ã¥È¼«ÂΤϤ«¤Ê¤ê¤Î¼«¿®ºî¤À¤Ã¤¿¤¿¤á¤Ë»ÄÇ°¤À¤Ã¤¿¡¥
¥Ú¡¼¥¸Ì¾: