[[2016a/Member]] #contents *¤Ï¤¸¤á¤Ë [#db5768ef] º£²ó¤Î²ÝÂê¤Ï²¼¤Î¿Þ¤Î¤è¤¦¤Ê¥³¡¼¥¹¤ò³Æ¥Á¡¼¥à¤ÇºîÀ®¤·¡¢¥ß¥Ã¥·¥ç¥ó¤ò¿ë¹Ô¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£ #ref(2016a-mission2.png) ¤Ê¤ª¡¢º£²ó¤Î»ä¤Î¥ß¥Ã¥·¥ç¥ó¤Ï BÃÏÅÀ¤«¤éCÃÏÅÀ¤Ø (BÃÏÅÀ ¢ª R±¦ÀÞ ¢ª Qľ¿Ê ¢ª Qľ¿Ê ¢ªP±¦ÀÞ ¢ª S±¦ÀÞ ¢ª CÃÏÅÀ) ¤Ç¤¢¤ë¡£([[2016ǯÅÙÁ°´ü ²ÝÂê2:http://yakushi.shinshu-u.ac.jp/robotics/?2016a%2FMission2]]°úÍÑ) *¥í¥Ü¥Ã¥È¤ÎÀâÌÀ [#dcc4ff80] ¥¥Ã¥È¤ËÉÕ°¤·¤Æ¤¤¤¿ÀâÌÀ½ñ¤ËºÜ¤Ã¤Æ¤¤¤¿¤è¤¦¤Ë¡¢¸÷¥»¥ó¥µ¤ò¼è¤êÉÕ¤±¤Þ¤·¤¿¡£ #ref(robo3.jpg) ¤Ê¤ª¡¢¤è¤êÀµ³Î¤Ê¬Ä꤬½ÐÍè¤ë¤è¤¦¡¢¾²¤È¤Îµ÷Î¥¤ò½Ì¤á¤ë¤è¤¦¤Ë¤·¤Þ¤·¤¿¡£ #ref(robo4.jpg) *¥×¥í¥°¥é¥à [#h080aa93] **float·¿´Ø¿ô¥×¥í¥°¥é¥à [#i7675aa0] Á°²ó¤Î¡ÖÅÅÃÓ»ÄÎ̤ˤè¤Ã¤Æ¥â¡¼¥¿¡¼¤Î²óž®ÅÙ¤¬ÃÙ¤¯¤Ê¤ë¡×¤³¤È¤ÎÂкö¤È¤·¤Æ([[2016a/Member/ngtrz/Mission1:http://yakushi.shinshu-u.ac.jp/robotics/?2016a%2FMember%2Fngtrz%2FMission1]]»²¾È)¡¢ º£²ó¤Ï¿Ê¤ß¤¿¤¤µ÷Î¥¤«¤é¥¿¥¤¥ä¤Î²óž³Ñ¤ò·×»»¤¹¤ëfloat·¿¤Î´Ø¿ô¤ò»È¤Ã¤¿¥×¥í¥°¥é¥à¤òÍѤ¤¤Þ¤·¤¿¡£ float GetAngle(float d) /* d¤Ë¤Ï¿Ê¤ß¤¿¤¤µ÷Î¥¤¬Æþ¤ë */ { const float diameter=5.45; //¥¿¥¤¥ä¤Îľ·Â(Ñ) const float pi=3.1415; //±ß¼þΨ(¦Ð) float ang =d/(diameter*pi)*360.0; //³ÑÅÙ¤ò·×»»¤¹¤ë return ang; //³ÑÅÙ¤òÊÖ¤¹¡¡ } ***90¡ë²óž [#w1d6ee16] ±¦Àޤξì¹ç¡¢90¡ë²óž¤¬É¬ÍפȤʤê¤Þ¤¹¡£ ¥¿¥¤¥ä¤È¥¿¥¤¥ä¤ÎŤµ(¥¿¥¤¥ä¤¬ÉÁ¤¯±ß¤ÎȾ·Âr)¤¬10.5ѤǤ¢¤ë¤Î¤Ç¡¢¤³¤ì¤ò¸µ¤Ëfloat·¿¤Î´Ø¿ô¤òÍøÍѤ·¤Æ¥¿¥¤¥ä¤Îé¤ë±ß¼þ¤ÎŤµ( L = 2¦Ðrx / 360 ) (x:³ÑÅÙ) ¤òµá¤á¤Þ¤¹¡£ 90¡ë²óž¤¹¤ë¾ì¹ç¤Î¥¿¥¤¥ä¤Îé¤ë±ß¼þ¤ÎŤµ¤Ï L¡ád¡á2¡ß3.1415¡ß10.5¡ß90/360¢â16.5Ñ ¤¿¤À¤·¡¢º£²ó»ä¤Ï¥¿¥¤¥ä¤ò¤É¤Á¤é¤âÆ°¤«¤·¤Æ±¦Àû²ó¤µ¤»¤è¤¦¤È¤·¤Æ¤¤¤Æ¡¢16.5cm¤Ç¤ä¤ë¤È180¡ë²óž¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤Î¤Ç¡¢È¾Ê¬¤Î8.25cm¤Ë¤¹¤ë¤³¤È¤Ç90¡ë²óž¤Ë¤·¤Þ¤·¤¿¡£ ¤³¤ì¤è¤ê¡¢90¡ë²óž¤òÄêµÁ¤·¤Þ¤·¤¿¡£ #define Ninety GetAngle(8.25) ***2cm¿Ê¤à [#e3d3987b] ¸òº¹ÅÀ¤òľ¿Ê¤¹¤ëºÝ¡¢2cm¿Ê¤à¤³¤È(Àþ¤ÎÂÀ¤µ¤¬Ìó2cm¤Ç¤¢¤ë¤¿¤á)¤¬É¬ÍפȤʤê¤Þ¤¹¡£ ¤³¤Î¾ì¹ç¤ÏÉáÄÌ¤Ë d¡á2 ¤Ç¤Ç¤¤Þ¤¹¡£ ¤³¤ì¤è¤ê¡¢2cm¿Ê¤à¤³¤È¤òÄêµÁ¤·¤Þ¤·¤¿¡£ #define Two GetAngle(2) **ÄêµÁ [#je60c3f9] Àè¤Û¤É¤Î¡Ö90¡ë²óž¡×¡¢¡Ö2cm¿Ê¤à¡×ÄêµÁ¤ò¸µ¤Ë¡¢¡Ö¸òº¹ÅÀ±¦Àޡפȡָòº¹ÅÀľ¿Ê¡×¤òÄêµÁ¤·¤Þ¤·¤¿¡£ #define usetsu RotateMotorEx(OUT_BC,50,Ninety,100,true,false); //¸òº¹ÅÀ±¦ÀÞ(¥â¡¼¥¿B¤ÈC¤ò50%¤Î¥¹¥Ô¡¼¥É¤ÇƱ´ü¤µ¤»¤º90ÅÙÁ°Å¾) #define tyokushin RotateMotorEx(OUT_BC,50,Two,0,true,true); //¸òº¹ÅÀľ¿Ê(¥â¡¼¥¿B¤ÈC¤ò50%¤Î¥¹¥Ô¡¼¥É¤ÇƱ´ü¤µ¤»¤Æ2cmʬÁ°Å¾) ¤µ¤é¤Ë¡¢¥é¥¤¥ó¥È¥ì¡¼¥¹¤ËɬÍפʤ³¤È¤ÎÄêµÁ¤ò¤·¤Þ¤·¤¿¡£ #define OnRL(b,c) OnFwd(OUT_B,b);OnFwd(OUT_C,c); //¥¿¥¤¥äB¤òb¡ó¡¢¥¿¥¤¥äC¤òc¡ó¤Î¥¹¥Ô¡¼¥É¤Ç¤½¤ì¤¾¤ì¿Ê¤Þ¤»¤ë(¡Ü:Á°¿Ê¡¢¡Ý:¸å¿Ê) #define go_forward OnRL(30,30); //Á°¿Ê #define turn_left1 OnRL(15,-15); //º¸Àû²ó #define turn_left0 OnRL(15,0); //º¸ÀÞ #define turn_right0 OnRL(0,15); //±¦ÀÞ #define turn_right1 OnRL(-15,15); //±¦Àû²ó **¥é¥¤¥ó¾åÁö¹Ô¡¦¸òº¹ÅÀǧ¼±¥µ¥Ö¥ë¡¼¥Á¥ó [#i41302c1] »ä¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤µ¤»¤ëºÝ¡¢¸÷¥»¥ó¥µ¤¬¹õÀþ¤Èº¸Â¦¤ÎÇò¤¤Éôʬ¤Î¶³¦¾å¤òÆ°¤¯¤è¤¦¤Ë¤·¤Þ¤·¤¿¡£ ¸÷¥»¥ó¥µ¤¬Çò¤¤Éôʬ¤Ë¤µ¤·¤«¤«¤Ã¤¿¤é¹õÀþ¦¤Ø¡¢¹õ¤¤Éôʬ¤Ë¤µ¤·¤«¤«¤Ã¤¿¤éÇò¤¤Êý¤Ø¸þ¤«¤¦¤è¤¦¤Ë¥«¡¼¥Ö¤µ¤»¤Þ¤·¤¿¡£ ¤Þ¤º¥é¥¤¥ó¾å¤òÁö¹Ô¤¹¤ë¤¿¤á¤Ë¹õ¤¤Àþ¤Î¼þ°Ï¤ÎÌÀ¤ë¤µ¤ò¥»¥ó¥µ¡¼¤Ç¤Ï¤«¤ê¡¢¤·¤¤¤Ãͤò·èÄꤷ¤Þ¤·¤¿¡£ #ref(Line.png) ¼ÂºÝ¬¤ë¤È¾å¿Þ¤Î¤è¤¦¤Ë¤Ê¤Ã¤¿¤Î¤Ç¡¢¤·¤¤¤Ãͤò44¤ËÀßÄê¡¢ÄêµÁ¤·¤Þ¤·¤¿¡£ #define THRESHOLD 44 ¤½¤Î¸å¡¢¡Þ¤ÎÈϰϤòÄ´À°¤¹¤ë¤³¤È¤Ë¤è¤Ã¤ÆÀþ¾å¤Ç¸ÞÃʳ¬¤ÎÌÀ¤ë¤µ¤òǧÃΤ¹¤ë¤è¤¦¤Ë¤µ¤»¡¢°Å¤¤½ç¤Ëº¸Àû²ó¡¢º¸ÀÞ¡¢Ä¾¿Ê¡¢±¦ÀÞ¡¢±¦Àû²ó¤ò¹Ô¤¦¤è¤¦¤Ë¤·¤Þ¤·¤¿¡£ ¤Ê¤ª¡¢¸òº¹ÅÀǧ¼±¤Ë¤Ä¤¤¤Æ¤Ï¡¢¾åµ¤Î¸ÞÃʳ¬Ç§¼±¤Î¤¦¤Á¡Ö¤â¤Ã¤È¤â¹õ¤¤¡×»þ¤¬nMAX²ó³¤¤¤¿¤È¤¤Ë¸òº¹ÅÀ¤Èǧ¼±¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤·¤¿¡£ »î¹Ôºø¸í¤ò½Å¤Í¤Æ¤¤¤Ã¤¿·ë²Ì¡¢nMAX¡á160¤¬ÂÅÅö¤Ç¤·¤¿¤Î¤ÇÄêµÁ¤·¤Þ¤·¤¿¡£ #define nMAX 160 ¤³¤³¤Ç¤Þ¤¿Á°²ó¤ÎÈ¿¾Ê¤òƧ¤Þ¤¨¡¢¥µ¥Ö¥ë¡¼¥Á¥ó¤òÍѤ¤¤Þ¤·¤¿¡£ sub Line_toresu() //¥é¥¤¥ó¾åÁö¹Ô¥µ¥Ö¥ë¡¼¥Á¥ó { SetSensorLight(S3); int n=0; //³¤±¤Æ¹õ¤Ë¤Ê¤Ã¤¿²ó¿ô while (n <= nMAX) { /* ¹õ¤ò³¤±¤ÆnMAX²ó·«¤êÊÖ¤µ¤Ê¤±¤ì¤ÐÄ̾ï¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤¹¤ë */ if (SENSOR_3 < THRESHOLD-15) { turn_left1 n++; //²ó¿ô¤òÁý¤ä¤¹¡¢¸òº¹ÅÀǧ¼± } else { if (SENSOR_3 < THRESHOLD-7) { turn_left0 } else if (SENSOR_3 < THRESHOLD+7) { go_forward } else if (SENSOR_3 < THRESHOLD+15) { turn_right0 } else { turn_right1 } n=0; //²ó¿ô¥ê¥»¥Ã¥È } } Off(OUT_BC); Wait(1000); // ¸òº¹ÅÀǧ¼±¤·¤¿¤é1ÉÃ´Ö»ß¤Þ¤Ã¤Æ PlaySound(SOUND_UP); //¥Ô¥í¥Ô¥í¡Á¤È²»¤ò½Ð¤¹ Wait(2000); } **¸òº¹ÅÀǧ¼±¸å¤Î¹ÔÆ°¥µ¥Ö¥ë¡¼¥Á¥ó [#md370fd2] ¸òº¹ÅÀǧ¼±¸å¡¢¡Ö±¦Àޡס¢¡Öľ¿Ê¡×¤Î£²¥Ñ¥¿¡¼¥ó¤ÎÆ°ºî¤ò¤·¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¤Î¤Ç¡¢¼¡¤Î¤è¤¦¤Ë¥µ¥Ö¥ë¡¼¥Á¥ó¤òºî¤ê¤Þ¤·¤¿¡£ sub Usetsu() //±¦ÀÞ¥µ¥Ö¥ë¡¼¥Á¥ó { OnFwd(OUT_BC,30); Wait(650); Off(OUT_BC); //±¦ÀÞ¸å¤Ë¥é¥¤¥ó¤ÈÇò¤¤Éôʬ¤Î¶³¦¤Ë¤¤¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á¤ÎÄ´À° usetsu; //±¦ÀÞ Off(OUT_B); Off(OUT_C); } sub Tyokushin() //ľ¿Ê¥µ¥Ö¥ë¡¼¥Á¥ó { tyokushin; //ľ¿Ê Off(OUT_BC); } **¥é¥¤¥ó¥È¥ì¡¼¥¹¥×¥í¥°¥é¥à [#nd5fefc0] µÞ¥«¡¼¥ÖÃÏÅÀ¤Ë´Ø¤·¤Æ¤Ï¡¢¤Ç¤¤ë¸Â¤ê´Ë¤á¤Ë¤Ê¤ë¤è¤¦¥«¡¼¥Ö¤Î³°Â¦¤Î¶³¦¤òÁö¤ë¤è¤¦¤Ë¤·¤Þ¤·¤¿¡£ task main() { /* ¥é¥¤¥ó¤Îº¸Â¦¶³¦¤ò¿Ê¤à */ OnFwd(OUT_BC,50); Wait(200); Off(OUT_BC); //¥¹¥¿¡¼¥È¾ì½ê¤«¤é¤ÎÁ°¿Ê Line_toresu(); //¸òº¹ÅÀR¤Þ¤Ç¿Ê¤à Usetsu(); //R±¦ÀÞ OnFwd(OUT_C,50); Wait(100); Off(OUT_C); OnFwd(OUT_B,50); Wait(75); Off(OUT_B); //Àè¤Ë¤¢¤ëµÞ¥«¡¼¥Ö¤ËÂн褹¤ë¤¿¤á¡¢¥é¥¤¥ó¤Î±¦Â¦¶³¦¤Ø°ÜÆ° /* ¥é¥¤¥ó¤Î±¦Â¦¶³¦¤ò¿Ê¤à */ Line_toresu(); //¸òº¹ÅÀQ1¤Þ¤Ç¿Ê¤à Tyokushin(); //Q1ľ¿Ê OnFwd(OUT_B,50); Wait(100); Off(OUT_B); OnFwd(OUT_C,50); Wait(75); Off(OUT_C); //Àè¤Ë¤¢¤ëµÞ¥«¡¼¥Ö¤ËÂн褹¤ë¤¿¤á¡¢¥é¥¤¥ó¤Îº¸Â¦¶³¦¤Ø°ÜÆ° /* ¥é¥¤¥ó¤Îº¸Â¦¶³¦¤ò¿Ê¤à */ Line_toresu(); //¸òº¹ÅÀQ2¤Þ¤Ç¿Ê¤à Tyokushin(); //Q2ľ¿Ê Line_toresu(); //¸òº¹ÅÀP¤Þ¤Ç¿Ê¤à Usetsu(); //P±¦ÀÞ Line_toresu(); //¸òº¹ÅÀS¤Þ¤Ç¿Ê¤à Usetsu(); //S±¦ÀÞ Line_toresu(); OnFwd(OUT_BC,50); Wait(500); Off(OUT_BC); //¥´¡¼¥ë¾ì½ê¤ØÆͤÃÀÚ¤ë } *¥ß¥Ã¥·¥ç¥ó¿ë¹Ô¥¿¥¤¥à [#ob0165e3] BÃÏÅÀ¤«¤éCÃÏÅÀ¤Þ¤Ç¹Ô¤¯¤Þ¤Ç¤Ë¤«¤«¤Ã¤¿»þ´Ö¤Ï103ÉäǤ·¤¿¡£ ¼þ¤ê¤ÈÈæ¤Ù¤ë¤ÈÃÙ¤¯¤Æ¡¢¾¯¤·»ÄÇ°¤Ç¤·¤¿¡£ *´¶ÁÛ¡¦¹Í»¡ [#r903969b] ¥ß¥Ã¥·¥ç¥ó¿ë¹Ô¥¿¥¤¥à¤Ë¤â¤¢¤ë¤è¤¦¤Ë¡¢¼þ¤ê¤ÈÈæ¤Ù¤ë¤È¥¿¥¤¥à¤¬ÃÙ¤«¤Ã¤¿¤Ç¤¹¡£ ¥¹¥Ô¡¼¥É¤òÃÙ¤¯ÀßÄꤷ¤Æ¤¤¤¿¤³¤È¤â¤¢¤ê¤Þ¤¹¤¬¡¢º¸±¦¤ÎÆ°¤¤¬·ã¤·¤«¤Ã¤¿¤Î¤âÍ×°ø¤«¤È»×¤¤¤Þ¤·¤¿¡£ ¤â¤¦¾¯¤·Àǽ¤Î¤è¤¤Æ°¤¤¬½ÐÍè¤ë¤è¤¦¤Ê¥×¥í¥°¥é¥à¤òÁȤá¤ì¤Ð¤è¤«¤Ã¤¿¤Ç¤¹¡£ ¥×¥í¥°¥é¥à¤Î¥³¥ó¥Ñ¥¯¥È¤µ¤Ë¤Ä¤¤¤Æ¤Ï¡¢Á°²ó¤ÎÈ¿¾Ê¤òƧ¤Þ¤¨¡¢¥µ¥Ö¥ë¡¼¥Á¥ó¤òÍѤ¤¤¿¤³¤È¤Ç¤è¤ê¥³¥ó¥Ñ¥¯¥È¤Ë¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤·¤¿¡£ ¤·¤«¤·¤Þ¤À»È¤¨¤ë¤È¤³¤í¤â¤¢¤ë¤È¤ª¤â¤¦¤Î¤Ç¡¢¼¡²ó¤Î²ÝÂê¤Ç¤Ï¤è¤êÄêµÁ¡¢¥µ¥Ö¥ë¡¼¥Á¥ó¤ò¤â¤Á¤¤¤Æ¥³¥ó¥Ñ¥¯¥È¤Ë¤ï¤«¤ê¤ä¤¹¤¤¥×¥í¥°¥é¥à¤òÁȤó¤Ç¤¤¤¤¿¤¤¤Ç¤¹¡£ ¤·¤«¤·¤Þ¤À»È¤¨¤ë¤È¤³¤í¤â¤¢¤ë¤È¤ª¤â¤¦¤Î¤Ç¡¢¼¡²ó¤Î²ÝÂê¤Ç¤Ï¤è¤êÄêµÁ¡¢¥µ¥Ö¥ë¡¼¥Á¥ó¤ò¤â¤Á¤¤¤Æ¥³¥ó¥Ñ¥¯¥È¤Ç¤ï¤«¤ê¤ä¤¹¤¤¥×¥í¥°¥é¥à¤òÁȤó¤Ç¤¤¤¤¿¤¤¤Ç¤¹¡£ ¤Þ¤¿¡¢º£²ó¤â¤è¤ê¤è¤¤¥×¥í¥°¥é¥à¤Ë½ÐÍè¤ë¤è¤¦¡¢¥Á¡¼¥à¤ÎÃç´Ö¤È¶¨ÎϤ·¤¿¤êÁêÃ̤·¹ç¤¤¤Ê¤¬¤éºî¶È¤·¤Þ¤·¤¿¡£ ¤½¤·¤ÆÃç´Ö¤È¤Î¶¨Ä´À¡¢Ãç´Ö¤ÎÂçÀÚ¤µ¤ò¤è¤ê¶¯¤¯´¶¤¸¤Þ¤·¤¿¡£ ¼¡¤Î²ÝÂê¤Ç¤Ï2¥Á¡¼¥à¹çƱ¤Ë¤Ê¤ë¤Î¤Ç¡¢¶¨Ä´À¤òÂç»ö¤Ë¡¢¤½¤·¤Æº£²ó¤ÎÈ¿¾ÊÅÀ¤ò²þÁ±¤Ç¤¤ë¤è¤¦Åؤá¤Æ¤¤¤¤¿¤¤¤Ç¤¹¡£