2014a/Member/kowhich/Mission2
¤ò¥Æ¥ó¥×¥ì¡¼¥È¤Ë¤·¤ÆºîÀ®
[
¥È¥Ã¥×
] [
¿·µ¬
|
°ìÍ÷
|
¸¡º÷
|
ºÇ½ª¹¹¿·
|
¥Ø¥ë¥×
|
¥í¥°¥¤¥ó
]
³«»Ï¹Ô:
[[2014a/Member]]
*Ìܼ¡ [#nf1ce3c8]
#contents
*¥á¥ó¥Ð¡¼¾Ò²ð [#q3b25128]
[[suiden>http://yakushi.shinshu-u.ac.jp/robotics/?2014a%2FMember%2Fsuiden%2FMission2]]
[[kiyomizu>http://yakushi.shinshu-u.ac.jp/robotics/?2014a%2FMember%2Fkiyomizu%2FMission2]]
kowhich
[[ryu-abe>http://yakushi.shinshu-u.ac.jp/robotics/?2014a%2FMember%2Fryu-abe%2FMission2]]
¢¨Àʽç
*Í׵ᡦ¥ê¥¹¥¯Ê¬ÀÏ [#pd9009e4]
¤Þ¤º¡¢Í׵ᡦ¥ê¥¹¥¯Ê¬ÀϤηë²Ì¤ò¿Þ¤Ë¼¨¤¹¡£¥æ¡¼¥¹¥±¡¼¥¹¿Þ¤òºÎÍѤ·¤¿¡£¥æ¡¼¥¹¥±¡¼¥¹¿Þ(UML2.0)¤È¤Ï¡¢¥·¥¹¥Æ¥à¤¬¤É¤Î¤è¤¦¤Êµ¡Ç½¤òÄ󶡤¹¤ë¤«¤ò¼¨¤¹¿Þ¤Ç¡¢º£²óÄ󶡤¹¤ëµ¡Ç½¤ò¶ñÂ⽤¹¤ë¤Î¤ËŬÀÚ¤À¤ÈȽÃǤ·¤¿¤¿¤á¡¢¥æ¡¼¥¹¥±¡¼¥¹¿Þ¤òÍøÍѤ·¤¿¡£¤Þ¤¿¡¢º£²ó¤Î¥æ¡¼¥¹¥±¡¼¥¹¿Þ¤ÏUML2.0¤Ë½àµò¤·µ½Ò¤¹¤ë¡£
¤½¤ì¤Ë²Ã¤¨¤Æ¡¢¥ß¥¹¥æ¡¼¥¹¥±¡¼¥¹¤È¤¤¤¦¤â¤Î¤âµ½Ò¤·¤¿¡£¤³¤ì¤Ï¥·¥¹¥Æ¥à¤ËÂФ¹¤ë¶¼°Ò¤ò¼¨¤·¤¿¤â¤Î¤Ç¡¢º£²ó¤ÏÀÖ¿§¤Î¤â¤Î¤¬¥ß¥¹¥æ¡¼¥¹¥±¡¼¥¹¤È¤Ê¤Ã¤Æ¤¤¤ë¡£±¦Â¦¤Î¥¢¥¯¥¿¡¼¤¬¤½¤Î¶¼°Ò¤Î¸¶°ø¤ò¼¨¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£
¢¨UML2.0¡¦¡¦¡¦Unified Modeling Language¤Îά¾Î¡£Â绨ÇĤ˸À¤¦¤È¥·¥¹¥Æ¥à¤Î»ÅÁȤߤʤɤò¿Þ¤Çɽ¤¹
ɽ¸½ÊýË¡¤Ç¤¢¤ë¡£2.0¤Ï¤½¤Î¥Ð¡¼¥¸¥ç¥ó¡£
#ref(uc1.PNG)
¤Þ¤º¡¢Âè°ì¤ËÄ󶡤¹¤ëµ¡Ç½¤È¤·¤Æ¡¢²ÝÂê¤ò¥¯¥ê¥¢¤¹¤ë¡¡¤È¤¤¤¦¥æ¡¼¥¹¥±¡¼¥¹¡Êµ¡Ç½¡Ë¤¬¤¢¤ë¤È¹Í¤¨¤¿¡£¤³¤³¤«¤éºÙʬ²½¤·¤Æ¤¤¤¡¢¼ÂÁõ¤¹¤Ù¤µ¡Ç½¤Ï¤Ê¤Ë¤«¤òõ¤Ã¤Æ¤¤¤¯¡£
²ÝÂê¤ò¥¯¥ê¥¢¤¹¤ë¥æ¡¼¥¹¥±¡¼¥¹¤Ï¡¢¡Ö¸÷¥»¥ó¥µ¡¦¥é¥¤¥óïçÃÍ¥¥ã¥ê¥Ö¥ì¡¼¥·¥ç¥ó¡×¡¢¡ÖÁö¹Ô¤¹¤ë¡×
¡Ö»æ¥³¥Ã¥×¤ò±¿¤Ö¡×¤È¤¤¤¦3¤Ä¤Î¥æ¡¼¥¹¥±¡¼¥¹¤«¤éÀ®¤êΩ¤Ã¤Æ¤¤¤ë¤È¹Í¤¨¤¿¡£
¤Þ¤º¡¢¡ÖÁö¹Ô¤¹¤ë¡×¥æ¡¼¥¹¥±¡¼¥¹¤«¤é¸«¤Æ¤¤¤¤¿¤¤¡£¡ÖÁö¹Ô¤¹¤ë¡×¤È¸À¤Ã¤Æ¤â¡¢ÍÍ¡¹¤Ê¼êÃʤ¬¤¢¤ë¡£
Âè°ì¤Ë¡Ö¥é¥¤¥ó¥È¥ì¡¼¥¹Áö¹Ô¡×¤³¤ì¤Ï¥é¥¤¥ó¤Ë±è¤Ã¤ÆÁö¹Ô¤¹¤ëÊýË¡¤Ç¤¢¤ë¡Ê¼Â¸½ÊýË¡¤Ï¸å¤Ë¼¨¤¹¡Ë
¼¡¤Ë¡¢¡Ö¥é¥¤¥ó̵»ëÁö¹Ô¡×¤³¤ì¤Ï¡¢NXC¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ëOnFwd(),Off()¤Ê¤É¤Î¤ß¤ÇÁö¹Ô¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£¤Þ¤¿¡¢¤³¤ì¤Ë¤Ï¥â¡¼¥¿¡¼¤Ë¤Ï¸ÄÂκ¹¤¬¤¢¤ê¡¢»ØÄꤷ¤¿¤È¤ª¤ê¤ËÆ°ºî¤Ç¤¤Ê¤¤¤³¤È¤¬¤¢¤ë¡£¤Ê¤Î¤Ç¡¢º¸±¦¥â¡¼¥¿¤òƱ´ü¤·¤ÆÁö¹Ô¤¹¤ë¤³¤È¤âµá¤á¤é¤ì¤ë¤Î¤Ç¡¢³ÈÄ¥µ¡Ç½¤È¤·¤¿¡£
¼¡¤Ë»æ¥³¥Ã¥×¤ò±¿¤Ö¤³¤È¤Ë¤Ä¤¤¤Æ¸«¤Æ¤¤¤¯¡£¡Ö»æ¥³¥Ã¥×¤òÃÖ¤¯¡×¡Ö»æ¥³¥Ã¥×¤ò¤Ä¤«¤à¡×¡Ö»æ¥³¥Ã¥×¤ò¸¡ÃΤ¹¤ë¡×¡Ö¤É¤Î»æ¥³¥Ã¥×¤«È½ÃǤ¹¤ë¡×¤Î¥æ¡¼¥¹¥±¡¼¥¹¤Ç¹½À®¤µ¤ì¤Æ¤¤¤ë¡£¤³¤ì¤é¤Ï¡¢¤¹¤Ù¤Æ»æ¥³¥Ã¥×¤Î°ÌÃÖ¤¬¤º¤ì¤¿¤ê¤¹¤ë¤È¡¢²ÝÂê¤ÎÀ®¸ù¤Ë¤«¤Ê¤ê±Æ¶Á¤¹¤ë¤Î¤Ç¡¢¤½¤ì¤Î²ò·èºö¤È¤·¤Æ¥Ð¥ó¥Ñ¡¼¤òÀßÃÖ¤·¤¿¡£¤³¤ì¤Ë¤è¤ê¡¢µ¡ÂΤξ×Æͤʤɤˤè¤ê»æ¥³¥Ã¥×¤Î°ÌÃÖ¤¬¤Ê¤¯¤Ê¤ë¤À¤í¤¦¤È¹Í¤¨¤¿¤«¤é¤À¡£
»þ´ÖÂӤˤè¤Ã¤Æ¡¢Á뤫¤éº¹¤·¹þ¤à¸÷¤¬»þ´Ö¤Ë¤è¤Ã¤ÆÊѲ½¤·¤Æ¤¤¤¯¤È¹Í¤¨¤¿¡£¤½¤ì¤Ë¤è¤ê¡¢¼êÆ°¤ÇÃͤòÀßÄꤷ¤Æ¤¤¤Æ¤Ï¤½¤ì¤Î»þ´Ö¤â¤«¤«¤ê¡¢ÉÔ°ÂÄê¤Ê¤Î¤Ç¡¢¸÷¥»¥ó¥µÃÍ¡¦ïçÃÍ¥¥ã¥ê¥Ö¥ì¡¼¥·¥ç¥ó¤Ë¤è¤ê¤½¤ì¤òËɤ°¤³¤È¤ò¹Í¤¨¤¿¡£¤Ê¤Î¤Ç¡¢º£²ó¥¥ã¥ê¥Ö¥ì¡¼¥·¥ç¥ó¤ò¼ÂÁõ¤¹¤ë¤Ë»ê¤Ã¤¿¡£
¿Þ¤Ë¡¢Èֹ椬¿¶¤Ã¤Æ¤¢¤ë¤Î¤Ï¸å¤ÎÀâÌÀ¤È¥æ¡¼¥¹¥±¡¼¥¹¤È¼Â¸½ÊýË¡¤Î¥È¥ì¡¼¥µ¥Ó¥ê¥Æ¥£¤ò³ÎΩ¤¹¤ë¤¿¤á¤Ç¤¢¤ë¡£
*»æ¥³¥Ã¥×¤Î¥Ç¥¶¥¤¥ó¤Ë¤Ä¤¤¤Æ [#m850ba72]
¸÷¥»¥ó¥µ¤ÇȽÃǤ¹¤ë¤¿¤á¤Ë¡¢»æ¥³¥Ã¥×¤Ë¥Ç¥¶¥¤¥ó¤ò»Ü¤·¤¿¡£¸÷¥»¥ó¥µ¤ÏÈ¿¼Í¤·¤Æ¤¤¿ÌÀ¤ë¤µ¤ò·×¬¤¹¤ë¤Î¤Ç¡¢ÀĤäÎФʤɤ理ò»È¤Ã¤Æ¤âȽÃǤ¬¤·¤Å¤é¤¤¤È»×¤Ã¤¿¤Î¤Ç¡¢Çò¤È¹õ¤Î¤ß¤Ç¥Ç¥¶¥¤¥ó¤ò»Ü¤¹¤³¤È¤Ë¤·¤¿¡£¥Ç¥¶¥¤¥ó¤Ëµá¤á¤é¤ì¤ë¤Î¤ÏÈþ¤·¤µ¤Ç¤Ï¤Ê¤¯¡¢¸÷¥»¥ó¥µ¤Ç¬Äꤷ¤¿Ãͤ½¤ì¤¾¤ì¤Ëº¹¤¬¤¢¤ë¤«¤É¤¦¤«¤¬°ìÈÖÂçÀڤǤ¢¤ë¡£¥Ç¥¶¥¤¥ó¤Ë¤è¤Ã¤Æ¤â¸¡ÃΤÎÀǽ¤¬º¸±¦¤µ¤ì¤ë¤Î¤Ç¡¢¼ê¤òÈ´¤¤¤Æ¤Ï¤¤¤±¤Ê¤¤¤È´¶¤¸¤¿¡£Â¬Äê¾ì½ê¤Ï¼ø¶È¶µ¼¼¡Ê10ÈÖ¶µ¼¼¡Ë
#ref(cop.PNG)
**µ¿¿¤Ã¹õ [#k1ae08ed]
¸÷¥»¥ó¥µ¤Ç¬Äꤷ¤¿¤È¤³¤í¡¢ÃͤÏÌó37¡£
**¶¿¿¤ÃÇò [#cfe18d71]
¸÷¥»¥ó¥µ¤Ç¬Äꤷ¤¿¤È¤³¤í¡¢ÃͤÏÌó65¡£
**·¼Ê¡¹ [#idb27ee5]
3¸ÄÌܤ˰ìÈÖ̤俤¬¡¢·ë¶É¤³¤Î·Á¤Ë¤Ê¤Ã¤¿¡£ËÜÍè¤Ï³¥¿§¤Ç¤ä¤í¤¦¤È»×¤Ã¤¿¤¬¡¢¹õ¥Ú¥ó°ìËܤǤϸ³¦¤¬¤¢¤Ã¤¿¡£
¤Ê¤Î¤Ç¡¢¹õÀþ¤ÈÇò¤òº®¤¼¤ì¤Ð³¥¿§¤È¤·¤Æǧ¼±¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¤¤«¤È¤¤¤¦²¾Àâ¤Î¤â¤È¡¢¤³¤Î¥Ç¥¶¥¤¥ó¤Ë¤·¤¿¡£
¸÷¥»¥ó¥µ¤Ç¬Äꤷ¤¿¤È¤³¤í¡¢ÃͤÏÌó47¡£
¤³¤ÎÃͤκ¹¤Ê¤é¤Ð¡¢¤É¤Î»æ¥³¥Ã¥×¤«¤òȽÃǤ¹¤ë¤«¤â¥¹¥à¡¼¥º¤Ë¹Ô¤¨¤ë¤Î¤Ç¤Ï¤Ê¤¤¤«¤È·ëÏÀ¤Å¤±¤¿¡£
*µ¡ÂΤξҲð [#e9fd4c76]
¤Þ¤º¡¢¥â¡¼¥¿¤Ç»õ¼Ö¤òÆ°¤«¤¹(1)¡£¤³¤ì¤Ë¤è¤ê¡¢¥¢¡¼¥à¤¬ÊĤ¸¤ë¡Ê2¡Ë
#ref(robo1.PNG)
³¤¤¤Æ¡¢¹¹¤Ë¥â¡¼¥¿¤ËÎϤò²Ã¤¨¡¢»æ¥³¥Ã¥×¤ò¤Ä¤«¤à¡£
#ref(./IMG_0946.JPG,30%,aaa)
¤½¤·¤Æ¡¢¤µ¤é¤ËÎϤò²Ã¤¨¤ë¤È¡¢ÊĤ¸¤ëÊý¸þ¤ËÎϤϹԤ«¤º¡¢¿¿¾å¤Ë¤¤¤¯¤Î¤Ç»ý¤Á¾å¤¬¤ë¤È¤¤¤¦»ÅÁȤߤÀ¡£
¤½¤·¤Æ¡¢¤³¤ì¤¬¥³¥Ã¥×¤Î°ÌÃÖ¤º¤ì¤òËɤ°¤¿¤á¤ËÀßÃÖ¤µ¤ì¤¿¥Ð¥ó¥Ñ¡¼¤Ç¤¢¤ë(¥æ¡¼¥¹¥±¡¼¥¹¿Þ¨»²¾È)¡£
#ref(robo2.PNG)
µ¡ÂΤϰìÅÙ¥À¥¤¥¨¥Ã¥È¤ò¤·¡¢Èó¾ï¤Ë·ÚÎ̲½¤µ¤ì¤¿¡£¤Ê¤¼¥À¥¤¥¨¥Ã¥È¤ò¹Ô¤Ã¤¿¤«¤È¤¤¤¦¤È¡¢½Å¿´¤¬µ¡ÂξåÉô¤Ë¤¢¤ê¡¢¥«¡¼¥Ö¤¹¤ë¤ÈžÅݤ·¤Æ¤·¤Þ¤¦¤³¤È¤¬Â¿¡¹¤¢¤Ã¤¿¤«¤é¤Ç¤¢¤ë¡£
¡Ê»ÄÇ°¤Ê¤¬¤é¡¢¤½¤Î»þ¤Î¼Ì¿¿¤Ï¤Ê¤¤¤Ç¤¹¤´¤á¤ó¤Ê¤µ¤¤¡Ë
*¥×¥í¥°¥é¥à¤Ë¤Ä¤¤¤Æ [#r71a1af9]
º£²ó»ä¤ÏÆȼ«¤Ë¥×¥í¥°¥é¥à¤ÎºîÀ®¤ò¹Ô¤Ã¤Æ¤¤¤¿¡£´Ø¿ô¤òºî¤ê¡¢¤Ç¤¤ë¤À¤±Áàºî¤òÉôÉʲ½¤·¤è¤¦¤È»î¤ß¤¿¡£¤·¤«¤·¡¢ºîÀïÊѹ¹¤Ë¤è¤ê¡¢»È¤ï¤Ê¤¯¤Ê¤Ã¤¿¤Î¤Ç¡¢¤³¤Î¥×¥í¥°¥é¥à¤Ï¼ÂºÝ¤Ë¤ÏÍøÍѤ·¤Ê¤«¤Ã¤¿¡£
¤Ê¤Î¤Ç¡¢Â¾¤Î¥á¥ó¥Ð¡¼¤Î¥Ú¡¼¥¸¤ò¸«¤Æ¤¤¤¿¤À¤±¤ì¤Ð¡¢¼ÂºÝ¤Ë»È¤Ã¤¿¥×¥í¥°¥é¥à¤Ë¤Ä¤¤¤Æ¤ÎÀâÌÀ¤ò±ÜÍ÷¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¡£
[#q3b25128]
**ÊÑ¿ô̾¤Ë¤Ä¤¤¤Æ [#cbc77a37]
m_¤¬¤Ä¤¤¤Æ¤ë¤â¤Î¤Ï¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤È¤·¤¿¡£¤½¤ì°Ê³°¤Ï¥í¡¼¥«¥ëÊÑ¿ô¤È¤¹¤ë¤è¤¦¤Ë¤·¤¿¡£
¤½¤¦¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢ÃͤÎÂåÆþ¥ß¥¹¤Ê¤É¤òËɤ°¤³¤È¤¬½ÐÍè¤ë¤È¹Í¤¨¤¿¤«¤é¤À¡£
**ÄêµÁ [#we70a57f]
/*ÊÑ¿ôÀë¸À*/
int m_black=0;
int m_white=0;
int m_border=0;
int m_cop_A = 0;
int m_cop_B = 0;
int m_gap=0;
int m_kP =0;
int m_kD =0;
int m_old_value =0;
int m_current_value =0;
SetSensorLight(S3);
SetSensorTouch(S1);
SetSensorLight(S2);
**¥¥ã¥ê¥Ö¥ì¡¼¥·¥ç¥ó¡¡´Ø¿ô̾:lightCalibration() ·¿:void [#zbe4bc9c]
¡¡int nb=0;
¡¡int nw=0;
¡¡
¡¡////¢¹õÃͼèÆÀ/////
¡¡while(!SENSOR_1){//²¡¤·¤Æ¤¤¤ë´Ö¸÷¥»¥ó¥µ¤ÎÃͤò¼èÆÀ¤¹¤ë¤È¤¤¤¦°ÕÌ£
¡¡
¡¡
¡¡ m_black += SENSOR_3;//²¡¤µ¤ì¤¿´Ö¤ÎÃͤòÃßÀѤ·¤ÆµÏ¿¤·¤Æ¤ª¤¯
¡¡ Wait(1);
¡¡ nb++; //²¿ÅÙ¼èÆÀ¤·¤¿¤«¤ò¥«¥¦¥ó¥È¤·¤Æ¤ª¤¯
¡¡
¡¡
¡¡ } ¡¡
¡¡
¡¡m_black = m_black/nb;//ÃßÀѤ·¤¿Ãͤò²¿ÅÙ¼èÆÀ¤·¤¿¤«¤Î²ó¿ô¤Ç³ä¤Ã¤ÆÊ¿¶Ñ¤òµá¤á¤Æ¡¢¹õ¥é¥¤¥ó¤Î ¡¡ÃͤȤ·¤ÆÀßÄꤹ¤ë¡£
¡¡Wait(500);
¡¡
¡¡////¢¬¹õÃͼèÆÀ//////¢ÇòÃͼèÆÀ//////
¡¡
¡¡while(!SENSOR_1){
¡¡
¡¡
¡¡ m_white += SENSOR_3;
¡¡ Wait(1);
¡¡ nw++;
¡¡ }
¡¡
¡¡m_white = m_white/nw;
¡¡Wait(500);
¡¡
¡¡////¢¬ÇòÃͼèÆÀ/////¢¶³¦ÃÍ»»½Ð//////
¡¡
¡¡
¡¡m_border =(m_white+m_black)/2¡¡//¶³¦ÃÍ(ïçÃÍ)¤Ï¹õÃͤÈÇòÃͤÎÊ¿¶ÑÃͤȤ¹¤ë
¤Þ¤º¡¢¥¿¥Ã¥Á¥»¥ó¥µ¤¬²¡¤µ¤ì¤Æ¤ë´Ö,¤½¤Î¾ì½ê¤Î¸÷¥»¥ó¥µ¤ÎÃͤòÃßÀѤ¹¤ë¡£ÃßÀѤ·¤Æ¤¤¤ë´Ö¡¢²¿ÅÙÃßÀѤ·¤¿¤«¤ò¥«¥¦¥ó¥È¤¹¤ë¡£¤½¤·¤Æ¡¢¤½¤ÎÃßÀѤ·¤¿ÃͤòÃßÀѤ·¤¿²ó¿ô¤Ç³ä¤ë¡£¤½¤ì¤¬¤½¤Î¾ì½ê¤Î¸÷¥»¥ó¥µ¤ÎÃͤȤʤ롣¤³¤ì¤ò¡¢Çò¤Î¾ì½ê¡¢¹õ¥é¥¤¥ó¤Î¾ì½êξÊý¤Ç¹Ô¤¦¡£¤½¤Î¸å¡¢m_border¤Ë¤½¤ÎÊ¿¶ÑÃͤòÂåÆþ¤¹¤ë¡£¤³¤ì¤¬¥é¥¤¥óïçÃͤȤʤ롣¤³¤ì¤Ë¤è¤ê¥¥ã¥ê¥Ö¥ì¡¼¥·¥ç¥ó¤ò¼Â¸½¤·¤¿¡£
**¥é¥¤¥ó¥È¥ì¡¼¥¹¡ [#p8f48759]
***ľÀþÍÑ ´Ø¿ô̾:forwardLineTrace(¥¹¥Ô¡¼¥É:int) ·¿:void [#u029b328]
int d;
int speedL;
int speedR;
int speed;
speed = ¥¹¥Ô¡¼¥É;
m_current_value = m_old_value;
m_old_value = SENSOR_3;
d=(m_old_value - m_current_value)*m_kD;
m_gap = (m_border - SENSOR_3)*m_kP + d
if(m_gap >= 0){
speedL = speed;
speedR = speed - m_gap;
}
else{
speedL = speed + m_gap;
speedR = speed;
}
OnFwd(OUT_B,speedL);
OnFwd(OUT_C,speedR);
¤Þ¤º¡¢¤³¤Î´Ø¿ô¤ÏPDÀ©¸æ¤Ë¤è¤Ã¤ÆÆ°¤¤¤Æ¤¤¤ë¡£IÀ©¸æ¤òÆþ¤ì¤ë¤È¡¢¤µ¤é¤ËåºÎï¤Ë¥é¥¤¥ó¥È¥ì¡¼¥¹½ÐÍè¤ë¤Î¤À¤¬¡¢PD¤À¤±¤Ç¤âåºÎï¤Ë¥é¥¤¥ó¥È¥ì¡¼¥¹½ÐÍè¤ë¤Î¤Ç¡¢º£²ó¤Ï¤³¤ì¤Ç¹Ô¤Ã¤¿¡£
¤Þ¤º¡¢´Êñ¤ËÀâÌÀ¤ò¤¹¤ë¤È¡¢PÀ©¸æ¤È¤Ï¡¢ÌÜɸ¤ÎÃͤ˶á¤Å¤±¤ë¤¿¤á¤Ë¡¢À©¸æÎ̤˱þ¤¸¤ÆÁàºîÎ̤òÁý¤ä¤¹¤è¤¦¤ÊÀ©¸æ¤Î¤³¤È¡£
¤½¤·¤Æ¡¢DÀ©¸æ¤È¤Ï¡¢¤½¤ÎÁàºî¤ò¹Ô¤¦È¿±þ®Å٤Τ³¤È¤Ç¤¢¤ë¡£
***¥«¡¼¥ÖÍѥ饤¥ó¥È¥ì¡¼¥¹ ´Ø¿ô̾:curveLineTrace(¥¹¥Ô¡¼¥É:int) ·¿:void [#qacb9694]
int speed;
speed = ¥¹¥Ô¡¼¥É;
if(m_border < SENSOR_3){
OnFwd(OUT_B,speed);
Off(OUT_C);
}
else{
OnFwd(OUT_C,speed);
Off(OUT_B);
}
Wait(2);
ON/OFFÀ©¸æ¤Ë¤è¤Ã¤Æ¼Â¸½¤µ¤ì¤Æ¤¤¤ë¡£¥»¥ó¥µ¤ÎÃͤΤۤ¦¤¬ïçÃͤè¤ê¤âÂ礤«¤Ã¤¿¤é±¦¡¢¤½¤¦¤Ç¤Ê¤«¤Ã¤¿¤é¡¢º¸¤È¤¤¤¦¤è¤¦¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£
**¢£¥é¥¤¥ó̵»ëÁö¹Ô [#i6e1c56d]
OnFwd(port,speed);
OnRev(port.speed);
OnFwdSync(port,speed,0~100);//¤º¸±¦¥â¡¼¥¿¤òƱ´ü¤µ¤»¤ë
¤Ê¤É¤Î¸µ¤«¤éÄ󶡤µ¤ì¤Æ¤¤¤ëAPI¤òÍøÍѤ·¤ÆÁö¹Ô¤ò¤¹¤ë¡£¤Ä¤Þ¤ê¡¢Ä¾¤Ë¥â¡¼¥¿¡¼¤ËÌ¿Îᤷ¤ÆÁö¹Ô¤¹¤ë¡£
**¤¥³¥Ã¥×¤òÃÖ¤¯ ´Ø¿ô̾:removeCop() ·¿:void [#lea8c0bb]
OnRev(OUT_A,75);
Wait(1000);
¥â¡¼¥¿µÕ²óž¤Ç°ìÄê¤Î»þ´Ö²ó¤¹É¬Íפ¬¤¢¤ë¡£¤³¤ÎÃͤÏŬµ¹Ä´À°¤¬É¬ÍפʤΤǡ¢À®¸ùΨ¤Ë¤Ð¤é¤Ä¤¤¬½Ð¤Æ¤·¤Þ¤¦¤³¤È¤¬¹Í¤¨¤é¤ì¤ë¡£¤½¤ì¤âº£¸å¤Î²ÝÂê¤È¤·¤Æ¤ª¤¤¿¤¤¡£
**¥¥³¥Ã¥×¤ò¤Ä¤«¤à ´Ø¿ô̾ catchCop() ·¿:void [#aa13e149]
OnFwd(OUT_A,75);
Wait(1000);
ÃÖ¤¯¤Î¤ÈƱÍͤǤ¢¤ë¡£ÃÖ¤¯¤Î¤È¤ÏµÕ²óž¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£
**¦»æ¥³¥Ã¥×¤ò¸¡ÃΤ¹¤ë ´Ø¿ô̾:detectCop(¸¡ÃΤ·¤¿¤¤¥³¥Ã¥×¤ÎÌÀ¤ë¤µ¿ôÃÍ) ·¿:bool [#z0d324fb]
if(SENSOR_2 < ¸¡ÃΤ·¤¿¤¤¥³¥Ã¥×¤ÎÌÀ¤ë¤µ¿ôÃÍ){
return true;
}
¸¡ÃΤ·¤¿¤¤¥³¥Ã¥×¤ÎÌÀ¤ë¤µ¿ôÃͤò´Ø¿ô¤ËÅϤ·¤Æ¡¢¤½¤ì¤¬¸¡ÃΤµ¤ì¤¿¤étrue¤òÊÖ¤¹¤È¤¤¤Ã¤¿¤â¤Î¡£
¤ï¤¶¤ï¤¶ÃͤòÆþÎϤ·¤ÆÅϤ¹É¬Íפ¬¤¢¤ë¤Î¤Ç¡¢»ÈÍѤ¹¤ëºÝÈó¾ï¤ËÌÌÅݤʤΤ¬·çÅÀ¡£´Ø¿ôÆâ¤Ç¥¥ã¥¹¥È¤ò¤¹¤Ù¤¤À¤È¤Î¤Á¤Ë¤Ê¤Ã¤Æ´¶¤¸¤¿¡£¤Þ¤¿¡¢¸¡ÃΤδ¶ÅÙ¤¬°¤«¤Ã¤¿¡£¤³¤ì¤Ï¡¢Á°²ó¤Î¸òº¹ÅÀ¸¡ÃΤÈƱÍͤˡ¢¤Ê¤ó¤É¸¡ÃΤ·¤¿¤«¤ò¥«¥¦¥ó¥È¤·¤Æ¡¢¤½¤ÎÃͤò¤â¤È¤Ë¸¡ÃΤ¹¤ë¤È¤¤¤¦Êý¤¬ÀºÅÙ¤¬¹â¤¯¤Ê¤Ã¤¿¤À¤í¤¦¤È¤Î¤Á¤Ë¤Ê¤Ã¤Æ´¶¤¸¤¿¡£
**§¤É¤Î»æ¥³¥Ã¥×¤«È½ÃǤ¹¤ë ´Ø¿ô̾:judgeCop() ·¿:int [#ldf95edc]
if(SENSOR_3 < 37){
return 3;
}
if(SENSOR_3 < 65){
return 1;
}
if(SENSOR_3 < 40){
return 2;
}
¤½¤ì¤¾¤ì¤ÎÃͤ˱þ¤¸¤Æ1,2,3¤ÎÃͤòÊÖ¤·¤ÆȽÃǤò¹Ô¤¦¡£¤³¤ì¤âÀè¤Û¤É¤Î¥³¥Ã¥×¸¡ÃΤÉƱÍͤˡ¢ÀºÅÙ¤¬Ä㤫¤Ã¤¿¡£²¿ÅÙ¸¡ÃΤ·¤¿¤«¤ò¥«¥¦¥ó¥È¤·¡¢¤½¤ì¤Ë±þ¤¸¤ÆȽÃǤ¹¤ë¤È¤¤¤Ã¤¿»ÅÁȤߤΤۤ¦¤¬ÀºÅ٤Ϲ⤯¤Ê¤Ã¤¿²ÄǽÀ¤¬¤¢¤ë¡£
*´¶ÁÛ¡¦È¿¾Ê [#z750df4d]
º£²ó¡¢»ä¤Ï¥×¥í¥°¥é¥à¤ò¤è¤êÁȤߤ䤹¤¤¤è¤¦¤Ë¿´¤¬¤±¤¿¡£¤·¤«¤·¡¢ºîÀïÊѹ¹¤Ë¤è¤ê»È¤ï¤ì¤Ê¤¯ÌĤäƤ·¤Þ¤Ã¤¿¤Î¤Ï»ÄÇ°¤À¤Ã¤¿¡£µ¡ÂΤ¬Êѹ¹¤Ë¤¢¤Ã¤Æ¤âºîÀ郎Êѹ¹¤µ¤ì¤Æ¤â¥×¥í¥°¥é¥à¤¬»È¤¨¤ë¤è¤¦¤Ë¤¹¤ëɬÍפ¬¤¢¤ë¤È´¶¤¸¤¿¡£¤µ¤é¤Ë¡¢ÉôÉʲ½¤·¤¿¤Î¤Ï¤¤¤¤¤¬¡¢¥µ¥Ö¥ë¡¼¥Á¥ó¤ò°ìÀÚºî¤é¤ºÁȤó¤Ç¤·¤Þ¤Ã¤¿¤Î¤Ç¡¢main()Æâ¤Î¥×¥í¥°¥é¥à¤¬Èó¾ï¤ËÈÑ»¨¤Ë¤Ê¤ê¡¢¤ï¤«¤ê¤Ë¤¯¤¯¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£ÉôÉʲ½¤¹¤ë¤À¤±¤Ç¤Ï¤Ê¤¯¡¢¸«¤ä¤¹¤¤¤è¤¦¤Ë¤¹¤ë¤Î¤âÂçÀÚ¤À¤È´¶¤¸¤¿¡£
¡¡º£²ó¡¢´üËö»î¸³¤È»þ´Ö¤¬¤«¤Ö¤ê¡¢½¸¤Þ¤ì¤ë»þ´Ö¤¬¼è¤ì¤Ê¤«¤Ã¤¿¡£¤µ¤é¤Ë¡¢¼Â²È¤Ëµ¢¤é¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤Í½Ä꤬¤¢¤Ã¤¿¤¿¤á¡¢ºÇ½ªÄ´À°¤Ë¹Ô¤¯¤³¤È¤¬½ÐÍ褺¡¢Èó¾ï¤Ë»ÄÇ°¤Ç¤¢¤Ã¤¿¡£Ä´À°¤¬½ÐÍè¤Ê¤¤¤³¤È¤â¿¡¹¤¢¤Ã¤¿¤·¡¢¼«Ê¬¤Îºî¶È¤¬»¨¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¤È¤¤¤¦¤Î¤â¿¡¹¸«¤é¤ì¤¿¡£º£¸å¤Ï¤³¤Î¤è¤¦¤Ê¤³¤È¤¬Ìµ¤¤¤è¤¦¤Ë¡¢·×²è¤òΩ¤Æ¡¢½½Ê¬¤¬»þ´Ö¤ò¤È¤ì¤ë¤è¤¦¤Ë¤¹¤Ù¤¤À¤È´¶¤¸¤¿¡£
½ªÎ»¹Ô:
[[2014a/Member]]
*Ìܼ¡ [#nf1ce3c8]
#contents
*¥á¥ó¥Ð¡¼¾Ò²ð [#q3b25128]
[[suiden>http://yakushi.shinshu-u.ac.jp/robotics/?2014a%2FMember%2Fsuiden%2FMission2]]
[[kiyomizu>http://yakushi.shinshu-u.ac.jp/robotics/?2014a%2FMember%2Fkiyomizu%2FMission2]]
kowhich
[[ryu-abe>http://yakushi.shinshu-u.ac.jp/robotics/?2014a%2FMember%2Fryu-abe%2FMission2]]
¢¨Àʽç
*Í׵ᡦ¥ê¥¹¥¯Ê¬ÀÏ [#pd9009e4]
¤Þ¤º¡¢Í׵ᡦ¥ê¥¹¥¯Ê¬ÀϤηë²Ì¤ò¿Þ¤Ë¼¨¤¹¡£¥æ¡¼¥¹¥±¡¼¥¹¿Þ¤òºÎÍѤ·¤¿¡£¥æ¡¼¥¹¥±¡¼¥¹¿Þ(UML2.0)¤È¤Ï¡¢¥·¥¹¥Æ¥à¤¬¤É¤Î¤è¤¦¤Êµ¡Ç½¤òÄ󶡤¹¤ë¤«¤ò¼¨¤¹¿Þ¤Ç¡¢º£²óÄ󶡤¹¤ëµ¡Ç½¤ò¶ñÂ⽤¹¤ë¤Î¤ËŬÀÚ¤À¤ÈȽÃǤ·¤¿¤¿¤á¡¢¥æ¡¼¥¹¥±¡¼¥¹¿Þ¤òÍøÍѤ·¤¿¡£¤Þ¤¿¡¢º£²ó¤Î¥æ¡¼¥¹¥±¡¼¥¹¿Þ¤ÏUML2.0¤Ë½àµò¤·µ½Ò¤¹¤ë¡£
¤½¤ì¤Ë²Ã¤¨¤Æ¡¢¥ß¥¹¥æ¡¼¥¹¥±¡¼¥¹¤È¤¤¤¦¤â¤Î¤âµ½Ò¤·¤¿¡£¤³¤ì¤Ï¥·¥¹¥Æ¥à¤ËÂФ¹¤ë¶¼°Ò¤ò¼¨¤·¤¿¤â¤Î¤Ç¡¢º£²ó¤ÏÀÖ¿§¤Î¤â¤Î¤¬¥ß¥¹¥æ¡¼¥¹¥±¡¼¥¹¤È¤Ê¤Ã¤Æ¤¤¤ë¡£±¦Â¦¤Î¥¢¥¯¥¿¡¼¤¬¤½¤Î¶¼°Ò¤Î¸¶°ø¤ò¼¨¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£
¢¨UML2.0¡¦¡¦¡¦Unified Modeling Language¤Îά¾Î¡£Â绨ÇĤ˸À¤¦¤È¥·¥¹¥Æ¥à¤Î»ÅÁȤߤʤɤò¿Þ¤Çɽ¤¹
ɽ¸½ÊýË¡¤Ç¤¢¤ë¡£2.0¤Ï¤½¤Î¥Ð¡¼¥¸¥ç¥ó¡£
#ref(uc1.PNG)
¤Þ¤º¡¢Âè°ì¤ËÄ󶡤¹¤ëµ¡Ç½¤È¤·¤Æ¡¢²ÝÂê¤ò¥¯¥ê¥¢¤¹¤ë¡¡¤È¤¤¤¦¥æ¡¼¥¹¥±¡¼¥¹¡Êµ¡Ç½¡Ë¤¬¤¢¤ë¤È¹Í¤¨¤¿¡£¤³¤³¤«¤éºÙʬ²½¤·¤Æ¤¤¤¡¢¼ÂÁõ¤¹¤Ù¤µ¡Ç½¤Ï¤Ê¤Ë¤«¤òõ¤Ã¤Æ¤¤¤¯¡£
²ÝÂê¤ò¥¯¥ê¥¢¤¹¤ë¥æ¡¼¥¹¥±¡¼¥¹¤Ï¡¢¡Ö¸÷¥»¥ó¥µ¡¦¥é¥¤¥óïçÃÍ¥¥ã¥ê¥Ö¥ì¡¼¥·¥ç¥ó¡×¡¢¡ÖÁö¹Ô¤¹¤ë¡×
¡Ö»æ¥³¥Ã¥×¤ò±¿¤Ö¡×¤È¤¤¤¦3¤Ä¤Î¥æ¡¼¥¹¥±¡¼¥¹¤«¤éÀ®¤êΩ¤Ã¤Æ¤¤¤ë¤È¹Í¤¨¤¿¡£
¤Þ¤º¡¢¡ÖÁö¹Ô¤¹¤ë¡×¥æ¡¼¥¹¥±¡¼¥¹¤«¤é¸«¤Æ¤¤¤¤¿¤¤¡£¡ÖÁö¹Ô¤¹¤ë¡×¤È¸À¤Ã¤Æ¤â¡¢ÍÍ¡¹¤Ê¼êÃʤ¬¤¢¤ë¡£
Âè°ì¤Ë¡Ö¥é¥¤¥ó¥È¥ì¡¼¥¹Áö¹Ô¡×¤³¤ì¤Ï¥é¥¤¥ó¤Ë±è¤Ã¤ÆÁö¹Ô¤¹¤ëÊýË¡¤Ç¤¢¤ë¡Ê¼Â¸½ÊýË¡¤Ï¸å¤Ë¼¨¤¹¡Ë
¼¡¤Ë¡¢¡Ö¥é¥¤¥ó̵»ëÁö¹Ô¡×¤³¤ì¤Ï¡¢NXC¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ëOnFwd(),Off()¤Ê¤É¤Î¤ß¤ÇÁö¹Ô¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£¤Þ¤¿¡¢¤³¤ì¤Ë¤Ï¥â¡¼¥¿¡¼¤Ë¤Ï¸ÄÂκ¹¤¬¤¢¤ê¡¢»ØÄꤷ¤¿¤È¤ª¤ê¤ËÆ°ºî¤Ç¤¤Ê¤¤¤³¤È¤¬¤¢¤ë¡£¤Ê¤Î¤Ç¡¢º¸±¦¥â¡¼¥¿¤òƱ´ü¤·¤ÆÁö¹Ô¤¹¤ë¤³¤È¤âµá¤á¤é¤ì¤ë¤Î¤Ç¡¢³ÈÄ¥µ¡Ç½¤È¤·¤¿¡£
¼¡¤Ë»æ¥³¥Ã¥×¤ò±¿¤Ö¤³¤È¤Ë¤Ä¤¤¤Æ¸«¤Æ¤¤¤¯¡£¡Ö»æ¥³¥Ã¥×¤òÃÖ¤¯¡×¡Ö»æ¥³¥Ã¥×¤ò¤Ä¤«¤à¡×¡Ö»æ¥³¥Ã¥×¤ò¸¡ÃΤ¹¤ë¡×¡Ö¤É¤Î»æ¥³¥Ã¥×¤«È½ÃǤ¹¤ë¡×¤Î¥æ¡¼¥¹¥±¡¼¥¹¤Ç¹½À®¤µ¤ì¤Æ¤¤¤ë¡£¤³¤ì¤é¤Ï¡¢¤¹¤Ù¤Æ»æ¥³¥Ã¥×¤Î°ÌÃÖ¤¬¤º¤ì¤¿¤ê¤¹¤ë¤È¡¢²ÝÂê¤ÎÀ®¸ù¤Ë¤«¤Ê¤ê±Æ¶Á¤¹¤ë¤Î¤Ç¡¢¤½¤ì¤Î²ò·èºö¤È¤·¤Æ¥Ð¥ó¥Ñ¡¼¤òÀßÃÖ¤·¤¿¡£¤³¤ì¤Ë¤è¤ê¡¢µ¡ÂΤξ×Æͤʤɤˤè¤ê»æ¥³¥Ã¥×¤Î°ÌÃÖ¤¬¤Ê¤¯¤Ê¤ë¤À¤í¤¦¤È¹Í¤¨¤¿¤«¤é¤À¡£
»þ´ÖÂӤˤè¤Ã¤Æ¡¢Á뤫¤éº¹¤·¹þ¤à¸÷¤¬»þ´Ö¤Ë¤è¤Ã¤ÆÊѲ½¤·¤Æ¤¤¤¯¤È¹Í¤¨¤¿¡£¤½¤ì¤Ë¤è¤ê¡¢¼êÆ°¤ÇÃͤòÀßÄꤷ¤Æ¤¤¤Æ¤Ï¤½¤ì¤Î»þ´Ö¤â¤«¤«¤ê¡¢ÉÔ°ÂÄê¤Ê¤Î¤Ç¡¢¸÷¥»¥ó¥µÃÍ¡¦ïçÃÍ¥¥ã¥ê¥Ö¥ì¡¼¥·¥ç¥ó¤Ë¤è¤ê¤½¤ì¤òËɤ°¤³¤È¤ò¹Í¤¨¤¿¡£¤Ê¤Î¤Ç¡¢º£²ó¥¥ã¥ê¥Ö¥ì¡¼¥·¥ç¥ó¤ò¼ÂÁõ¤¹¤ë¤Ë»ê¤Ã¤¿¡£
¿Þ¤Ë¡¢Èֹ椬¿¶¤Ã¤Æ¤¢¤ë¤Î¤Ï¸å¤ÎÀâÌÀ¤È¥æ¡¼¥¹¥±¡¼¥¹¤È¼Â¸½ÊýË¡¤Î¥È¥ì¡¼¥µ¥Ó¥ê¥Æ¥£¤ò³ÎΩ¤¹¤ë¤¿¤á¤Ç¤¢¤ë¡£
*»æ¥³¥Ã¥×¤Î¥Ç¥¶¥¤¥ó¤Ë¤Ä¤¤¤Æ [#m850ba72]
¸÷¥»¥ó¥µ¤ÇȽÃǤ¹¤ë¤¿¤á¤Ë¡¢»æ¥³¥Ã¥×¤Ë¥Ç¥¶¥¤¥ó¤ò»Ü¤·¤¿¡£¸÷¥»¥ó¥µ¤ÏÈ¿¼Í¤·¤Æ¤¤¿ÌÀ¤ë¤µ¤ò·×¬¤¹¤ë¤Î¤Ç¡¢ÀĤäÎФʤɤ理ò»È¤Ã¤Æ¤âȽÃǤ¬¤·¤Å¤é¤¤¤È»×¤Ã¤¿¤Î¤Ç¡¢Çò¤È¹õ¤Î¤ß¤Ç¥Ç¥¶¥¤¥ó¤ò»Ü¤¹¤³¤È¤Ë¤·¤¿¡£¥Ç¥¶¥¤¥ó¤Ëµá¤á¤é¤ì¤ë¤Î¤ÏÈþ¤·¤µ¤Ç¤Ï¤Ê¤¯¡¢¸÷¥»¥ó¥µ¤Ç¬Äꤷ¤¿Ãͤ½¤ì¤¾¤ì¤Ëº¹¤¬¤¢¤ë¤«¤É¤¦¤«¤¬°ìÈÖÂçÀڤǤ¢¤ë¡£¥Ç¥¶¥¤¥ó¤Ë¤è¤Ã¤Æ¤â¸¡ÃΤÎÀǽ¤¬º¸±¦¤µ¤ì¤ë¤Î¤Ç¡¢¼ê¤òÈ´¤¤¤Æ¤Ï¤¤¤±¤Ê¤¤¤È´¶¤¸¤¿¡£Â¬Äê¾ì½ê¤Ï¼ø¶È¶µ¼¼¡Ê10ÈÖ¶µ¼¼¡Ë
#ref(cop.PNG)
**µ¿¿¤Ã¹õ [#k1ae08ed]
¸÷¥»¥ó¥µ¤Ç¬Äꤷ¤¿¤È¤³¤í¡¢ÃͤÏÌó37¡£
**¶¿¿¤ÃÇò [#cfe18d71]
¸÷¥»¥ó¥µ¤Ç¬Äꤷ¤¿¤È¤³¤í¡¢ÃͤÏÌó65¡£
**·¼Ê¡¹ [#idb27ee5]
3¸ÄÌܤ˰ìÈÖ̤俤¬¡¢·ë¶É¤³¤Î·Á¤Ë¤Ê¤Ã¤¿¡£ËÜÍè¤Ï³¥¿§¤Ç¤ä¤í¤¦¤È»×¤Ã¤¿¤¬¡¢¹õ¥Ú¥ó°ìËܤǤϸ³¦¤¬¤¢¤Ã¤¿¡£
¤Ê¤Î¤Ç¡¢¹õÀþ¤ÈÇò¤òº®¤¼¤ì¤Ð³¥¿§¤È¤·¤Æǧ¼±¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¤¤«¤È¤¤¤¦²¾Àâ¤Î¤â¤È¡¢¤³¤Î¥Ç¥¶¥¤¥ó¤Ë¤·¤¿¡£
¸÷¥»¥ó¥µ¤Ç¬Äꤷ¤¿¤È¤³¤í¡¢ÃͤÏÌó47¡£
¤³¤ÎÃͤκ¹¤Ê¤é¤Ð¡¢¤É¤Î»æ¥³¥Ã¥×¤«¤òȽÃǤ¹¤ë¤«¤â¥¹¥à¡¼¥º¤Ë¹Ô¤¨¤ë¤Î¤Ç¤Ï¤Ê¤¤¤«¤È·ëÏÀ¤Å¤±¤¿¡£
*µ¡ÂΤξҲð [#e9fd4c76]
¤Þ¤º¡¢¥â¡¼¥¿¤Ç»õ¼Ö¤òÆ°¤«¤¹(1)¡£¤³¤ì¤Ë¤è¤ê¡¢¥¢¡¼¥à¤¬ÊĤ¸¤ë¡Ê2¡Ë
#ref(robo1.PNG)
³¤¤¤Æ¡¢¹¹¤Ë¥â¡¼¥¿¤ËÎϤò²Ã¤¨¡¢»æ¥³¥Ã¥×¤ò¤Ä¤«¤à¡£
#ref(./IMG_0946.JPG,30%,aaa)
¤½¤·¤Æ¡¢¤µ¤é¤ËÎϤò²Ã¤¨¤ë¤È¡¢ÊĤ¸¤ëÊý¸þ¤ËÎϤϹԤ«¤º¡¢¿¿¾å¤Ë¤¤¤¯¤Î¤Ç»ý¤Á¾å¤¬¤ë¤È¤¤¤¦»ÅÁȤߤÀ¡£
¤½¤·¤Æ¡¢¤³¤ì¤¬¥³¥Ã¥×¤Î°ÌÃÖ¤º¤ì¤òËɤ°¤¿¤á¤ËÀßÃÖ¤µ¤ì¤¿¥Ð¥ó¥Ñ¡¼¤Ç¤¢¤ë(¥æ¡¼¥¹¥±¡¼¥¹¿Þ¨»²¾È)¡£
#ref(robo2.PNG)
µ¡ÂΤϰìÅÙ¥À¥¤¥¨¥Ã¥È¤ò¤·¡¢Èó¾ï¤Ë·ÚÎ̲½¤µ¤ì¤¿¡£¤Ê¤¼¥À¥¤¥¨¥Ã¥È¤ò¹Ô¤Ã¤¿¤«¤È¤¤¤¦¤È¡¢½Å¿´¤¬µ¡ÂξåÉô¤Ë¤¢¤ê¡¢¥«¡¼¥Ö¤¹¤ë¤ÈžÅݤ·¤Æ¤·¤Þ¤¦¤³¤È¤¬Â¿¡¹¤¢¤Ã¤¿¤«¤é¤Ç¤¢¤ë¡£
¡Ê»ÄÇ°¤Ê¤¬¤é¡¢¤½¤Î»þ¤Î¼Ì¿¿¤Ï¤Ê¤¤¤Ç¤¹¤´¤á¤ó¤Ê¤µ¤¤¡Ë
*¥×¥í¥°¥é¥à¤Ë¤Ä¤¤¤Æ [#r71a1af9]
º£²ó»ä¤ÏÆȼ«¤Ë¥×¥í¥°¥é¥à¤ÎºîÀ®¤ò¹Ô¤Ã¤Æ¤¤¤¿¡£´Ø¿ô¤òºî¤ê¡¢¤Ç¤¤ë¤À¤±Áàºî¤òÉôÉʲ½¤·¤è¤¦¤È»î¤ß¤¿¡£¤·¤«¤·¡¢ºîÀïÊѹ¹¤Ë¤è¤ê¡¢»È¤ï¤Ê¤¯¤Ê¤Ã¤¿¤Î¤Ç¡¢¤³¤Î¥×¥í¥°¥é¥à¤Ï¼ÂºÝ¤Ë¤ÏÍøÍѤ·¤Ê¤«¤Ã¤¿¡£
¤Ê¤Î¤Ç¡¢Â¾¤Î¥á¥ó¥Ð¡¼¤Î¥Ú¡¼¥¸¤ò¸«¤Æ¤¤¤¿¤À¤±¤ì¤Ð¡¢¼ÂºÝ¤Ë»È¤Ã¤¿¥×¥í¥°¥é¥à¤Ë¤Ä¤¤¤Æ¤ÎÀâÌÀ¤ò±ÜÍ÷¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¡£
[#q3b25128]
**ÊÑ¿ô̾¤Ë¤Ä¤¤¤Æ [#cbc77a37]
m_¤¬¤Ä¤¤¤Æ¤ë¤â¤Î¤Ï¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤È¤·¤¿¡£¤½¤ì°Ê³°¤Ï¥í¡¼¥«¥ëÊÑ¿ô¤È¤¹¤ë¤è¤¦¤Ë¤·¤¿¡£
¤½¤¦¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢ÃͤÎÂåÆþ¥ß¥¹¤Ê¤É¤òËɤ°¤³¤È¤¬½ÐÍè¤ë¤È¹Í¤¨¤¿¤«¤é¤À¡£
**ÄêµÁ [#we70a57f]
/*ÊÑ¿ôÀë¸À*/
int m_black=0;
int m_white=0;
int m_border=0;
int m_cop_A = 0;
int m_cop_B = 0;
int m_gap=0;
int m_kP =0;
int m_kD =0;
int m_old_value =0;
int m_current_value =0;
SetSensorLight(S3);
SetSensorTouch(S1);
SetSensorLight(S2);
**¥¥ã¥ê¥Ö¥ì¡¼¥·¥ç¥ó¡¡´Ø¿ô̾:lightCalibration() ·¿:void [#zbe4bc9c]
¡¡int nb=0;
¡¡int nw=0;
¡¡
¡¡////¢¹õÃͼèÆÀ/////
¡¡while(!SENSOR_1){//²¡¤·¤Æ¤¤¤ë´Ö¸÷¥»¥ó¥µ¤ÎÃͤò¼èÆÀ¤¹¤ë¤È¤¤¤¦°ÕÌ£
¡¡
¡¡
¡¡ m_black += SENSOR_3;//²¡¤µ¤ì¤¿´Ö¤ÎÃͤòÃßÀѤ·¤ÆµÏ¿¤·¤Æ¤ª¤¯
¡¡ Wait(1);
¡¡ nb++; //²¿ÅÙ¼èÆÀ¤·¤¿¤«¤ò¥«¥¦¥ó¥È¤·¤Æ¤ª¤¯
¡¡
¡¡
¡¡ } ¡¡
¡¡
¡¡m_black = m_black/nb;//ÃßÀѤ·¤¿Ãͤò²¿ÅÙ¼èÆÀ¤·¤¿¤«¤Î²ó¿ô¤Ç³ä¤Ã¤ÆÊ¿¶Ñ¤òµá¤á¤Æ¡¢¹õ¥é¥¤¥ó¤Î ¡¡ÃͤȤ·¤ÆÀßÄꤹ¤ë¡£
¡¡Wait(500);
¡¡
¡¡////¢¬¹õÃͼèÆÀ//////¢ÇòÃͼèÆÀ//////
¡¡
¡¡while(!SENSOR_1){
¡¡
¡¡
¡¡ m_white += SENSOR_3;
¡¡ Wait(1);
¡¡ nw++;
¡¡ }
¡¡
¡¡m_white = m_white/nw;
¡¡Wait(500);
¡¡
¡¡////¢¬ÇòÃͼèÆÀ/////¢¶³¦ÃÍ»»½Ð//////
¡¡
¡¡
¡¡m_border =(m_white+m_black)/2¡¡//¶³¦ÃÍ(ïçÃÍ)¤Ï¹õÃͤÈÇòÃͤÎÊ¿¶ÑÃͤȤ¹¤ë
¤Þ¤º¡¢¥¿¥Ã¥Á¥»¥ó¥µ¤¬²¡¤µ¤ì¤Æ¤ë´Ö,¤½¤Î¾ì½ê¤Î¸÷¥»¥ó¥µ¤ÎÃͤòÃßÀѤ¹¤ë¡£ÃßÀѤ·¤Æ¤¤¤ë´Ö¡¢²¿ÅÙÃßÀѤ·¤¿¤«¤ò¥«¥¦¥ó¥È¤¹¤ë¡£¤½¤·¤Æ¡¢¤½¤ÎÃßÀѤ·¤¿ÃͤòÃßÀѤ·¤¿²ó¿ô¤Ç³ä¤ë¡£¤½¤ì¤¬¤½¤Î¾ì½ê¤Î¸÷¥»¥ó¥µ¤ÎÃͤȤʤ롣¤³¤ì¤ò¡¢Çò¤Î¾ì½ê¡¢¹õ¥é¥¤¥ó¤Î¾ì½êξÊý¤Ç¹Ô¤¦¡£¤½¤Î¸å¡¢m_border¤Ë¤½¤ÎÊ¿¶ÑÃͤòÂåÆþ¤¹¤ë¡£¤³¤ì¤¬¥é¥¤¥óïçÃͤȤʤ롣¤³¤ì¤Ë¤è¤ê¥¥ã¥ê¥Ö¥ì¡¼¥·¥ç¥ó¤ò¼Â¸½¤·¤¿¡£
**¥é¥¤¥ó¥È¥ì¡¼¥¹¡ [#p8f48759]
***ľÀþÍÑ ´Ø¿ô̾:forwardLineTrace(¥¹¥Ô¡¼¥É:int) ·¿:void [#u029b328]
int d;
int speedL;
int speedR;
int speed;
speed = ¥¹¥Ô¡¼¥É;
m_current_value = m_old_value;
m_old_value = SENSOR_3;
d=(m_old_value - m_current_value)*m_kD;
m_gap = (m_border - SENSOR_3)*m_kP + d
if(m_gap >= 0){
speedL = speed;
speedR = speed - m_gap;
}
else{
speedL = speed + m_gap;
speedR = speed;
}
OnFwd(OUT_B,speedL);
OnFwd(OUT_C,speedR);
¤Þ¤º¡¢¤³¤Î´Ø¿ô¤ÏPDÀ©¸æ¤Ë¤è¤Ã¤ÆÆ°¤¤¤Æ¤¤¤ë¡£IÀ©¸æ¤òÆþ¤ì¤ë¤È¡¢¤µ¤é¤ËåºÎï¤Ë¥é¥¤¥ó¥È¥ì¡¼¥¹½ÐÍè¤ë¤Î¤À¤¬¡¢PD¤À¤±¤Ç¤âåºÎï¤Ë¥é¥¤¥ó¥È¥ì¡¼¥¹½ÐÍè¤ë¤Î¤Ç¡¢º£²ó¤Ï¤³¤ì¤Ç¹Ô¤Ã¤¿¡£
¤Þ¤º¡¢´Êñ¤ËÀâÌÀ¤ò¤¹¤ë¤È¡¢PÀ©¸æ¤È¤Ï¡¢ÌÜɸ¤ÎÃͤ˶á¤Å¤±¤ë¤¿¤á¤Ë¡¢À©¸æÎ̤˱þ¤¸¤ÆÁàºîÎ̤òÁý¤ä¤¹¤è¤¦¤ÊÀ©¸æ¤Î¤³¤È¡£
¤½¤·¤Æ¡¢DÀ©¸æ¤È¤Ï¡¢¤½¤ÎÁàºî¤ò¹Ô¤¦È¿±þ®Å٤Τ³¤È¤Ç¤¢¤ë¡£
***¥«¡¼¥ÖÍѥ饤¥ó¥È¥ì¡¼¥¹ ´Ø¿ô̾:curveLineTrace(¥¹¥Ô¡¼¥É:int) ·¿:void [#qacb9694]
int speed;
speed = ¥¹¥Ô¡¼¥É;
if(m_border < SENSOR_3){
OnFwd(OUT_B,speed);
Off(OUT_C);
}
else{
OnFwd(OUT_C,speed);
Off(OUT_B);
}
Wait(2);
ON/OFFÀ©¸æ¤Ë¤è¤Ã¤Æ¼Â¸½¤µ¤ì¤Æ¤¤¤ë¡£¥»¥ó¥µ¤ÎÃͤΤۤ¦¤¬ïçÃͤè¤ê¤âÂ礤«¤Ã¤¿¤é±¦¡¢¤½¤¦¤Ç¤Ê¤«¤Ã¤¿¤é¡¢º¸¤È¤¤¤¦¤è¤¦¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£
**¢£¥é¥¤¥ó̵»ëÁö¹Ô [#i6e1c56d]
OnFwd(port,speed);
OnRev(port.speed);
OnFwdSync(port,speed,0~100);//¤º¸±¦¥â¡¼¥¿¤òƱ´ü¤µ¤»¤ë
¤Ê¤É¤Î¸µ¤«¤éÄ󶡤µ¤ì¤Æ¤¤¤ëAPI¤òÍøÍѤ·¤ÆÁö¹Ô¤ò¤¹¤ë¡£¤Ä¤Þ¤ê¡¢Ä¾¤Ë¥â¡¼¥¿¡¼¤ËÌ¿Îᤷ¤ÆÁö¹Ô¤¹¤ë¡£
**¤¥³¥Ã¥×¤òÃÖ¤¯ ´Ø¿ô̾:removeCop() ·¿:void [#lea8c0bb]
OnRev(OUT_A,75);
Wait(1000);
¥â¡¼¥¿µÕ²óž¤Ç°ìÄê¤Î»þ´Ö²ó¤¹É¬Íפ¬¤¢¤ë¡£¤³¤ÎÃͤÏŬµ¹Ä´À°¤¬É¬ÍפʤΤǡ¢À®¸ùΨ¤Ë¤Ð¤é¤Ä¤¤¬½Ð¤Æ¤·¤Þ¤¦¤³¤È¤¬¹Í¤¨¤é¤ì¤ë¡£¤½¤ì¤âº£¸å¤Î²ÝÂê¤È¤·¤Æ¤ª¤¤¿¤¤¡£
**¥¥³¥Ã¥×¤ò¤Ä¤«¤à ´Ø¿ô̾ catchCop() ·¿:void [#aa13e149]
OnFwd(OUT_A,75);
Wait(1000);
ÃÖ¤¯¤Î¤ÈƱÍͤǤ¢¤ë¡£ÃÖ¤¯¤Î¤È¤ÏµÕ²óž¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£
**¦»æ¥³¥Ã¥×¤ò¸¡ÃΤ¹¤ë ´Ø¿ô̾:detectCop(¸¡ÃΤ·¤¿¤¤¥³¥Ã¥×¤ÎÌÀ¤ë¤µ¿ôÃÍ) ·¿:bool [#z0d324fb]
if(SENSOR_2 < ¸¡ÃΤ·¤¿¤¤¥³¥Ã¥×¤ÎÌÀ¤ë¤µ¿ôÃÍ){
return true;
}
¸¡ÃΤ·¤¿¤¤¥³¥Ã¥×¤ÎÌÀ¤ë¤µ¿ôÃͤò´Ø¿ô¤ËÅϤ·¤Æ¡¢¤½¤ì¤¬¸¡ÃΤµ¤ì¤¿¤étrue¤òÊÖ¤¹¤È¤¤¤Ã¤¿¤â¤Î¡£
¤ï¤¶¤ï¤¶ÃͤòÆþÎϤ·¤ÆÅϤ¹É¬Íפ¬¤¢¤ë¤Î¤Ç¡¢»ÈÍѤ¹¤ëºÝÈó¾ï¤ËÌÌÅݤʤΤ¬·çÅÀ¡£´Ø¿ôÆâ¤Ç¥¥ã¥¹¥È¤ò¤¹¤Ù¤¤À¤È¤Î¤Á¤Ë¤Ê¤Ã¤Æ´¶¤¸¤¿¡£¤Þ¤¿¡¢¸¡ÃΤδ¶ÅÙ¤¬°¤«¤Ã¤¿¡£¤³¤ì¤Ï¡¢Á°²ó¤Î¸òº¹ÅÀ¸¡ÃΤÈƱÍͤˡ¢¤Ê¤ó¤É¸¡ÃΤ·¤¿¤«¤ò¥«¥¦¥ó¥È¤·¤Æ¡¢¤½¤ÎÃͤò¤â¤È¤Ë¸¡ÃΤ¹¤ë¤È¤¤¤¦Êý¤¬ÀºÅÙ¤¬¹â¤¯¤Ê¤Ã¤¿¤À¤í¤¦¤È¤Î¤Á¤Ë¤Ê¤Ã¤Æ´¶¤¸¤¿¡£
**§¤É¤Î»æ¥³¥Ã¥×¤«È½ÃǤ¹¤ë ´Ø¿ô̾:judgeCop() ·¿:int [#ldf95edc]
if(SENSOR_3 < 37){
return 3;
}
if(SENSOR_3 < 65){
return 1;
}
if(SENSOR_3 < 40){
return 2;
}
¤½¤ì¤¾¤ì¤ÎÃͤ˱þ¤¸¤Æ1,2,3¤ÎÃͤòÊÖ¤·¤ÆȽÃǤò¹Ô¤¦¡£¤³¤ì¤âÀè¤Û¤É¤Î¥³¥Ã¥×¸¡ÃΤÉƱÍͤˡ¢ÀºÅÙ¤¬Ä㤫¤Ã¤¿¡£²¿ÅÙ¸¡ÃΤ·¤¿¤«¤ò¥«¥¦¥ó¥È¤·¡¢¤½¤ì¤Ë±þ¤¸¤ÆȽÃǤ¹¤ë¤È¤¤¤Ã¤¿»ÅÁȤߤΤۤ¦¤¬ÀºÅ٤Ϲ⤯¤Ê¤Ã¤¿²ÄǽÀ¤¬¤¢¤ë¡£
*´¶ÁÛ¡¦È¿¾Ê [#z750df4d]
º£²ó¡¢»ä¤Ï¥×¥í¥°¥é¥à¤ò¤è¤êÁȤߤ䤹¤¤¤è¤¦¤Ë¿´¤¬¤±¤¿¡£¤·¤«¤·¡¢ºîÀïÊѹ¹¤Ë¤è¤ê»È¤ï¤ì¤Ê¤¯ÌĤäƤ·¤Þ¤Ã¤¿¤Î¤Ï»ÄÇ°¤À¤Ã¤¿¡£µ¡ÂΤ¬Êѹ¹¤Ë¤¢¤Ã¤Æ¤âºîÀ郎Êѹ¹¤µ¤ì¤Æ¤â¥×¥í¥°¥é¥à¤¬»È¤¨¤ë¤è¤¦¤Ë¤¹¤ëɬÍפ¬¤¢¤ë¤È´¶¤¸¤¿¡£¤µ¤é¤Ë¡¢ÉôÉʲ½¤·¤¿¤Î¤Ï¤¤¤¤¤¬¡¢¥µ¥Ö¥ë¡¼¥Á¥ó¤ò°ìÀÚºî¤é¤ºÁȤó¤Ç¤·¤Þ¤Ã¤¿¤Î¤Ç¡¢main()Æâ¤Î¥×¥í¥°¥é¥à¤¬Èó¾ï¤ËÈÑ»¨¤Ë¤Ê¤ê¡¢¤ï¤«¤ê¤Ë¤¯¤¯¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£ÉôÉʲ½¤¹¤ë¤À¤±¤Ç¤Ï¤Ê¤¯¡¢¸«¤ä¤¹¤¤¤è¤¦¤Ë¤¹¤ë¤Î¤âÂçÀÚ¤À¤È´¶¤¸¤¿¡£
¡¡º£²ó¡¢´üËö»î¸³¤È»þ´Ö¤¬¤«¤Ö¤ê¡¢½¸¤Þ¤ì¤ë»þ´Ö¤¬¼è¤ì¤Ê¤«¤Ã¤¿¡£¤µ¤é¤Ë¡¢¼Â²È¤Ëµ¢¤é¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤Í½Ä꤬¤¢¤Ã¤¿¤¿¤á¡¢ºÇ½ªÄ´À°¤Ë¹Ô¤¯¤³¤È¤¬½ÐÍ褺¡¢Èó¾ï¤Ë»ÄÇ°¤Ç¤¢¤Ã¤¿¡£Ä´À°¤¬½ÐÍè¤Ê¤¤¤³¤È¤â¿¡¹¤¢¤Ã¤¿¤·¡¢¼«Ê¬¤Îºî¶È¤¬»¨¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¤È¤¤¤¦¤Î¤â¿¡¹¸«¤é¤ì¤¿¡£º£¸å¤Ï¤³¤Î¤è¤¦¤Ê¤³¤È¤¬Ìµ¤¤¤è¤¦¤Ë¡¢·×²è¤òΩ¤Æ¡¢½½Ê¬¤¬»þ´Ö¤ò¤È¤ì¤ë¤è¤¦¤Ë¤¹¤Ù¤¤À¤È´¶¤¸¤¿¡£
¥Ú¡¼¥¸Ì¾: