2019a/Member Ìܼ¡ [#p5af44b8]
¥Ô¥ó¥Ý¥ó¶Ì¤Þ¤¿¤ÏÀĤÈÀ֤Υܡ¼¥ë¤ò±¿È¤·¤Æ¡¢½êÄê¤ÎÍÆ´ï¤ÎÃæ¤ËÆþ¤ì¤ë¡£
¡¦¥Õ¥£¡¼¥ë¥É¤Ï²ÝÂê2¤Ç»ÈÍѤ·¤¿»æ¤ò»ÈÍѤ¹¤ë¡£
¡¦À¸¶¨¤Î¤ªÊÛÅö¤Î»Í³Ñ¤¤¥×¥éÍÆ´ï2¤Ä¤ò¤½¤ì¤¾¤ì±ßÆâ¤ËÃÖ¤¡¢ÊÒÊý¤Ë¶Ì¤ò2¸ÄÆþ¤ì¤ë¡£
¡¦»Ä¤ê¤Î2¸Ä¤Î¶Ì¤Ï²ÝÂê2¤ÈƱ¤¸°ÌÃÖ¤ËÃÖ¤¯¡£¤½¤ÎºÝ¡¢¥´¥à¥¿¥¤¥ä¤ä¥×¥ì¡¼¥È¤Î¾å¤ËÃÖ¤¤¤Æ¤â¤è¤¤¡£
¡¦¥×¥éÍÆ´ï¤Ë¤Ï¿§¤ò¤Ä¤±¤¿¤êʸ»ú¤äµ¹æ¤ò½ñ¤¤¤Æ¤â¤è¤¤¡£
¡¦¥×¥éÍÆ´ï¤ÏξÌ̥ơ¼¥×Åù¤Ç¥Õ¥£¡¼¥ë¥É¤Ë¸ÇÄꤷ¤Æ¤â¤è¤¤¡£
¡¦2Ëç¤Î»æ¤Î¶³¦¤Ë¤Ï¤½¤ì¤¾¤ìÉý1cm¡¢¹ç·×2cm¤Î¹õÀþ¤òÉÁ¤¤¤Æ¤â¤è¤¤¡£
ºÇ½é¤Ë¡¢Âç¤Þ¤«¤Ë¤É¤ó¤Ê¥í¥Ü¥Ã¥È¤Ë¤¹¤ë¤«¤òÏä·¹ç¤Ã¤Æ¼¡¤Î¤è¤¦¤Ê¾ò·ï¤Î¥í¥Ü¥Ã¥È¤Ë¤¹¤ë¤³¤È¤Ë¤Ê¤Ã¤¿¡£
¡¦¥é¥¤¥ó¥È¥ì¡¼¥¹¤ÎÀµ³ÎÀ¤òÁý¤¹¤¿¤á¤Ë¸÷¥»¥ó¥µ¡¼¤òÆó¤Ä»ÈÍѤ¹¤ë¡£
¡¦ÍÆ´ï¤ÎÃæ¤Î¶Ì¤âÄϤá¤ë¤è¤¦¤Ë¾å¤«¤é¶´¤ó¤ÇÄϤॢ¡¼¥à¤Ë¤¹¤ë¡£
»Â¿·¤Ê¥¢¥¤¥Ç¥¢¤Ï½Ð¤Æ¤³¤Ê¤«¤Ã¤¿¤¿¤á¡¢¶òľ¤Ë¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤·¤Æ¤¤¤¯¤³¤È¤Ë¤·¤¿¡£¤³¤ì¤Ë¤¢¤¿¤ê¡¢ÉÔ³ÎÄêÍ×ÁǤò¸º¤é¤¹¤¿¤á¥ë¡¼¥ë¤Ë½¾¤¤2Ëç¤Î»æ¤Î¶³¦¤Ë¹õÀþ¤ò°ú¤¤¤¿¡£¤Þ¤¿¡¢Ê¬¤«¤ê¤ä¤¹¤¯¤¹¤ë¤¿¤á¤Ë¿·¤·¤¯¤Ç¤¤¿¸òº¹ÅÀ¤ò¤½¤ì¤¾¤ì ¾ , ¾¡Ç¤È¤·¤¿(²¼¿Þ»²¾È¡Ë¡£
¡¡¡¤Þ¤ºA¤«¤é¥¹¥¿¡¼¥È¤·¡¢M,K¤òÄ̤äÆL¤Ç¶Ì¤òÄϤࡣ
¡¡¢¿¶¤êÊ֤äơ¢Í褿ƻ¤òé¤êM>B>X>X'>B'>M'>K'>J'¤È¿Ê¤ó¤Ç¥´¡¼¥ë¤Ë¶Ì¤òÆþ¤ì¤ë¡£
¡¡£¸åÂष¤Ê¤¬¤é¸þ¤¤òÊѤ¨¡¢L'¤Þ¤Ç¿Ê¤ß¶Ì¤òÄϤࡣ
¡¡¤¿¶¤êÊ֤äÆK'>J'¤È¿Ê¤ó¤Ç¥´¡¼¥ë¤Ë¶Ì¤òÆþ¤ì¤ë¡£
¡¡¥¸åÂष¤Ê¤¬¤é¸þ¤¤òÊѤ¨¡¢M'>B'>X'>X>B>C>I¤È¿Ê¤ó¤ÇÍÆ´ï¤ÎÃæ¤Î¶Ì¤òÄϤࡣ
¡¡¦¿¶¤êÊ֤äÆC>B>X>X'>B'>C'>I'¤È¿Ê¤ó¤Ç¥´¡¼¥ë¤Ë¶Ì¤òÆþ¤ì¤Æ½ªÎ»¡£
Åö½éºî¤Ã¤¿¥¢¡¼¥à¡Ê²¼¿Þº¸¡Ë¤Ç¤ÏÍÆ´ï¤ÎÃæ¤Î¶Ì¤òÄϤá¤Ê¤«¤Ã¤¿¤¿¤á¡¢²¼¿Þ±¦¤Î¤è¤¦¤Ê·Á¾õ¤Ë²þÎɤ·¤¿¡£
¤³¤ÎºÝ¡¢¥¢¡¼¥à¤¬³«¤¤¹¤®¤Ê¤¤¤è¤¦¤Ë¥¹¥È¥Ã¥Ñ¡¼¤ò¤Ä¤±¤¿¡Ê²¼¿ÞÀִݤǰϤä¿Éôʬ¡Ë¡£
¤Þ¤¿¡¢±ü¹Ô¤¤âÄɲä·¤ÆÆó¤ÄƱ»þ¤ËÄϤá¤ë¤è¤¦¤Ë¤·¤¿¡£¤³¤ì¤Ë¤è¤Ã¤Æ°ÜÆ°µ÷Î¥¤È»þ´Ö¡¢¥×¥í¥°¥é¥à¤¬Ã»½Ì¤µ¤ì¤¿¡£
¥¢¡¼¥à¤Î°ìÈÖ²¼¤ÎÉôʬ¤¬°ìÉô·Ò¤¬¤Ã¤Æ¤¤¤Ê¤¤¤Î¤Ï¡¢ÃúÅÙ¤¤¤¤Ä¹¤µ¤ÎËÀ¤¬¤Ê¤«¤Ã¤¿¤«¤é¤Ç¤¢¤ë¡£Æä˰ÕÌ£¤Ï¤Ê¤¤¡£
¹õÀþ¤ÎÉý¤Ë¹ç¤¦¤è¤¦¤ËÄ´Àᤷ¤Æ¼è¤êÉÕ¤±¤¿¡£
²£¤«¤é¸«¤ë¤È¤³¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¥¢¡¼¥à¤¬½Å¤¤¤Î¤Ç¡¢ËÜÂΤò¸å¤í¤ËÇÛÃÖ¤·¤Æ¥Ð¥é¥ó¥¹¤ò¤È¤Ã¤¿¡£
Àµ³ÎÀ¤òÁý¤¹¤¿¤á¡¢¥»¥ó¥µ¡¼¤Ï¥¿¥¤¥ä¤Ë¤Ç¤¤ë¤À¤±¶á¤Å¤±¤¿¡£
¥³¡¼¥É¤ÏËÜÂΤδ֤ˤޤȤá¤ÆÄ̤·¤Æ¸«±É¤¨¤òÎɤ¯¤·¤¿¡£
¥Þ¥¹¥¿¡¼Â¦¤¬°ÜÆ°¤È¥»¥ó¥µ¡¼¤òôÅö¤¹¤ë¡£
#define KOSATEN 37 //¹õ¤«¤É¤¦¤«¤Î¶³¦
#define completed 15 //¥¹¥ì¡¼¥Ö¦¤ËÆ°ºî¤Î½ªÎ»¤òÅÁ¤¨¤ë #define turn_left OnRev(OUT_A,70);OnFwd(OUT_B,70); //º¸ÀÞ #define go_left OnRev(OUT_A,85);Off(OUT_B); //¿Ê¤ß¤Ä¤Äº¸¤Ë¶Ê¤¬¤ë #define go_straight OnRev(OUT_AB,70); //ľ¿Ê #define go_right OnRev(OUT_B,85);Off(OUT_A); //¿Ê¤ß¤Ä¤Ä±¦¤Ë¶Ê¤¬¤ë #define turn_right OnRev(OUT_B,100);OnFwd(OUT_A,100); //±¦ÀÞ #define short_break Off(OUT_AB);Wait(1000); //¾®µÙ»ß #define brake Off(OUT_AB) //Ää»ß
sub follow_line() //Ä̾ï¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹ { while((SENSOR_1>KOSATEN)||(SENSOR_2>KOSATEN)){ int d=SENSOR_1-SENSOR_2; if (d<-6){ turn_right; }else if (d<-3){ go_right; }else if (d<=3){ go_straight; }else if (d<=6){ go_left; }else { turn_left; } } PlaySound(SOUND_CLICK); brake;Wait(200); }
ξÊý¤Î¥»¥ó¥µ¡¼¤¬£³£·°Ê¾å¤Î»þ¡¢if°Ê²¼¤ÎÆ°ºî¤ò¤¹¤ë¡£º£²ó¤Ïº¸±¦¤Î¿ôÃͤκ¹¤ÇȽÃǤ¹¤ë¤è¤¦¤Ë¤·¤¿¡£
ξÊý¤Î¿ôÃͤ¬£³£·°Ê²¼¤Ç¸òº¹ÅÀ¤ÈȽÃǤ·¡¢Ää»ß¤¹¤ë¡£Ää»ß¤¹¤ë¤È¤¤Ë²»¤¬ÌĤë¤è¤¦¤Ë¤·¤¿¡£
¤³¤ì¤Ë¤è¤Ã¤Æ¸òº¹ÅÀ¤ò¤Á¤ã¤ó¤ÈȽÃǤ·¤Æ¤¤¤ë¤«¤É¤¦¤«¡¢¤¢¤ë¤¤¤Ï°ã¤¦¤È¤³¤í¤Ç¸òº¹ÅÀ¤ÈȽÃǤ·¤Æ¤¤¤Ê¤¤¤«¤¬¤ï¤«¤ê¤ä¤¹¤¯¤Ê¤ë¡£
sub follow_line2(int followtime) //¥¿¥¤¥Þ¡¼¤ò»È¤¦¥é¥¤¥ó¥È¥ì¡¼¥¹ { long t0=CurrentTick(); while(CurrentTick()-t0<followtime){ int d=SENSOR_1-SENSOR_2; if (d<-6){ turn_right; }else if (d<-3){ go_right; }else if (d<=3){ go_straight; }else if (d<=6){ go_left; }else { turn_left; } } PlaySound(SOUND_CLICK); brake;Wait(200); }
´ðËÜŪ¤Ë¤ÏÄ̾ï¤ÈƱ¤¸¡£K>L¤Ë¿Ê¤à¤È¤¤Ê¤É¡¢µ÷Î¥¤òÄ´À᤹¤ëɬÍפ¬¤¢¤ë½ê¤Ç»È¤¦¡£
sub chokusinL() //ľ¿Êº¸ { go_left;Wait(500); } sub chokusinR() //ľ¿Ê±¦ { go_right;Wait(500); } sub sasetsu() //º¸ÀÞ { turn_left;Wait(500); go_left;Wait(500); } sub usetsu(int migi) //±¦ÀÞ { turn_right;Wait(500); go_right;Wait(migi); } sub turn_behind() //¿¶¤ê¸þ¤¯ { turn_left;Wait(1000); while(SENSOR_1>KOSATEN){ turn_left; } Off(OUT_BC); }
sub backleft() //¸åÂष±¦¤ò¸þ¤¯ { OnFwd(OUT_A,100);Off(OUT_B);Wait(1500); turn_right;Wait(600); Off(OUT_AB); } sub backright() //¸åÂषº¸¤ò¸þ¤¯ { OnFwd(OUT_B,100);Off(OUT_A);Wait(1400); turn_left;Wait(500); Off(OUT_AB); }
sub ball_catch() //¶Ì¤òÄϤà { int msg; SendRemoteNumber(1,MAILBOX1,12); while(msg==completed){ ReceiveRemoteNumber(MAILBOX1,true,msg); } } sub ball_release() //¶Ì¤òÊü¤¹ { int msg; SendRemoteNumber(1,MAILBOX1,11); while(msg==completed){ ReceiveRemoteNumber(MAILBOX1,true,msg); } }
sub arm_up() //¥¢¡¼¥à¤ò¾å¤²¤ë { int msg; SendRemoteNumber(1,MAILBOX1,13); while(msg==completed){ ReceiveRemoteNumber(MAILBOX1,true,msg); } } sub arm_down() //¥¢¡¼¥à¤ò²¼¤²¤ë { int msg; SendRemoteNumber(1,MAILBOX1,14); while(msg==completed){ ReceiveRemoteNumber(MAILBOX1,true,msg); } }
sub up_catch() //¥¢¡¼¥à¤ò¾å¤²¤Ê¤¬¤éÊĤ¸¤ë { int msg; SendRemoteNumber(1,MAILBOX1,16); while(msg==completed){ ReceiveRemoteNumber(MAILBOX1,true,msg); } } sub down_release() //¥¢¡¼¥à¤ò²¼¤²¤Ê¤¬¤é³«¤¯ { int msg; SendRemoteNumber(1,MAILBOX1,17); while(msg==completed){ ReceiveRemoteNumber(MAILBOX1,true,msg); } }
task main() { SetSensorLight(S1);//±¦¥«¥é¡¼¥»¥ó¥µ¡¼ SetSensorLight(S2);//º¸¥«¥é¡¼¥»¥ó¥µ¡¼ arm_up(); short_break; ball_release(); go_straight;Wait(2000); follow_line(); //M chokusinR(); //K follow_line2(1500); short_break; //L arm_down(); short_break; ball_catch(); //¥Ü¡¼¥ë¥¥ã¥Ã¥Á short_break; arm_up(); short_break; turn_behind(); follow_line(); chokusinL(); //K follow_line(); usetsu(500); //M follow_line(); sasetsu(); follow_line(); chokusinL(); //B follow_line(); usetsu(500); //X follow_line(); sasetsu(); //X' follow_line(); chokusinR(); //B' follow_line(); sasetsu(); //M' follow_line(); sasetsu(); //K' follow_line2(1000); short_break; //J' ball_release(); //¥ê¥ê¡¼¥¹ short_break; backleft(); //K' follow_line2(3700); short_break; //L' arm_down(); short_break; ball_catch(); //¥Ü¡¼¥ë¥¥ã¥Ã¥Á short_break; arm_up(); short_break; turn_behind(); OnFwd(OUT_AB,30);Wait(100); follow_line(); usetsu(500); //K' follow_line2(500); short_break; //J' ball_release(); //¥ê¥ê¡¼¥¹ short_break; backright(); follow_line(); chokusinL(); follow_line(); usetsu(500); //M' follow_line(); chokusinL(); //B' follow_line(); usetsu(500); //X' follow_line(); sasetsu(); //X follow_line(); sasetsu(); //B follow_line(); usetsu(400); //C follow_line2(1650); short_break; //I arm_down(); short_break; ball_catch(); //¥Ü¡¼¥ë¥¥ã¥Ã¥Á short_break; up_catch(); short_break; backleft(); //C follow_line(); usetsu(500); //B follow_line(); usetsu(500); //X follow_line(); sasetsu(); //X' follow_line(); sasetsu(); //B' follow_line(); usetsu(700); follow_line2(900); short_break; //J' down_release(); //¥ê¥ê¡¼¥¹ short_break; arm_up(); short_break; backright(); //K' } //½ªÎ»
¥¹¥ì¡¼¥Ö¦¤¬¥¢¡¼¥à¤Î¾å²¼¤ÈÄϤߤòôÅö¤¹¤ë¡£
#define ball_release 11 #define ball_catch 12 #define arm_up 13 #define arm_down 14 #define completed 15 #define up_catch 16 #define down_release 17
task main() { int msg; while(true){ ReceiveRemoteNumber(MAILBOX1,true,msg); if(msg==ball_release){ OnFwd(OUT_A,50);Wait(500);Off(OUT_A);Wait(500); //¶Ì¤òÊü¤¹ SendResponseNumber(MAILBOX1,completed); } if(msg==ball_catch){ OnRev(OUT_A,50);Wait(600);Off(OUT_A);Wait(500); //¶Ì¤òÄϤà SendResponseNumber(MAILBOX1,completed); } if(msg==arm_up){ OnFwd(OUT_B,50);Wait(600); OnFwd(OUT_B,5);Wait(500); //¥¢¡¼¥à¤ò¾å¤²¤ë SendResponseNumber(MAILBOX1,completed); } if(msg==arm_down){ OnRev(OUT_B,30);Wait(600); OnFwd(OUT_B,5);Wait(500); //¥¢¡¼¥à¤ò²¼¤²¤ë SendResponseNumber(MAILBOX1,completed); } if(msg==up_catch){ OnFwd(OUT_B,40);OnRev(OUT_A,15);Wait(300); //ÄϤߤʤ¬¤é»ý¤Á¾å¤²¤ë SendResponseNumber(MAILBOX1,completed); } if(msg==down_release){ OnRev(OUT_B,10);OnFwd(OUT_A,20);Wait(150); //²¼¤í¤·¤Ê¤¬¤éÊü¤¹ SendResponseNumber(MAILBOX1,completed); } Wait(100); msg=0; } } //½ªÎ»
ÆäËDZ¤Ã¤¿¥¢¥¤¥Ç¥¢¤â¤Ê¤¯ÃÏÌ£¤Ê¤â¤Î¤Ë¤Ê¤Ã¤¿¤È»×¤Ã¤¿¤¬¡¢·ë²ÌŪ¤Ë¤Ï¤½¤ì¤¬¸ù¤òÁÕ¤·¡¢Îɤ¤·ë²Ì¤ò½Ð¤¹¤³¤È¤¬¤Ç¤¤¿¡£»°¿Í¥°¥ë¡¼¥×¤À¤Ã¤¿¤¿¤á¿Í¿ôŪ¤ËÉÔÍø¤À¤È»×¤Ã¤¿¤¬¡¢¤¦¤Þ¤¯ºî¶È¤òʬô¤·¤Æ´°À®¤µ¤»¤é¤ì¤¿¡£ÍÆ´ï¤ÎÃæ¤Î¶Ì¤òÄϤà½ê¤ÎÄ´À°¤¬°ìÈÖÆñ¤·¤¯¡¢ËÜÈ֤Ǥϱ¿¼¡Âè¤È¤¤¤Ã¤¿·Á¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£¤³¤³¤À¤±¤Ï²ù¤·¤µ¤¬»Ä¤ë¡£¤¿¤À¡¢¤½¤ÎÁ°¤ÎÆó¤Ä¤Ï¤Û¤Ü´°àú¤Ë»Å¾å¤²¤ë¤³¤È¤¬¤Ç¤¤¿¤Î¤ÇÎɤ«¤Ã¤¿¡£»þ´Ö¤ò¤«¤±¤¿¹ÃÈ夬¤¢¤Ã¤¿¡£