[[2017a/Member]] #contents *²ÝÂêÆâÍÆ [#efe646a7] ¡¡²ÝÂꣳ¤Ï¡¢²ÝÂꣲ¤Ç»ÈÍѤ·¤¿¥³¡¼¥¹¾å¤Ç¡¢³Æ¾ì½ê¤ËÇÛÃÖ¤µ¤ì¤¿´Ì¤ò²ó¼ý¤·¥´¡¼¥ë¤Î±ß¤ÎÃæ¤ËÀѤ߾夲¤ë²ÝÂê¤Ç¤¢¤ë¡£~ ¡¡¥³¡¼¥¹¤È´Ì¤ÎÇÛÃ֤ϲ¼¤Î²èÁü¤ÎÄ̤ê¤Ç¤¢¤ë¡£~ ¡¡¾Ü¤·¤¤¥ë¡¼¥ë¤Ë¤Ä¤¤¤Æ¤Ï¡¢[[2017a/Mission3]]¤Ç³Îǧ¤·¤Æ¤Û¤·¤¤¡£ #ref(./¥³¡¼¥¹¡¦´ÌÇÛÃÖ.png,80%,¥³¡¼¥¹Á´ÂÎÁü¤È´ÌÇÛÃÖ) *µ¡¹½ÀâÌÀ [#e9eadf27] **´Ì¤Î²ó¼ýÊýË¡¤ÈÀѤ߾夲 [#gd7f1b9b] ¡¡¤Þ¤º¥í¥Ü¥Ã¥È¤òºî¤ë¾å¤Ç¤ÎÊý¸þÀ¤È¤·¤Æ¡¢½ÐÍè¤ë¤À¤±¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤»¤º¤Ë´Ì¤ò¥´¡¼¥ë¤ËÀѤ߾夲¤ëµ¡¹½¤Ë¤¹¤ë¤³¤È¤Ë¤·¤¿¡£~ ¡¡´Ì¤òÀѤ߾夲¥´¡¼¥ë¤ËÇÛÃÖ¤¹¤ë¤Þ¤Ç¤ÎÆ°ºî¤È¤·¤Æ¤Ï¡¢¼¡¤Î£²¤Ä¤ÎÆ°ºî¤Ë¤è¤Ã¤Æ¹Ô¤¦¡£~ ¡¡¡¥³¡¼¥¹¾å¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë´Ì£·¤Ä¡ÊÃæ¿È¤ÎÆþ¤Ã¤Æ¤¤¤ë´Ì¤ò½ü¤¯¡Ë¤ò¥¢¡¼¥à¤Ë¤è¤Ã¤Æ²ó¼ý¤·¡¢¥´¡¼¥ëÁ°¤Ë°ìľÀþ¤Ëʤ٤롣~ ¡¡¢£±£¸£°¡ëÀû²ó¤·¡¢º£Å٤ϥϥó¥É¾å¤ÎÉôʬ¤Ç´Ì¤ò£±¸Ä¤º¤ÄÀѤ߾夲¤Æ¤æ¤¡¢¥´¡¼¥ë¤ËÃÖ¤¯¡£ ¤³¤³²èÁü¤òŽ¤ë **¶îÆ°Éôʬ [#e6ce783e] ¡¡º£²ó¤Î²ÝÂê¤Ï¡¢¥¢¡¼¥à¤ä¥Ï¥ó¥É¤ÎÉôʬ¤ËÉôÉʤò³ä¤¯¤³¤È¤Ë¤Ê¤ê¤½¤¦¤À¤Ã¤¿¤¿¤á¡¢¶îÆ°Éôʬ¤ÏÉôÉʤò½ÐÍè¤ë¤À¤±»ÈÍѤ»¤º¤Ë¥·¥ó¥×¥ë¤Ê·Á¤Ë¤·¤¿¡£~ ¡¡¤Þ¤¿¡¢£Ò£Ã£Ø¤¬¤³¤Î¶îÆ°Éôʬ¤Î¾å¤Ë£²¤Ä¾è¤ë¤¿¤á¡¢¥â¡¼¥¿¡¼¤ò²¼Â¦¤Ë¼è¤êÉÕ¤±¤ë¤³¤È¤Ç¡¢¥¹¥Ú¡¼¥¹¤òÂ礤¯³ÎÊݤò¤·¼è¤êÉÕ¤±¤ä¤¹¤¤¤è¤¦¤Ë¹©Éפ·¤¿¡£ **¥¢¡¼¥àÉôʬ [#g1ac1a84] ¡¡´Ì¤ò°ìÅÙ¤ËÁ´¤Æ²ó¼ý¤¹¤ë¤¿¤á¡¢¥¢¡¼¥à¤ÎŤµ¤Ï´Ì£·¸Äʬ¤ò¶´¤ß¹þ¤á¤ëŤµ¤Ë¤·¤è¤¦¤È¹Í¤¨¤Æ¤¤¤¿¤¬¡¢¤½¤ì¤À¤±Ä¹¤¯¤¹¤ë¤È¥¢¡¼¥à¤¬¤¿¤ï¤ß¥³¡¼¥¹¤ËÀÜÃϤ·¤Æ¤·¤Þ¤Ã¤¿¡£Ê䶯¤·¤è¤¦¤Ë¤âÉôÉʤâ¤ê¤Ê¤«¤Ã¤¿¤¿¤á¡¢Äü¤á¤Æ´Ì£µ¸Äʬ¤Ï¶´¤á¤ëŤµ¤ÇºîÀ®¤·¤¿¡£~ ¡¡´Ì¤ò²ó¼ý¤¹¤ë¤È¤¤Ë¡¢¤¢¤Þ¤ê¥¢¡¼¥à¤Î¶îÆ°¤¬Â®¤¤¤È´Ì¤òÅݤ·¤Æ¤·¤Þ¤¦¤Î¤Ç¤Ï¤Ê¤¤¤«¤È¹Í¤¨¤¿¡£¤½¤³¤Ç¡¢¥¢¡¼¥à¤Î¶îÆ°¤Ë¤Ï¡¢¥¦¥©¡¼¥à¥®¥¢¤ò»ÈÍѤ¹¤³¤È¤Ç½ÐÍè¤ë¤À¤±µ¡¹½¤Ç®ÅÙ¤òÍî¤È¤¹¹©Éפò¤·¤¿¡£¤·¤«¤·¡¢¤½¤ì¤Ç¤âÆ°¤«¤·¤Æ¤ß¤ë¤È´Ì¤òÅݤ·¤Æ¤·¤Þ¤¦¤³¤È¤¬Â¿¡¹¤¢¤Ã¤¿¤¿¤á¡¢¤µ¤é¤Ë¥×¥í¥°¥é¥à¤Ç¥â¡¼¥¿¡¼¤Î¥Ñ¥ï¡¼¤ò¾®¤µ¤¯¤·¤Æ¶îÆ°¤µ¤»¤Æ¤¤¤ë¡£ **¥Ï¥ó¥ÉÉôʬ [#hb81ff69] ¡¡¥Ï¥ó¥ÉÉôʬ¤Î´Ì¤ò¤Ä¤«¤àµ¡¹½¤Ë¤Ï¡¢¡Ö°ìÄê¤ÎÎϰʾå¤ÎÎϤ¬²Ã¤ï¤ë¤È²óž¤·¤Ê¤¯¤Ê¤ë¥®¥¢¡ÊÇò¤¤¥®¥¢¡Ë¡×¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç¡¢¤º¤Ã¤È¥â¡¼¥¿¡¼¤ò²óž¤µ¤»¤ë¤À¤±¤Ç´Ì¤ò¤Ä¤«¤á¤ë¤è¤¦¤Ë¤·¤¿¡£¤³¤ì¤Ë¤è¤Ã¤Æ¡¢´Ì¤òÊü¤¹»þ¤Ë³«¤¯»þ´Ö¤òÀßÄꤹ¤ë¤À¤±¤ÇºÑ¤à¤Î¤Ç¡¢¥×¥í¥°¥é¥à¤¬¥·¥ó¥×¥ë¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ ½é¤á¤Ï¥¢¡¼¥à¤Ë¥´¥à¤òÅϤ·¡¢¥´¥à¤Ç´Ì¤ò¶´¤â¤¦¤È¹Í¤¨¤¿¡£¤·¤«¤·¡¢¥´¥à¤À¤È¥´¥à¤ÎÃÆÎϤ¬¶¯¤¹¤®¤¿¤¿¤á¡¢Ä¾Àܴ̤˿¨¤ì¤ë²Õ½ê¤Ë¥¿¥¤¥ä¤ò¼è¤êÉÕ¤±¡¢¥¿¥¤¥ä¤ÎË໤¤Ë¤è¤Ã¤Æ´Ì¤òÊÝ»ý¤¹¤ë¤³¤È¤Ë¤·¤¿¡£ **¶îÆ°Éôʬ [#w9996b8e] *¥×¥í¥°¥é¥à [#ya2a0468] **¥×¥í¥°¥é¥à¤Îή¤ì [#ra3ab047] **¥¢¡¼¥à¡¦¶îÆ°Éôʬ [#i24e48f5] ¡¡¥¢¡¼¥à¡¦¶îÆ°Éôʬ¤Î¥×¥í¥°¥é¥à¤Ë´Ø¤·¤Æ¤Ï¡¢¼ø¶ÈÆâ¤Ç¹Ô¤Ã¤¿¶¥µ»²ñ¤Ç¤Ï»ÈÍѤ·¤Æ¤¤¤Ê¤¤¥×¥í¥°¥é¥à¤â¡¢ºîÀ®¤·Æ°ºî³Îǧ¤â¤·¤Æ¤¢¤ë¤Î¤ÇºÜ¤»¤Æ¤¢¤ë¡£~ ¡¡»ÈÍѤ·¤Ê¤«¤Ã¤¿Éôʬ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤Þ¤¿¤½¤ÎÉôʬ¤À¤±¼è¤ê½Ð¤·¤ÆÀâÌÀ¤¹¤ë¡£ //------------------------------------------------------------// // ´Ì²ó¼ý¥í¥Ü¥Ã¥È¡¡¥×¥í¥°¥é¥à // //------------------------------------------------------------// /*--------------------------------------*/ /* Äê¿ô¡¦¥Þ¥¯¥í ÄêµÁ */ /*--------------------------------------*/ /*---------- ¥»¥ó¥µÃÍ ----------*/ #define LINE_BLACK 35 // ¹õÀþÈ¿±þ»þ¤Î¸÷¥»¥ó¥µ¡Ê¥é¥¤¥óȽÄêÍѡˤÎÃÍ #define CAN_SHORT 46 // ´Ì¤ËÀܶᤷ¤¿¤È¤¤Î¡¡¸÷¥»¥ó¥µ¡Ê´ÌÍѡˤÎÃÍ /*---------- Æ°ºî¤Ë´Ø¤¹¤ë»þ´Ö ----------*/ #define TURN_TIME 145 // £±£¸£°¡ëȿž¤Þ¤Ç¤Î»þ´Ö #define APP_TIME 75 // ´ÌÀܶá¤Þ¤Ç¤Î»þ´Ö #define ARM_TIME 200 // ¥¢¡¼¥à¤¬¿¿²£¤ò¸þ¤¯¤Þ¤Ç¤Î»þ´Ö¡Ê¥¢¡¼¥à¤Î¶îÆ°»þ´Ö¤Ï¤³¤ì¤ò´ð½à¤Ë»ÈÍÑ¡Ë /*---------- ¥¿¥¤¥ä¡¦¥¢¡¼¥à¤ÎÆ°ºî ----------*/ #define FOWORD OnFwd(OUT_AC); // ľ¿Ê #define BACK OnRev(OUT_AC); // ¸åÂà #define STOP Off(OUT_AC); // Ää»ß #define TURN_LEFT OnFwd(OUT_C); OnRev(OUT_A); // º¸Àû²ó #define TURN_RIGHT OnFwd(OUT_A); OnRev(OUT_C); // ±¦Àû²ó #define ARM_OPEN OnFwd(OUT_B); // ¥¢¡¼¥à³« #define ARM_CLOSE OnRev(OUT_B); // ¥¢¡¼¥àÊÄ #define ARM_STOP Off(OUT_B); // ¥¢¡¼¥àÄä»ß /*---------- ÄÌ¿®¡¡¿®¹æ ----------*/ #define ROGER 1 // ¡ã¼õ¿®¡¦Á÷¿®¡ä¡¡¡Úλ²ò¡Û #define GO_AHEAD 10 // ¡ãÁ÷¿®¡ä¡¡¡Ú¹ÔÆ°³«»Ï¡Û #define MOTION_END 20 // ¡ã¼õ¿®¡ä¡¡¡ÚÆ°ºî´°Î»¡Û /*--------------------------------------*/ /* ¥°¥í¡¼¥Ð¥ëÊÑ¿ô */ /*--------------------------------------*/ int trans_sign = 0; // ¡ãÄÌ¿®¡ä¡¡Á÷¿®¿®¹æ¡¡³ÊǼÍÑ int can_cnt = 0; // ´Ì¡¡ÀѤ߾夲ËÜ¿ô¥«¥¦¥ó¥ÈÍÑ /*--------------------------------------*/ /* ¡ãÄÌ¿®¡ä¡¡¼õ¿® */ /*--------------------------------------*/ sub Reception() { ClearMessage(); // ¡ãÄÌ¿®¡ä¡¡½é´ü²½¡ÊºÇ¸å¤Ë¼õ¿®¤·¤¿ÃÍ¡¡¢ª¡¡£°¡Ë until(Message() == MOTION_END); // ¡ãÄÌ¿®¡ä¡¡¡Ø£²£°¡ÚÆ°ºî´°Î»¡Û¡Ù¤ò¼õ¿®¤¹¤ë¤Þ¤ÇÂÔµ¡ SendMessage(ROGER); // ¡ãÄÌ¿®¡ä¡¡¡Ø£±¡Úλ²ò¡Û¡Ù¤òÁ÷¿® } /*--------------------------------------*/ /* ¡ãÄÌ¿®¡ä¡¡Á÷¿® */ /*--------------------------------------*/ sub Transmission() { ClearMessage(); // ¡ãÄÌ¿®¡ä¡¡½é´ü²½¡ÊºÇ¸å¤Ë¼õ¿®¤·¤¿ÃÍ¡¡¢ª¡¡£°¡Ë SendMessage(trans_sign); // ¡ãÄÌ¿®¡ä¡¡¡Ø"trans_sign"¤ÎÃÍ¡Ù¤òÁ÷¿® until(Message() == ROGER); // ¡ãÄÌ¿®¡ä¡¡¡Ø£±¡Úλ²ò¡Û¡Ù¤ò¼õ¿®¤¹¤ë¤Þ¤ÇÁ÷¿®¤·Â³¤±¤ë } /*--------------------------------------*/ /* ¥á¥¤¥ó¥¿¥¹¥¯ */ /*--------------------------------------*/ task main() { /*---------- ¥â¡¼¥¿¥Ñ¥ï¡¼¡¦¥»¥ó¥µ¡¡ÀßÄê ----------*/ SetPower(OUT_AC , 3); SetSensor(SENSOR_3 , SENSOR_LIGHT); // ¹õÀþ¡¡Ç§¼±ÍÑ SetSensor(SENSOR_1 , SENSOR_LIGHT); // ´Ì¡¡¡¡Ç§¼±ÍÑ /*---------- ¥¢¡¼¥à¤òÁ´³« ----------*/ ARM_CLOSE; // ¥¢¡¼¥àÊÄ Wait(ARM_TIME); // ¥¢¡¼¥à¤¬¿¿²£¤ò¸þ¤¯¤Þ¤ÇÊĤ¸¤ë ARM_STOP; Wait(100); /*---------- ´Ì¡¡²ó¼ý ----------*/ FOWORD; // ¥¢¡¼¥à¦¤òÁ°Êý¸þ¤È¤·¤Æ until(SENSOR_3 < LINE_BLACK); // £²¤ÄÌܤιõÀþ¤Þ¤ÇÁ°¿Ê until(SENSOR_3 > LINE_BLACK); // until(SENSOR_3 < LINE_BLACK); // STOP; // Ää»ß Wait(100); ARM_CLOSE; // ¥¢¡¼¥àÊÄ Wait(ARM_TIME + 50); // ¥¢¡¼¥à¤¬Ê¿¹Ô¤Ë¤Ê¤ë¤Þ¤ÇÊĤ¸¤ë ARM_STOP; Wait(100); BACK; // ´Ì¤ò·¤¨¤ë¤¿¤á¤Ë Wait(50); // ¾¯¤·²¼¤¬¤ë STOP; ARM_CLOSE; // ¥¢¡¼¥àÊÄ Wait(30); // ´Ì¤ò°ìÎó¤Ë¤¹¤ë¤¿¤á¤Ë¤µ¤é¤Ë¾¯¤·ÊĤ¸¤ë ARM_STOP; ARM_OPEN; // ¥¢¡¼¥à¤ò³«¤¡¢ Wait(ARM_TIME*2 + 80); // ¥¹¥¿¡¼¥È»þ¤Ë¤¢¤Ã¤¿¾ì½ê¤Þ¤ÇÌ᤹ ARM_STOP; /*---------- ´ÌÀѤ߾夲¤Î¤¿¤á¤Î½àÈ÷ ----------*/ BACK; // ¸åÂष¤Æ¡¢ until(SENSOR_3 > LINE_BLACK); // £²¤ÄÌܤιõÀþ¤Þ¤ÇÁ°¿Ê until(SENSOR_3 < LINE_BLACK); // STOP; ¡¡¼ø¶È¤Ç¤Î¶¥µ»²ñ¤Ç¤Ï¡¢¤³¤³¤Þ¤Ç¤Î¥×¥í¥°¥é¥à¤ò»ÈÍѤ·¤Æ¤¤¤ë¡£~ ¡¡¤³¤Î¸å¤Î¥×¥í¥°¥é¥à¤¬ÌäÂê¤ÎÉôʬ¤Ç¤¢¤ê¡¢Æäˡ¢²¼¤Î£´¹Ô¤ÎÉôʬ¤ÎÄ´À°¤¬´Ö¤Ë¹ç¤ï¤Ê¤«¤Ã¤¿¤¿¤á¤½¤Î²¼¤ÎÉôʬ¤¬Á´¤Æ»È¤¨¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£~ ¡¡¤³¤ÎÉôʬ¤Ï¡¢¥í¥Ü¥Ã¥È¤¬Àû²ó¤·£±£¸£°¡ë¸å¤í¤ò¸þ¤¯¥×¥í¥°¥é¥à¤Ê¤Î¤À¤¬¡¢Àû²ó¤ò»þ´Ö¤ÇÀ©¸æ¤·¤è¤¦¤È¤·¤Æ¤·¤Þ¤Ã¤¿¤»¤¤¤Ç¤Ê¤«¤Ê¤«¤¤ì¤¤¤Ë¿¿¸å¤í¤ò¸þ¤¤¤Æ¤¯¤ì¤º¡¢¤Ô¤Ã¤¿¤ê´Ì¤Î¼êÁ°¤Þ¤ÇÁö¤ë¤³¤È¤¬½ÐÍè¤Ê¤«¤Ã¤¿¡£~ SetPower(OUT_AC , 7); TURN_LEFT; // º¸Àû²ó¤Ç Wait(TURN_TIME); // £±£¸£°¡ë¸å¤í¤ò¸þ¤¯ STOP; ¡¡¤½¤ì¤ËÂФ·¤Æ SetPower(OUT_AC , 3); BACK; // ¥Ï¥ó¥É¦¤òÁ°Êý¸þ¤È¤·¤Æ until(SENSOR_1 > CAN_SHORT); // ´Ì¤Î¼êÁ°¤Þ¤ÇÁ°¿Ê Wait(20); //¡Ê¤³¤³¤«¤é²¼¤Ï¡¢¥Ï¥ó¥ÉÊý¸þ¤òÁ°Êý¸þ¤È¤¹¤ë¡Ë STOP; /*---------- ´Ì¤òÀѤ߾夲³«»Ï (£³²ó·«¤êÊÖ¤·¡¢£´Ãʤˤ¹¤ë) ----------*/ while(pile_up_cnt < 3){ trans_sign = GO_AHEAD; // ¡ãÄÌ¿®¡ä¡¡¡Ø£±£°¡Ú¹ÔÆ°³«»Ï¡Û¡Ù Transmission(); // Á÷¿® /* - - - - - - - - - - - - - - - - -*/ /* ¥Ï¥ó¥É¦¤¬´Ì¤Î»ý¤Á¾å¤²¤ò¼Â¹Ô */ /* - - - - - - - - - - - - - - - - -*/ Reception(); // ¡ãÄÌ¿®¡ä¡¡¡Ø£²£°¡ÚÆ°ºî´°Î»¡Û¡Ù¤¬Á÷¤é¤ì¤Æ¤¯¤ë¤Þ¤ÇÂÔµ¡ BACK; // ´Ì°ì¤Äʬ¤À¤±¡Ê¼¡¤Î´Ì¤Î¼êÁ°¤Þ¤Ç¡Ë until(SENSOR_1 > CAN_SHORT); // Á°¿Ê¤¹¤ë Wait(20); STOP; trans_sign = GO_AHEAD; // ¡ãÄÌ¿®¡ä¡¡¡Ø£±£°¡Ú¹ÔÆ°³«»Ï¡Û¡Ù Transmission(); // Á÷¿® /* - - - - - - - - - - - - - - - - - -*/ /* ¥Ï¥ó¥É¤¬´Ì¤òÃÖ¤¡¢½é´ü°ÌÃÖ¤ËÌá¤ë */ /* - - - - - - - - - - - - - - - - - -*/ Reception(); // ¡ãÄÌ¿®¡ä¡¡¡Ø£²£°¡ÚÆ°ºî´°Î»¡Û¡Ù¤¬Á÷¤é¤ì¤Æ¤¯¤ë¤Þ¤ÇÂÔµ¡ can_cnt++; // ´Ì¤ÎËÜ¿ô¡¡¡Ü£± } } **¥Ï¥ó¥É¦ [#l14f5178] **ÀѤ߾夲¤ÎÍÍ»Ò [#a7fba303] *¤Þ¤È¤á [#u46f6675]