[[2017a/Member]]
ライントレース
   #define senkai_left OnRev(OUT_C);OnFwd(OUT_A);//左旋回
  #define senkai_right OnFwd(OUT_C);OnRev(OUT_A); //右旋回
  #define turn_left Off(OUT_C);OnFwd(OUT_A);//左折
  #define turn_right OnFwd(OUT_C);Off(OUT_A);//右折
  #define fwd OnFwd(OUT_AC);//直進
 
  #define usetu OnFwd(OUT_C);Off(OUT_A);Wait(180);Off(OUT_C);OnRev(OUT_AC); Wait(20);Off(OUT_AC);
 
  
 sub line_trace()
 {
  SetSensor(SENSOR_1, SENSOR_LIGHT);   //右
  SetSensor(SENSOR_3, SENSOR_LIGHT);   //左
  ClearTimer(0);
 
  PlaySound(SOUND_UP); 
 
  while(FastTimer(0)<11){
       if(SENSOR_1>=49&&SENSOR_3>=55){
           fwd;
           ClearTimer(0);
       }else if(SENSOR_3>=50){
           turn_right;
           ClearTimer(0);
       }else if(SENSOR_1>=40){
           turn_left;
           ClearTimer(0);
       }else if(SENSOR_3>=48){
           senkai_right;
           ClearTimer(0);
       }else if(SENSOR_1>=38){
           senkai_left;
           ClearTimer(0); 
       }else if(SENSOR_1>=35||SENSOR_3>=40){
            Off(OUT_AC);
            PlaySound(SOUND_LOW_BEEP);
        }else{
           PlaySound(SOUND_FAST_UP);
        }	
 }
  Off(OUT_AC);
  PlaySound(SOUND_DOWN);
 }
             
 task main()
 {
  Wait(50);
  fwd;
  Wait(50);
  Off(OUT_AC);
  repeat(2){
      line_trace();
      Wait(50);
      usetu;
      Wait(100);
       }
 fwd;
 Wait(50);
 Off(OUT_AC);
 PlaySound(SOUND_CLICK);
 }

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS