2019a/Member/Kasai/Mission2
¤ò¥Æ¥ó¥×¥ì¡¼¥È¤Ë¤·¤ÆºîÀ®
[
¥È¥Ã¥×
] [
¿·µ¬
|
°ìÍ÷
|
¸¡º÷
|
ºÇ½ª¹¹¿·
|
¥Ø¥ë¥×
|
¥í¥°¥¤¥ó
]
³«»Ï¹Ô:
[[2019a/Member]]
Ìܼ¡
#contents
*²ÝÂê2 [#ze94ad70]
²¼¤Î¿Þ¤Î¤è¤¦¤Ê¥³¡¼¥¹¤ò³Æ¥Á¡¼¥à¤ÇºîÀ®¤·¡¢¡Ö¥ß¥Ã¥·¥ç¥ó¡×¤ò¿ë¹Ô¤¹¤ë¤¿¤á¤Î¥í¥Ü¥Ã¥È¤òºîÀ®¤»¤è¡£
¹õÀþ¤ÎÉý¤Ï20mm¤Ç¤Ê¤ë¤Ù¤¯¶ÑÅù¤ÊÇ»¤µ¤Ë¤¹¤ë¤³¤È¡£ ¥´¡¼¥ë¤Ë¤Ï¡¢Ä¹¤µ15¤Þ¤¿¤Ï16¤Î¥Ö¥í¥Ã¥¯¤ª¤¯¡£
&ref(2019a/Member/Kasai/Mission2/map.png,50%);
**¥³¡¼¥¹ [#s8de8959]
AÃÏÅÀ¤«¤é½Ðȯ ¢ª M ¢ª K(ľ¿Ê) ¢ª L(¥Ô¥ó¥Ý¥ó¶Ì¤ò¤Ä¤«¤à) ¢ª K(±¦ÀÞ) ¢ª J(°ì»þÄä»ß¤Î¸å¡¢º¸ÀÞ) ¢ª I(ľ¿Ê) ¢ª H(ľ¿Ê) ¢ª G(º¸ÀÞ) ¢ª F ¢ª E ¢ª D(°ì»þÄä»ß¤Î¸å¡¢Ä¾¿Ê) ¢ª C(ľ¿Ê) ¢ª B(°ì»þÄä»ß) ¢ª ¥·¥å¡¼¥È¢ª AÃÏÅÀ¤ËÆþ¤ë(¥´¡¼¥ë)
¸òº¹ÅÀ¤Ç¤Ï1ÉôÖÄä»ß¤·¡¢Ãú»úÏ©¤Ç¤Ïľ³ÑÊý¸þ¤Ë¿ÊÆþ¤¹¤ë»þ¤Î¤ß°ì»þÄä»ß¤¹¤ë¤³¤È¡£
&ref(2019a/Member/Kasai/Mission2/map_line.png,50%);
*¥í¥Ü¥Ã¥È¤Ë¤Ä¤¤¤Æ [#d1081fe1]
**¥í¥Ü¥Ã¥È¤ÎÁ´ÂÎ [#c1e673a9]
º£²ó¤Ï¡¤¥í¥Ü¥Æ¥£¥¯¥¹¤ÎºÇ½é¤Î¼ø¶È¤Çºî¤Ã¤¿¥í¥Ü¥Ã¥È¤ò²þÎɤ·¤Æºî¤Ã¤¿¡¥
&ref(2019a/Member/Kasai/Mission2/robo_all.jpg,50%);
**ƹÂÎ [#xc23c187]
¥Ü¡¼¥ë¤òÄϤàÉôʬ¤Î¼è¤êÉÕ¤±¤ò¹Íθ¤·¡¤¥Ð¥Ã¥Æ¥ê¡¼¤Î°ÌÃÖ¤ò¸å¤í¤Ë°ÜÆ°¤µ¤»¤¿¡¥
&ref(2019a/Member/Kasai/Mission2/robo_honntai.jpg,50%);
**¸÷¥»¥ó¥µ¡¼ [#sbc2b3bb]
¾®²ó¤ê¤¬Íø¤¯¤è¤¦¤Ë¤Ç¤¤ë¤À¤±¥í¥Ü¥Ã¥È¤Î¼Ö¼´¤Ë¶á¤Å¤±¤Æºî¤Ã¤¿¡¥
&ref(2019a/Member/Kasai/Mission2/senser.jpg,50%);
&ref(2019a/Member/Kasai/Mission2/senser_posi_new.jpg,50%);
**¤Ä¤«¤àÉôʬ [#j0244368]
&ref(2019a/Member/Kasai/Mission2/arm.jpg,50%);&ref(2019a/Member/Kasai/Mission2/arm_explain.jpg,50%);
²£¤«¤é¶´¤àµ¡¹½¤Ë¤·¤¿¡¥
¡Êý¸þ¤Ë²ó¤¹¤È¥¢¡¼¥à¤¬³«¤¡¤¢Êý¸þ¤Î²ó¤¹¤È¥¢¡¼¥à¤¬ÊĤ¸¤ë¡¥
*¥×¥í¥°¥é¥à¤Ë¤Ä¤¤¤Æ [#xaeb4206]
**¥é¥¤¥ó¥È¥ì¡¼¥¹ [#eec3449e]
¤Þ¤º¡¤¹õ¤¤Àþ¤òÄɽ¾¤¹¤ë¥é¥¤¥ó¥È¥ì¡¼¥¹¤Î¥×¥í¥°¥é¥ß¥ó¥°¤òºî¤Ã¤¿¡¥
¡Ö´°Á´¤Ë¿¿¤ÃÇò¡×¡¤¡ÖÇò¤È¶Ìܤδ֡ס¤¡Ö¶Ìܡס¤¡Ö¹õ¤È¶Ìܤδ֡ס¤
¡Ö´°Á´¤Ë¹õ¡×¤Î£µ¤Ä¤ÎÉôʬ¤Ë¿§¤òʬ¤±¤Æ¸÷¤ÎÃͤò¬¤Ã¤¿¡¥
¤½¤ì¤é¤ÎÃͤϰʲ¼¤Î¿Þ¤Î¤è¤¦¤Ë¤Ê¤Ã¤¿¡¥
&ref(2019a/Member/Kasai/Mission2/light_number.png,50%);
¥×¥í¥°¥é¥ß¥ó¥°¤Ç¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤¹¤ë¡¥
#define black 20
#define white 50
#define lightgray 40
#define darkgray 28
#define center 35
¤Þ¤¿¡¤¥È¥ì¡¼¥¹»þ¤ÎÆ°ºî¤â¤½¤ì¤¾¤ìÄêµÁ¤·¤Æ¤ª¤¯¡¥
#define turn_right OnFwd(OUT_C,25);OnRev(OUT_B,15);//±¦ÀÞ
#define turn_left OnFwd(OUT_B,25);OnRev(OUT_C,15);//º¸ÀÞ
#define rotate_right OnFwd(OUT_C,20);OnRev(OUT_B,20);//±¦Àû²ó
#define rotate_left OnFwd(OUT_B,20);OnRev(OUT_C,20);//º¸Àû²ó
#define go_straight OnFwd(OUT_BC,20);//½ÐÎÏ20¤Îľ¿Ê
#define go_straight2 OnFwd(OUT_BC,15);//½ÐÎÏ15¤Îľ¿Ê
**¥µ¥Ö¥ë¡¼¥Á¥ó [#yc4e5aff]
***º¸Â¦¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹ [#g13f81db]
sub followline_L(int stop_time)
{
long t0=CurrentTick();
while(CurrentTick()-t0<stop_time){ //¸½ºß¤Î»þ¹ï¤¬°ìÄê¤ÎÃͤòĶ¤¨¤ë¤Þ¤Ç
if(SENSOR_1<black){ //¥»¥ó¥µ¡¼¤¬¹õ¤Î»þ
rotate_left; //º¸Àû²ó
}else if(SENSOR_1<darkgray){ //¥»¥ó¥µ¡¼¤¬¹õ³¥¤Ê¤é
turn_left; //º¸ÀÞ
}else if(SENSOR_1>lightgray){ //¥»¥ó¥µ¡¼¤¬Çò³¥¤Ê¤é
turn_right; //±¦ÀÞ
t0=CurrentTick(); //»þ´Ö¤ò¥ê¥»¥Ã¥È
}else if(SENSOR_1<35){ //ÌÀ¤ë¤µ35°Ê²¼¤Ç
go_straight; //ľ¿Ê
t0=CurrentTick(); //»þ´Ö¤ò¥ê¥»¥Ã¥È
}else{ //¤½¤ì°Ê³°¤Ï
rotate_right; //±¦Àû²ó
t0=CurrentTick(); //»þ´Ö¤ò¥ê¥»¥Ã¥È
}
}
Off(OUT_BC); //»þ¹ï¤¬°ìÄê¤ÎÃͤòĶ¤¨¤ë¤ÈÄä»ß
Wait(1000); //1ÉôÖÄä»ß
}
***±¦Â¦¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹ [#p36e96c9]
sub followline_R(int stop_time)
{
long t0=CurrentTick();
while(CurrentTick()-t0<stop_time){ //¸½ºß¤Î»þ¹ï¤¬°ìÄê¤ÎÃͤòĶ¤¨¤ë¤Þ¤Ç
if(SENSOR_1<black){ //¥»¥ó¥µ¡¼¤¬¹õ¤Î»þ
rotate_right; //±¦Àû²ó
}else if(SENSOR_1<darkgray){ //¥»¥ó¥µ¡¼¤¬¹õ³¥¤Ê¤é
turn_right; //±¦ÀÞ
}else if(SENSOR_1>lightgray){ //¥»¥ó¥µ¡¼¤¬Çò³¥¤Ê¤é
turn_left; //º¸ÀÞ
t0=CurrentTick(); //»þ´Ö¤ò¥ê¥»¥Ã¥È
}else if(SENSOR_1<35){ //¥»¥ó¥µ¡¼¤¬35°Ê²¼¤Ê¤é
go_straight; //ľ¿Ê
t0=CurrentTick(); //»þ´Ö¤ò¥ê¥»¥Ã¥È
}else{ //¤½¤ì°Ê³°¤Ï
rotate_left; //º¸Àû²ó
t0=CurrentTick(); //»þ´Ö¤ò¥ê¥»¥Ã¥È
}
}
Off(OUT_BC); //°ìÄê¤Î»þ´Ö¤òĶ¤¨¤ë¤ÈÄä»ß
Wait(1000); //°ìÉôÖÄä»ß
}
***JÃÏÅÀ¤Ç¤ÎT»úÏ©¤Þ¤Ç±¦Â¦¤ò¥È¥ì¡¼¥¹¤¹¤ë¥µ¥Ö¥ë¡¼¥Á¥ó [#n8f9379f]
sub followline_R2(int stop_time)
{
long t0=CurrentTick();
while(CurrentTick()-t0<stop_time){ //»þ¹ï¤¬¤¢¤ë°ìÄê¤ÎÃͤè¤ê¾®¤µ¤¤¤È¤
if(SENSOR_1<black){ //¹õ¤Ê¤é
rotate_right; //±¦Àû²ó
t0=CurrentTick(); //»þ´Ö¤ò¥ê¥»¥Ã¥È
}else if(SENSOR_1<darkgray){ //³¥¹õ¿§¤Ê¤é
turn_right; //±¦ÀÞ
t0=CurrentTick(); //»þ´Ö¤ò¥ê¥»¥Ã¥È
}else if(SENSOR_1>lightgray){ //³¥Çò¿§¤Ê¤é
turn_left; //º¸ÀÞ
}else if(SENSOR_1<35){ //ÌÀ¤ë¤µ35°Ê²¼¤Ç
go_straight2; //¤æ¤Ã¤¯¤êľ¿Ê
t0=CurrentTick(); //»þ´Ö¤ò¥ê¥»¥Ã¥È
}else{ //¤½¤ì°Ê³°¤Ê¤é
rotate_left; //º¸Àû²ó
}
}
Off(OUT_BC); //Ää»ß
Wait(2000); //2ÉôÖÄä»ß
}
***¸òº¹ÅÀ²£ÃÇ [#dea5769a]
-ľ¿Ê
¹õ³¥(28)¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ·¤Æ¤¤¤ë»þ¤Ïľ¿Ê¤·¡¤
¹õ³¥(28)¤è¤êÂ礤¤Ãͤò¸¡ÃΤ·¤¿¤é»ß¤Þ¤ë¡¥¢ª¹õ¤¤Àþ¾å¤Ç¤Ïľ¿Ê
sub Blackto_White()
{
while(SENSOR_1<darkgray){
OnFwd(OUT_BC,15);
}
Off(OUT_BC);
}
-±¦Àû²ó
Çò³¥(40)¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ·¤Æ¤¤¤ë»þ¤Ï±¦ÀÞ¤·¡¤
Çò³¥(40)¤è¤êÂ礤¤Ãͤò¸¡ÃΤ·¤¿¤é»ß¤Þ¤ë¡¥ ¢ª¹õ¤¤Àþ¾å¤Ç¤Ï±¦Àû²ó
sub Blackto_White_R()
{
while(SENSOR_1<lightgray){
OnFwd(OUT_C,20);
OnRev(OUT_B,20);
}
Off(OUT_BC);
}
-º¸Àû²ó
Çò³¥(40)¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ·¤Æ¤¤¤ë»þ¤Ïº¸ÀÞ¤·¡¤
Çò³¥(40)¤è¤êÂ礤¤Ãͤò¸¡ÃΤ·¤¿¤é»ß¤Þ¤ë¡¥¢ª¹õ¤¤Àþ¾å¤Ç¤Ïº¸Àû²ó
sub Blackto_White_L()
{
while(SENSOR_1<lightgray){
OnFwd(OUT_B,20);
OnRev(OUT_C,20);
}
Off(OUT_BC);
}
**¸òº¹ÅÀǧ¼± [#x6b6474f]
¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤·¤Æ¤¤¤ëºÝ¡¤¸òº¹ÅÀ¤Ë¤¿¤É¤êÃ夤¤Æ¤â¤½¤Î¤Þ¤Þ¥È¥ì¡¼¥¹¤ò³¤±¤Æ¤·¤Þ¤¤¶Ê¤¬¤Ã¤Æ¤·¤Þ¤¦¡¥¤½¤Î¤¿¤á¡¤¸òº¹ÅÀ¤òǧ¼±¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤¿¡¥¤Þ¤¿¡¤¾ò·ï¤Ç¤¢¤ë¸òº¹ÅÀ¤Ç¤Î1ÉÃÄä»ß¤Î¥×¥í¥°¥é¥à¤òÁȤ߹þ¤ó¤À¡¥
***º¸Â¦¥È¥ì¡¼¥¹¤Î¸òº¹ÅÀǧ¼± [#l9128f0d]
&ref(2019a/Member/Kasai/Mission2/left_trace.png,50%);
º¸Â¦¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹¤Î¾ì¹ç¡¤¡Ö¹õ¡×¤È¡Ö¹õ³¥¡×¤Î¢¤È¤¤ÎÆ°ºî¤¬Ï¢Â³¤Ç²¿Éô֤«Â³¤¤¤¿¤È¤¡¤»ß¤Þ¤ë¤è¤¦¤Ë¤¹¤ë¡¥
sub followline_L(int stop_time)
{
long t0=CurrentTick();
while(CurrentTick()-t0<stop_time){¡¡//stop_time¤Ë¤¤¤ì¤¿ÃͤòĶ²á¤¹¤ë¤È¼¡¤Î¥×¥í¥°¥é¥à¤Ø
if(SENSOR_1<black){ //black¤¹¤Ê¤ï¤Á20¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ¹¤ë¤Èº¸¤ØÀû²ó
rotate_left;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¤³¤ÎÆ°ºî¤¬Ï¢Â³¤¹¤ë¤È»ß¤Þ¤ë
}else if(SENSOR_1<darkgray){¡¡¡¡//darkgray¤¹¤Ê¤ï¤Á28¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ¹¤ë¤Èº¸¤Ø
turn_left; ¡¡¡¡¡¡ //¤³¤ÎÆ°ºî¤¬Ï¢Â³¤¹¤ë¤È»ß¤Þ¤ë
}else if(SENSOR_1>lightdark){¡¡¡¡//lightdray¤¹¤Ê¤ï¤Á40¤è¤êÂ礤¤Ãͤò¸¡ÃΤ¹¤ë¤È±¦¤Ø¶Ê¤¬¤ë
turn_right; ¡¡¡¡¡¡ //¤³¤ÎÆ°ºîÃæ¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤·Â³¤±¤ë
t0=CurrentTick();
}else if(SENSOR_1<center){¡¡¡¡¡¡//center¤¹¤Ê¤ï¤Á35¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ¹¤ë¤Èľ¿Ê¤¹¤ë
go_straight; ¡¡¡¡¡¡ //¤³¤ÎÆ°ºîÃæ¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤·Â³¤±¤ë
t0=CurrentTick();
}else{¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//white¤¹¤Ê¤ï¤Á50¤è¤êÂ礤¤Ãͤò¸¡ÃΤ¹¤ë¤È±¦¤ØÀû²ó
rotate_right; ¡¡¡¡¡¡ //¤³¤ÎÆ°ºîÃæ¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤·Â³¤±¤ë
t0=CurrentTick();
}
}
Off(OUT_BC);
Wait(1000);
}
***±¦Â¦¥È¥ì¡¼¥¹¤Î¸òº¹ÅÀǧ¼± [#s4f7665d]
&ref(2019a/Member/Kasai/Mission2/right_trace.png,50%);
º¸Â¦¤ÈƱÍͤˡֹõ¡×¤È¡Ö¹õ³¥¡×¤Î¡¤È£¤ÎÆ°ºî¤¬Ï¢Â³¤Ç²¿Éô֤«Â³¤¤¤¿¤È¤»ß¤Þ¤ë¤è¤¦¤Ë¤¹¤ë¡¥
sub followline_R(int stop_time)
{
long t0=CurrentTick();
while(CurrentTick()-t0<stop_time){¡¡//stop_time¤Ë¤¤¤ì¤¿ÃͤòĶ²á¤¹¤ë¤È¼¡¤Î¥×¥í¥°¥é¥à¤Ø
if(SENSOR_1<black){ //black¤¹¤Ê¤ï¤Á20¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ¹¤ë¤È±¦¤ØÀû²ó
rotate_right; //¤³¤ÎÆ°ºî¤¬Ï¢Â³¤¹¤ë¤È»ß¤Þ¤ë
}else if(SENSOR_1<darkgray){¡¡¡¡//darkgray¤¹¤Ê¤ï¤Á28¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ¹¤ë¤È±¦¤Ø
turn_right; //¤³¤ÎÆ°ºî¤¬Ï¢Â³¤¹¤ë¤È»ß¤Þ¤ë
}else if(SENSOR_1>lightdark){¡¡¡¡//lightdray¤¹¤Ê¤ï¤Á40¤è¤êÂ礤¤Ãͤò¸¡ÃΤ¹¤ë¤Èº¸¤Ø¶Ê¤¬¤ë
turn_left; //¤³¤ÎÆ°ºîÃæ¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤·Â³¤±¤ë
t0=CurrentTick();
}else if(SENSOR_1<center){¡¡¡¡¡¡//center¤¹¤Ê¤ï¤Á35¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ¹¤ë¤Èľ¿Ê¤¹¤ë
go_straight; //¤³¤ÎÆ°ºîÃæ¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤·Â³¤±¤ë
t0=CurrentTick();
}else{¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//white¤¹¤Ê¤ï¤Á50¤è¤êÂ礤¤Ãͤò¸¡ÃΤ¹¤ë¤Èº¸¤ØÀû²ó
rotate_left; //¤³¤ÎÆ°ºîÃæ¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤·Â³¤±¤ë
t0=CurrentTick();
}
}
Off(OUT_BC);
Wait(1000);
}
¤Þ¤¿¡¤¥³¡¼¥¹¤ÎK¤«¤éL¤Ë¸þ¤«¤¤¡¤L¤Ç»ß¤Þ¤ë¥×¥í¥°¥é¥ß¥ó¥°¤Ë¤ª¤¤¤Æ¤Ï¡¤±¦Â¦¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹¤Ç¡ÖÇò¡×¤È¡ÖÇò¤Î¶Ìܡפ΢¤È¤¤ÎÆ°ºî¤òϢ³¤Ç¹Ô¤¦¤È»ß¤Þ¤ë¤è¤¦¤Ë¤·¤¿¡£lightdray¤¹¤Ê¤ï¤Á40¤è¤êÂ礤¤ÃÍ¡¢white¤¹¤Ê¤ï¤Á50¤è¤êÂ礤¤Ãͤò¸¡ÃΤ·¤¿»þ´Ö¤¬stop_time¤ÎÃͤλþ´Öʬ¤òĶ²á¤·¤¿¾ì¹ç¤Ë¤Ïwhile¤ÎÆ°ºî¤¬Ää»ß¤¹¤ë¡¥
sub followline_R2(int stop_time)
{
long t0=CurrentTick();
while(CurrentTick()-t0<stop_time){¡¡//stop_time¤Ë¤¤¤ì¤¿ÃͤòĶ²á¤¹¤ë¤È¼¡¤Î¥×¥í¥°¥é¥à¤Ø
if(SENSOR_1<black){ //black¤¹¤Ê¤ï¤Á20¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ¹¤ë¤È±¦¤ØÀû²ó
rotate_right;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¤³¤ÎÆ°ºîÃæ¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤·Â³¤±¤ë
t0=CurrentTick();
}else if(SENSOR_1<darkgray){¡¡ ¡¡//darkgray¤¹¤Ê¤ï¤Á28¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ¹¤ë¤È±¦¤Ø
turn_right; //¤³¤ÎÆ°ºîÃæ¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤·Â³¤±¤ë
t0=CurrentTick();
}else if(SENSOR_1>lightdark){¡¡ ¡¡//lightdray¤¹¤Ê¤ï¤Á40¤è¤êÂ礤¤Ãͤò¸¡ÃΤ¹¤ë¤Èº¸¤Ø¶Ê¤¬¤ë
turn_left; //¤³¤ÎÆ°ºî¤¬Ï¢Â³¤¹¤ë¤È»ß¤Þ¤ë
}else if(SENSOR_1<center){¡¡ ¡¡¡¡//center¤¹¤Ê¤ï¤Á35¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ¹¤ë¤Èľ¿Ê¤¹¤ë
go_straight2; //¤³¤ÎÆ°ºîÃæ¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤·Â³¤±¤ë
t0=CurrentTick();
}else{¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡//white¤¹¤Ê¤ï¤Á50¤è¤êÂ礤¤Ãͤò¸¡ÃΤ¹¤ë¤Èº¸¤ØÀû²ó
rotate_left; //¤³¤ÎÆ°ºî¤¬Ï¢Â³¤¹¤ë¤È»ß¤Þ¤ë
}
}
Off(OUT_BC);
Wait(2000);
}
**¥Ü¡¼¥ë¤Î¥·¥å¡¼¥È [#i119d10d]
º£²ó¤Î²ÝÂê¤Ç¤Ï¡¤¥³¡¼¥¹¤ÎÅÓÃæ¤Ç¥Ü¡¼¥ë¤òÄϤߡ¤¥´¡¼¥ëÁ°¤ÇÊü¤·¡¤¥·¥å¡¼¥È¤¹¤ëÆ°¤¤¬¤¢¤ë¡¥»ä¤¿¤Á¤Î ¥°¥ë¡¼¥×¤Ç¤Ï¡¤¥Ü¡¼¥ë¤òÊü¤·¤¿¸å¤Ë¥í¥Ü¥Ã¥ÈËÜÂΤÇÁ°¤Ë²¡¤·½Ð¤·¤Æ¥·¥å¡¼¥È¤¹¤ë¥×¥í¥°¥é¥à¤òºî¤Ã¤¿¡¥¤Þ¤¿¡¤¤½¤ì¤¾¤ì¤ò #define ¤ÇÄêµÁ¤·¤¿¡¥
-¥Ü¡¼¥ë¤òÄϤà¥×¥í¥°¥é¥à
#define catch OnRev(OUT_A,25);Wait(500);Off(OUT_A);
-¥Ü¡¼¥ë¤òÊü¤¹¥×¥í¥°¥é¥à
#define release OnFwd(OUT_A,25);Wait(500);Off(OUT_A);
-¥Ü¡¼¥ë¤ò²¡¤·½Ð¤¹¥×¥í¥°¥é¥à
¥â¡¼¥¿¡¼¤Î½ÐÎϤòÂçÉý¤Ë¾å¤²¤Æ¥Ü¡¼¥ë¤¬¤Þ¤Ã¤¹¤°¿Ê¤à¤è¤¦¤Ë¤·¤¿¡¥
#define osidasi OnFwd(OUT_BC,100);Wait(100);Off(OUT_BC);
*¥³¡¼¥¹¾å¤òÆ°¤«¤¹ [#t492d4c1]
¥³¡¼¥¹¤Î¾å¤òÆ°¤¯Î®¤ì¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¡¥
&ref(2019a/Member/Kasai/Mission2/map_junnbann.png,50%);
**¥á¥¤¥ó¥×¥í¥°¥é¥à [#k8a404a7]
task main()
{
SetSensorLight(S1);
followline_R(150); //1
Blackto_White_L(); //2
followline_L(200); //3
Blackto_White_R(); //4
followline_R2(200); //5
catch; //¥Ü¡¼¥ë¤òÄϤà
turn; //º¸¤ËÀû²ó
followline_R(150); //6
Blackto_White(); //7
followline_L(150); //8
Blackto_White_L(); //9
followline_L(200); //10
Blackto_White(); //11
followline_L(200); //12
Blackto_White(); //13
followline_L(200); //14
Blackto_White(); //15
followline_R(150); //16
Blackto_White(); //17
followline_R(150); //18
release; //¥Ü¡¼¥ë¤òÊü¤¹
osidasi; //¥´¡¼¥ë¤¹¤ë
}
**Á´ÂÎ¤Î¥×¥í¥°¥é¥à [#d398e02c]
#define turn_right OnFwd(OUT_C,25);OnRev(OUT_B,15);
#define turn_left OnFwd(OUT_B,25);OnRev(OUT_C,15);
#define rotate_right OnFwd(OUT_C,20);OnRev(OUT_B,25);
#define rotate_left OnFwd(OUT_B,20);OnRev(OUT_C,25);
#define go_straight OnFwd(OUT_BC,20);
#define go_straight2 OnFwd(OUT_BC,15);
#define turn OnRev(OUT_C,25);OnFwd(OUT_B,25);Wait(1500);Off(OUT_BC);
#define catch OnRev(OUT_A,25);Wait(500);Off(OUT_A);
#define release OnFwd(OUT_A,25);Wait(500);Off(OUT_A);
#define osidasi OnFwd(OUT_BC,100);Wait(100);Off(OUT_BC);
#define black 20
#define white 50
#define lightgray 40
#define darkgray 28
sub followline_L(int stop_time)
{
long t0=CurrentTick();
while(CurrentTick()-t0<stop_time){
if(SENSOR_1<black){
rotate_left;
}else if(SENSOR_1<darkgray){
turn_left;
}else if(SENSOR_1>lightgray){
turn_right;
t0=CurrentTick();
}else if(SENSOR_1<35){
go_straight;
t0=CurrentTick();
}else{
rotate_right;
t0=CurrentTick();
}
}
Off(OUT_BC);
Wait(1000);
}
sub followline_R(int stop_time)
{
long t0=CurrentTick();
while(CurrentTick()-t0<stop_time){
if(SENSOR_1<black){
rotate_right;
}else if(SENSOR_1<darkgray){
turn_right;
}else if(SENSOR_1>lightgray){
turn_left;
t0=CurrentTick();
}else if(SENSOR_1<35){
go_straight;
t0=CurrentTick();
}else{
rotate_left;
t0=CurrentTick();
}
}
Off(OUT_BC);
Wait(1000);
}
sub followline_R2(int stop_time)
{
long t0=CurrentTick();
while(CurrentTick()-t0<stop_time){
if(SENSOR_1<black){
rotate_right;
t0=CurrentTick();
}else if(SENSOR_1<darkgray){
turn_right;
t0=CurrentTick();
}else if(SENSOR_1>lightgray){
turn_left;
}else if(SENSOR_1<35){
go_straight2;
t0=CurrentTick();
}else{
rotate_left;
}
}
Off(OUT_BC);
Wait(2000);
}
sub Blackto_White()
{
while(SENSOR_1<darkgray){
OnFwd(OUT_BC,15);
}
Off(OUT_BC);
}
sub Blackto_White_R()
{
while(SENSOR_1<darkgray){
OnFwd(OUT_C,20);
OnRev(OUT_B,20);
}
Off(OUT_BC);
}
sub Blackto_White_L()
{
while(SENSOR_1<lightgray){
OnFwd(OUT_B,20);
OnRev(OUT_C,20);
}
Off(OUT_BC);
}
task main()
{
SetSensorLight(S1);
followline_R(150);
Blackto_White_L();
followline_L(200);
Blackto_White_R();
followline_R2(200);
catch;
turn;
followline_R(150);
Blackto_White();
followline_L(150);
Blackto_White_L();
followline_L(200);
Blackto_White();
followline_L(200);
Blackto_White();
followline_L(200);
Blackto_White();
followline_R(150);
Blackto_White();
followline_R(150);
release;
osidasi;
}
*¤Þ¤È¤á [#b411665f]
º£²ó¤â¤Ê¤ó¤È¤«²ÝÂê¤ò¥¯¥ê¥¢¤¹¤ë¤³¤È¤¬¤Ç¤¤¿¡¥
¤·¤«¤·¡¤¥×¥í¥°¥é¥ß¥ó¥°¤ÎÀ©ºî»þ¤Ë¤Ï¡¤¥×¥í¥°¥é¥à¼«ÂΤϴְã¤Ã¤Æ¤Ê¤¤¤Ï¤º¤Ê¤Î¤Ë¡¤¥í¥Ü¥Ã¥È¤¬Æ°¤«¤Ê¤«¤Ã¤¿¤êÆ°¤¤¬Æߤ¯¤Ê¤ë¤³¤È¤¬Â¿¡¹¤¢¤Ã¤¿¡¥¤½¤Î¸¶°ø¤Ï¥â¡¼¥¿¤ÎÎô²½¤Ê¤É¤Î¸¶°ø¤â¤¢¤ë¤À¤í¤¦¤¬¡¤¤ª¤½¤é¤¯ÅÅÃÓÀÚ¤ì¤Ç¤Ï¤Ê¤¤¤«¤È¹Í¤¨¤é¤ì¤¿¡¥Á°²ó¤Î²ÝÂê¤Î»þ¤Ë¤Ï¤Û¤È¤ó¤É¤Ê¤Ã¤«¤¿¥Ï¥×¥Ë¥ó¥°¤À¤Ã¤¿¤¿¤á¤Ë¡¤ÅÅÃÓÀÚ¤ì¤È¤¤¤¦¤³¤È¤Ëµ¤ÉÕ¤«¤ºÂ¿¤¯¤Î̵Â̤ʻþ´Ö¤òÈñ¤ä¤·¤Æ¤·¤Þ¤Ã¤¿¡¥¾ï¤Ë¤¢¤é¤æ¤ë²ÄǽÀ¤ä¸¶°ø¤ò¹Íθ¤·¤ÆÀ©ºî¤·¤Æ¤¤¤¯É¬Íפ¬¤¢¤ë¤È´¶¤¸¤¿¡¥¤Þ¤¿¡¤¥×¥í¥°¥é¥à¼«ÂΤâ¤Þ¤À¤Þ¤À;·×¤Ê½ê¤¬¤¢¤ë¤È»×¤¦¤Î¤Ç¡¤¼¡²ó¤Î²ÝÂê¤Ç¤Ï´Ê·é¤Ê¤è¤êÎɤ¤¥×¥í¥°¥é¥à¤òÀ©ºî¤·¤¿¤¤¡¥
½ªÎ»¹Ô:
[[2019a/Member]]
Ìܼ¡
#contents
*²ÝÂê2 [#ze94ad70]
²¼¤Î¿Þ¤Î¤è¤¦¤Ê¥³¡¼¥¹¤ò³Æ¥Á¡¼¥à¤ÇºîÀ®¤·¡¢¡Ö¥ß¥Ã¥·¥ç¥ó¡×¤ò¿ë¹Ô¤¹¤ë¤¿¤á¤Î¥í¥Ü¥Ã¥È¤òºîÀ®¤»¤è¡£
¹õÀþ¤ÎÉý¤Ï20mm¤Ç¤Ê¤ë¤Ù¤¯¶ÑÅù¤ÊÇ»¤µ¤Ë¤¹¤ë¤³¤È¡£ ¥´¡¼¥ë¤Ë¤Ï¡¢Ä¹¤µ15¤Þ¤¿¤Ï16¤Î¥Ö¥í¥Ã¥¯¤ª¤¯¡£
&ref(2019a/Member/Kasai/Mission2/map.png,50%);
**¥³¡¼¥¹ [#s8de8959]
AÃÏÅÀ¤«¤é½Ðȯ ¢ª M ¢ª K(ľ¿Ê) ¢ª L(¥Ô¥ó¥Ý¥ó¶Ì¤ò¤Ä¤«¤à) ¢ª K(±¦ÀÞ) ¢ª J(°ì»þÄä»ß¤Î¸å¡¢º¸ÀÞ) ¢ª I(ľ¿Ê) ¢ª H(ľ¿Ê) ¢ª G(º¸ÀÞ) ¢ª F ¢ª E ¢ª D(°ì»þÄä»ß¤Î¸å¡¢Ä¾¿Ê) ¢ª C(ľ¿Ê) ¢ª B(°ì»þÄä»ß) ¢ª ¥·¥å¡¼¥È¢ª AÃÏÅÀ¤ËÆþ¤ë(¥´¡¼¥ë)
¸òº¹ÅÀ¤Ç¤Ï1ÉôÖÄä»ß¤·¡¢Ãú»úÏ©¤Ç¤Ïľ³ÑÊý¸þ¤Ë¿ÊÆþ¤¹¤ë»þ¤Î¤ß°ì»þÄä»ß¤¹¤ë¤³¤È¡£
&ref(2019a/Member/Kasai/Mission2/map_line.png,50%);
*¥í¥Ü¥Ã¥È¤Ë¤Ä¤¤¤Æ [#d1081fe1]
**¥í¥Ü¥Ã¥È¤ÎÁ´ÂÎ [#c1e673a9]
º£²ó¤Ï¡¤¥í¥Ü¥Æ¥£¥¯¥¹¤ÎºÇ½é¤Î¼ø¶È¤Çºî¤Ã¤¿¥í¥Ü¥Ã¥È¤ò²þÎɤ·¤Æºî¤Ã¤¿¡¥
&ref(2019a/Member/Kasai/Mission2/robo_all.jpg,50%);
**ƹÂÎ [#xc23c187]
¥Ü¡¼¥ë¤òÄϤàÉôʬ¤Î¼è¤êÉÕ¤±¤ò¹Íθ¤·¡¤¥Ð¥Ã¥Æ¥ê¡¼¤Î°ÌÃÖ¤ò¸å¤í¤Ë°ÜÆ°¤µ¤»¤¿¡¥
&ref(2019a/Member/Kasai/Mission2/robo_honntai.jpg,50%);
**¸÷¥»¥ó¥µ¡¼ [#sbc2b3bb]
¾®²ó¤ê¤¬Íø¤¯¤è¤¦¤Ë¤Ç¤¤ë¤À¤±¥í¥Ü¥Ã¥È¤Î¼Ö¼´¤Ë¶á¤Å¤±¤Æºî¤Ã¤¿¡¥
&ref(2019a/Member/Kasai/Mission2/senser.jpg,50%);
&ref(2019a/Member/Kasai/Mission2/senser_posi_new.jpg,50%);
**¤Ä¤«¤àÉôʬ [#j0244368]
&ref(2019a/Member/Kasai/Mission2/arm.jpg,50%);&ref(2019a/Member/Kasai/Mission2/arm_explain.jpg,50%);
²£¤«¤é¶´¤àµ¡¹½¤Ë¤·¤¿¡¥
¡Êý¸þ¤Ë²ó¤¹¤È¥¢¡¼¥à¤¬³«¤¡¤¢Êý¸þ¤Î²ó¤¹¤È¥¢¡¼¥à¤¬ÊĤ¸¤ë¡¥
*¥×¥í¥°¥é¥à¤Ë¤Ä¤¤¤Æ [#xaeb4206]
**¥é¥¤¥ó¥È¥ì¡¼¥¹ [#eec3449e]
¤Þ¤º¡¤¹õ¤¤Àþ¤òÄɽ¾¤¹¤ë¥é¥¤¥ó¥È¥ì¡¼¥¹¤Î¥×¥í¥°¥é¥ß¥ó¥°¤òºî¤Ã¤¿¡¥
¡Ö´°Á´¤Ë¿¿¤ÃÇò¡×¡¤¡ÖÇò¤È¶Ìܤδ֡ס¤¡Ö¶Ìܡס¤¡Ö¹õ¤È¶Ìܤδ֡ס¤
¡Ö´°Á´¤Ë¹õ¡×¤Î£µ¤Ä¤ÎÉôʬ¤Ë¿§¤òʬ¤±¤Æ¸÷¤ÎÃͤò¬¤Ã¤¿¡¥
¤½¤ì¤é¤ÎÃͤϰʲ¼¤Î¿Þ¤Î¤è¤¦¤Ë¤Ê¤Ã¤¿¡¥
&ref(2019a/Member/Kasai/Mission2/light_number.png,50%);
¥×¥í¥°¥é¥ß¥ó¥°¤Ç¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤¹¤ë¡¥
#define black 20
#define white 50
#define lightgray 40
#define darkgray 28
#define center 35
¤Þ¤¿¡¤¥È¥ì¡¼¥¹»þ¤ÎÆ°ºî¤â¤½¤ì¤¾¤ìÄêµÁ¤·¤Æ¤ª¤¯¡¥
#define turn_right OnFwd(OUT_C,25);OnRev(OUT_B,15);//±¦ÀÞ
#define turn_left OnFwd(OUT_B,25);OnRev(OUT_C,15);//º¸ÀÞ
#define rotate_right OnFwd(OUT_C,20);OnRev(OUT_B,20);//±¦Àû²ó
#define rotate_left OnFwd(OUT_B,20);OnRev(OUT_C,20);//º¸Àû²ó
#define go_straight OnFwd(OUT_BC,20);//½ÐÎÏ20¤Îľ¿Ê
#define go_straight2 OnFwd(OUT_BC,15);//½ÐÎÏ15¤Îľ¿Ê
**¥µ¥Ö¥ë¡¼¥Á¥ó [#yc4e5aff]
***º¸Â¦¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹ [#g13f81db]
sub followline_L(int stop_time)
{
long t0=CurrentTick();
while(CurrentTick()-t0<stop_time){ //¸½ºß¤Î»þ¹ï¤¬°ìÄê¤ÎÃͤòĶ¤¨¤ë¤Þ¤Ç
if(SENSOR_1<black){ //¥»¥ó¥µ¡¼¤¬¹õ¤Î»þ
rotate_left; //º¸Àû²ó
}else if(SENSOR_1<darkgray){ //¥»¥ó¥µ¡¼¤¬¹õ³¥¤Ê¤é
turn_left; //º¸ÀÞ
}else if(SENSOR_1>lightgray){ //¥»¥ó¥µ¡¼¤¬Çò³¥¤Ê¤é
turn_right; //±¦ÀÞ
t0=CurrentTick(); //»þ´Ö¤ò¥ê¥»¥Ã¥È
}else if(SENSOR_1<35){ //ÌÀ¤ë¤µ35°Ê²¼¤Ç
go_straight; //ľ¿Ê
t0=CurrentTick(); //»þ´Ö¤ò¥ê¥»¥Ã¥È
}else{ //¤½¤ì°Ê³°¤Ï
rotate_right; //±¦Àû²ó
t0=CurrentTick(); //»þ´Ö¤ò¥ê¥»¥Ã¥È
}
}
Off(OUT_BC); //»þ¹ï¤¬°ìÄê¤ÎÃͤòĶ¤¨¤ë¤ÈÄä»ß
Wait(1000); //1ÉôÖÄä»ß
}
***±¦Â¦¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹ [#p36e96c9]
sub followline_R(int stop_time)
{
long t0=CurrentTick();
while(CurrentTick()-t0<stop_time){ //¸½ºß¤Î»þ¹ï¤¬°ìÄê¤ÎÃͤòĶ¤¨¤ë¤Þ¤Ç
if(SENSOR_1<black){ //¥»¥ó¥µ¡¼¤¬¹õ¤Î»þ
rotate_right; //±¦Àû²ó
}else if(SENSOR_1<darkgray){ //¥»¥ó¥µ¡¼¤¬¹õ³¥¤Ê¤é
turn_right; //±¦ÀÞ
}else if(SENSOR_1>lightgray){ //¥»¥ó¥µ¡¼¤¬Çò³¥¤Ê¤é
turn_left; //º¸ÀÞ
t0=CurrentTick(); //»þ´Ö¤ò¥ê¥»¥Ã¥È
}else if(SENSOR_1<35){ //¥»¥ó¥µ¡¼¤¬35°Ê²¼¤Ê¤é
go_straight; //ľ¿Ê
t0=CurrentTick(); //»þ´Ö¤ò¥ê¥»¥Ã¥È
}else{ //¤½¤ì°Ê³°¤Ï
rotate_left; //º¸Àû²ó
t0=CurrentTick(); //»þ´Ö¤ò¥ê¥»¥Ã¥È
}
}
Off(OUT_BC); //°ìÄê¤Î»þ´Ö¤òĶ¤¨¤ë¤ÈÄä»ß
Wait(1000); //°ìÉôÖÄä»ß
}
***JÃÏÅÀ¤Ç¤ÎT»úÏ©¤Þ¤Ç±¦Â¦¤ò¥È¥ì¡¼¥¹¤¹¤ë¥µ¥Ö¥ë¡¼¥Á¥ó [#n8f9379f]
sub followline_R2(int stop_time)
{
long t0=CurrentTick();
while(CurrentTick()-t0<stop_time){ //»þ¹ï¤¬¤¢¤ë°ìÄê¤ÎÃͤè¤ê¾®¤µ¤¤¤È¤
if(SENSOR_1<black){ //¹õ¤Ê¤é
rotate_right; //±¦Àû²ó
t0=CurrentTick(); //»þ´Ö¤ò¥ê¥»¥Ã¥È
}else if(SENSOR_1<darkgray){ //³¥¹õ¿§¤Ê¤é
turn_right; //±¦ÀÞ
t0=CurrentTick(); //»þ´Ö¤ò¥ê¥»¥Ã¥È
}else if(SENSOR_1>lightgray){ //³¥Çò¿§¤Ê¤é
turn_left; //º¸ÀÞ
}else if(SENSOR_1<35){ //ÌÀ¤ë¤µ35°Ê²¼¤Ç
go_straight2; //¤æ¤Ã¤¯¤êľ¿Ê
t0=CurrentTick(); //»þ´Ö¤ò¥ê¥»¥Ã¥È
}else{ //¤½¤ì°Ê³°¤Ê¤é
rotate_left; //º¸Àû²ó
}
}
Off(OUT_BC); //Ää»ß
Wait(2000); //2ÉôÖÄä»ß
}
***¸òº¹ÅÀ²£ÃÇ [#dea5769a]
-ľ¿Ê
¹õ³¥(28)¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ·¤Æ¤¤¤ë»þ¤Ïľ¿Ê¤·¡¤
¹õ³¥(28)¤è¤êÂ礤¤Ãͤò¸¡ÃΤ·¤¿¤é»ß¤Þ¤ë¡¥¢ª¹õ¤¤Àþ¾å¤Ç¤Ïľ¿Ê
sub Blackto_White()
{
while(SENSOR_1<darkgray){
OnFwd(OUT_BC,15);
}
Off(OUT_BC);
}
-±¦Àû²ó
Çò³¥(40)¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ·¤Æ¤¤¤ë»þ¤Ï±¦ÀÞ¤·¡¤
Çò³¥(40)¤è¤êÂ礤¤Ãͤò¸¡ÃΤ·¤¿¤é»ß¤Þ¤ë¡¥ ¢ª¹õ¤¤Àþ¾å¤Ç¤Ï±¦Àû²ó
sub Blackto_White_R()
{
while(SENSOR_1<lightgray){
OnFwd(OUT_C,20);
OnRev(OUT_B,20);
}
Off(OUT_BC);
}
-º¸Àû²ó
Çò³¥(40)¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ·¤Æ¤¤¤ë»þ¤Ïº¸ÀÞ¤·¡¤
Çò³¥(40)¤è¤êÂ礤¤Ãͤò¸¡ÃΤ·¤¿¤é»ß¤Þ¤ë¡¥¢ª¹õ¤¤Àþ¾å¤Ç¤Ïº¸Àû²ó
sub Blackto_White_L()
{
while(SENSOR_1<lightgray){
OnFwd(OUT_B,20);
OnRev(OUT_C,20);
}
Off(OUT_BC);
}
**¸òº¹ÅÀǧ¼± [#x6b6474f]
¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤·¤Æ¤¤¤ëºÝ¡¤¸òº¹ÅÀ¤Ë¤¿¤É¤êÃ夤¤Æ¤â¤½¤Î¤Þ¤Þ¥È¥ì¡¼¥¹¤ò³¤±¤Æ¤·¤Þ¤¤¶Ê¤¬¤Ã¤Æ¤·¤Þ¤¦¡¥¤½¤Î¤¿¤á¡¤¸òº¹ÅÀ¤òǧ¼±¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤¿¡¥¤Þ¤¿¡¤¾ò·ï¤Ç¤¢¤ë¸òº¹ÅÀ¤Ç¤Î1ÉÃÄä»ß¤Î¥×¥í¥°¥é¥à¤òÁȤ߹þ¤ó¤À¡¥
***º¸Â¦¥È¥ì¡¼¥¹¤Î¸òº¹ÅÀǧ¼± [#l9128f0d]
&ref(2019a/Member/Kasai/Mission2/left_trace.png,50%);
º¸Â¦¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹¤Î¾ì¹ç¡¤¡Ö¹õ¡×¤È¡Ö¹õ³¥¡×¤Î¢¤È¤¤ÎÆ°ºî¤¬Ï¢Â³¤Ç²¿Éô֤«Â³¤¤¤¿¤È¤¡¤»ß¤Þ¤ë¤è¤¦¤Ë¤¹¤ë¡¥
sub followline_L(int stop_time)
{
long t0=CurrentTick();
while(CurrentTick()-t0<stop_time){¡¡//stop_time¤Ë¤¤¤ì¤¿ÃͤòĶ²á¤¹¤ë¤È¼¡¤Î¥×¥í¥°¥é¥à¤Ø
if(SENSOR_1<black){ //black¤¹¤Ê¤ï¤Á20¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ¹¤ë¤Èº¸¤ØÀû²ó
rotate_left;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¤³¤ÎÆ°ºî¤¬Ï¢Â³¤¹¤ë¤È»ß¤Þ¤ë
}else if(SENSOR_1<darkgray){¡¡¡¡//darkgray¤¹¤Ê¤ï¤Á28¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ¹¤ë¤Èº¸¤Ø
turn_left; ¡¡¡¡¡¡ //¤³¤ÎÆ°ºî¤¬Ï¢Â³¤¹¤ë¤È»ß¤Þ¤ë
}else if(SENSOR_1>lightdark){¡¡¡¡//lightdray¤¹¤Ê¤ï¤Á40¤è¤êÂ礤¤Ãͤò¸¡ÃΤ¹¤ë¤È±¦¤Ø¶Ê¤¬¤ë
turn_right; ¡¡¡¡¡¡ //¤³¤ÎÆ°ºîÃæ¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤·Â³¤±¤ë
t0=CurrentTick();
}else if(SENSOR_1<center){¡¡¡¡¡¡//center¤¹¤Ê¤ï¤Á35¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ¹¤ë¤Èľ¿Ê¤¹¤ë
go_straight; ¡¡¡¡¡¡ //¤³¤ÎÆ°ºîÃæ¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤·Â³¤±¤ë
t0=CurrentTick();
}else{¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//white¤¹¤Ê¤ï¤Á50¤è¤êÂ礤¤Ãͤò¸¡ÃΤ¹¤ë¤È±¦¤ØÀû²ó
rotate_right; ¡¡¡¡¡¡ //¤³¤ÎÆ°ºîÃæ¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤·Â³¤±¤ë
t0=CurrentTick();
}
}
Off(OUT_BC);
Wait(1000);
}
***±¦Â¦¥È¥ì¡¼¥¹¤Î¸òº¹ÅÀǧ¼± [#s4f7665d]
&ref(2019a/Member/Kasai/Mission2/right_trace.png,50%);
º¸Â¦¤ÈƱÍͤˡֹõ¡×¤È¡Ö¹õ³¥¡×¤Î¡¤È£¤ÎÆ°ºî¤¬Ï¢Â³¤Ç²¿Éô֤«Â³¤¤¤¿¤È¤»ß¤Þ¤ë¤è¤¦¤Ë¤¹¤ë¡¥
sub followline_R(int stop_time)
{
long t0=CurrentTick();
while(CurrentTick()-t0<stop_time){¡¡//stop_time¤Ë¤¤¤ì¤¿ÃͤòĶ²á¤¹¤ë¤È¼¡¤Î¥×¥í¥°¥é¥à¤Ø
if(SENSOR_1<black){ //black¤¹¤Ê¤ï¤Á20¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ¹¤ë¤È±¦¤ØÀû²ó
rotate_right; //¤³¤ÎÆ°ºî¤¬Ï¢Â³¤¹¤ë¤È»ß¤Þ¤ë
}else if(SENSOR_1<darkgray){¡¡¡¡//darkgray¤¹¤Ê¤ï¤Á28¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ¹¤ë¤È±¦¤Ø
turn_right; //¤³¤ÎÆ°ºî¤¬Ï¢Â³¤¹¤ë¤È»ß¤Þ¤ë
}else if(SENSOR_1>lightdark){¡¡¡¡//lightdray¤¹¤Ê¤ï¤Á40¤è¤êÂ礤¤Ãͤò¸¡ÃΤ¹¤ë¤Èº¸¤Ø¶Ê¤¬¤ë
turn_left; //¤³¤ÎÆ°ºîÃæ¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤·Â³¤±¤ë
t0=CurrentTick();
}else if(SENSOR_1<center){¡¡¡¡¡¡//center¤¹¤Ê¤ï¤Á35¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ¹¤ë¤Èľ¿Ê¤¹¤ë
go_straight; //¤³¤ÎÆ°ºîÃæ¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤·Â³¤±¤ë
t0=CurrentTick();
}else{¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//white¤¹¤Ê¤ï¤Á50¤è¤êÂ礤¤Ãͤò¸¡ÃΤ¹¤ë¤Èº¸¤ØÀû²ó
rotate_left; //¤³¤ÎÆ°ºîÃæ¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤·Â³¤±¤ë
t0=CurrentTick();
}
}
Off(OUT_BC);
Wait(1000);
}
¤Þ¤¿¡¤¥³¡¼¥¹¤ÎK¤«¤éL¤Ë¸þ¤«¤¤¡¤L¤Ç»ß¤Þ¤ë¥×¥í¥°¥é¥ß¥ó¥°¤Ë¤ª¤¤¤Æ¤Ï¡¤±¦Â¦¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹¤Ç¡ÖÇò¡×¤È¡ÖÇò¤Î¶Ìܡפ΢¤È¤¤ÎÆ°ºî¤òϢ³¤Ç¹Ô¤¦¤È»ß¤Þ¤ë¤è¤¦¤Ë¤·¤¿¡£lightdray¤¹¤Ê¤ï¤Á40¤è¤êÂ礤¤ÃÍ¡¢white¤¹¤Ê¤ï¤Á50¤è¤êÂ礤¤Ãͤò¸¡ÃΤ·¤¿»þ´Ö¤¬stop_time¤ÎÃͤλþ´Öʬ¤òĶ²á¤·¤¿¾ì¹ç¤Ë¤Ïwhile¤ÎÆ°ºî¤¬Ää»ß¤¹¤ë¡¥
sub followline_R2(int stop_time)
{
long t0=CurrentTick();
while(CurrentTick()-t0<stop_time){¡¡//stop_time¤Ë¤¤¤ì¤¿ÃͤòĶ²á¤¹¤ë¤È¼¡¤Î¥×¥í¥°¥é¥à¤Ø
if(SENSOR_1<black){ //black¤¹¤Ê¤ï¤Á20¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ¹¤ë¤È±¦¤ØÀû²ó
rotate_right;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¤³¤ÎÆ°ºîÃæ¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤·Â³¤±¤ë
t0=CurrentTick();
}else if(SENSOR_1<darkgray){¡¡ ¡¡//darkgray¤¹¤Ê¤ï¤Á28¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ¹¤ë¤È±¦¤Ø
turn_right; //¤³¤ÎÆ°ºîÃæ¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤·Â³¤±¤ë
t0=CurrentTick();
}else if(SENSOR_1>lightdark){¡¡ ¡¡//lightdray¤¹¤Ê¤ï¤Á40¤è¤êÂ礤¤Ãͤò¸¡ÃΤ¹¤ë¤Èº¸¤Ø¶Ê¤¬¤ë
turn_left; //¤³¤ÎÆ°ºî¤¬Ï¢Â³¤¹¤ë¤È»ß¤Þ¤ë
}else if(SENSOR_1<center){¡¡ ¡¡¡¡//center¤¹¤Ê¤ï¤Á35¤è¤ê¾®¤µ¤¤Ãͤò¸¡ÃΤ¹¤ë¤Èľ¿Ê¤¹¤ë
go_straight2; //¤³¤ÎÆ°ºîÃæ¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤·Â³¤±¤ë
t0=CurrentTick();
}else{¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡//white¤¹¤Ê¤ï¤Á50¤è¤êÂ礤¤Ãͤò¸¡ÃΤ¹¤ë¤Èº¸¤ØÀû²ó
rotate_left; //¤³¤ÎÆ°ºî¤¬Ï¢Â³¤¹¤ë¤È»ß¤Þ¤ë
}
}
Off(OUT_BC);
Wait(2000);
}
**¥Ü¡¼¥ë¤Î¥·¥å¡¼¥È [#i119d10d]
º£²ó¤Î²ÝÂê¤Ç¤Ï¡¤¥³¡¼¥¹¤ÎÅÓÃæ¤Ç¥Ü¡¼¥ë¤òÄϤߡ¤¥´¡¼¥ëÁ°¤ÇÊü¤·¡¤¥·¥å¡¼¥È¤¹¤ëÆ°¤¤¬¤¢¤ë¡¥»ä¤¿¤Á¤Î ¥°¥ë¡¼¥×¤Ç¤Ï¡¤¥Ü¡¼¥ë¤òÊü¤·¤¿¸å¤Ë¥í¥Ü¥Ã¥ÈËÜÂΤÇÁ°¤Ë²¡¤·½Ð¤·¤Æ¥·¥å¡¼¥È¤¹¤ë¥×¥í¥°¥é¥à¤òºî¤Ã¤¿¡¥¤Þ¤¿¡¤¤½¤ì¤¾¤ì¤ò #define ¤ÇÄêµÁ¤·¤¿¡¥
-¥Ü¡¼¥ë¤òÄϤà¥×¥í¥°¥é¥à
#define catch OnRev(OUT_A,25);Wait(500);Off(OUT_A);
-¥Ü¡¼¥ë¤òÊü¤¹¥×¥í¥°¥é¥à
#define release OnFwd(OUT_A,25);Wait(500);Off(OUT_A);
-¥Ü¡¼¥ë¤ò²¡¤·½Ð¤¹¥×¥í¥°¥é¥à
¥â¡¼¥¿¡¼¤Î½ÐÎϤòÂçÉý¤Ë¾å¤²¤Æ¥Ü¡¼¥ë¤¬¤Þ¤Ã¤¹¤°¿Ê¤à¤è¤¦¤Ë¤·¤¿¡¥
#define osidasi OnFwd(OUT_BC,100);Wait(100);Off(OUT_BC);
*¥³¡¼¥¹¾å¤òÆ°¤«¤¹ [#t492d4c1]
¥³¡¼¥¹¤Î¾å¤òÆ°¤¯Î®¤ì¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¡¥
&ref(2019a/Member/Kasai/Mission2/map_junnbann.png,50%);
**¥á¥¤¥ó¥×¥í¥°¥é¥à [#k8a404a7]
task main()
{
SetSensorLight(S1);
followline_R(150); //1
Blackto_White_L(); //2
followline_L(200); //3
Blackto_White_R(); //4
followline_R2(200); //5
catch; //¥Ü¡¼¥ë¤òÄϤà
turn; //º¸¤ËÀû²ó
followline_R(150); //6
Blackto_White(); //7
followline_L(150); //8
Blackto_White_L(); //9
followline_L(200); //10
Blackto_White(); //11
followline_L(200); //12
Blackto_White(); //13
followline_L(200); //14
Blackto_White(); //15
followline_R(150); //16
Blackto_White(); //17
followline_R(150); //18
release; //¥Ü¡¼¥ë¤òÊü¤¹
osidasi; //¥´¡¼¥ë¤¹¤ë
}
**Á´ÂÎ¤Î¥×¥í¥°¥é¥à [#d398e02c]
#define turn_right OnFwd(OUT_C,25);OnRev(OUT_B,15);
#define turn_left OnFwd(OUT_B,25);OnRev(OUT_C,15);
#define rotate_right OnFwd(OUT_C,20);OnRev(OUT_B,25);
#define rotate_left OnFwd(OUT_B,20);OnRev(OUT_C,25);
#define go_straight OnFwd(OUT_BC,20);
#define go_straight2 OnFwd(OUT_BC,15);
#define turn OnRev(OUT_C,25);OnFwd(OUT_B,25);Wait(1500);Off(OUT_BC);
#define catch OnRev(OUT_A,25);Wait(500);Off(OUT_A);
#define release OnFwd(OUT_A,25);Wait(500);Off(OUT_A);
#define osidasi OnFwd(OUT_BC,100);Wait(100);Off(OUT_BC);
#define black 20
#define white 50
#define lightgray 40
#define darkgray 28
sub followline_L(int stop_time)
{
long t0=CurrentTick();
while(CurrentTick()-t0<stop_time){
if(SENSOR_1<black){
rotate_left;
}else if(SENSOR_1<darkgray){
turn_left;
}else if(SENSOR_1>lightgray){
turn_right;
t0=CurrentTick();
}else if(SENSOR_1<35){
go_straight;
t0=CurrentTick();
}else{
rotate_right;
t0=CurrentTick();
}
}
Off(OUT_BC);
Wait(1000);
}
sub followline_R(int stop_time)
{
long t0=CurrentTick();
while(CurrentTick()-t0<stop_time){
if(SENSOR_1<black){
rotate_right;
}else if(SENSOR_1<darkgray){
turn_right;
}else if(SENSOR_1>lightgray){
turn_left;
t0=CurrentTick();
}else if(SENSOR_1<35){
go_straight;
t0=CurrentTick();
}else{
rotate_left;
t0=CurrentTick();
}
}
Off(OUT_BC);
Wait(1000);
}
sub followline_R2(int stop_time)
{
long t0=CurrentTick();
while(CurrentTick()-t0<stop_time){
if(SENSOR_1<black){
rotate_right;
t0=CurrentTick();
}else if(SENSOR_1<darkgray){
turn_right;
t0=CurrentTick();
}else if(SENSOR_1>lightgray){
turn_left;
}else if(SENSOR_1<35){
go_straight2;
t0=CurrentTick();
}else{
rotate_left;
}
}
Off(OUT_BC);
Wait(2000);
}
sub Blackto_White()
{
while(SENSOR_1<darkgray){
OnFwd(OUT_BC,15);
}
Off(OUT_BC);
}
sub Blackto_White_R()
{
while(SENSOR_1<darkgray){
OnFwd(OUT_C,20);
OnRev(OUT_B,20);
}
Off(OUT_BC);
}
sub Blackto_White_L()
{
while(SENSOR_1<lightgray){
OnFwd(OUT_B,20);
OnRev(OUT_C,20);
}
Off(OUT_BC);
}
task main()
{
SetSensorLight(S1);
followline_R(150);
Blackto_White_L();
followline_L(200);
Blackto_White_R();
followline_R2(200);
catch;
turn;
followline_R(150);
Blackto_White();
followline_L(150);
Blackto_White_L();
followline_L(200);
Blackto_White();
followline_L(200);
Blackto_White();
followline_L(200);
Blackto_White();
followline_R(150);
Blackto_White();
followline_R(150);
release;
osidasi;
}
*¤Þ¤È¤á [#b411665f]
º£²ó¤â¤Ê¤ó¤È¤«²ÝÂê¤ò¥¯¥ê¥¢¤¹¤ë¤³¤È¤¬¤Ç¤¤¿¡¥
¤·¤«¤·¡¤¥×¥í¥°¥é¥ß¥ó¥°¤ÎÀ©ºî»þ¤Ë¤Ï¡¤¥×¥í¥°¥é¥à¼«ÂΤϴְã¤Ã¤Æ¤Ê¤¤¤Ï¤º¤Ê¤Î¤Ë¡¤¥í¥Ü¥Ã¥È¤¬Æ°¤«¤Ê¤«¤Ã¤¿¤êÆ°¤¤¬Æߤ¯¤Ê¤ë¤³¤È¤¬Â¿¡¹¤¢¤Ã¤¿¡¥¤½¤Î¸¶°ø¤Ï¥â¡¼¥¿¤ÎÎô²½¤Ê¤É¤Î¸¶°ø¤â¤¢¤ë¤À¤í¤¦¤¬¡¤¤ª¤½¤é¤¯ÅÅÃÓÀÚ¤ì¤Ç¤Ï¤Ê¤¤¤«¤È¹Í¤¨¤é¤ì¤¿¡¥Á°²ó¤Î²ÝÂê¤Î»þ¤Ë¤Ï¤Û¤È¤ó¤É¤Ê¤Ã¤«¤¿¥Ï¥×¥Ë¥ó¥°¤À¤Ã¤¿¤¿¤á¤Ë¡¤ÅÅÃÓÀÚ¤ì¤È¤¤¤¦¤³¤È¤Ëµ¤ÉÕ¤«¤ºÂ¿¤¯¤Î̵Â̤ʻþ´Ö¤òÈñ¤ä¤·¤Æ¤·¤Þ¤Ã¤¿¡¥¾ï¤Ë¤¢¤é¤æ¤ë²ÄǽÀ¤ä¸¶°ø¤ò¹Íθ¤·¤ÆÀ©ºî¤·¤Æ¤¤¤¯É¬Íפ¬¤¢¤ë¤È´¶¤¸¤¿¡¥¤Þ¤¿¡¤¥×¥í¥°¥é¥à¼«ÂΤâ¤Þ¤À¤Þ¤À;·×¤Ê½ê¤¬¤¢¤ë¤È»×¤¦¤Î¤Ç¡¤¼¡²ó¤Î²ÝÂê¤Ç¤Ï´Ê·é¤Ê¤è¤êÎɤ¤¥×¥í¥°¥é¥à¤òÀ©ºî¤·¤¿¤¤¡¥
¥Ú¡¼¥¸Ì¾: