[[2014b/Member]]
 #define SPEED 50
#define SPEED_SLOW 30
Ìܼ¡
#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Âæ¤ÎÂç·¿¥í¥Ü¥Ã¥È¤òºîÀ®¤¹¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£

const float diameter = 5.45;
const float track = 10.35;
const float pi = 3.1415;

void fwdDist(float d)
{
¡¡¤¿¤Àº£»×¤¤ÊÖ¤·¤Æ¤ß¤ë¤È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)
{
 }
 void turnAng(long ang) {¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//³ÑÅÙ ang Å٤λþ·×²ó¤ê¤ÎÀû²ó
 long angle;
 angle = track/diameter * ang;
 RotateMotorEx(OUT_BC,SPEED_SLOW,angle,100,true,true);
}

int searchDirection(long ang)
{
 } 
 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);
 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);
   tacho_min=MotorTachoCount(OUT_B);
  }
 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);
 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()
{
  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");
 }

 int d = searchDirection(120);
 if(d > 20){
  fwdDist(d-20.0);}
 else
 if(d < 20){
  fwdDist(20.0-d);
 }    
 else {fwdDist(20);}                                                                           //¤³¤³¤Þ¤Ç¤¬¾ã³²Êª¤Î10cm¼êÁ°¤Þ¤Ç¿Ê¤à¥×¥í¥°¥é¥à
 
 #define turn_right_here OnFwd(OUT_B,SPEED);OnFwd(OUT_C,-SPEED);//B¤Ïº¸¤Î¥¿¥¤¥ä¤Ë¤Ä¤Ê¤°
**¼ø¶ÈÃæ [#j11ae266]
¡¡²¿¤È¤«¥×¥í¥°¥é¥à¤òÏ¢·È¤µ¤»¤ë¤³¤È¤Ï¤Ç¤­¤¿¤Î¤Ç¤¹¤¬¡¢Ä¶²»ÇÈ¥»¥ó¥µ¡¼¤ÎÌäÂê¤ò²ò·è¤¹¤ë¤³¤È¤¬½ÐÍè¤Ê¤¤¤Þ¤ÞËÜÈ֤ˤʤäƤ·¤Þ¤¤¤Þ¤·¤¿¡£


¡¡°Æ¤ÎÄêËÜÈ֤Ǥϡ¢¥í¥Ü¥Ã¥È¤¬Ëþ­¤Ë»æ¥³¥Ã¥×¤Î¤È¤³¤í¤Þ¤Ç°ÜÆ°¤¹¤ë¤³¤È¤â½ÐÍ褺¼ºÇÔ¤·¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡£¤·¤«¤·¤³¤Î¤Þ¤Þ¡¢¤³¤ì¤Þ¤Ç´èÄ¥¤Ã¤Æ¤­¤¿¥¢¡¼¥à¡¢¥ì¡¼¥ë¡¢½¤Àµ¤ÎÆ°¤­¤ò¸«¤»¤ë¤³¤È¤Ê¤¯¡¢ÅÀ¿ô¤âÄ㤤¤Þ¤Þ¤Ç½ª¤ï¤Ã¤Æ¤·¤Þ¤¦¤Î¤Ï·ù¤À¤Ã¤¿¤Î¤Ç¡¢BÈɤÏĶ²»ÇÈ¥»¥ó¥µ¡¼¤ò»È¤¦¤³¤È¤ò¤ä¤á¤Þ¤·¤¿¡£

***ºÇ½ªÅª¤Ê¥×¥í¥°¥é¥à [#w7bf2987]
 task main() {
 SetSensorLowspeed(S1);
 until (BluetoothStatus(CONN) == NO_ERR);
 OnFwd(OUT_BC,50);
 Wait(5500);
 turn_right_here;
 Wait(400);
}
 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]
¡¡ºÇ¸å¤Þ¤Ç¤Ê¤¼Ä¶²»ÇÈ¥»¥ó¥µ¡¼¤¬¸íºîÆ°¤òµ¯¤³¤·¤Æ¤·¤Þ¤Ã¤¿¤Î¤«¤¬Ê¬¤«¤é¤Ê¤«¤Ã¤¿¤Î¤Ï²ù¤·¤«¤Ã¤¿¤Ç¤¹¡£¤½¤Î¾¤Ë¤â¤³¤Îû´ü´Ö¤Ç¿§¡¹¤Ê¥È¥é¥Ö¥ë¤¬È¯À¸¤·¤Þ¤·¤¿¤¬¡¢¤½¤Î¤¿¤Ó¤Ë¤â¤Ã¤È¤·¤Ã¤«¤êÂбþ¤ò¤·¤Æ¡¢¤â¤¦¾¯¤·»þ´Ö¤ò¤«¤±¤Æ¤¤¤ì¤Ð¡¢Ä¶²»ÇÈ¥»¥ó¥µ¡¼¤ÎÌäÂê¤â²ò·è¤·¡¢º£²ó¤ÎMission3¤ÏÀ®¸ù¤¹¤ë¤³¤È¤¬½ÐÍ褿¤È»×¤¤¤Þ¤¹¡£»ä¤Ïµ¡³£¡¦¥í¥Ü¥Ã¥È³Ø·Ï¤Ç¡¢Íèǯ¤«¤é¤â¥í¥Ü¥Ã¥È¤òºî¤ë¤Î¤Ç¡¢¤³¤Î·Ð¸³¤ò³è¤«¤·¤Æ¥í¥Ü¥Ã¥È¤òºî¤Ã¤Æ¤¤¤­¤¿¤¤¤È»×¤¤¤Þ¤¹¡£


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