Ìܼ¡
»æ¥³¥Ã¥×¤È¥Ô¥ó¥Ý¥ó¶Ì¤òÊÌ¡¹¤Ë½¸¤á¤ë¥í¥Ü¥Ã¥È¤ÎÀ½ºî
²¼¿Þ¤Î¥Þ¥¸¥§¥ó¥¿¤Î±ß¤ËµÕ¤µ¤Þ¤Ë¤·¤¿»æ¥³¥Ã¥×¤òÃÖ¤¡¢¤½¤ÎÃæ¤Ë¥Ô¥ó¥Ý¥ó¶Ì¤ò2¤Ä¤º¤ÄÆþ¤ì¤Æ¤ª¤¯¡£°ìÊÕ¤¬14cm¤Î³ä¤êȤ¤ÎÀµÊý·Á¤òºî¤ê¡¢XÃÏÅÀ¤òÃæ¿´¤È¤·¤¿±ß¤ËÀܤ¹¤ë¤è¤¦¤ËÃÖ¤¡¢¤½¤ÎÃæ¤Ë¥Ô¥ó¥Ý¥ó¶Ì¤ò½¸¤á¤ë¡£»æ¥³¥Ã¥×¤Ï¡¢YÃÏÅÀ¤òÃæ¿´¤È¤·¤¿±ß¤ÎÃæ¤Ë½¸¤á¤ë¡£¤Þ¤¿¡¢²¼¿Þ¤Î²«¿§¤¤±ß¤Ë»æ¥³¥Ã¥×¤òÄ̾ï¤Î¸þ¤¤ËÃÖ¤¡¢¾ã³²Êª¤È¤¹¤ë¡£
²¼µURL(2017ǯ¸å´üMission3)¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
http://yakushi.shinshu-u.ac.jp/robotics/?2017b%2FMission3
¤Ï¤¸¤á¤Ë¡¢RIS¤ÎÄÌ¿®µ¡Ç½¤ÎÀ¼Á¤òƧ¤Þ¤¨¤Æ¥í¥Ü¥Ã¥ÈËÜÂΤÏ1Âæ¤Ë¤·¤è¤¦¤È·è¤á¤¿¡£¤Þ¤¿¡¢¥â¡¼¥¿¡¼¤Î¿ô¤¬¸Â¤é¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢°ì¤Ä¤Î¥â¡¼¥¿¡¼¤Ç¥¢¡¼¥àÉôʬ¤Î¾å²¼¤È³«ÊĤò¹Ô¤¤¤¿¤«¤Ã¤¿¤¬¡¢¼Â¸½¤Ç¤¤Ê¤«¤Ã¤¿¡£¤½¤³¤Ç¡¢¥¢¡¼¥àÉôʬ¤È¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤¹¤ë¼ÖÂÎÉôʬ¤ÇRIS¤òʬ¤±¡¢¸ß¤¤¤ËÄÌ¿®¤·¡¢¼ÖÂÎÉôʬ¤Ç¸÷¥»¥ó¥µ¡¼¤òÁ°Êý¤Ë¸þ¤±¥³¥Ã¥×¤òõ¤·¡¢¸«¤Ä¤±¼¡Âè¿®¹æ¤ò¥¢¡¼¥àÉôʬ¤ÎRIS¤ËÁ÷¤í¤¦¤È¹Í¤¨¤¿¡£¤·¤«¤·¡¢ÄÌ¿®²Äǽ¤ÊÈϰϤʤɤÎÌäÂê¤ÇÀ®¸ù¤·¤Ê¤«¤Ã¤¿¡£ºÇ½ªÅª¤Ë¡¢¥¢¡¼¥à¤Î³«ÊĤΥ¿¥¤¥ß¥ó¥°¤ò»þ´Ö¤Ç´ÉÍý¤¹¤ë¤È¤¤¤¦¡¢½éÊâŪ¤Ê¤â¤Î¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£
´ðËÜŪ¤Ê¹½Â¤¤Ï¡¢³«ÊĤò¹Ô¤¦¥¢¡¼¥àÉôʬ¤ò3Ëܤιõ¤¤ËÀ¤ÇËÜÂΤȷҤ®¡¢¤½¤ÎËÀ¤ò»Ù¤¨¤ë¤è¤¦¤Ëľ³Ñ¤Ë¸ò¤ï¤ë¸þ¤¤Ç¹õ¤¤ËÀ¤ò¼è¤ê¤Ä¤±¤¿¡£»Ù¤¨¤Æ¤¤¤ëÊý¤Î¹õ¤¤ËÀ¤ò¾å²¼¤µ¤»¤ë¤³¤È¤Ç¥¢¡¼¥àÉôʬÁ´ÂΤò¾å²¼¤µ¤»¤¿¡£
1ËçÌܤμ̿¿¤ÎÂ礤¤¥®¥¢¤Ï¥â¡¼¥¿¡¼¤ÈľÀܤĤʤ¬¤Ã¤Æ¤ª¤ê¡¢¤³¤³¤«¤éÊ£¿ô¤Î¥®¥¢¤ò»È¤¤¥¢¡¼¥à¤Þ¤ÇÎϤòÅÁ¤¨¡¢³«ÊĤµ¤»¤¿¡£¾å¼ê¤¯³ú¤ß¹ç¤¦ÇÛÃÖ¤¬¤Ê¤«¤Ê¤«¸«¤Ä¤«¤é¤º¶ìÏ«¤·¤¿¡£¤Þ¤¿¡¢¥¢¡¼¥à¤Ë¤Ä¤¤¤Æ¤¤¤ë¥¿¥¤¥ä¤Ï³ê¤ê»ß¤á¤Î¤¿¤á¤Ë¼è¤êÉÕ¤±¤¿¡£º¸Â¦¤Î¥¢¡¼¥à¤ÎÀè¤Ë¡¢¤â¤¦1ËÜ¥¢¡¼¥à¤¬¿¤Ó¤Æ¤¤¤ë¤¬¡¢¤³¤ì¤Ïº¸Àû²ó¤¹¤ë¤È¤¤Ë¥³¥Ã¥×¤¬¥¢¡¼¥à¤Î³°¤Ë½Ð¤Æ¤¤¤«¤Ê¤¤¤è¤¦¤Ë¤·¤¿¡£
2ËçÌܤμ̿¿¤Î¤è¤¦¤Ë¥®¥¢¤òÇÛÃÖ¤¹¤ë¤³¤È¤Ç¥â¡¼¥¿¡¼¤ÎÎϤθþ¤¤ò90¡ëÊѤ¨¡¢¥â¡¼¥¿¡¼¤Î¼è¤êÉÕ¤±¤ë°ÌÃÖ¤¬ËÜÂÎÀµÌ̤ˤʤë¤è¤¦¤Ë¤·¤¿¡£¤Ê¤¼¤Ê¤é¡¢¥¿¥¤¥ä¤¬¼ÙËâ¤ò¤·¤Æ²£¤ËÃÖ¤±¤Ê¤«¤Ã¤¿¤«¤é¤À¡£¤³¤Î¥â¡¼¥¿¡¼¤ÎÎϤò¡¢3ËçÌܤΤ褦¤ËL»ú·¿¤Ë¤Ä¤Ê¤¤¤À¹õ¤¤ËÀ¤ËÅÁ¤¨¡¢¥¢¡¼¥à¤Î¾å²¼¤ò¤µ¤»¤Æ¤¤¤ë¡£
¥¢¡¼¥à¤¬½Å¤«¤Ã¤¿¤¿¤á¡¢½Å¿´¤¬Ãæ¿´¤Ë¤Ê¤ë¤è¤¦¤ËRIS¤ÎÇÛÃÖ¤ò¼Ì¿¿¤Î¤è¤¦¤Ë¤·¤¿¡£
¥¢¡¼¥àÉôʬ¤È¼ÖÂÎÉôʬ¤ÎÀܳ¤¬¼å¤¯¡¢ËÜÈ֤ǤÏÁö¹ÔÃæ¤Ë¥¢¡¼¥àÉôʬ¤¬³°¤ì¤Æ¤·¤Þ¤Ã¤¿
¥í¥Ü¥Ã¥ÈÀ½ºî¤Ë¿¤¯¤Î»þ´Ö¤ò³ä¤¤¤Æ¤·¤Þ¤Ã¤¿¤¿¤á¡¢Æó¤Ä¤Î¥³¥Ã¥×¤ò±¿¤Ö¤³¤È¤òÌÜɸ¤È¤¿¡£ ¥×¥í¥°¥é¥àôÅö¤Ç¤Ï¤Ê¤«¤Ã¤¿¤Î¤Ç´Êñ¤ÊÀâÌÀ¤È¤¹¤ë¡£
ÄêµÁ
#define up(t) OnRev(OUT_A);Wait(t);Off(OUT_A); //tÉþ夲¤ë #define down(t) OnFwd(OUT_A);Wait(t);Off(OUT_A); //tÉò¼¤²¤ë #define st(t) Off(OUT_A);Wait(t); //tÉÃÂÔµ¡
¥á¥¤¥ó¥×¥í¥°¥é¥à
task main () { Wait(870); //XÃÏÅÀ¤ËÃ夯¤Þ¤Ç¤Î»þ´Ö up(30); //¥³¥Ã¥×¤ò»ý¤Á¾å¤²¤ë st(200); //³ä¤ê¤Ð¤·¤ÎÀµÊý·Á¤ÎÃæ¤Ë¥³¥Ã¥×¤¬Æþ¤ë¤Þ¤ÇÂÔµ¡ down(30); //¥³¥Ã¥×¤ò²¼¤í¤¹ }
ÊÑ¿ô£ô¤ÎÃͤϡ¢¾¯¤·¤º¤ÄÃͤòÊѤ¨Å¬Àڤʤâ¤Î¤òÄ´¤Ù¤¿¡£
ÄêµÁ
#define leftSENKAI OnFwd(OUT_A);OnRev(OUT_C); //º¸Àû²ó #define leftMAGARU OnFwd(OUT_A);Off(OUT_C); //º¸ÀÞ #define rightSENKAI OnFwd(OUT_C);OnRev(OUT_A); //±¦Àû²ó #define rightMAGARU OnFwd(OUT_C);Off(OUT_A); //±¦ÀÞ #define ch OnFwd(OUT_B);Wait(30);Off(OUT_B); //¥¢¡¼¥à¤òÊĤ¸¤ë #define re OnRev(OUT_B);Wait(20);Off(OUT_B); //¥¢¡¼¥à¤ò³«¤¯ #define go(t) OnFwd(OUT_AC);Wait(t);Off(OUT_AC); //£ôÉÃÁ°¿Ê #define back(t) OnRev(OUT_AC);Wait(t);Off(OUT_AC); //£ôÉøåÂà #define cross_stop Off(OUT_AC);Wait(100); //1Éûߤޤë #define carb 46 //ïçÃÍ
¥é¥¤¥ó¥È¥ì¡¼¥¹
sub r() { SetSensor(SENSOR_2,SENSOR_LIGHT); //ü»Ò2¤Ë¸÷¥»¥ó¥µ¡¼¤ò¥»¥Ã¥È ClearTimer(0); while(FastTimer(0)<=24) //0.24ÉðÊÆâ¤Î¾ì¹ç¤Ï¥ë¡¼¥× Ķ¤¨¤¿¾ì¹ç¤Ï¸òº¹ÅÀ¤È¤·¤ÆȽÃÇ { if(SENSOR_2>carb+5) // ¥»¥ó¥µ¡¼¤¬ïçÃÍ¡Ü£µ¤ÎÃͤòĶ¤¨¤¿¤éº¸Àû²ó { leftSENKAI ClearTimer(0); } else if(SENSOR_2>carb+3) //¥»¥ó¥µ¡¼¤¬ïçÃÍ¡Ü£³¤ÎÃͤòĶ¤¨¤¿¤éº¸ÀÞ { leftMAGARU ClearTimer(0); } else if(SENSOR_2>carb) //¥»¥ó¥µ¡¼¤¬ïçÃͤòĶ¤¨¤¿¤éľ¿Ê { OnFwd(OUT_AC); ClearTimer(0); } else if(SENSOR_2>carb-3) //¥»¥ó¥µ¡¼¤¬ïçÃÍ¡Ý£³¤ÎÃͤòĶ¤¨¤¿¤é±¦ÀÞ { rightMAGARU ClearTimer(0); } else //¾åµ¤Î¤É¤Î¾ò·ï¤Ë¤âÅö¤Æ¤Ï¤Þ¤é¤Ê¤¤¤È¤¤Ë±¦Àû²ó { rightSENKAI } } Off(OUT_AC); }
¥á¥¤¥ó¥×¥í¥°¥é¥à
task main () { go(30); //AÃÏÅÀ¤ÎÏȤ«¤é½Ð¤ë r(); //A¡ÁB¥é¥¤¥ó¥È¥ì¡¼¥¹ leftSENKAI; Wait(5); //0.05Éôֺ¸Àû²ó¤·¤Æ°ÌÃÖÄ´À° re; //¥¢¡¼¥à¤ò³«¤¯ go(160); //ľÀþAB¤Î±äĹ¾å¤Ë¤¢¤ë¥³¥Ã¥×¤Ë¶á¤Å¤¯ cross_stop; //1ÉÃÄä»ß ch; //¥¢¡¼¥à¤òÊĤ¸¥³¥Ã¥×¤ò¤Ä¤«¤à rightSENKAI; Wait(140); //1.4Éôֱ¦Àû²ó¤·¤Æ°ÌÃÖÄ´À° cross_stop; //1ÉÃÄä»ß ch; //¥³¥Ã¥×¤òÎ¥¤µ¤Ê¤¤¤è¤¦¤ËºÆ¤Ó¥¢¡¼¥à¤òÊĤ¸¤ë go(90); //XÃÏÅÀ¤Ë¶á¤Å¤¯ cross_stop; //1ÉÃÄä»ß re; //¥¢¡¼¥à¤ò³«¤XÃÏÅÀ¤Ë¥³¥Ã¥×¤òÃÖ¤¯ back(100); //1ÉøåÂष¤Æ°ÌÃÖÄ´À° leftSENKAI; Wait(30); //0.3Éú¸Àû²ó¤·¤Æ°ÌÃÖÄ´À° go(200); //2ÉÃÁ°¿Ê¤·¤Æ°ÌÃÖÄ´À° rightSENKAI; Wait(40); //0.4Éñ¦Àû²ó¤·¤Æ¾ã³²Êª¤ËÅö¤¿¤é¤Ê¤¤¤è¤¦¤Ë¤¹¤ë re; //¥¢¡¼¥à¤ò³«¤¯ go(250); //¸òº¹ÅÀQ¤Î¾å¤Ë¤¢¤ë¥³¥Ã¥×¤òËÜÂΤDz¡¤·¤Ê¤¬¤éYÃÏÅÀ¤Ë¸þ¤«¤¦ }
¥í¥Ü¥Ã¥ÈÀ½ºî¤Ë¿¤¯¤Î»þ´Ö¤ò³ä¤¤¤¿¤Ë¤â¤«¤«¤ï¤é¤º¡¢¤¢¤Þ¤êÎɤ¤¤â¤Î¤¬½ÐÍè¤Ê¤«¤Ã¤¿¤Î¤ÇÁ´ÂÎŪ¤Ë¥¯¥ª¥ê¥Æ¥£¤¬²¼¤¬¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£½é´ü¤Î¹½ÁۤǤϡ¢ÄÌ¿®¤ä°ì¤Ä¤Î¥â¡¼¥¿¡¼¤Ç¥¢¡¼¥à¤Î³«ÊĤä¾å²¼¤ò¹Ô¤¦¤Ê¤ÉÍÍ¡¹¤Ê¤³¤È¤ò¹Í¤¨¤Æ¤¤¤¿¤¬¡¢È¯ÁÛÎÏÉÔ¤ˤè¤ê¼Â¸½¤Ç¤¤Ê¤«¤Ã¤¿¡£¥×¥í¥°¥é¥à¤â»þ´Ö¤Î¤Ê¤¤Ãæ¤ÇÁȤó¤À¤¿¤á¡¢ºÇÄã¸Â¤Î¤³¤È¤·¤«¤Ç¤¤Ê¤«¤Ã¤¿¡£
¼«Ê¬¤¿¤Á¤Î¥Á¡¼¥à¤¬½ÐÍè¤Ê¤«¤Ã¤¿¤³¤È¤ò¾¤Î¥Á¡¼¥à¤Ç¤Ï½ÐÍè¤Æ¤¤¤¿¤Î¤Ç¡¢¤É¤¦¤ä¤Ã¤Æ¤¤¤ë¤Î¤À¤í¤¦¤ÈȯɽÁ°¤«¤éµ¤¤Ë¤Ê¤Ã¤Æ¤¤¤¿¤¬¡¢ËÜÈ֤Dzþ¤á¤Æ¸«¤Æ¤ß¤ë¤ÈÁÇÀ²¤é¤·¤¤¤â¤Î¤Ð¤«¤ê¤Ç¶Ã¤¤¤¿¡£ÆäË1°Ì¤Î¥Á¡¼¥à¤Î¥í¥Ü¥Ã¥È¤Ï¡¢Æ±¤¸RIS¤ò»È¤Ã¤¿¤È¤Ï»×¤¨¤Ê¤¤¤â¤Î¤Ç´¶Æ°¤·¤¿¡£·ë²ÌŪ¤Ë¤ÏºÇ²¼°Ì¤À¤Ã¤¿¤¬¡¢¤ß¤ó¤Ê¤Ç°Õ¸«¤ò½Ð¤·¹ç¤¦¤³¤È¤¬½ÐÍ褿ͰյÁ¤Ê»þ´Ö¤À¤Ã¤¿¤È»×¤¦¡£