Ìܼ¡ ²ÝÂê †¹õ¤¤Àþ¤Ë±è¤Ã¤ÆÆ°¤¯¥í¥Ü¥Ã¥È †³Æ¥Á¡¼¥à¤ÇºîÀ®¤·¤¿¥³¡¼¥¹¤ò1¼þ¤¹¤ë¥í¥Ü¥Ã¥È¤òÀ½ºî¤»¤è¡£ ¸òº¹ÅÀ°Ê³°¤Î¥³¡¼¥¹¾å¤Ë350ml¤Î¶õ¤Î¶õ¤´Ì¤ò2¸Ä°Ê¾å¤ª¤¡¢¶õ¤´Ì¤Ë¤Ö¤Ä¤«¤Ã¤¿»þ¤Ë¤Ï ¼¡¤Î¤è¤¦¤Êưºî¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ 1.¶õ¤´Ì¤ò¥³¡¼¥¹¾å¤ËÌᤷ¤ÆºÆ¤Ó¥³¡¼¥¹¤ËÌá¤Ã¤Æ¿Ê¤à¡£ ¥á¥ó¥Ð¡¼ †¥¿¥Ä¥ä¡¢¥ª¥ì¥ó¥¸¤ÎÆó̾¤Ë¤è¤ê¹½À®¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¥í¥Ü¥Ã¥È †¥¿¥Ä¥ä¤Î³«ÊĤ¹¤ë¥¢¡¼¥à¤Ø¤ÎɬÍװʾå¤Î¼¹Ãå¤Ë¤è¤ê¤³¤Î¥í¥Ü¥Ã¥È¤ÏÁϤ¤µ¤ì¤Þ¤·¤¿¡£ Á´ÂÎ †¤³¤ì¤¬Ëͤé¤Î¥í¥Ü¥Ã¥È¤Ç¤¹¡£Á°Êý¤Ë¤Ä¤¤¤¿³«ÊÄ¥¢¡¼¥à¡¼¤Ë¤è¤êÁ´ÂÎÂÐŪ¤Ë¥´¥Ä¥¤°õ¾Ý¤òÍ¿¤¨¤Þ¤¹ ¥¢¡¼¥à †¡Á´ÂÎ ¤³¤ì¤¬¥¢¡¼¥à¤ÎÁ´ÂΤˤʤê¤Þ¤¹¡£ ¢Ãæ¿´Éôʬ ¤³¤ì¤Ï¥¢¡¼¥à¤ÎÃæ¿´¤Î¥¢¥Ã¥×¤Ç¤¹¡£ ¡¡Ãæ¿´Éôʬ¤Î¾Ü¤·¤¤ÀâÌÀ¤ò¤·¤Þ¤¹¡£ ¡¡¼¡¤Ë±¦¿Þ¤Ï¼è¤ê³°¤·¤¿Éôʬ¤Ç¤¹¡£ £Â¦ÌÌ ¥¢¡¼¥à¤Î¦Ì̤Ǥ¹¡£ ¤¼ê ½Ä¤Ë¿¤Ð¤·Î©ÂÎŪ¤Ë¤¹¤ë¤³¤È¤Ç¡¢¤è¤ê´Ì¤òÄϤߤ䤹¤¯¤·¤Þ¤·¤¿¡£ ¥Ð¥ó¥Ñ¡¼ †¥Ð¥ó¥Ñ¡¼¤Ï¿Þ¤Î¤è¤¦¤Ë¥¢¡¼¥àÃæ¿´Éôʬ¤Ë¼è¤êÉÕ¤±¤é¤ì¤Æ¤¤¤Þ¤¹¡£¡Ê¤¦¤Ã¤«¤ê±¦¿Þ¥¢¡¼¥à¤Î¥®¥¢Éôʬ¤òÉÕ¤±Ëº¤ì¤Æ¤¤¤ë¤³¤È¤Ïµ¤¤Ë¤·¤Ê¤¤¡Ë ¿Þ¤Î¤è¤¦¤Ë¥Ð¥ó¥Ñ¡¼Æâ¦¤Ë¤Ç¤Ã¤Ñ¤ê¤òºî¤ë¤³¤È¤Ç¥¿¥Ã¥Á¥»¥ó¥µ¡¼¤¬È¿±þ¤·¤ä¤¹¤¤¤è¤¦¤Ë¤·¤Þ¤·¤¿¡£ ¸÷¥»¥ó¥µ¡¼ †ÀÖÏÈÆâ¤¬¸÷¥»¥ó¥µ¡¼¤Ç¤¹¡£ ¹©Éפ·¤¿ÅÀ¡¢¶ìÏ«¤·¤¿ÅÀ †¡¡¤Þ¤º¥¢¡¼¥à¤¬³«ÊĤ¹¤ë¤è¤¦¤Ë¤¹¤ë¤Ë¤Ï¤È¤Æ¤â¶ìÏ«¤·¤¿¡£¤Ê¤ë¤Ù¤¯´Êñ¤Ê¹½Â¤¤ò¹Í¤¨¤¿¤ê¡¢¥®¥¢¤¬¤¦¤Þ¤¯¥Ï¥Þ¤ë¡¢¤Þ¤¿²óž¿ô¤¬¤½¤í¤¦¤è¤¦¤ËÁȤßÊý¤ò¹Í¤¨¤ë¤Î¤Ë¤È¤Æ¤â»þ´Ö¤¬¤«¤«¤Ã¤¿¡£¤µ¤é¤Ë¤³¤Î¥¢¡¼¥à¤Ë¹ç¤¦¥Ð¥ó¥Ñ¡¼¤òºî¤ë¤Î¤Ë¤â¶ìÏ«¤·¤¿¡£¥¿¥Ã¥Á¥»¥ó¥µ¡¼¤Î¥³¡¼¥É¤òÈò¤±¤¿¤ê¡¢¥¹¥¤¥Ã¥Á¤ò²¡¤¹¤Î¤Ë¤Ç¤Ã¤Ñ¤ê¤òÉÕ¤±¤ë¤Ê¤É¹©Éפ·¤¿¡£ ¥³¡¼¥¹ †¥ª¥ì¥ó¥¸¤ÈA4±¦¤Î´äÀÚ»á¤Ë¤è¤Ã¤ÆºîÀ®¤µ¤ì¤¿¥³¡¼¥¹¤Ç¤¹¡£ ¥×¥í¥°¥é¥à †¥¿¥Ä¥ä¤Î¥×¥í¥°¥é¥à †#define eye_L SENSOR_1 //SENSOR_1¤òeye_R¤ÈÄêµÁ #define eye_R SENSOR_3 //SENSOR_3¤òeye_L¤ÈÄêµÁ #define touch SENSOR_2 //SENSOR_2¤òtouch¤ÈÄêµÁ #define THRESHOLD 40 // ïçÃÍ #define go(t) OnFwd(OUT_A+OUT_C);Wait(t); //Á°¿Ê #define back(t) OnRev(OUT_A+OUT_C);Wait(t); //¸åÂà #define turn_R(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t); //±¦²óž #define turn_L(t) OnRev(OUT_A);OnFwd(OUT_C);Wait(t); //º¸²óž task main() { SetSensor(eye_R, SENSOR_LIGHT);//¥»¥ó¥µÃ¼»Ò£±¤ËÀܳ¤µ¤ì¤¿¥»¥ó¥µ¤¬¸÷¥»¥ó¥µ¡¼¤ÈÀë¸À SetSensor(eye_L, SENSOR_LIGHT);//¥»¥ó¥µÃ¼»Ò3¤ËÀܳ¤µ¤ì¤¿¥»¥ó¥µ¤¬¸÷¥»¥ó¥µ¡¼¤ÈÀë¸À SetSensor(touch, SENSOR_TOUCH);//¥»¥ó¥µÃ¼»Ò2¤ËÀܳ¤µ¤ì¤¿¥»¥ó¥µ¤¬¥¿¥Ã¥Á¥»¥ó¥µ¡¼¤ÈÀë¸À while (true) { start follow_line;//¥é¥¤¥ó¥È¥ì¡¼¥¹³«»Ï until(touch==1);//¥¿¥Ã¥Á¥»¥ó¥µ¡¼¤¬È¿±þ¤·¤¿¤é°Ê²¼¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô stop follow_line;//¥é¥¤¥ó¥È¥ì¡¼¥¹Ää»ß Float(OUT_B); //´Ì¤òÄϤà Wait(30); Off(OUT_B); OnRev(OUT_A+OUT_B); //´Ì¤òÄϤߤĤIJóž,´Ì¤ò¸åÊý¤Ø OnFwd(OUT_C); Wait(180); Off(OUT_B); back(40); //°ÌÃÖ½¤Àµ OnFwd(OUT_B); //´Ì¤òÊü¤¹ Wait(30); back(50); //´Ì¤«¤éÎ¥¤ì¤ë turn_R(160); } } task follow_line () //¥é¥¤¥ó¥È¥ì¡¼¥¹¤Î¥×¥í¥°¥é¥à¤Ç¤¹ { int k=0 ; //À°¿ôk¤òÄêµÁ(¸òº¹ÅÀ¤Ë¤¤¤¯Å٤ˣ±Áý¤¨¤ë¡Ë while(k<8) //¸òº¹ÅÀ¤òÄ̤俲ó¿ô¤¬8²ó¤è¤ê¾®¤µ¤¤¤È¤ { if ((eye_R > THRESHOLD)&&(eye_L >THRESHOLD)) //ξÊýÇò¤Î»þÁ°¿Ê { go(10) } else if ((eye_L< THRESHOLD)&&(eye_R > THRESHOLD)) // 1¤¬¹õÀþ¾å¤Î»þº¸¤Ë²óž { turn_L (10) } else if ((eye_L > THRESHOLD)&&(eye_R < THRESHOLD)) //3¤¬¹õÀþ¾å¤Î»þ±¦¤Ë²óž { turn_R(10) } else if ((eye_R< THRESHOLD)&&(eye_L < THRESHOLD)) //ξÊý¹õÀþ¾å°ì»þÄä»ß¤·Á°¿È { Off(OUT_A+OUT_C); Wait(100); k++; //¸òº¹ÅÀ¤Ë¤¤¿¤ék¤Ë£±¤ò¤¿¤¹ go(10); } } Off(OUT_A+OUT_C); } ´Ì¤¬¤¢¤Ã¤¿¤é´Ì¤òÄϤߡ¢¸åÊý¤Ë²ó¤·¡¢¥é¥¤¥ó¾å¤ËÌᤷ¤Æ¤«¤é¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò³¤±¤ë¥×¥í¥°¥é¥à¤Ç¤¹¡£¤½¤·¤Æ£¸²ó¸òº¹ÅÀ¤ËÃ夿¤éÄä»ß¤·¤Þ¤¹¡£ ¥ª¥ì¥ó¥¸¤Î¥×¥í¥°¥é¥à †#define get() OnRev(OUT_B);%´Ì¤ò»ý¤Ä¥×¥í¥°¥é¥à #define go(t) OnFwd(OUT_A+OUT_C);Wait(t);%Á°¤Ø #define turn_R(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t);%±¦¤Ø #define turn_L(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t);%º¸¤Ø #define release() OnFwd(OUT_B);%´Ì¤òÊü¤¹ #define light_R SENSOR_3%¥»¥ó¥µ¡¼3¤Ï¥»¥ó¥µ¡¼¥é¥¤¥È #define light_L SENSOR_1%¥»¥ó¥µ¡¼1¤Ï¥»¥ó¥µ¡¼¥é¥¤¥È #define THRESHOLD 40%40¤ËÀßÄê task main() { SetSensor(light_R,SENSOR_LIGHT); SetSensor(light_L,SENSOR_LIGHT); SetSensor(SENSOR_2,SENSOR_TOUCH); while(true){ start follow_line;%³«»Ï until(SENSOR_2==1);% stop follow_line;%Ää»ß get();´Ì¤ò»ý¤Ã¤Æ start follow_line;ºÆ¤Ó³«»Ï until((light_R<THRESHOLD)&&(light_L<THRESHOLD));%¸òº¹ÅÀ¤Ë¹Ô¤¯¤Þ¤Ç go(200);%¸òº¹ÅÀ¤Ë¹Ô¤Ã¤¿¸å turn_R(200);% go(80);% release();% OnRev(OUT_A+OUT_C);Wait(50);% turn_L(200);%´Ì¤òºÆ¤Ó¤ª¤¤¤Æ start follow_line;%¥¹¥¿¡¼¥È }} task follow_line() { while(true){ if((light_R>THRESHOLD)&&(light_L>THRESHOLD)){ go(5);}%¹õÀþ¾å¤Ë¤¤¤ë¤È¤ if(light_R<THRESHOLD) {turn_R(5); }%¤º¤ì¤¿¾ì¹ç if(light_L<THRESHOLD) {turn_L(5); } if((light_R<THRESHOLD)&&(light_L<THRESHOLD)) { Off(OUT_A+OUT_C); Wait(50); go(5);%¸òº¹ÅÀ¤Î¤È¤ }} } ´¶ÁÛ †¥¿¥Ä¥ä †¡¡º£²ó¤ÏÁ°²ó¤ÎÈ¿¾Ê¤ò¤Õ¤Þ¤¨Á᤯¤«¤éÀ½ºî¤Ë¼è¤ê³Ý¤«¤Ã¤¿¤¬·ë¶É´°À®¤¬¥®¥ê¥®¥ê¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£ ¥ª¥ì¥ó¥¸ †Á°¤è¤ê¤âÁá¤á¤Ë¼è¤ê¤«¤«¤Ã¤¿¤«¤é»þ´ÖŪ¤Ë¤Ï;͵¤¬¤¢¤Ã¤¿¤¬¡¢²ÝÂ꤬»×¤Ã¤Æ¤¤¤¿¤è¤ê¤âÆñ¤·¤¯¤Ê¤«¤Ê¤«»×¤¤Ä̤ê¤Ëư¤«¤Ê¤«¤Ã¤¿¡£¼¡²ó¤Ï¤µ¤é¤Ë¤·¤Ã¤«¤ê¤È¤·¤¿¤â¤Î¤òºî¤Ã¤Æ¤¤¤¤¿¤¤¡£ ¥³¥á¥ó¥È †¥³¥á¥ó¥È¤ò¤É¤¦¤¾
|