#contents

*¥á¥ó¥Ð¡¼ [#r15374e9]
ÈÓÅçÀ¶µ®¡¡±àÉôÍ¥²Ö(¼«Ê¬)¡¡Ìøß·½ìÂÀ¡¡²£ÅÄæÆ¿¿

*²ÝÂê [#h2252517]
²ÝÂê2¤Ç»ÈÍѤ·¤¿¥é¥¤¥ó¥È¥ì¡¼¥¹¤Î»æ¤òÆóËç¤Ä¤Ê¤²¤Æ¡¢½êÄê¤Î°ÌÃÖ¤ËÃÖ¤«¤ì¤¿»æ¥³¥Ã¥×¤ËÆþ¤Ã¤Æ¤¤¤ë¥Ü¡¼¥ë¤ò¸ò´¹¤¹¤ë¤È¤¤¤¦¤â¤Î¤Ç¤·¤¿¡£¾Ü¤·¤¯¤Ï[[²ÝÂê3:http://yakushi.shinshu-u.ac.jp/robotics/?2014b%2FMission3]]¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

*¥í¥Ü¥Ã¥È [#d84b04cd]
º£²ó¤Î¥í¥Ü¥Ã¥È¤ÎÀ½ºî¤Ë¤Ï¤È¤Æ¤â»þ´Ö¤¬¤«¤«¤ê¤Þ¤·¤¿¡£¤É¤Î¤è¤¦¤Ë¤·¤Æ¥Ü¡¼¥ë¤ò¼è¤ê½Ð¤·¡¢±¿¤ó¤Ç¡¢ºÆ¤Ó»æ¥³¥Ã¥×¤ÎÃæ¤ËÆþ¤ì¤ë¤Î¤«¤ò¼«Ê¬¤¿¤Á¤Ç¹Í¤¨¤Æ¡¢°ì¤«¤éºî¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤«¤Ã¤¿¤Î¤ÇÂçÊѤǤ·¤¿¡£¥í¥Ü¥Ã¥È¤ÎÀ½ºî¤Ï¤Û¤È¤ó¤É¾¤Î¥á¥ó¥Ð¡¼¤ËǤ¤»¤Æ¤·¤Þ¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢Æ¬¤ÎÃæ¤Ë¤¢¤ë¥¤¥á¡¼¥¸¤ò¼ÂºÝ¤Ë·Á¤Ë¤·¤Æ¤¤¤¯Èà¤é¤Ï¤¹¤´¤¤¤È»×¤¤¤Þ¤·¤¿¡£

¥í¥Ü¥Ã¥È¤ÎÁ´ÂÎÁü¤Ï¤³¤Á¤é¤Ç¤¹¡£

&ref(¥í¥Ü¥³¥ó1.jpg);&ref(¥í¥Ü¥³¥ó2.jpg);

»ä¤¿¤Á¤Î¥Á¡¼¥à¤Ï¥í¥Ü¥Ã¥ÈÁ°Êý¤Î¥¢¡¼¥à¤Ç»æ¥³¥Ã¥×¤ò»ý¤Á¾å¤²¡¢¥í¥Ü¥Ã¥È¾åÉô¤Ë¼è¤êÉÕ¤±¤¿³ÊǼ¸Ë¤Ë»æ¥³¥Ã¥×¤ò·¹¤±¤Æ¥Ü¡¼¥ë¤ò¤Ï¤¸¤á¤Ë4¸Ä¤È¤â³ÊǼ¤¹¤ë¤È¤¤¤¦¤«¤¿¤Á¤Ë¤·¤Þ¤·¤¿¡£¤½¤·¤Æ³ÊǼ¤·¤¿¥Ü¡¼¥ë¤òÆó¸Ä¤º¤ÄÍî¤È¤·¡¢ºÆ¤Ó»æ¥³¥Ã¥×¤ËÆþ¤ì¤é¤ì¤ë¤è¤¦¤Ë¤·¤Þ¤·¤¿¡£¤³¤Î¤È¤­¡¢³ÊǼ¸Ë¤Ë¤Ï¥Ü¡¼¥ë¤¬4¸ÄÆþ¤Ã¤Æ¤¤¤ë¤¿¤á¡¢²¿¤â¤·¤Ê¤¤¤È4¸Ä°ìµ¤¤ËÍî¤Á¤Æ¤·¤Þ¤¦¤Î¤Ç¡¢¥Ü¡¼¥ë¤òÍî¤È¤¹¥¢¡¼¥à¤¬³«¤¯¤Î¤ÈƱ»þ¤Ë3¸ÄÌܰʹߤòÍî¤È¤µ¤Ê¤¤¤è¤¦¤Ë¥¹¥È¥Ã¥Ñ¡¼¤¬¾å¤¬¤ë¤è¤¦¤Ë¹©Éפ·¤Þ¤·¤¿¡£¤½¤ÎÉôʬ¤¬°Ê²¼¤Î¼Ì¿¿¤Ç¤¹¡£

&ref(¥í¥Ü¥³¥ó4.jpg);&ref(¥í¥Ü¥³¥ó6.jpg);

ËÜÈÖ¤ÇÀ®¸ù¤¹¤ë¤È¤³¤í¤ò»ä¤Ï¸«¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¤¬¡¢Îý½¬Ãæ¤Ë¤³¤ÎÆ°¤­¤ò¤ä¤Ã¤¿»þ¤Ï¹â¤¤³ÎΨ¤ÇÀ®¸ù¤¹¤ë¤³¤È¤¬¤Ç¤­¤Æ¤¦¤ì¤·¤«¤Ã¤¿¤Ç¤¹¡£

*¥×¥í¥°¥é¥à [#g1b501e6]
¤Ï¤¸¤á¤Ë¥á¥¤¥ó¤Î¥×¥í¥°¥é¥à¤Ç»È¤¦¥×¥í¥°¥é¥àÅù¤òÄêµÁ¤·¤Þ¤·¤¿¡£

 #define CONN 1
 #define SIGNALON 1
 #define OPEN_SPEED 15
 #define OPEN OnFwd(OUT_A,OPEN_SPEED);Wait(800);Off(OUT_A);
 #define CLOSE OnRev(OUT_A,OPEN_SPEED);Wait(1300);Off(OUT_A);
 #define SPEED_H 70
 #define SPEED_L 50
 const float diameter = 5.6;   //¥¿¥¤¥ä¤Îľ·Â¡Ê­Ñ¡Ë
 const float track = 10.5;   //¥¿¥¤¥ä¤Î¥È¥ì¥Ã¥ÉÉý¡Ê­Ñ¡Ë
 const float pi = 3.1415;   //±ß¼þΨ

 float GetAngle_turn(float a)   //µá¤á¤ëËÜÂΤβóž³Ñ¤«¤é¥¿¥¤¥ä¤Î²óž³Ñ¤òµá¤á¤ë´Ø¿ô          
 {float ang = (a*track)/diameter;
 return ang;}

 float GetAngle_go(float a)   //µá¤á¤ë°ÜÆ°µ÷Î¥¤«¤é¥¿¥¤¥ä¤Î²óž³Ñ¤òµá¤á¤ë´Ø¿ô
 {float ang = a/(diameter*pi)*360.0;
 return ang;}

 sub angle_turn_L(float t)   //º¸¤ËtÅÙ²óž
 {int angle_turn_L = GetAngle_turn(t);
 RotateMotorEx(OUT_BC,SPEED_H,angle_turn_L,-100,true,true);//¥â¡¼¥¿B¤ÈC¤òSPEED_H¤ÇȿžƱ´ü¤µ¤»¤Æº¸¤ËtÅÙÁ°Å¾(¥Ö¥ì¡¼¥­¤¢¤ê)
 Off(OUT_BC);}

 sub angle_turn_R(float t)   //±¦¤ËtÅÙ²óž
 {int angle_turn_R = GetAngle_turn(t);
 RotateMotorEx(OUT_BC,SPEED_H,angle_turn_R,100,true,true);//¥â¡¼¥¿B¤ÈC¤òSPEED_H¤ÇȿžƱ´ü¤µ¤»¤Æ±¦¤ËtÅÙÁ°Å¾(¥Ö¥ì¡¼¥­¤¢¤ê)
 Off(OUT_BC);}

 sub dist_go_F(float t)   //Á°¤Ët¥»¥ó¥Á¿Ê¤à
 {int angle_go_F = GetAngle_go(t);
 RotateMotorEx(OUT_BC,SPEED_H,angle_go_F,0,true,true);
 Off(OUT_BC);}

 sub dist_go_R(float t)   //¸å¤í¤Ët¥»¥ó¥Á¿Ê¤à
 {int angle_go_R = GetAngle_go(t);
 RotateMotorEx(OUT_BC,-SPEED_H,angle_go_R,0,true,true);
 Off(OUT_BC);}

¤³¤³¤«¤é¤¬¥á¥¤¥ó¥×¥í¥°¥é¥à¤Ç¤¹¡£º£²ó¤Ï2Âæ¤ÎNXT¤òÄÌ¿®¤µ¤»¤Æ¹Ô¤¦²ÝÂê¤À¤Ã¤¿¤Î¤Ç¡¢¤Þ¤º¤Ï¥Þ¥¹¥¿¡¼Â¦¤Î¥×¥í¥°¥é¥à¤Ç¤¹¡£

 task main()
 {dist_go_F(57.0);//¥³¥Ã¥×¤ò¼è¤ë¥Ü¡¼¥ëÅëºÜ¤Î¿®¹æ¤òÁ÷¤ë
 SendRemoteNumber(CONN, MAILBOX1, SIGNALON);
 Wait(9000);//¥¹¥ì¡¼¥Ö¦¤Î¥×¥í¥°¥é¥à¤¬½ª¤ï¤ë¤Þ¤ÇÂÔ¤Ä

 angle_turn_R(150.0);
 dist_go_F(40.0);//¥³¥Ã¥×¤ò¼è¤ë¥Ü¡¼¥ëÅëºÜ¤Î¿®¹æ¤òÁ÷¤ë
 SendRemoteNumber(CONN, MAILBOX1, SIGNALON);
 Wait(9000);//ȿž¤·¤Æ
 dist_go_R(5.0);
 angle_turn_R(190.0);

 dist_go_R(20.0);//¥Ü¡¼¥ë¤òÃÖ¤¯
 OPEN;
 Wait(1000);
 CLOSE;

 dist_go_F(50.0);//ȿž¤·¤Æ
 dist_go_R(20.0);
 angle_turn_R(220.0);//¥³¥Ã¥×¤Þ¤Ç¶á¤Å¤¯
 dist_go_R(33.0);//¥Ü¡¼¥ë¤òÃÖ¤¯¿®¹æ¤òÁ÷¤ë
 OPEN;
 Wait(1000);
 CLOSE;//Î¥¤ì¤ë
 dist_go_F(20.0);} 

¼¡¤ÏÄÌ¿®¤ò¼õ¤±¤ë¥¹¥ì¡¼¥Ö¦¤Î¥×¥í¥°¥é¥à¤Ç¤¹¡£¥³¥Ã¥×¤ò»ý¤Á¾å¤²¤Æ¥í¥Ü¥Ã¥È¾åÉô¤Î³ÊǼ¸Ë¤ËÆþ¤ì¤ëÆ°ºî¤Î¥×¥í¥°¥é¥à¤Ë¤Ê¤ê¤Þ¤¹¡£

 #define SIGNALON 1 
 #define ARM_TIME1 1000¡¡ //¥¢¡¼¥à¤Î³«ÊÄ»þ´Ö£±
 #define ARM_TIME2 2000   //¥¢¡¼¥à¤Î³«ÊÄ»þ´Ö£²
 #define ARM_SPEED1 10    //¥¢¡¼¥à¤Î³«ÊÄ¥¹¥Ô¡¼¥É£±
 #define ARM_SPEED2 50    //¥¢¡¼¥à¤Î³«ÊÄ¥¹¥Ô¡¼¥É£²
 #define UP_TIME 2000     //¥¢¡¼¥à¤ò¾å¤²¤ë»þ´Ö
 #define UP_SPEED 50      //¥¢¡¼¥à¤ò¾å¤²¤ë¥¹¥Ô¡¼¥É
 #define DOWN_TIME 1800   //¥¢¡¼¥à¤ò²¼¤²¤ë»þ´Ö
 #define DOWN_SPEED 20    //¥¢¡¼¥à¤ò²¼¤²¤ë¥¹¥Ô¡¼¥É
 
 task main()
 {int msg;     //¼õ¤±¼è¤Ã¤¿Ãͤò³ÊǼ¤¹¤ëÊÑ¿ô
 while(true){ReceiveRemoteNumber(MAILBOX1, true, msg);//MAILBOX1¤ÎÃͤò¼õ¤±¼è¤êmsg¤Ë³ÊǼ
  if(msg==SIGNALON){
 OnFwd(OUT_C,DOWN_SPEED);Wait(DOWN_TIME);Off(OUT_C);//¥¢¡¼¥à¤ò²¼¤²¤ë
 OnRev(OUT_B,ARM_SPEED2);Wait(ARM_TIME2);Off(OUT_B);//¥¢¡¼¥à¤òÊĤ¸¤ë
 OnRev(OUT_C,UP_SPEED);OnRev(OUT_B,ARM_SPEED2);Wait(UP_TIME);Off(OUT_C);Off(OUT_B);//¥¢¡¼¥à¤ò¾å¤²¤ë
 OnFwd(OUT_C,DOWN_SPEED);Wait(DOWN_TIME);Off(OUT_C);//¥¢¡¼¥à¤ò²¼¤²¤ë
 OnFwd(OUT_B,ARM_SPEED1);Wait(ARM_TIME1);Off(OUT_B);//¥¢¡¼¥à¤ò³«¤¯
 ARM_UP2 OnRev(OUT_C,UP_SPEED);Wait(450);Off(OUT_C);//¥¢¡¼¥à¤òÄê°ÌÃÖ¤ËÌ᤹
 }else{Off(OUT_BC);}
 }
 }

*È¿¾Ê¤È´¶ÁÛ [#jfa7e774]
¥í¥Ü¥Ã¥È¤ÎÁȤßΩ¤Æ¤Ë»þ´Ö¤ò¤«¤±¤Æ¤·¤Þ¤¤¡¢¥×¥í¥°¥é¥à¤ËÈñ¤ä¤»¤ë»þ´Ö¤¬¤¢¤Þ¤ê¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¤¿¤á¡¢Ç¼ÆÀ¤·¤¿¥×¥í¥°¥é¥à¤òºî¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£ËÜÍè¤Ï¥í¥Ü¥Ã¥È¤ÎÁ°¸å¤Ë¼è¤êÉÕ¤±¤¿µ÷Î¥¥»¥ó¥µ¡¼¤ò»È¤Ã¤Æ»æ¥³¥Ã¥×¤Þ¤Ç¤¿¤É¤êÃ夯¥×¥í¥°¥é¥à¤Ë¤·¤¿¤«¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢¤Û¤È¤ó¤É»þ´Ö¤¬¤Ê¤¤Ãæ¤Ç¥»¥ó¥µ¡¼¤¬¤¦¤Þ¤¯ºîÆ°¤·¤Æ¤¯¤ì¤Ê¤«¤Ã¤¿¤¿¤á¡¢¤ä¤à¤òÆÀ¤ºµ÷Î¥¤È³ÑÅÙ¤ò»È¤Ã¤¿¥×¥í¥°¥é¥à¤ËÊѤ¨¤Þ¤·¤¿¡£¤½¤Î¤¿¤áÈù̯¤Ê¸íº¹¤«¤é»×¤¤ÉÁ¤¯¤è¤¦¤ÊÆ°¤­¤ò¤·¤Æ¤¯¤ì¤º¡¢ºÇ¸å¤Þ¤ÇÀ®¸ù¤¹¤ë¤«¤ï¤«¤é¤Ê¤¤¥×¥í¥°¥é¥à¤È¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡£¤â¤Ã¤ÈÁ᤯¤«¤é¼è¤ê¤«¤«¤ê¡¢¥í¥Ü¥Ã¥ÈÀ½ºî¤Ë¤â¥×¥í¥°¥é¥à¤Ë¤â½½Ê¬¤Ê»þ´Ö¤ò¤«¤±¤ë¤Ù¤­¤À¤Ã¤¿¤È¤¤¤¦¤Î¤¬º£²ó¤Î°ìÈÖ¤ÎÈ¿¾ÊÅÀ¤Ç¤¹¡£¤½¤ì¤Ç¤â¡¢¤³¤Î¥¼¥ß¤òÄ̤·¤Æ¥×¥í¥°¥é¥à¤ÎÆñ¤·¤µ¤ä¼«Ê¬¤Ç¥í¥Ü¥Ã¥È¤òÆ°¤«¤¹¤³¤È¤Î³Ú¤·¤µ¤ò³Ø¤Ù¤¿¤Î¤Ç¡¢Íèǯ°Ê¹ß¤Ë³è¤«¤·¤Æ¤¤¤­¤¿¤¤¤È»×¤¤¤Þ¤¹¡£



¥È¥Ã¥×   ¿·µ¬ °ìÍ÷ ¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS