Ìܼ¡ #contents *Mission3¤ÎÀâÌÀ [#offcc809] ¡¡º£²ó¤Î²ÝÂê¤Ï¡¢²ÝÂê2¤ÇÍѤ¤¤¿¥é¥¤¥ó¥È¥ì¡¼¥¹ÍѤλæ¤òŽ¤ê¹ç¤ï¤»¡¢¤½¤Î¾å¤ËÃÖ¤¤¤¿4¤Ä¤Î»æ¥³¥Ã¥×¤¦¤Á¡¢2¤Ä¤Î»æ¥³¥Ã¥×¤ËÆþ¤Ã¤Æ¤¤¤ë¡¢ÀÖ¤¤¥Ü¡¼¥ë¤ÈÀĤ¤¥Ü¡¼¥ë¤ò¥í¥Ü¥Ã¥È¤ÇÆþ¤ìÂؤ¨¤ë¤È¤¤¤¦¤â¤Î¤Ç¤·¤¿¡£¾Ü¤·¤¯¤Ï¤³¤Á¤é¤ò¤´Í÷¤¯¤À¤µ¤¤¡£¢ª http://yakushi.shinshu-u.ac.jp/robotics/?2014b%2FMission3 *ÅöÆü¤Þ¤Ç¤Îή¤ì [#y4dba375] **¡Á2·î4Æü [#qe3f457c] ¡¡¤Þ¤º¤Ï¥í¥Ü¥Ã¥È¤ò1Âæ¤Ë¤¹¤ë¤«2Âæ¤Ë¤¹¤ë¤«¤ÇǺ¤ß¤Þ¤·¤¿¡£Ïä·¹ç¤Ã¤¿·ë²Ì¡¢1Âæ¤Î¾ì¹ç¤è¤ê2Âæ¤Î¾ì¹ç¤Î¤Û¤¦¤¬¡¢2Âæ¤ÎÆ°ºî¤ò¤Ô¤Ã¤¿¤ê¹ç¤ï¤»¤ë¤³¤È¤¬½ÐÍè¤Ê¤¤¤È¤¤¤±¤Ê¤¤Ê¬¡¢¼ºÇÔ¤¹¤ë²ÄǽÀ¤¬¹â¤½¤¦¤À¤È¤¤¤¦»ö¤Ë¤Ê¤ê¡¢1Âæ¤ÎÂç·¿¥í¥Ü¥Ã¥È¤òºîÀ®¤¹¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ ¡¡¤¿¤Àº£»×¤¤ÊÖ¤·¤Æ¤ß¤ë¤È1Âæ¤Î¾ì¹ç¤Ï¡¢ËÜÂΤ¬½Å¤¹¤®¤ÆÆ°ºî¤¬¤®¤³¤Á¤Ê¤¯¤Ê¤ê¡¢ÅÅ°Ì»ÄÎ̤ˤè¤êÂ礤¯Æ°¤¤¬ÊѲ½¤·¤Æ¤·¤Þ¤Ã¤¿¤Î¤Ç¡¢2Âæ¤Î¤Û¤¦¤¬°ÂÄêÀ¤¬¤¢¤Ã¤¿¤È»×¤¤¤Þ¤¹¡£ ¡¡¼¡¤Ë¤É¤Î¤è¤¦¤Ê¥í¥Ü¥Ã¥È¤Ë¤¹¤ë¤«¹½ÁÛ¤òÎý¤ê¤Þ¤·¤¿¡£»Ï¤á¤Ï¡¢¥Ü¡¼¥ë¤ÎÆþ¤Ã¤¿»æ¥³¥Ã¥×¤ò»ý¤Á¾å¤²¤Æ¡¢¤½¤Î¥Ü¡¼¥ë¤òÆþ¤ì¤ë»æ¥³¥Ã¥×¤Î¤È¤³¤í¤Þ¤Ç¹Ô¤¡¢»æ¥³¥Ã¥×¤ò·¹¤±¤Æ¥Ü¡¼¥ë¤òÆþ¤ì¤ë¤È¤¤¤¦¥í¥Ü¥Ã¥È¤ò¹Í¤¨¤Æ¤¤¤Þ¤·¤¿¡£ ¡¡¤·¤«¤·¤½¤ì¤Ç¤Ï¶õ¤Î»æ¥³¥Ã¥×¤â»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢°ÜÆ°µ÷Î¥¤¬±ä¤Ó¤Æ¤·¤Þ¤¦¤Î¤Ç¡¢¥¢¡¼¥à¤Ç»æ¥³¥Ã¥×¤ò»ý¤Á¾å¤²¡¢¥ì¡¼¥ë¤Ë4¤Ä¤Î¥Ü¡¼¥ë¤òί¤á¤ì¤ë¤è¤¦¤Ë¤·¤Þ¤·¤¿¡£¤³¤¦¤¹¤ë¤³¤È¤Ç¡¢¶õ¤Î»æ¥³¥Ã¥×¤ò»È¤ï¤º¤ËºÑ¤à¤Î¤Ç¡¢°ÜÆ°µ÷Î¥¤òû¤¯¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£ ¡¡ËÜÂΤÎÁȤßΩ¤Æ¤ÏÅÓÃæ¤Þ¤Ç¤Ï½çÄ´¤Ë¿Ê¤ó¤À¤Î¤Ç¤¹¤¬¡¢¥¤¥ó¥Æ¥ê¥¸¥§¥ó¥È¥Ö¥í¥Ã¥¯NXT¤ò2¤Ä¼è¤êÉÕ¤±¤ë¾ì½ê¤¬¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¤¡¢¤³¤Î¤è¤¦¤Ë º¸±¦¤Ë¼è¤êÉÕ¤±¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ ¡¡¤·¤«¤·º¸±¦¤Ë¼è¤êÉÕ¤±¤¿¤³¤È¤Ë¤è¤Ã¤Æ½Å¿´¤¬·¹¤¤¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡£¤³¤³¤Çľ¤·¤Æ¤ª¤±¤Ð¤Á¤ã¤ó¤È¿¿¤Ãľ¤°¿Ê¤à¥í¥Ü¥Ã¥È¤¬ºî¤ì¤¿¤Ï¤º¤À¤È»×¤¤¤Þ¤¹¡£ **2·î4Æü [#db46c338] ¡¡¥Æ¥¹¥È¤â½ª¤ï¤ê¡¢½¸¤Þ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤Î¤Ç¡¢ËܳÊŪ¤Ë¥×¥í¥°¥é¥à¤òºî¤ê»Ï¤á¤Þ¤·¤¿¡£¤³¤ÎÆü½Ð¤¿ÌäÂêÅÀ¤Ï¥¢¡¼¥à¤È°ÜÆ°¤ÎÆ°ºî¤Ç¤¹¡£ ¡¡¥¢¡¼¥à¤ÎÌäÂêÅÀ¤Ï¡¢Æ°ºî¤ÎÅÓÃæ¤Ç»æ¥³¥Ã¥×¤ä¾²¤Ê¤É¤Ë¡¢ÊѤ˰ú¤Ã¤«¤«¤Ã¤¿¤ê¤¹¤ë¤È¡¢¤½¤³¤ÇÆ°ºî¤¬´°Î»¤·¤Æ¤¤¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¤Î¤Ç¡¢¼¡¤Î¥×¥í¥°¥é¥à¤Ë°ÜÆ°¤»¤º¤Ë»ß¤Þ¤Ã¤Æ¤·¤Þ¤¦»ö¤Ç¤¹¡£¤³¤ÎÌäÂê¤Ï¥¢¡¼¥à¤ÎÆ°ºî¤ò»þ´Ö¤ÇÄê¤á¤ë¤³¤È¤Ç¡¢°ú¤Ã¤«¤«¤Ã¤¿¾ì¹ç¤â»þ´Ö¤¬¤¿¤Æ¤Ð¤·¤Ã¤«¤êÆ°¤¯¤è¤¦¤Ë¤Ê¤ê²ò·è¤·¤Þ¤·¤¿¡£ ***¥¢¡¼¥à¤ÎÆ°¤ [#o10993a9] #define SPEED1 45 #define SPEED2 60 #define SPEED3 10 #define SPEED4 30 #define SPEED5 50 #define SPEED6 25 float GetAngle(float d) { const float diameter=5.45; const float pi=3.1415; float ang = d/(diameter*pi)*360.0; return ang; } #define DOWN RotateMotor(OUT_A,SPEED3,105); #define UP RotateMotor(OUT_A,-SPEED5,105); #define LDown RotateMotor(OUT_A,SPEED3,25); #define LUp RotateMotor(OUT_A,-SPEED2,25); #define Catch RotateMotor(OUT_B,-SPEED4,105); #define Separate RotateMotor(OUT_B,SPEED4,105); //¥¢¡¼¥à¤ÎÆ°¤ task main () { OnFwd(OUT_A,10); Wait(1500); Catch; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¥¢¡¼¥àÁ´ÂΤò²¼¤²¡¢»æ¥³¥Ã¥×¤ò¤Ä¤«¤à OnRev(OUT_A,50); Wait(3500);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¥¢¡¼¥àÁ´ÂΤò¾å¤²¡¢¥ì¡¼¥ë¤Î¾å¤Ë¥Ü¡¼¥ë¤ò¤Î¤»¤ë Wait(2000); OnFwd(OUT_A,10);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ Wait(3500);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¥¢¡¼¥àÁ´ÂΤò²¼¤²¡¢»æ¥³¥Ã¥×¤òÃÖ¤¯ Separate; OnRev(OUT_A,35); Wait(2000); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¥¢¡¼¥àÁ´ÂΤò¾å¤²¤ë(¸µ¤Î°ÌÃÖ¤ËÌ᤹) Wait(500); } ¡¡°ÜÆ°¤ÎÌäÂêÅÀ¤Ï¡¢Ä¶²»ÇÈ¥»¥ó¥µ¡¼¤ò»È¤Ã¤¿°ÜÆ°¤ËËè²ó¤º¤ì¤¬½Ð¤Æ¤·¤Þ¤¦¤È¤¤¤¦»ö¤Ç¤¹¡£»æ¥³¥Ã¥×¤Î20cm¼êÁ°¤Þ¤Ç¿Ê¤ßËÜÂΤ¬Àû²ó¤·¡¢¥¢¡¼¥à¤Î°ÌÃ֤ޤǻ楳¥Ã¥×¤ò»ý¤Ã¤Æ¤¤¿¤«¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢¤É¤¦¤·¤Æ¤âËè²ó°ÌÃÖ¤¬¤º¤ì¤Æ¤·¤Þ¤¦¤Î¤Ç¡¢¤³¤Î¤è¤¦¤Ë &ref(2014b/Member/edaeda/Mission3/image7.JPG,50%,²èÁü¤ÎÀâÌÀ); ¡¡¥í¥Ü¥Ã¥ÈËÜÂΤ«¤é»æ¥³¥Ã¥×¤Î°ÌÃÖ¤ò½¤Àµ¤¹¤ë¥Ñ¡¼¥Ä¤òºî¤ê¼è¤êÉÕ¤±¤Þ¤·¤¿¡£ **2·î5Æü [#q97bb4f6] ¡¡¤³¤ÎÆü¤ÏĶ²»ÇÈ¥»¥ó¥µ¡¼¤Î¥×¥í¥°¥é¥à¤Î½¤Àµ¡¢Ä¶²»ÇÈ¥»¥ó¥µ¡¼¤òÍѤ¤¤Ê¤¤°ÜÆ°¥×¥í¥°¥é¥à¤ÎºîÀ®¡¢¥¢¡¼¥à¡¢¥ì¡¼¥ë¤Î¥×¥í¥°¥é¥à¤Î²þÁ±¡¢¥ì¡¼¥ë¤«¤é¥Ü¡¼¥ë¤òÍî¤È¤¹ºÝ¤Î»æ¥³¥Ã¥×¤Î°ÌÃÖ¤ò½¤Àµ¤¹¤ë¥Ñ¡¼¥Ä¤Î¼è¤êÉÕ¤±¡¢2¤Ä¤Î¥¤¥ó¥Æ¥ê¥¸¥§¥ó¥È¥Ö¥í¥Ã¥¯NXT¤òBluetooth¤ÇÄÌ¿®¤Ç¤¤ë¤«¤Î³Îǧ¤ò¹Ô¤¤¤Þ¤·¤¿¡£ÆäËÌäÂêÅÀ¤Ï¤Ê¤¯¡¢¤³¤Î¤Þ¤Þ¥×¥í¥°¥é¥à¤ò¤Ä¤Ê¤²¤ì¤Ð¡¢¤¢¤È¤ÏºÙ¤«¤¤Ä´À°¤À¤±¤Ç¡¢¼ø¶ÈÁ°¤Ë¥í¥Ü¥Ã¥È¤¬´°À®¤¹¤ë¤È»×¤Ã¤Æ¤¤¤Þ¤·¤¿¡£ ***Ķ²»ÇÈ¥»¥ó¥µ¡¼¤ò»È¤Ã¤¿°ÜÆ° [#x475c1ac] #define SPEED 50 #define SPEED_SLOW 40 #define turn_right_here OnFwd(OUT_B,SPEED_SLOW);OnFwd(OUT_C,-SPEED_SLOW); //±¦Àû²ó float GetAngle(float d) {¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¿Ê¤àµ÷Î¥¤ò·×»»¤¹¤ë const float diameter=5.45;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¥¿¥¤¥ä¤Îľ·Â const float pi=3.1415;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//±ß¼þΨ float ang = d/(diameter*pi)*360.0; return ang; //³ÑÅÙ¤ò·×»»¤¹¤ë } const float diameter = 5.45;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ const float track = 15;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¥¿¥¤¥ä¤Î¥È¥ì¥Ã¥ÉÉý const float pi = 3.1415; void fwdDist(float d) {¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//µ÷Î¥ d ÑÁ°¿Ê long angle; angle = d/(diameter*pi)*360.0; RotateMotorEx(OUT_BC,SPEED_SLOW,angle,0,true,true); } void turnAng(long ang) {¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//³ÑÅÙ ang Å٤λþ·×²ó¤ê¤ÎÀû²ó long angle; angle = track/diameter * ang; RotateMotorEx(OUT_BC,SPEED_SLOW,angle,100,true,true); } intsearchDirection(long ang) {¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¸½ºß¤ÎÊý¸þ¤òÃæ¿´¤Ë ang ÅÙ¤ÎÈϰϤÇõ¤·¡¢¾ã³²Êª¤Þ¤Ç¤Îµ÷Î¥¤òÊÖ¤¹ long angle,tacho_min=0,tacho_corr; int d_min; d_min=300;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//²¾¤ÎºÇ¾®ÃÍ angle = (track/diameter)*ang;¡¡¡¡¡¡¡¡¡¡¡¡¡¡//Àû²ó³ÑÅÙ¤«¤é¥¿¥¤¥ä¤Î²óž¤ò·×»» turnAng(ang/2);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//»ØÄꤵ¤ì¤¿³ÑÅÙ¤ÎȾʬ¤òÀû²ó ResetTachoCount(OUT_BC);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//³ÑÅٷ׬¤ò¥ê¥»¥Ã¥È OnFwdSync(OUT_BC,SPEED_SLOW,-100);¡¡¡¡¡¡¡¡//È¿»þ·×²ó¤ê¤ËÀû²ó while(MotorTachoCount(OUT_B)<=angle){ if(SensorUS(S1)<d_min){ d_min=SensorUS(S1);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//²¾¤ÎºÇ¾®Ãͤò¹¹¿· PlaySound(SOUND_UP); tacho_min=MotorTachoCount(OUT_B); } } OnFwdSyncEx(OUT_BC,SPEED_SLOW,100,RESET_NONE); until(MotorTachoCount(OUT_B)<=tacho_min||SensorUS(S1)<=d_min); Wait(14);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//ÈùÄ´À° Off(OUT_BC);Wait(500); return d_min; } task main() { int d = searchDirection(120); if(d > 15){ fwdDist(d-15.0);}¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ else {fwdDist(d-15);}¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//»æ¥³¥Ã¥×¤ÎÊý¸þ¤òõ¤·¤¿¸å²»¤òÌĤ餷¡¢Á°¸å¤ÎÆ°¤¤Ç15ѼêÁ°¤ÇÄä»ß PlaySound(SOUND_UP); } ***Ķ²»ÇÈ¥»¥ó¥µ¡¼¤ò»È¤ï¤Ê¤¤°ÜÆ° [#e89fcd1d] float GetAngle(float d) { const float diameter = 5.45; const float pi=3.1415; float ang =d/(diameter*pi)*360.0; return ang; } #define SPEED 50 task main() { int angle = GetAngle(20); RotateMotor(OUT_BC,-SPEED,angle);//²¼¤¬¤Ã¤Æ OnFwd(OUT_B,-SPEED); OnFwd(OUT_C,SPEED); Wait(1500);//180ÅÙÀû²ó¤·¤Æ angle += GetAngle(30); RotateMotor(OUT_BC,SPEED,angle);//ÂгÑÀþ¾å¤Î»æ¥³¥Ã¥×¤Ë¸þ¤«¤Ã¤Æ¿Ê¤à¡£ } ***¥ì¡¼¥ë [#f5aef65c] #define SPEED1 45 #define SPEED2 60 #define SPEED3 10 #define SPEED4 30 #define SPEED5 50 float GetAngle(float d) { const float diameter=5.45; const float pi=3.1415; float ang = d/(diameter*pi)*360.0; return ang; } #define Into1 RotateMotor(OUT_C,SPEED3,20); //¥Ü¡¼¥ë¤òÆþ¤ì¤ë #define Return1 RotateMotor(OUT_C,-SPEED3,25); #define Into2 RotateMotor(OUT_C,SPEED4,30); #define Return2 RotateMotor(OUT_C,-SPEED4,15); task main(){ OnFwd(OUT_C,15); Wait(1000); Wait(3000); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¥ì¡¼¥ë¤ò·¹¤±¡¢4¤Ä¤ÎÆâ2¤Ä¤À¤±¥Ü¡¼¥ë¤ò»æ¥³¥Ã¥×¤ËÆþ¤ì¤ë OnRev(OUT_C,30); Wait(500); Wait(5000); OnFwd(OUT_C,25); Wait(1000); Wait(3000); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¥ì¡¼¥ë¤ò·¹¤±¡¢¥ì¡¼¥ë¤Ë»Ä¤Ã¤Æ¤¤¤ë¥Ü¡¼¥ë¤ò»æ¥³¥Ã¥×¤ËÆþ¤ì¤ë OnRev(OUT_C,30); Wait(2500); } **2·î6Æü¡Á¼ø¶ÈľÁ° [#o9ab4d2e] ¡¡¸áÁ°Ãæ¤Ï¥×¥í¥°¥é¥à¤ÎºÙ¤«¤¤½¤Àµ¤ò¤·¤Æ¤¤¤Þ¤·¤¿¡£ ¡¡¤½¤·¤ÆÌäÂê¤Ï¸á¸å¤Ëµ¯¤³¤ê¤Þ¤·¤¿¡£ ºÇ½é¤Ï¤³¤Î¤è¤¦¤Ë¢ ºÇ½é¤Ë¤É¤Á¤é¤Înxc¤¬¥Þ¥¹¥¿¡¼¤«¥¹¥ì¥¤¥Ö¤«¤òÀßÄꤹ¤ë¡£ ***¥Þ¥¹¥¿¡¼Â¦¤Î¥×¥í¥°¥é¥à(A¤È¤¹¤ë) [#i81fb155] #define CONN 1 // ¥¹¥ì¡¼¥Ö¤ÎÀܳÈÖ¹æ task main() { until (BluetoothStatus(CONN) == NO_ERR); //¥×¥í¥°¥é¥à RemoteStartProgram(CONN, "B.rxe"); } ***¥¹¥ì¡¼¥Ö¦¤Î¥×¥í¥°¥é¥à(B¤È¤¹¤ë) [#g99879f3] #define CONN 0 // ¥¹¥ì¡¼¥Ö¤ÎÀܳÈÖ¹æ task main() { until (BluetoothStatus(CONN) == NO_ERR); //¥×¥í¥°¥é¥à RemoteStartProgram(CONN, "C.rxe"); }//¤³¤ì¤Ç¥Þ¥¹¥¿¡¼Â¦¤ÎC¤È¤¤¤¦¥×¥í¥°¥é¥à¤¬¼Â¹Ô¤µ¤ì¤ë ¤È¡¢¥¹¥ì¥¤¥Ö¦¤Î¥×¥í¥°¥é¥à¤«¤é¤â¥Þ¥¹¥¿¡¼Â¦¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤Ç¤¤ë¤È¹Í¤¨¤Æ¤¤¤Æ¡¢¸ò¸ß¤Ë¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¹ç¤¤¡¢¥¢¡¼¥à¡¦¥ì¡¼¥ë¤ÎÆ°¤¤È°ÜÆ°¤òϢư¤µ¤»¤è¤¦¤È¤·¤Æ¤¤¤Þ¤·¤¿¡£¤·¤«¤·¼ÂºÝ¤Ï¥¹¥ì¥¤¥Ö¦¤Î¥×¥í¥°¥é¥à¤«¤é¤Ï¥Þ¥¹¥¿¡¼Â¦¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤Ç¤¤º¡¢Â¾¤ÎÊýË¡¤ò¹Í¤¨¤Ê¤¯¤Æ¤Ï¤¤¤±¤Ê¤¯¤Ê¤ê¤Þ¤·¤¿¡£ ¡¡¤½¤Î»þ¤Ï¼ø¶È¤Þ¤Ç¤¢¤È2»þ´Ö¤È¤Ê¤Ã¤Æ¤¤¤¿¤Î¤Ç¾Ç¤Ã¤Æ¤·¤Þ¤¤¡¢2¤Ä¤·¤«Âå°Æ¤¬»×¤¤¤Ä¤¤Þ¤»¤ó¤Ç¤·¤¿¡£¤½¤ì¤Ï ¡ÀâÌÀ½ñ¤Ë½ñ¤¤¤Æ¤¢¤Ã¤¿¥á¥Ã¥»¡¼¥¸¤Î¤ä¤ê¼è¤ê¤ò¤¹¤ë¥×¥í¥°¥é¥à¤ò¤¤¤¸¤Ã¤Æ¡¢¥¹¥ì¥¤¥Ö¦¤Î¥á¥Ã¥»¡¼¥¸¤ò¼õ¤±¼è¤Ã¤¿¤é¥Þ¥¹¥¿¡¼Â¦¤Î¥×¥í¥°¥é¥à¤òµ¯Æ°¤¹¤ë¤è¤¦¤Ë¤¹¤ë¡£ ¢¡Ö¥¢¡¼¥à¤ÎÆ°ºî¤¬´°Î»¤·¤¿¡á¥Ü¡¼¥ë¤¬¥ì¡¼¥ë¤Î¾å¤òÄ̤ë¡×¤È¤¤¤¦»ö¤Ê¤Î¤Ç¡¢¥ì¡¼¥ë¤Î¾å¤ËĶ²»ÇÈ¥»¥ó¥µ¡¼¤òÀßÃÖ¤·¡¢¥¹¥ì¥¤¥Ö¦¤Î¥×¥í¥°¥é¥à¤Ë¤è¤êÆ°¤¤¤¿¥¢¡¼¥à¤¬½¦¤Ã¤¿¥Ü¡¼¥ë¤¬¥ì¡¼¥ë¤Î¾å¤òÄ̤ë¤È¡¢Ä¶²»ÇÈ¥»¥ó¥µ¡¼¤¬È¿±þ¤·¡¢¥Þ¥¹¥¿¡¼Â¦¤Î¥×¥í¥°¥é¥à¤¬µ¯Æ°¤¹¤ë¤è¤¦¤Ë¤¹¤ë¡£ ¤È¤¤¤¦¤â¤Î¤Ç¤·¤¿¡£ ¡¡¤Ç¤¹¤¬¼ÂºÝ¡¤Ï¡¢º£¤Þ¤Ç¤½¤Î¥×¥í¥°¥é¥à¤ò»È¤Ã¤¿¤³¤È¤â¤Ê¤«¤Ã¤¿¤Î¤Ç¤è¤¯Ê¬¤«¤é¤º¡¢¤¤¤¸¤ë¤³¤È¤¬½ÐÍè¤Þ¤»¤ó¤Ç¤·¤¿¡£¢¤â¡¢¥×¥í¥°¥é¥à¤ò¤Þ¤È¤á¤À¤·¤Æ¤«¤éĶ²»ÇÈ¥»¥ó¥µ¡¼¤¬¸íºîÆ°¤òµ¯¤³¤¹¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Æ¡¢¥×¥í¥°¥é¥à¼«ÂΤϤ³¤Î¤è¤¦¤Ë ***¢¤Î¥×¥í¥°¥é¥à [#ldc5802b] #define SPEED 50 #define SPEED_SLOW 30 #define count 3 #define sound PlaySound(SOUND_CLICK); task main() { int nOnline=0; //ºÇ½é¤Î¥×¥í¥°¥é¥à if(nOnline=0){ if(SensorUS(S3)<count){//¥Ü¡¼¥ë¤¬Ä̤ë¡á¥¢¡¼¥à¤Îºî¶È½ª¤ï¤ê sound; Wait(10000); ¡¡¡¡¡¡¡¡¡¡¡¡ nOnline++; ¡¡¡¡¡¡¡¡¡¡¡¡//Ķ²»ÇÈ¥»¥ó¥µ¡¼¤ò»È¤ï¤Ê¤¤°ÜÆ°¤¹¤ë¥×¥í¥°¥é¥à¤òÆþÎÏ } } else if(nOnline=1){ if(SensorUS(S3)<count){¥Ü¡¼¥ë¤¬Ä̤ë¡á¥¢¡¼¥à¤Îºî¶È½ª¤ï¤ê¡¢¥Ü¡¼¥ë£´¤Ä¾è¤Ã¤Æ¤ë sound; nOnline++; } } else if(nOnline=2){ //¤³¤Î¹Ô¤ËĶ²»ÇÈ¥»¥ó¥µ¡¼¤ò»È¤ï¤Ê¤¤°ÜÆ°¤¹¤ë¥×¥í¥°¥é¥à¤òÆþÎϤòÆþÎÏ¡¢¥Ü¡¼¥ë2¤Ä¤Ë¤Ê¤ë if(SensorUS(S3)<count){ sound; Wait(10000); nOnline++; } } else if(nOnline=3) //Ķ²»ÇÈ¥»¥ó¥µ¡¼¤ò»È¤ï¤Ê¤¤°ÜÆ°¤¹¤ë¥×¥í¥°¥é¥à¤òÆþÎÏ }//Ķ²»ÇÈ¥»¥ó¥µ¡¼¤ò»È¤ï¤Ê¤¤°ÜÆ°¥×¥í¥°¥é¥à¤Ë¤Ï¡¢¥¹¥ì¥¤¥Ö¦¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¥×¥í¥°¥é¥à¤¬ÁȤ߹þ¤Þ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¤³¤ì¤Ç¥Ü¡¼¥ë¤ÎÆþ¤ìÂؤ¨´°Î» ¤È¤¤¤¦¤â¤Î¤òºî¤ë¤³¤È¤¬½ÐÍ褿¤Î¤Ç¤¹¤¬¡¢Ä¶²»ÇÈ¥»¥ó¥µ¡¼¤¬È¿±þ¤·¤Ê¤¤¤Î¤Ç¡¢·ë¶É»È¤¦¤³¤È¤¬½ÐÍè¤Þ¤»¤ó¤Ç¤·¤¿¡£ ¡¡¤³¤³¤Ç¼ø¶È³«»Ï¤Î20ʬÁ°¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤·¤¿¡£¤³¤Î¤Þ¤Þ¤Ç¤ÏĶ²»ÇÈ¥»¥ó¥µ¡¼¤¹¤éÈ¿±þ¤»¤º¡¢²¿¤â¤Ç¤¤Ê¤¤¥í¥Ü¥Ã¥È¤Ë¤·¤«¤Ê¤é¤Ê¤¤¤È¤³¤í¤Ç¤·¤¿¤¬¡¢ ¤³¤³¤Ç¡¢¥Þ¥¹¥¿¡¼Â¦¤Î¥×¥í¥°¥é¥à¤ò¤¹¤Ù¤Æ¤Ä¤Ê¤²¤Æ¡¢Ëè²ó¥¹¥ì¥¤¥Ö¦¤Î¥×¥í¥°¥é¥à¤ò¸Æ¤Ó½Ð¤·¤Æ¤«¤é¤ÏWait¤ÇÂÔ¤¿¤»¤Æ¤ª¤¡¢¥¹¥ì¥¤¥Ö¦¤Î¥×¥í¥°¥é¥à¤¬´°Î»¤·¤Æ¤«¤é¥Þ¥¹¥¿¡¼Â¦¤Î¥×¥í¥°¥é¥à¤Î³¤¤¬¼Â¹Ô¤µ¤ì¤ë¤è¤¦¤Ë¤¹¤ì¤Ð¡¢¥¹¥ì¥¤¥Ö¦¤Î¥×¥í¥°¥é¥à¤«¤é¥Þ¥¹¥¿¡¼Â¦¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ëɬÍפ¬¤Ê¤¯¤Ê¤ë¤Î¤Ç¤Ï¤Ê¤¤¤«¤È¤¤¤¦»ö¤Ëµ¤¤Å¤¤Þ¤·¤¿¡£ ¡¡¤½¤·¤Æ¤³¤Î¥×¥í¥°¥é¥à¤òµÞ¤¤¤Çºî¤ê¡¢¼ø¶È¤Î»þ´Ö¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡£ ***¤½¤Î»þ¤Î¥×¥í¥°¥é¥à [#o8d234b7] task main() { SetSensorLowspeed(S1); until (BluetoothStatus(CONN) == NO_ERR); OnFwd(OUT_BC,50); Wait(5500); turn_right_here; Wait(2500); RemoteStartProgram(CONN, "arm time.rxe"); Off(OUT_BC); Wait(10000); Wait(10000); Wait(10000); int angle1 = GetAngle(20); RotateMotor(OUT_BC,-SPEED,angle1); OnFwd(OUT_B,-SPEED); OnFwd(OUT_C,SPEED); Wait(1500); angle1 += GetAngle(60); RotateMotor(OUT_BC,SPEED,angle1); int d2 = searchDirection(120); if(d2 > 15){ fwdDist(d2-15.0);} else {fwdDist(d2-15);} PlaySound(SOUND_UP); turn_right_here; Wait(200); RemoteStartProgram(CONN, "arm time.rxe"); Off(OUT_BC); Wait(10000); Wait(10000); Wait(10000); int angle2 = GetAngle(20); RotateMotor(OUT_BC,-SPEED,angle2); OnFwd(OUT_B,-SPEED); OnFwd(OUT_C,SPEED); Wait(1500); angle2 += GetAngle(60); RotateMotor(OUT_BC,SPEED,angle2); int d3 = searchDirection(120); turn_right_here; Wait(600); if(d3 > 15){ fwdDist(d3);} else {fwdDist(d3);} PlaySound(SOUND_UP); RemoteStartProgram(CONN, "rail1.rxe"); Off(OUT_BC); Wait(10000); Wait(10000); Wait(10000); int angle3 = GetAngle(20); RotateMotor(OUT_BC,-SPEED,angle3); OnFwd(OUT_B,-SPEED); OnFwd(OUT_C,SPEED); Wait(1500); angle3 += GetAngle(60); RotateMotor(OUT_BC,SPEED,angle3); int d4 = searchDirection(120); turn_right_here; Wait(600); if(d4 > 15){ fwdDist(d4);} else {fwdDist(d4);} PlaySound(SOUND_UP); RemoteStartProgram(CONN, "rail2.rxe"); } **¼ø¶ÈÃæ [#j11ae266] ¡¡²¿¤È¤«¥×¥í¥°¥é¥à¤òÏ¢·È¤µ¤»¤ë¤³¤È¤Ï¤Ç¤¤¿¤Î¤Ç¤¹¤¬¡¢Ä¶²»ÇÈ¥»¥ó¥µ¡¼¤ÎÌäÂê¤ò²ò·è¤¹¤ë¤³¤È¤¬½ÐÍè¤Ê¤¤¤Þ¤ÞËÜÈ֤ˤʤäƤ·¤Þ¤¤¤Þ¤·¤¿¡£ ¡¡°Æ¤ÎÄêËÜÈ֤Ǥϡ¢¥í¥Ü¥Ã¥È¤¬Ëþ¤˻楳¥Ã¥×¤Î¤È¤³¤í¤Þ¤Ç°ÜÆ°¤¹¤ë¤³¤È¤â½ÐÍ褺¼ºÇÔ¤·¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡£¤·¤«¤·¤³¤Î¤Þ¤Þ¡¢¤³¤ì¤Þ¤Ç´èÄ¥¤Ã¤Æ¤¤¿¥¢¡¼¥à¡¢¥ì¡¼¥ë¡¢½¤Àµ¤ÎÆ°¤¤ò¸«¤»¤ë¤³¤È¤Ê¤¯¡¢ÅÀ¿ô¤âÄ㤤¤Þ¤Þ¤Ç½ª¤ï¤Ã¤Æ¤·¤Þ¤¦¤Î¤Ï·ù¤À¤Ã¤¿¤Î¤Ç¡¢BÈɤÏĶ²»ÇÈ¥»¥ó¥µ¡¼¤ò»È¤¦¤³¤È¤ò¤ä¤á¤Þ¤·¤¿¡£ ***ºÇ½ªÅª¤Ê¥×¥í¥°¥é¥à [#w7bf2987] task main() { SetSensorLowspeed(S1); until (BluetoothStatus(CONN) == NO_ERR); OnFwd(OUT_BC,50); Wait(5500); turn_right_here; Wait(2000); RemoteStartProgram(CONN, "arm time.rxe"); Off(OUT_BC); Wait(10000); Wait(10000); OnFwd(OUT_B,-SPEED); OnFwd(OUT_C,SPEED); Wait(700); OnFwd(OUT_BC,50); Wait(4000); RemoteStartProgram(CONN, "rail.rxe"); Off(OUT_BC); } ¤³¤Î¤è¤¦¤Ë¤¹¤Ù¤Æ¤ÎÆ°ºî¤òºÇ½é¤«¤é»þ´Ö¤Ç´ÉÍý¤¹¤ë¥×¥í¥°¥é¥à¤òºî¤ê¤Þ¤·¤¿¡£ ¤³¤ì¤Ë¤è¤ê¡¢Ä¶²»ÇÈ¥»¥ó¥µ¡¼¤Ï»È¤¦¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¤¬¡¢ºÇ¸å¤Ë¤Ï¥Ü¡¼¥ë¤ò1¤Ä°ÜÆ°¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤·¤¿¡£ ¤³¤³¤Þ¤Ç¤Ç¾Ò²ð¤·¤¤ì¤Ê¤«¤Ã¤¿¥×¥í¥°¥é¥à¤ÏBÈɤÎarisyka¤µ¤ó¤Î¥Ú¡¼¥¸¤ò¤´Í÷¤¯¤À¤µ¤¤¡£¢ªhttp://yakushi.shinshu-u.ac.jp/robotics/?2014b%2FMember%2Farisyka%2FMission3 *¥í¥Ü¥Ã¥È¤Î¾Ò²ð [#h0b240db] ¤É¤Î¤è¤¦¤Ë¤·¤Æ¥í¥Ü¥Ã¥È¤¬Æ°¤¯Í½Äê¤À¤Ã¤¿¤«¤ò¾Ò²ð¤·¤¿¤¤¤È»×¤¤¤Þ¤¹¡£ **1.»æ¥³¥Ã¥×¤Î15cm¼êÁ°¤Þ¤Ç¡¢Ä¶²»ÇÈ¥»¥ó¥µ¡¼¤ò»È¤¤¿Ê¤à¡£ [#a453a139] &ref(2014b/Member/edaeda/Mission3/image8.JPG,50%,²èÁü¤ÎÀâÌÀ); **2.ËÜÂΤòÀû²ó¤µ¤»¡¢¥¢¡¼¥à¤Î°ÌÃ֤˻楳¥Ã¥×¤ò»ý¤Ã¤Æ¤¯¤ë¡£ [#fdad5455] &ref(2014b/Member/edaeda/Mission3/image7.JPG,50%,²èÁü¤ÎÀâÌÀ); **3.¥¢¡¼¥à¤Ç»æ¥³¥Ã¥×¤ò»ý¤Á¾å¤²¤Æ¡¢¥ì¡¼¥ë¤Î¾å¤Ë¥Ü¡¼¥ë¤ò¾è¤»¤ë¡£ [#f0ddb00b] &ref(2014b/Member/edaeda/Mission3/image9.JPG,50%,²èÁü¤ÎÀâÌÀ); &ref(2014b/Member/edaeda/Mission3/image10.jpg,50%,²èÁü¤ÎÀâÌÀ); **4.¶õ¤Î»æ¥³¥Ã¥×¤Î¤È¤³¤í¤Þ¤Ç¡¢Ä¶²»ÇÈ¥»¥ó¥µ¡¼¤ò»È¤¤¿Ê¤à¡£ [#w595b86f] &ref(2014b/Member/edaeda/Mission3/image11.JPG,50%,²èÁü¤ÎÀâÌÀ); **5.¥ì¡¼¥ë¤ò·¹¤±¤Æ¡¢¶õ¤Î»æ¥³¥Ã¥×¤Ë¥Ü¡¼¥ë¤òÆþ¤ì¤ë¡£ [#e625259d] &ref(2014b/Member/edaeda/Mission3/image12.JPG,50%,²èÁü¤ÎÀâÌÀ); ¤³¤ì¤¬°ìÏ¢¤ÎÆ°ºî¤Ë¤Ê¤ê¤Þ¤¹¡£ *´¶ÁÛ [#o13d5ed0] *È¿¾Ê¤È´¶ÁÛ [#o13d5ed0] ¡¡ºÇ¸å¤Þ¤Ç¤Ê¤¼Ä¶²»ÇÈ¥»¥ó¥µ¡¼¤¬¸íºîÆ°¤òµ¯¤³¤·¤Æ¤·¤Þ¤Ã¤¿¤Î¤«¤¬Ê¬¤«¤é¤Ê¤«¤Ã¤¿¤Î¤Ï²ù¤·¤«¤Ã¤¿¤Ç¤¹¡£¤½¤Î¾¤Ë¤â¤³¤Îû´ü´Ö¤Ç¿§¡¹¤Ê¥È¥é¥Ö¥ë¤¬È¯À¸¤·¤Þ¤·¤¿¤¬¡¢¤½¤Î¤¿¤Ó¤Ë¤â¤Ã¤È¤·¤Ã¤«¤êÂбþ¤ò¤·¤Æ¡¢¤â¤¦¾¯¤·»þ´Ö¤ò¤«¤±¤Æ¤¤¤ì¤Ð¡¢Ä¶²»ÇÈ¥»¥ó¥µ¡¼¤ÎÌäÂê¤â²ò·è¤·¡¢º£²ó¤ÎMission3¤ÏÀ®¸ù¤¹¤ë¤³¤È¤¬½ÐÍ褿¤È»×¤¤¤Þ¤¹¡£»ä¤Ïµ¡³£¡¦¥í¥Ü¥Ã¥È³Ø·Ï¤Ç¡¢Íèǯ¤«¤é¤â¥í¥Ü¥Ã¥È¤òºî¤ë¤Î¤Ç¡¢¤³¤Î·Ð¸³¤ò³è¤«¤·¤Æ¥í¥Ü¥Ã¥È¤òºî¤Ã¤Æ¤¤¤¤¿¤¤¤È»×¤¤¤Þ¤¹¡£