º£²ó¤ÏȾ·Â1m°ÊÆâ¤Ë¤¢¤ë¶õ¤´Ì¤òõ¤·¤Æ¡¢25cm¤Îµ÷Î¥¤«¤é¥Ü¡¼¥ë¤òž¤¬¤·¤Æ¤½¤Î¶õ¤´Ì¤ËÅö¤Æ¤ë¥í¥Ü¥Ã¥È¤òºî¤Ã¤¿¡£Ä¶²»ÇÈ¥»¥ó¥µ¡¼¤ò»È¤Ã¤Æ¥Ü¡¼¥ë¤òÅö¤Æ¤ëÂоÝʪ¤Ç¤¢¤ë´Ì¤òȯ¸«¤¹¤ë¡£°ì¼þÌܤβóž¤Ç´Ì¤Î¤¢¤ë¾ì½ê¤ò³Ð¤¨¤Æ¡¢Æó½µÌܤβóž¤Ç¤½¤Î°ÌÃ֤ޤDz󞤷¡¢15ѤΤȤ³¤í¤Þ¤Ç¶á¤Å¤¤¤Æ¡¢¥«¥¿¥Ñ¥ë¥È¤«¤é´Ì¤Ë¸þ¤«¤Ã¤Æ¡¢¥Ü¡¼¥ë¤òȯ¼Í¤¹¤ë¡£
¥â¡¼¥¿¡¼A,B¤Ëº¸±¦¤Î¥¿¥¤¥ä¤ò¤Ä¤±¡¢¥â¡¼¥¿¡¼C¤Ë¥¢¡¼¥à¤ò¼è¤êÉÕ¤±¤¿
ÅêÀдï¤ÎÍͤ˥¢¡¼¥à¤ò»È¤Ã¤ÆÅꤲ¤ë¤³¤È¤¬½ÐÍè¤ëÍͤˤʤäƤ¤¤ë¡£ ¡¡
#define turn_left OnFwd(OUT_A,25);OnRev(OUT_B,25); #define turn_right OnFwd(OUT_B,25);OnRev(OUT_A,25); #define go_forward OnFwd(OUT_AB,25); #define TURN_TIME_10=147; //10¡ë²óž¤¹¤ë»þ´Ö
10¡ë¤º¤Ä²óž¤·¤ÆĶ²»ÇÈ¥»¥ó¥µ¡¼¤Ç¬Äꤹ¤ë¡£Â¬Äꤷ¤¿Ãͤ¬ÊÝ»ý¤·¤Æ¤¤¤ëºÇ¾®Ãͤè¤ê¤â¾®¤µ¤«¤Ã¤¿¾ì¹ç¡¢Â¬Äꤷ¤¿ºÇ¾®Ãͤò¹¹¿·¤·¤Æ¤¤¤¯¡£
int scan_angle(int a){ //0<=a<=36¤Ç»ØÄê a*10¡ë¤ÎÈϰϤò¥¹¥¥ã¥ó¤¹¤ë PlaySound(SOUND_CLICK); Wait(500); int min_temp=0; //²¾¤ÎºÇ¾® int min=100; //ºÇ¾® int angle=0; //ºÇ¾®¤òµÏ¿¤·¤¿³ÑÅÙ[¡ë] int i=0; //i*10[¡ë]¤´¤ÈµÏ¿¤¹¤ë int turn_time=TURN_TIME_10; repeat(a){ min_temp=SensorUS(S4); if(min>=min_temp){ //ºÇ¾®ÃÍÈæ³Ó min=min_temp; //ºÇ¾®Ã͹¹¿· angle=i*10; //ºÇ¾®ÃÍ PlaySound(SOUND_LOW_BEEP); Wait(500); } turn_right; Wait(turn_time); i++; } return angle;
task main(){ int machine_turn_time=0; //¥í¥Ü¥Ã¥È²óž»þ´Ö SetSensorLowspeed(S4); int angle=scan_angle(36); //360¡ë¥¹¥¥ã¥ó if(angle<=180){ machine_turn_time=TURN_TIME_10*angle; go_forward; Wait(machine_turn_time); Off(OUT_AB); }else{ machine_turn_time=TURN_TIME_10*angle; go_forward; Wait(machine_turn_time); Off(OUT_AB); }
int flg=0; while(flg==0){ go_forward; if(SensorUS(S4)<=15){ flg=1; } } Off(OUT_AB);
OnFwd(OUT_C,100); //¥Ü¡¼¥ë¼Í½Ð Wait(500); }
ÅÅÃӤξÃÌפDzóž¤ËÍפ¹¤ë»þ´Ö¤¬ÊѤï¤Ã¤ÆÀµ³Î¤Ê³ÑÅ٤ޤDzóž¤Ç¤¤Ê¤¤¡£ ¥Ü¡¼¥ë¤Î¼Í½ÐÊý¼°¤¬°¤¯¡¢¥Ü¡¼¥ë¤ò±ó¤¯¤ËÈô¤Ð¤»¤Ê¤«¤Ã¤¿¡£
Ķ²»ÇÈ¥»¥ó¥µ¡¼¤¬È¿±þ¤·¤ÆÁÇľ¤Ë´¶Æ°¤·¤¿¡£¥Ü¡¼¥ë¤ò´Ì¤ËÅö¤Æ¤ë¤Ä¤â¤ê¤À¤Ã¤¿¤¬¤Ê¤«¤Ê¤«Æñ¤·¤«¤Ã¤¿¡£