²ÝÂꣳ¤Ë¤Ä¤¤¤Æ

¾Ü¤·¤¯¤Ï2017a/Mission3

¥í¥Ü¥Ã¥È¤Ë¤Ä¤¤¤Æ

¤Ï¤¸¤á¤Ï¥¢¡¼¥àÉôʬ¤Ë¥¿¥¤¥ä¤ò¼è¤êÉÕ¤±¡¢¤½¤Î¥¿¥¤¥ä¤ò²óž¤µ¤¨¤ë¤³¤È¤Ë¤è¤Ã¤Æ¶õ¤­´Ì¤ò»ý¤Á¾å¤²¤ë¤È¤¤¤¦¥í¥Ü¥Ã¥È¤òºî¤Ã¤¿¤¬¡¢¤³¤ì¤À¤È°ÂÄꤷ¤Æ»ý¤Á¾å¤²¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¤È¤¤¤¦¤³¤È¤¬¤ï¤«¤ê¡¢¥¢¡¼¥à¤È¾å²¼¤¹¤ëÉôʬ¤òÊ̤ˤ·¤¿¡£¤®¤¶¤®¤¶¤·¤¿Ä¹¤¤ËÀ¤È¤®¤¶¤®¤¶¤·¤¿±ßÈĤò¤«¤ß¹ç¤ï¤»¡¢¥â¡¼¥¿¡¼¤òÆ°¤«¤·¤Æ¥¢¡¼¥à¤ò¾å²¼¤µ¤»¤¿¡£

¥×¥í¥°¥é¥ß¥ó¥°

ÄêµÁ

#define go_forward OnFwd(OUT_AC);//Á°¿Ê
#define turn_right OnFwd(OUT_A);//±¦ÀÞ
#define turn_left OnFwd(OUT_C);//º¸ÀÞ
#define migisenkai OnFwd(OUT_A); OnRev(OUT_C);//±¦Àû²ó
#define hidarisenkai OnFwd(OUT_C); OnRev(OUT_A);//º¸Àû²ó
#define power(s) SetPower(OUT_AC,s); //¥â¡¼¥¿¡¼¤Î½ÐÎϤ¬Êѹ¹²Äǽ
#define sound1 PlaySound(SOUND_UP);
#define sound2 PlaySound(SOUND_DOWN);Wait(100);
#define GO(t) OnFwd(OUT_AC); Wait(t); Off(OUT_AC);//Á°¿Ê»þ´ÖÊѹ¹²Äǽ
#define SIGNALGRAB 100
#define SIGNALBACK 200
#define back(u) OnRev(OUT_AC); Wait(u); Off(OUT_AC);//¸åÂà»þ´ÖÊѹ¹²Äǽ

¥µ¥Ö¥ë¡¼¥Á¥ó sub trace2()//¸òº¹ÅÀ¤ÎȽÃǤʤɤϲÝÂê­¶¤Î»þ¤ÈƱÍÍ {

   ClearTimer(0); 
   while (FastTimer(0)<=25){
       if (SENSOR_1 > 49){//±¦Àû²ó
           migisenkai; ClearTimer(0);
       } else if (SENSOR_1 > 44){//±¦ÀÞ
           turn_right; ClearTimer(0);
       } else if (SENSOR_1 > 40){//Á°¿Ê
           go_forward; ClearTimer(0);
       } else if (SENSOR_1 > 36){//º¸ÀÞ
           turn_left; ClearTimer(0);
       } else if (SENSOR_1 > 33){//º¸Àû²ó
           hidarisenkai;//¥¿¥¤¥Þ¤ò¥ê¥»¥Ã¥È¤·¤Ê¤¤
       }
   }
   Off(OUT_AC);

}

sub hidari1() {

   sound1;
   go_forward;
   Wait(20);
   hidarisenkai;
   Wait(40);
   turn_left;
   Wait(30);

}

sub hidari2() {

   sound2;
   go_forward;
   Wait(20);
   hidarisenkai;
   Wait(40);
   turn_left;
   Wait(30);

}

¥¿¥¹¥¯¥á¥¤¥ó task main() {

   SetSensor(SENSOR_1, SENSOR_LIGHT);
   power(4);//¥â¡¼¥¿¡¼¤Î½ÐÎϤòÄ´À°¡£²ÝÂê­¶¤Î»þ¤Ï0¤Ç¤¢¤Ã¤¿¤¬¡¢0¤Î¾ì¹ç¤Ç¤Ï½ÐÎϤ¬Â­¤ê¤Ê¤«¤Ã¤¿¤Î¤Ç¡¢Á°²ó¤Î²ÝÂê¤Î¤È¤­¤è¤ê¤â½ÐÎϤò¹â¤á¤¿¡£
   ClearMessage();
   GO(100);//¥¹¥¿¡¼¥ÈÏȤ«¤éÁ°¿Ê
   trace2();//A-F¶è´Ö
   hidari1();//F¤òº¸ÀÞ
   trace2();//F-Q¶è´Ö
   hidari2();//Q¤òº¸Êý¸þ
   trace2();//Q-R¶è´Ö
   hidari1();//R¤òº¸ÀÞ¤·¡¢T¤Ë¸þ¤«¤¦
   trace2();//R-T
   GO(200);//Á°¿Ê¤·¤Æ¥´¡¼¥ë¤ÎÃæ¤ËÆþ¤ë
   SendMessage(SIGNALGRAB);//¥´¡¼¥ë¤Î°ÌÃÖ¤ËÅþÃ夷¤¿¤³¤È¤òÃΤ餻¤ë¡£¥¢¡¼¥à¦¤Ï¤³¤ì¤ò¼õ¤±¼è¤Ã¤¿¤é¥¢¡¼¥à¤òÆ°¤«¤·¤Æ´Ì¤¬¥´¡¼¥ë¤ÎÎΰè¤ËÆþ¤ë¤è¤¦¤Ë¤¹¤ë
   while(true){
       until (Message() == SIGNALBACK);//SIGNALBACK¤ò¼õ¿®¤¹¤ë¤Þ¤ÇÂÔ¤Ä
       back(300);//¸åÂह¤ë
   }

}

¢¬

¥¢¡¼¥à¤Î¥×¥í¥°¥é¥à ¢÷

ÄêµÁÉôʬ

#define grab OnFwd(OUT_C); Wait(100); Off(OUT_C);//¥¢¡¼¥à¤Ç´Ì¤ò¤Ä¤«¤à
#define relese OnRev(OUT_C); Wait(100); Off(OUT_C);//¥¢¡¼¥à¤Ç´Ì¤òÎ¥¤¹
#define rift_up OnFwd(OUT_A); Wait(700); Off(OUT_A);//¥ê¥Õ¥È¤ò»ý¤Á¾å¤²¤ë
#define rift_down1 OnRev(OUT_A); Wait(200); Off(OUT_A);//¥ê¥Õ¥È¤ò¼¡¤Î´Ì¤Î¹â¤µ¤Þ¤Ç²¼¤²¤ë 
#define rift_down2 OnRev(OUT_A); Wait(300); Off(OUT_A);//¥ê¥Õ¥È¤ò¼¡¤Î´Ì¤Î¤Ä¤«¤à¹â¤µ¤Þ¤Ç²¼¤²¤ë¡£¤Ä¤Þ¤ê¤Ï¤¸¤á¤Î¹â¤µ¤Þ¤Ç²¼¤²¤ë
#define SIGNALGRAB 100
#define SIGNALBACK 200
#define grab2(s) OnFwd(OUT_C); Wait(s); Off(OUT_C);//´Ì¤òÄϤà»þ´ÖÊѹ¹²Äǽ
#define relese(t) OnRev(OUT_C); Wait(t); Off(OUT_C);//´Ì¤òÎ¥¤¹»þ´ÖÊѹ¹²Äǽ

¥¿¥¹¥¯¥á¥¤¥ó task main() {

   SetSensor(SENSOR_1,SENSOR_TOUCH);//¥»¥ó¥µ¡¼1¤Ë¥¿¥Ã¥Á¥»¥ó¥µ
   ClearMessage();
   int count;//ÊÑ¿ô¤òÄêµÁ
   count=0;
   while (count<1){//count¤¬1̤Ëþ¤Î»þ¥ë¡¼¥×¤ËÆþ¤ë
       ClearMessage();//Message¤ÎÃͤò0¤Ë½é´ü²½
       if (Message() == SIGNALGRAB){//SIGNALGRAB¤ò¼õ¿®¤·¤¿¤écount¤Ë1¤¬Â­¤µ¤ì¤ë¡£¼õ¿®¤·¤¿¤é¥ë¡¼¥×¤òÈ´¤±½Ð¤¹¡£
           count++;
       } else count = 0;//¤½¤¦¤Ç¤Ê¤±¤ì¤Ðcount¤Ï0
       
   }
   grab2(50);//´Ì¤ò¥´¡¼¥ëÆâ¤Ë¤Þ¤È¤á¤ë¤¿¤á¤Ë¥¢¡¼¥à¤òÆ°¤«¤¹
   relese(70);//Â礭¤á¤Ë¥¢¡¼¥à¤ò³«¤¤¤Æ´Ì¤ò´°Á´¤ËÎ¥¤¹
   SendMessage(SIGNALBACK);//¸åÂह¤ë¤è¤¦¤ËÅÁ¤¨¤ë¡£

¤Þ¤È¤á

º£²ó¤Î²ÝÂê¤Ï¤È¤Æ¤âÆñ¤·¤«¤Ã¤¿¡£¥í¥Ü¥Ã¥È¤òºî¤ë¤Î¤Ë¤«¤Ê¤ê¤Î»þ´Ö¤òÈñ¤ä¤·¤Æ¤·¤Þ¤¤¡¢¥×¥í¥°¥é¥ß¥ó¥°¤ò¹Í¤¨¤ë»þ´Ö¤¬Í¾¤ê¤È¤ì¤Ê¤«¤Ã¤¿¡£·ë²Ì¡¢ËÜÈ֤Ǥϻפ¤Ä̤ê¤ÎÆ°¤­¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¡£»ÄÇ°¤À¤Ã¤¿¤¬³Ú¤·¤ó¤Ç¼è¤êÁȤ᤿¤Î¤ÇÎɤ«¤Ã¤¿¡£


¥È¥Ã¥×   ÊÔ½¸ Åà·ë º¹Ê¬ ÍúÎò źÉÕ Ê£À½ ̾Á°Êѹ¹ ¥ê¥í¡¼¥É   ¿·µ¬ °ìÍ÷ ¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS
Last-modified: 2017-08-14 (·î) 21:40:56