Ìܼ¡
²¼¤Î¿Þ¤Î¤è¤¦¤Ê¥³¡¼¥¹¤ò³Æ¥Á¡¼¥à¤ÇºîÀ®¤·¡¢¡Ö¥ß¥Ã¥·¥ç¥ó¡×¤ò¿ë¹Ô¤¹¤ë¤¿¤á¤Î¥í¥Ü¥Ã¥È¤òºîÀ®¤»¤è
¥ß¥Ã¥·¥ç¥ó¤ÎÆâÍÆÅù¤Ï 2019a/Mission2¤ò»²¾È¡£
»ä¤¿¤Á¤Î¥°¥ë¡¼¥×¤Ï°Ê²¼¤Î¤è¤¦¤Ê¥³¡¼¥¹¤òÁªÂò¤·¤¿¡£
AÃÏÅÀ¤«¤é½Ðȯ ¢ª B ¢ª C(ľ¿Ê) ¢ª D(°ì»þÄä»ß¤Î¸å¡¢Ä¾¿Ê) ¢ª E ¢ª F
¢ª G(°ì»þÄä»ß¤Î¸å¡¢±¦ÀÞ) ¢ª H ¢ª I ¢ª J(±¦ÀÞ) ¢ª K(º¸ÀÞ) ¢ª L(¥Ô¥ó¥Ý¥ó¶Ì¤ò¤Ä¤«¤à)
¢ª K(ľ¿Ê) ¢ª M(°ì»þÄä»ß) ¢ª ¥·¥å¡¼¥È¢ª AÃÏÅÀ¤ËÆþ¤ë(¥´¡¼¥ë)
»ä¤¿¤Á¤ÎÈɤϰʲ¼¤Î¤è¤¦¤Ë¤³¤Î¥³¡¼¥¹¤ò¿Ê¤àºîÀï¤òΩ¤Æ¤¿¡£
¥¹¥¿¡¼¥ÈÃÏÅÀ¤«¤é¤Þ¤Ã¤¹¤°¿Ê¤ó¤À¸å¡¢±¦Â¦¤ÎľÀþ¤ò¥é¥¤¥ó¥È¥ì¡¼¥¹¤·¤Æ¤¤¤¯¡£
¸òº¹ÅÀ¡(¿Þ¤Ç¤Ï¸ò¡)¤Ç¤Ï¸òº¹ÅÀ¤Ç°ì»þÄä»ß¸å¡¢Ä¾¿Ê¤¹¤ë¡£
¤½¤ì¤Þ¤Ç¤Î²áÄø¤òÎТª¤Çɽ¤·¤Æ¤¤¤ë¡£
¤½¤Î¸å¡¢KÃÏÅÀ¤«¤é¥Ü¡¼¥ë¤ò¥¥ã¥Ã¥Á¤¹¤ë¤Þ¤Ç¤Ï¼êÆ°¤ÇÀßÄꤷ¤Æ¤¤¤¯¡£
¤½¤Î²áÄø¤òÀÄ¢ª¤Çɽ¤·¤Æ¤¤¤ë¡£
ºÇ¸å¤Ïº¸Â¦¤ÎľÀþ¤ò¥é¥¤¥ó¥È¥ì¡¼¥¹¤·¤Æ¤¤¤¡¢¥´¡¼¥ëľÁ°¤Çµå¤ò¥·¥å¡¼¥È¤·¤Æ¼«¿È¤¬¥´¡¼¥ë¤¹¤ë¡£
¤½¤ì¤Þ¤Ç¤Î²áÄø¤ò¥ª¥ì¥ó¥¸¢ª¤Çɽ¤·¤Æ¤¤¤ë¡£
¥é¥¤¥ó¥È¥ì¡¼¥¹¤ä¸òº¹ÅÀ¤Ç¤ÎÆ°ºî(¥×¥í¥°¥é¥ß¥ó¥°)¤Î»ÅÁȤߤˤĤ¤¤Æ¤Ï #adc6e636 ¤ò»²¾È¡£
¼ç¤Ê¥Ñ¡¼¥Ä¤Ï¼ÖÂΡ¢ËÜÂΡ¢¥¢¡¼¥à¡¢¸÷¥»¥ó¥µ¡¼¤Ç¤¢¤ë¡£
¾Ü¤·¤¯¤Ï°Ê²¼¤Î¼Ì¿¿¤ò»²¾È¡£
¾å¤Î¼Ì¿¿¤¬º£²óºîÀ®¤·¤¿¥í¥Ü¥Ã¥È¤ÎÁ´ÂΤǤ¢¤ë¡£
¼Ì¿¿º¸¸þ¤¤¬Á°Êý¸þ¤Ç¤¢¤ë¡£
Á°Êý¤Ë¤Ï¸÷¥»¥ó¥µ¡¼¤¬¤Ä¤¤¤Æ¤ª¤ê¡¢¤³¤ì¤¬¿§¤ÎÌÀÅÙ¤ò¬¤ê¥×¥í¥°¥é¥ß¥ó¥°¤·¤¿Ä̤ê¤Î»Ø¼¨¤ò¹Ô¤¦¡£
¸åÊý¤Ë¤Ï¥¢¡¼¥à¤¬¤Ä¤¤¤Æ¤ª¤ê¡¢¤³¤ì¤¬¥Ô¥ó¥Ý¥ó¶Ì¤ò¥¥ã¥Ã¥Á¤¹¤ë»ÅÁȤߤˤʤäƤ¤¤ë¡£
º£²ó¤ÏÁ°²ó¤Î²ÝÂê¤Ç¼ºÇÔ¤·¤¿ÅÀ¡¢¼ÖÂΤνŤµ¤Ç¸åÎؤ¬¥¹¥à¡¼¥º¤Ë²ó¤é¤Ê¤¤ÅÀ¤ò¹Íθ¤·¤Æ¡¢
½Å¿´¤òÁ°Êý¤Ë»ý¤Ã¤Æ¤¯¤ë¤³¤È¤Ç¹îÉþ¤·¤Æ¤¤¤ë¡£
º£²ó¹©Éפ·¤¿ÅÀ¤Î°ì¤Ä¤¬¡¢¤³¤Î¥±¡¼¥Ö¥ë¼ýǼ¤Ç¤¢¤ë¡£
¤³¤Î²ÝÂê¤Ç¤Ï¡¢¥â¡¼¥¿3¤Äʬ¡Ü¥»¥ó¥µ¡¼1¤Äʬ¤Î4¤Ä¤Î¥±¡¼¥Ö¥ë¤ò»ÈÍѤ¹¤ë¡£
¤½¤Î¤¿¤áɬÁ³Åª¤Ë¥±¡¼¥Ö¥ë¤¬¤´¤Á¤ã¤´¤Á¤ã¤·¤Æ¤·¤Þ¤¤¡¢»þ¤È¤·¤Æ¥í¥Ü¥Ã¥È¤ÎÆ°ºî¤ò
¼ÙË⤷¤Æ¤·¤Þ¤¦²ÄǽÀ¤¬¤¢¤ë¡£¤½¤ì¤ò²ò·è¤¹¤ë¤Î¤¬¤³¤Î¼ýǼ¤Ç¤¢¤ê¡¢Í¾Ê¬¤ÊŤµÊ¬¤ò
¤³¤Î°Ï¤¤Éôʬ¤Ë¤¯¤ë¤¯¤ë´¬¤ÉÕ¤±¤ë¤³¤È¤Ç¥³¥ó¥Ñ¥¯¥È¤ËÁõÃå¤Ç¤¤ë¡£
¼ýǼ»þ¤Î¼Ì¿¿¤Ï #d3cbddf7 ¤ò»²¾È¡£
¤³¤ì¤¬ºîÀ®¤·¤¿¥¢¡¼¥à¤Ç¤¢¤ë¡£
°ìÊý¤Î»Ø¤Ï¸ÇÄꤵ¤ì¤Æ¤ª¤ê¡¢¤â¤¦ÊÒÊý¤Î»Ø¤¬»õ¼Ö¤Ç¥â¡¼¥¿¤ÈÏ¢·È¤µ¤ì¤ÆÆ°¤«¤¹¤³¤È¤¬¤Ç¤¤ë¡£
#define MOVE_TIME 250 //¥é¥¤¥ó¥È¥ì¡¼¥¹¤Î¾ò·ïÍѤλþ´Ö(¾ÜºÙ¤Ï¸å½Ò) #define SPEED_H 35 //¥¹¥Ô¡¼¥É¤ÎÃÍ(Åý°ì¤¹¤ë¤³¤È¤Ç´Ê°×²½) #define SPEED_L 20 #define B1 43 //ÌÀÅÙ¤ÎÃÍ(¾ÜºÙ¤Ï¸å½Ò) #define G 53 #define W1 59 #define W2 61
#define OnRL(speedR,speedL) OnFwd(OUT_B,speedR);OnFwd(OUT_C,speedL);
#define go_straight OnRL(SPEED_H,SPEED_H);
#define rot_r OnRL(-SPEED_L,SPEED_L); //±¦Àû²ó #define rot_l OnRL(SPEED_L,-SPEED_L); //º¸Àû²ó
#define turn_r OnRL(0,SPEED_L); //±¦²óž #define turn_l OnRL(SPEED_L,0); //º¸²óž
#define arm_open OnRev(OUT_A,20);Wait(1000);Off(OUT_A); //¥¢¡¼¥à¤ò³«¤¯ #define arm_close OnFwd(OUT_A,30);Wait(600);Off(OUT_A); //¥¢¡¼¥à¤òÊĤ¸¤ë
º£²óºî¤Ã¤¿¥µ¥Ö¥ë¡¼¥Á¥ó´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£
sub follow_line_l() { SetSensorLight(S1); long t0=CurrentTick(); while(CurrentTick()-t0<MOVE_TIME){ if(SENSOR_1>W1){ rot_r;t0=CurrentTick(); } else if(SENSOR_1>W2){ turn_r;t0=CurrentTick(); } else if(SENSOR_1>G){ go_straight;t0=CurrentTick(); } else if(SENSOR_1>B1){ turn_l;t0=CurrentTick(); } else{ rot_l; } } }
sub follow_line_r() { SetSensorLight(S1); long t0=CurrentTick(); while(CurrentTick()-t0<MOVE_TIME){ if(SENSOR_1>W1){ rot_l;t0=CurrentTick(); } else if(SENSOR_1>W2){ turn_l;t0=CurrentTick(); } else if(SENSOR_1>G){ go_straight;t0=CurrentTick(); } else if(SENSOR_1>B1){ turn_r;t0=CurrentTick(); } else{ rot_r; } } }
¾ÜºÙ¤Ë¤Ä¤¤¤Æ½Ò¤Ù¤Æ¤¤¤¯¡£º£²ó¤Ïº¸Â¦Ä¾Àþ¥È¥ì¡¼¥¹¤ò¼è¤ê¾å¤²¤ë¡£
¸÷¥»¥ó¥µ¡¼¤¬¥³¡¼¥¹¤ÎÀþÏ©¤ÎÌÀÅÙ¤ò·×¬¡£ÌÀÅÙ¤´¤È¤ËÀßÄꤵ¤ì¤¿Ì¿Îá¤ò¤³¤Ê¤¹¡£
ÌÀÅÙ¤ÈÌ¿Îá¤ÎÀßÄê¤Ï°Ê²¼¡£
¤³¤Îɽ¤ò¿Þ²½¤·¤¿¤â¤Î¤¬°Ê²¼¤Ç¤¢¤ë¡£
ÎТª¤¬Á°¿Ê¡¢¥ª¥ì¥ó¥¸¢ª¤¬²óž¡¢ÀÄ¢ª¤¬Àû²ó¤ò¼¨¤·¤Æ¤¤¤ë¡£
¡Ê¡ö¸«¤ä¤¹¤¯¤¹¤ë¤¿¤á¡¢¡»¤ÎÃæ¤Î¿ô»ú¤ÏÄêµÁ¤·¤¿Ãͤˤ·¤Æ¤¤¤ë¡£¡Ë
¡Öfollow_line_l¡×¤ò¥Õ¥í¡¼¥Á¥ã¡¼¥È²½¤¹¤ë¤È¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¡£
¡¡¡¡»Ï¤á¤ËCurrentTick¤òt0¤Ë(¥ê¥»¥Ã¥È)¤¹¤ë¡£
¡¡¡¡¼¡¤Ë¡ÖCurrentTick()-t0<MOVE_TIME¡×¤Ë¤è¤Ã¤ÆCurrentTick¤Î·×¬»þ´Ö¤¬
¡¡¡¡MOVE_TIME(250)¤òĶ¤¨¤ë¤Þ¤Çwhile¤ÎÃæ¤ò¥ë¡¼¥×¤·Â³¤±¤ë¡£
¡¡¡¡whileʸ¤ÎÃæ¤Ë¤Ïifʸ¡¢elseʸ¤Ç¹½À®¤µ¤ì¤Æ¤¤¤Æ¡¢¸÷¥»¥ó¥µ¡¼¤ÎÃͤˤè¤Ã¤Æ½èÍý¤¬
¡¡¡¡°Û¤Ê¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¸÷¥»¥ó¥µ¡¼¤ÎÃͤ¬43¤è¤êÂ礤¤Ãͤλþ¡Ê¹õ°Ê³°¤Î»þ¡Ë
¡¡¡¡CurrentTick¤ÎÃͤÏÌ¿Îá¿ë¹Ô¸å¡¢¾ï¤Ë¥ê¥»¥Ã¥È¤µ¤ì¡¢¥ë¡¼¥×¤Ï·Ñ³¤µ¤ì¤ë¡£
¡¡¡¡¤·¤«¤·¸÷¥»¥ó¥µ¡¼¤ÎÃͤ¬45°Ê²¼¤Î»þ¡Ê¹õ¤Î»þ¡Ë¡¢CurrentTick¤Ï¥ê¥»¥Ã¥È¤µ¤ì¤Ê¤¤¡£
¡¡¡¡¤³¤Î¾õÂÖ¤¬°ìÄê¤Î»þ´Ö¡ÊMOVE_TIME¡Ë³¤¯¤³¤È¤Ç¡¢¸òº¹ÅÀ¤Ç¤¢¤ë¤ÈȽÃǤ·¡¢
¡¡¡¡¤³¤Î¥ë¡¼¥×¤«¤éÈ´¤±¡¢»ß¤Þ¤ë¹½Â¤¤È¤Ê¤Ã¤Æ¤¤¤ë¡£
¥é¥¤¥ó¥È¥ì¡¼¥¹Ãæ¡¢¸òº¹ÅÀ¤ÈȽÃǤ·¤Æ»ß¤Þ¤Ã¤¿¸å¤ÎÆ°ºî¤Ï3¤Ä¤ËʬÎव¤ì¤ë
sub cross_line_1() { while(SENSOR_1<W1){ go_straight; } while(SENSOR_1>G){ turn_l; } Off(OUT_BC); }
sub cross_line_2() { while(SENSOR_1<W1){ go_straight; } while(SENSOR_1>G){ rot_l; } Off(OUT_BC); }º£²ó¤Ï±¦Â¦Ä¾Àþ¥È¥ì¡¼¥¹¸å¤Î¸òº¹ÅÀ¤Ê¤Î¤Ç±¦Â¦¤Ç¤Î¸òº¹ÅÀľ¿Ê¤òÀâÌÀ¤¹¤ë¡£
¸òº¹ÅÀ¤ÇÄä»ß¸å¡¢Ä¾³Ñ¤Ë¶Ê¤¬¤ë¾ì¹ç¤ÏºÆÅÙ¡Öfollow_line¡×¤òÌ¿Î᤹¤ë¤³¤È¤Ç
¤½¤Î¤Þ¤Þ¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤·Â³¤±Ä¾³Ñ¤Ë¶Ê¤¬¤ë¤³¤È¤¬¤Ç¤¤ë¡£
º£²ó¤Î¥³¡¼¥¹¤Ç¤Ï±¦¤Ë¶Ê¤¬¤ë¤Î¤ß¤Ê¤Î¤Ç¡Öfollow_line_r¡×¤Î¤ß¤Î»ÈÍѤˤʤ롣
¤³¤Î¥ß¥Ã¥·¥ç¥ó¤Ç¤Ï¡Ö¸òº¹ÅÀ¤Ç¤Ï1ÉôÖÄä»ß¤·¡¢Ãú»úÏ©¤Ç¤Ïľ³ÑÊý¸þ¤Ë¿ÊÆþ¤¹¤ë»þ¤Î¤ß°ì»þÄä»ß¡×
¤òµÁ̳¤Å¤±¤Æ¤¤¤ë¡£¤½¤Î¤¿¤á¤³¤Î´Ø¿ô¤ò¶´¤à¤³¤È¤Ç¤½¤Î¾ò·ï¤ò¥¯¥ê¥¢¤·¤Æ¤¤¤ë¡£
sub short_break() { Off(OUT_BC); Wait(1000); }
¥³¡¼¥¹¤ÎKÃÏÅÀ¤«¤éµå¤ò¥¥ã¥Ã¥Á¤¹¤ë¤Þ¤Ç¤Ï¼êÆ°¤Î¥×¥í¥°¥é¥ß¥ó¥°¤òºÎÍѤ·¤Æ¤¤¤ë¡£
¤½¤ì¤¬°Ê²¼¤Î´Ø¿ô¤Ç¤¢¤ë¡£¥¥ã¥Ã¥Á¤Î»ÅÁȤߤ˴ؤ·¤Æ¤Ï #o909993d ¤ò»²¾È¡£
sub ball_catch() { rot_l; //º¸Àû²ó Wait(350); Off(OUT_BC); go_straight; //Á°¿Ê Wait(2000); Off(OUT_BC); OnRL(-SPEED_L,0); //±¦¼ÖÎؤò¸åž¤µ¤»±¦²óž Wait(1000); Off(OUT_B); OnRL(-SPEED_L,-SPEED_L); //¸åÂà Wait(1500); Off(OUT_BC); arm_close; //¥¢¡¼¥à¤òÊĤ¸¤ë rot_r; Wait(1300); go_straight; //Á°¿Ê Wait(800); Off(OUT_BC); }
º¸Â¦¤ÎľÀþ¤ò¥È¥ì¡¼¥¹¤·¤ÆMÃÏÅÀ¤ËÅþ㤷¤¿¸å¤Î´Ø¿ô¤Ç¤¢¤ë¡£
¤³¤Î´Ø¿ô¤Ïµå¤ò¥·¥å¡¼¥È¤·¤Æ¼ÖÂÎËÜÂΤ¬¥´¡¼¥ë¤¹¤ë¤Þ¤Ç¤Î´Ø¿ô¤Ç¤¢¤ë¡£
¥·¥å¡¼¥È¤Î»ÅÊý¤Ë¤Ä¤¤¤Æ¤Ï #o909993d ¤ò»²¾È¡£
sub shoot_goal() { rot_l; //º¸Àû²ó Wait(300); Off(OUT_BC); go_straight;//Á°¿Ê(¥´¡¼¥ë¤ËÂФ·¤Æ²£¸þ¤¤Ë¤Ê¤ë) Wait(1300); arm_open; //¥¢¡¼¥à¤ò³«¤¯ rot_l; //º¸Àû²ó(Æ°ºî¤Ë¹ç¤ï¤»¤Æµå¤ò¥·¥å¡¼¥È) Wait(500); Off(OUT_BC); go_straight;//Á°¿Ê(¼ÖÂΤ¬¥´¡¼¥ë) Wait(500); Off(OUT_BC); }
°Ê¾å¤Î¥µ¥Ö¥ë¡¼¥Á¥ó´Ø¿ô¤ò»ÈÍѤ·¤Æ¥í¥Ü¥Ã¥È¤¬¥¹¥¿¡¼¥È¤·¥Ü¡¼¥ë¥¥ã¥Ã¥Á¸å
¥·¥å¡¼¥È¤ò¤·¤Æ¥´¡¼¥ë¤¹¤ë¤Þ¤Ç¤ÎÆ°ºî¤Î¥×¥í¥°¥é¥ß¥ó¥°¤ò¤·¤Æ¤¤¤¯¡£
°Ê²¼¤¬¥á¥¤¥ó¤Î¥×¥í¥°¥é¥ß¥ó¥°¤À¡£
¡ö¥³¡¼¥¹ÃÏÅÀ¤Î̾Á°¤Ï #q0bf97ed ¤ò»²¾È¡£
task main() { go_straight; //¥¹¥¿¡¼¥È(A)¡ÁB Wait(1000); Off(OUT_BC); follow_line_r(); //B¡ÁC(T»úÏ©) cross_line_1(); //T»úϩľ¿Ê follow_line_r(); //C¡ÁD(¸òº¹ÅÀ) short_break(); //¸òº¹ÅÀ¤Î¤¿¤á°ì»þÄä»ß cross_line_1(); //¸òº¹ÅÀľ¿Ê follow_line_r(); //D¡ÁE follow_line_r(); follow_line_r(); //E¡ÁF follow_line_r(); follow_line_r(); //F¡ÁH cross_line_2(); //H(T»úϩľ¿Ê) follow_line_r(); //H¡ÁI cross_line_2(); //I(T»úϩľ¿Ê) follow_line_r(); //I¡ÁJ follow_line_r(); //J¡ÁK ball_catch();¡¡¡¡//K¡Áµå¥¥ã¥Ã¥Á follow_line_l(); //L¡ÁM shoot_goal(); //M¡Áµå¥·¥å¡¼¥È¡Á¥´¡¼¥ë }
º£²ó¤Ï¥Ú¥¢¤Î¿Í¤¬¥í¥Ü¥Ã¥Èºî¤ê¤¬¾å¼ê¤ÇÁ°²ó¤Î¤è¤¦¤Ê²ÝÂêÅÀ¤â¹îÉþ¤·¤Æ¥¹¥à¡¼¥º¤Ë
Æ°¤¯¥í¥Ü¥Ã¥È¤òºî¤ì¤¿¡£¤Þ¤¿¥¢¡¼¥àÉôʬ¤Ç¤Ï¥·¥å¡¼¥ÈÆ°ºî¤¬¹©Éפµ¤ì¤Æ¤¤¤ë¤È»×¤¦¡£
¥µ¥Ö¥ë¡¼¥Á¥ó´Ø¿ô¤ò»È¤¦¤³¤È¤Ë¤è¤ê¡¢¥á¥¤¥ó¥×¥í¥°¥é¥à¤ò´Êά²½¤¹¤ë¤³¤È¤ËÀ®¸ù¤·¤¿¡£
¤Þ¤¿NXT¤Î¼èÀâ¤ò»²¹Í¤Ë¤·¤¿OnRL¤ÎÄêµÁ¤Ï¥µ¥Ö¥ë¡¼¥Á¥ó´Ø¿ô¤â´Þ¤áÁ´ÂΤòÄ̤·¤Æ
´Êά²½¤¹¤ë¤³¤È¤Ë¹×¸¥¤·¤Æ¤¯¤ì¤¿¤Î¤Ç¤³¤ì¤«¤é¤â»ÈÍѤ·¤Æ¤¤¤¤¿¤¤¡£
¤³¤Î²ÝÂê¤Ï¥ß¥Ã¥·¥ç¥ó¤ò¤¦¤Þ¤¯¤³¤Ê¤¹¤³¤È¤¬¤Ç¤¤¿¡£¥Ú¥¢¤È¤Î°Õ¸«¸òή¤âÀ¹¤ó¤Ë¹Ô¤ï¤ì
¥í¥Ü¥Ã¥È¤¬ÆÀ°Õ¤Ê¥Ú¥¢¤Î¿Í¤Ï¥í¥Ü¥Ã¥Èºî¤ê¤ò¡¢¥×¥í¥°¥é¥ß¥ó¥°¤¬¤¢¤ëÄøÅ٤Ǥ¤ë»ä¤Ï
¥×¥í¥°¥é¥ß¥ó¥°¤ò¼ç¤Ëʬô¤¹¤ë¤³¤È¤Çºî¶È¤Î¸úΨ²½¤¬¤Ç¤¤¿¡£
¼¡¤Î²ÝÂê¤Ç¤â¤³¤ÎÀ®¸ùÅÀ¤òÀ¸¤«¤·¤Æ¼è¤êÁȤó¤Ç¤¤¤¤¿¤¤¡£