- Äɲ䵤줿¹Ô¤Ï¤³¤Î¿§¤Ç¤¹¡£
- ºï½ü¤µ¤ì¤¿¹Ô¤Ï¤³¤Î¿§¤Ç¤¹¡£
[[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; // ´Ì¡¡ÀѤ߾夲ËÜ¿ô¥«¥¦¥ó¥ÈÍÑ
*** ¥µ¥Ö¥ë¡¼¥Á¥ó [#wa50550e]
¡¡¶îư¦¤Ï¥¢¡¼¥à¤ÎÆ°ºî¤Ï£±ÅÙ¤·¤«¤»¤º¡¢Á°¿Ê¸åÂà¤â¥µ¥Ö¥ë¡¼¥Á¥ó¤È¤·¤Æ¤Þ¤È¤á¤ëɬÍפâ̵¤«¤Ã¤¿¤¿¤á¡¢ÄÌ¿®¤Ë»ÈÍѤ¹¤ë¼õ¿®¤ÈÁ÷¿®¤Î¤ß¤ò¥µ¥Ö¥ë¡¼¥Á¥ó¤È¤·¤Æ¤Þ¤È¤á¤Æ¤¢¤ë¡£~
¡¡¼õ¿®Â¦¤Ï¡¢ºÇ¸å¤Ë¼õ¿®¤·¤¿Ãͤò½é´ü²½¤·¤¿¸å¡¢¥Ï¥ó¥É¦¤«¤é¿·¤¿¤Ê¿®¹æ¤¬Á÷¤é¤ì¤Æ¤¯¤ë¤Þ¤ÇÂÔµ¡¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£~
¡¡Á÷¿®Â¦¤Ï¡¢¤³¤Á¤é¤â°ìÅÙ¼õ¿®¤·¤¿Ãͤò½é´ü²½¤·¤¿¸å¡¢¥Ï¥ó¥É¦¤«¤éÁ÷¿®¤·¤¿¿®¹æ¤ò¼õ¿®¤·¤¿¤éÁ÷¤é¤ì¤Æ¤¯¤ë¡Úλ²ò¡Û¤Î¿®¹æ¤ò¼õ¿®¤¹¤ë¤Þ¤Ç¤ÏÁ÷¿®¤ò³¤±¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
/*--------------------------------------*/
/* ¡ãÄÌ¿®¡ä¡¡¼õ¿® */
/*--------------------------------------*/
sub Reception()
{
ClearMessage(); // ¡ãÄÌ¿®¡ä¡¡½é´ü²½¡ÊºÇ¸å¤Ë¼õ¿®¤·¤¿ÃÍ¡¡¢ª¡¡£°¡Ë
until(Message() == MOTION_END); // ¡ãÄÌ¿®¡ä¡¡¡Ø£²£°¡ÚÆ°ºî´°Î»¡Û¡Ù¤ò¼õ¿®¤¹¤ë¤Þ¤ÇÂÔµ¡
SendMessage(ROGER); // ¡ãÄÌ¿®¡ä¡¡¡Ø£±¡Úλ²ò¡Û¡Ù¤òÁ÷¿®
}
/*--------------------------------------*/
/* ¡ãÄÌ¿®¡ä¡¡Á÷¿® */
/*--------------------------------------*/
sub Transmission()
{
ClearMessage(); // ¡ãÄÌ¿®¡ä¡¡½é´ü²½¡ÊºÇ¸å¤Ë¼õ¿®¤·¤¿ÃÍ¡¡¢ª¡¡£°¡Ë
SendMessage(trans_sign); // ¡ãÄÌ¿®¡ä¡¡¡Ø"trans_sign"¤ÎÃÍ¡Ù¤òÁ÷¿®
until(Message() == ROGER); // ¡ãÄÌ¿®¡ä¡¡¡Ø£±¡Úλ²ò¡Û¡Ù¤ò¼õ¿®¤¹¤ë¤Þ¤ÇÁ÷¿®¤·Â³¤±¤ë
}
*** ¥á¥¤¥ó¥¿¥¹¥¯ [#q892cc8f]
¡¡¡Ø´Ì¤Î²ó¼ý¤ÈÀѤ߾夲¡Ù¤Ç¤â½ñ¤¤¤Æ¤¢¤ë¤è¤¦¤Ë¼ø¶ÈÆâ¤Ç¹Ô¤Ã¤¿¶¥µ»²ñ¤Ç¤ÏÄ´À°¤¬½ª¤ï¤ê¤¤é¤Ê¤«¤Ã¤¿Éôʬ¤«¤é²¼¤Ï»ÈÍѤ·¤Æ¤¤¤Ê¤¤¡£¤·¤«¤·¡¢»ÈÍѤ·¤Æ¤¤¤Ê¤¤¥×¥í¥°¥é¥à¤â¡¢ºîÀ®¤·Æ°ºî³Îǧ¤â¤·¤Æ¤Ï¤¢¤ë¤Î¤Ç¡¢ÀâÌÀ¤Î¤¿¤á¤Ë¤âºÜ¤»¤Æ¤¢¤ë¡£~
¡¡»ÈÍѤ·¤Ê¤«¤Ã¤¿Éôʬ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤Þ¤¿¤½¤ÎÉôʬ¤À¤±¼è¤ê½Ð¤·¤ÆÀâÌÀ¤¹¤ë¡£
/*--------------------------------------*/
/* ¥á¥¤¥ó¥¿¥¹¥¯ */
/*--------------------------------------*/
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++; // ´Ì¤ÎËÜ¿ô¡¡¡Ü£±
}
}
¡¡¥Ï¥ó¥É¦¤È¤ÎÄÌ¿®¤Ë¤è¤ëÁ´ÂΤÎή¤ì¤Ï¡¢¡Ø¥×¥í¥°¥é¥à¤Îή¤ì¡Ù¤Ç³Îǧ¤·¤Æ¤Û¤·¤¤¡£~
¡¡¶îư¦¤Ï¡¢¸÷¥»¥ó¥µ¤Ç´Ì¤ò¸¡ÃΤ·´Ì¤ò¤Ä¤«¤á¤ëµ÷Î¥¤Þ¤Ç¶á¤Å¤¤¤¿¤éÄä»ß¤ò·«¤êÊÖ¤·¡¢´Ì¤ÎÀѤ߾夲¤ò£³²ó¹Ô¤Ã¤¿¤éwhileʸ¤Î¥ë¡¼¥×¤é¤«¤éÈ´¤±¤ÆÄä»ß¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
**¥Ï¥ó¥É¦ [#l14f5178]
¡¡¥Ï¥ó¥É¦¤Î¥×¥í¥°¥é¥à¤Ï¶îư¦¤ÈÄÌ¿®¤ò¹Ô¤¤¡¢´Ì¤òÀѤ߾夲¤ëÆ°ºî¤ò·«¤êÊÖ¤¹¤À¤±¤Ç¤¢¤ë¡£~
¡¡¼ø¶ÈÆâ¤Ç¤Ï»ÈÍѤǤ¤Ê¤«¤Ã¤¿¤¬¡¢¤³¤Î¥×¥í¥°¥é¥à¤âÆ°ºî³Îǧ¤Ï¤Á¤ã¤ó¤È½ÐÍè¤Æ¤¤¤ª¤ê¡¢Æ°ºî¤ÎÍÍ»Ò¤Ï¡Ø¥×¥í¥°¥é¥à¡Ù¤Î²¼¤Ë¤¢¤ë¡ØÀѤ߾夲¤ÎÍͻҡ٤ÎÆ°²è¤ò¸«¤Æ³Îǧ¤·¤Æ¤Û¤·¤¤¡£~
¡¡¤Þ¤¿¡¢¥Ï¥ó¥É¦¤Ë¤Ä¤¤¤Æ¤â¡¢¡ØÄê¿ô¡¦¥Þ¥¯¥í ÄêµÁ¡Ù¤È¡Ø¥°¥í¡¼¥Ð¥ëÊÑ¿ô¡Ù¤Ë¤Ä¤¤¤Æ¤Ï¥³¥á¥ó¥Èʸ¤ÇÀâÌÀ¤Ç¤¤Æ¤¤¤ë¤È»×¤¦¤Î¤ÇÀâÌÀ¤Ï¾Êά¤¹¤ë¡£
//------------------------------------------------------------//
// ´ÌÀѤ߾夲¥í¥Ü¥Ã¥È¥×¥í¥°¥é¥à //
//------------------------------------------------------------//
/*----------------------------------------*/
/* Äê¿ô¡¦¥Þ¥¯¥í ÄêµÁ */
/*----------------------------------------*/
#define HAND_TIME 50 // ¥Ï¥ó¥É³«ÊÄ¡¡»þ´Ö
/*---------- ¥Ï¥ó¥É¡¦¾å²¼µ¡¹½¡¡Æ°ºî ----------*/
#define ELEVATE_UP OnFwd(OUT_C); // ¡ã¥Ï¥ó¥É¾º¹ß¡ä¾å¾º
#define ELEVATE_DOWN OnRev(OUT_C); // ¡ã¥Ï¥ó¥É¾º¹ß¡ä¹ß²¼
#define ELEVATE_STOP Off(OUT_C); // ¡ã¥Ï¥ó¥É¾º¹ß¡äÄä»ß
#define HAND_OPEN OnRev(OUT_B); // ¡ã¥Ï¥ó¥É³«Êġ䳫
#define HAND_CLOSE OnFwd(OUT_B); // ¡ã¥Ï¥ó¥É³«ÊÄ¡äÊÄ
#define HAND_STOP Off(OUT_B); // ¡ã¥Ï¥ó¥É³«ÊÄ¡äÄä»ß
/*---------- ÄÌ¿®¡¡¿®¹æ ----------*/
#define ROGER 1 // ¡ã¼õ¿®¡¦Á÷¿®¡ä¡¡¡Úλ²ò¡Û
#define GO_AHEAD 10 // ¡ã¼õ¿®¡ä¡¡¡Ú¹ÔÆ°³«»Ï¡Û
#define MOTION_END 20 // ¡ãÁ÷¿®¡ä¡¡¡ÚÆ°ºî´°Î»¡Û
/*----------- ¥°¥í¡¼¥Ð¥ëÊÑ¿ô ÄêµÁ ----------*/
int trans_sign = 0; // Á÷¿®ÍÑ¡¡¿®¹æ¡¡³ÊǼÊÑ¿ô
int hand_flag = 0; // ¡ã¥Ï¥ó¥É¡ä³«ÊÄ¡¡È½ÃÇÍÑ
int elevate_flag = 0; // ¡ã¥Ï¥ó¥É¡ä¾º¹ß¡¡È½ÃÇÍÑ
int can_cnt = 0; // ÀѤ߾夲¤¿´Ì¤ÎËÜ¿ô
*** ¥µ¥Ö¥ë¡¼¥Á¥ó [#x140c947]
¡¡¥Ï¥ó¥É¦¤Î¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï¡¢ÄÌ¿®¤Ë»ÈÍѤ¹¤ë¼õ¿®¤ÈÁ÷¿®¤Ë²Ã¤¨¡¢¥Ï¥ó¥É¤Î¾å²¼¤ò¹Ô¤¦¤â¤Î¤È¥Ï¥ó¥É¤Î³«ÊĤò¹Ô¤¦¤â¤Î¤â¥µ¥Ö¥ë¡¼¥Á¥ó¤È¤·¤ÆºîÀ®¤·¤Æ¤¤¤ë¡£~
¡¡¼õ¿®¤ÈÁ÷¿®¤Ë¤Ä¤¤¤Æ¤Ï¥¢¡¼¥à¡¦¶îư¦¤Î¥×¥í¥°¥é¥à¤ÇÀâÌÀ¤·¤Æ¤¤¤ë¤Î¤Ç¾Êά¤·¡¢¥Ï¥ó¥É¤Î¾º¹ß¤È³«ÊĤΥµ¥Ö¥ë¡¼¥Á¥ó¤Ë¤Ä¤¤¤ÆÀâÌÀ¤¹¤ë¡£~
¡¡¤Þ¤º¤Ï¥Ï¥ó¥É¤Î¾º¹ß¤Ë¤Ä¤¤¤Æ¤Ç¤¢¤ë¡£¥Ï¥ó¥É¤Î¾º¹ß¤Ï²óž¥»¥ó¥µ¤ÎÃͤÇÀ©¸æ¤·¤Æ¤¤¤ë¡£
/*---------------------------------*/
/* ¥Ï¥ó¥É¾º¹ß */
/*---------------------------------*/
sub Hand_Elevate()
{
if(elevate_flag == 0){ // ¥Ï¥ó¥É¾å¾º
ELEVATE_UP;
until(SENSOR_1 > 385);
ELEVATE_STOP;
elevate_flag = 1; // ¥Ï¥ó¥É¾å¾º½ªÎ»¡¡¼¡¡§¹ß²¼¤ò¼Â¹Ô
}
else if(elevate_flag == 1){ // ¥Ï¥ó¥É¹ß²¼¡Ê´Ì¤ò¤Î¤»¤ë¡Ë
ELEVATE_DOWN;
until(SENSOR_1 < 360);
ELEVATE_STOP;
elevate_flag = 2; // ¥Ï¥ó¥É¹ß²¼½ªÎ»¡¡¼¡¡§²¼¹ß¤ò¼Â¹Ô
}
else if(elevate_flag == 2){ // ¥Ï¥ó¥É½é´ü°ÌÃÖ¡Ê°ìÈÖ²¼¡Ë¤Ø°ÜÆ°
ELEVATE_DOWN;
until(SENSOR_1 < 3);
ELEVATE_STOP;
elevate_flag = 0; // ¥Ï¥ó¥É²¼¹ß½ªÎ»¡¡¼¡¡§¾å¾º¤ò¼Â¹Ô
}
}
/*---------------------------------*/
/* ¥Ï¥ó¥É³«ÊÄ */
/*---------------------------------*/
sub Hand_OC()
{
if(hand_flag == 0){
SetPower(OUT_C , 3);
HAND_CLOSE;
Wait(100);
SetPower(OUT_C , 6);
hand_flag = 1; // ¥Ï¥ó¥ÉÊÄ¡¡¼¡¡§¥Ï¥ó¥É¤ò³«¤¯
}
else{
HAND_OPEN;
Wait(HAND_TIME);
HAND_STOP;
hand_flag = 0; // ¥Ï¥ó¥É³«¡¡¼¡¡§¥Ï¥ó¥É¤òÊĤ¸¤ë
}
}
/*---------------------------------*/
/* ÄÌ¿®¡Ê¼õ¿®Â¦¡Ë */
/*---------------------------------*/
sub Reception()
{
ClearMessage(); // ¡ãÄÌ¿®¡ä¡¡½é´ü²½¡ÊºÇ¸å¤Ë¼õ¿®¤·¤¿ÃÍ¡¡¢ª¡¡£°¡Ë
until(Message() == GO_AHEAD); // ¡ãÄÌ¿®¡ä¡¡¡Ø£±£°¡Ú¹ÔÆ°³«»Ï¡Û¡Ù¤ò¼õ¿®¤¹¤ë¤Þ¤ÇÂÔµ¡
SendMessage(ROGER); // ¡ãÄÌ¿®¡ä¡¡¡Ø£±¡Úλ²ò¡Û¡Ù¤òÁ÷¿®
}
/*---------------------------------*/
/* ÄÌ¿®¡ÊÁ÷¿®Â¦¡Ë */
/*---------------------------------*/
sub Transmission()
{
ClearMessage(); // ¡ãÄÌ¿®¡ä¡¡½é´ü²½¡¡¡ÊºÇ¸å¤Ë¼õ¿®¤·¤¿ÃÍ ¢ª £°¡Ë
SendMessage(trans_sign); // ¡ãÄÌ¿®¡ä¡¡¡Ø"trans_sign"¤ÎÃÍ¡Ù¤òÁ÷¿®
until(Message() == ROGER); // ¡ãÄÌ¿®¡ä¡¡¡Ø£±¡Úλ²ò¡Û¡Ù¤ò¼õ¿®¤¹¤ë¤Þ¤ÇÁ÷¿®¤·Â³¤±¤ë
}
*** ¥á¥¤¥ó¥¿¥¹¥¯ [#ncc70add]
¡¡¥Ï¥ó¥É¦¤Î¥á¥¤¥ó¥¿¥¹¥¯¤Ï¤«¤Ê¤ê¥·¥ó¥×¥ë¤Ç¡¢´Ì¤òÀѤ߾夲¤ë¤À¤±¤ÎÆ°ºî¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£~
¡¡¡Ø¥×¥í¥°¥é¥à¤Îή¤ì¡Ù¤Ë½ñ¤¤¤Æ¤¢¤ë¤è¤¦¤Ë¡¢¥Ï¥ó¥É¦¤Ï¡¢~
¡¡¡Ô´Ì¤ò»ý¤Á¾å¤²¤ë¡Õ¢ª¡Ô´Ì¤ò²¼¤Î´Ì¤Î¾å¤Ë¾è¤»¤Æ¥Ï¥ó¥É¤ò³«¤¯¡Õ¢ª¡Ô¸µ¤Î°ÌÃÖ¤ËÌá¤ë¡Õ~
¡¡¤Î£³¤Ä¤ÎÆ°ºî¤ò¶îư¦¤«¤é¤Î¡Ú¹ÔÆ°³«»Ï¡Û¤Î¿®¹æ¤¬Á÷¤é¤ì¤Æ¤¯¤ëÅ٤ˣ±¤Ä¤º¤Ä½çÈ֤˹Ԥ¤·«¤êÊÖ¤¹¤À¤±¤Ç¤¢¤ë¡£
/*---------------------------------*/
/* ¥á¥¤¥ó¥¿¥¹¥¯ */
/*---------------------------------*/
task main()
{
/*---------- ¥â¡¼¥¿¥Ñ¥ï¡¼¡¦¥»¥ó¥µ¡¡ÀßÄê ----------*/
SetSensor(SENSOR_1 , SENSOR_ROTATION); // ²óž¥»¥ó¥µÀßÄê
ClearSensor(SENSOR_1); // ²óž¥»¥ó¥µ½é´ü²½
/*---------- ´Ì¡¡ÀѤ߾夲¡Ê£³²ó·«¤êÊÖ¤·¡¢£´Ãʤˤ¹¤ë¡Ë----------*/
while(can_cnt < 3){
Reception(); // ¡ãÄÌ¿®¡ä¡¡¡Ø£±£°¡Ú¹ÔÆ°³«»Ï¡Û¡Ù¤ò¼õ¿®¤¹¤ë¤Þ¤ÇÂÔµ¡
Hand_OC(); // ´Ì¤ò¤Ä¤«¤à
Hand_Elevate(); // ¥Ï¥ó¥É¾å¾º
trans_sign = MOTION_END; // ¡ãÄÌ¿®¡ä¡¡¡Ø£²£°¡ÚÆ°ºî´°Î»¡Û¡Ù
Transmission(); // Á÷¿®
/* - - - - - - - - - - - - - - - - - - -*/
/* ¶îư¦¤¬´Ì¤Î¼êÁ°¤Þ¤Ç°ÜÆ° */
/* - - - - - - - - - - - - - - - - - - -*/
Reception(); // ¡ãÄÌ¿®¡ä¡¡¡Ø£±£°¡Ú¹ÔÆ°³«»Ï¡Û¡Ù¤ò¼õ¿®¤¹¤ë¤Þ¤ÇÂÔµ¡
Hand_Elevate(); // ¥Ï¥ó¥É²¼¹ß
Hand_OC(); // ´Ì¤òÊü¤¹
Hand_Elevate(); // °ìÈÖ²¼¤Þ¤Ç¥Ï¥ó¥É¤ò²¼¤í¤¹
trans_sign = MOTION_END; // ¡ã¿®¹æ¡ä¡Ø£²£°¡ÚÆ°ºî´°Î»¡Û¡Ù
Transmission(); // Á÷¿®
can_cnt++; // ´Ì¤ÎËÜ¿ô¡¡¡Ü£±
}
Reception(); // ¡ãÄÌ¿®¡ä¡¡¡Ø£±£°¡Ú¹ÔÆ°³«»Ï¡Û¡Ù¤ò¼õ¿®¤¹¤ë¤Þ¤ÇÂÔµ¡
}
**ÀѤ߾夲¤ÎÍÍ»Ò [#a7fba303]
*¤Þ¤È¤á [#u46f6675]