プログラム

#define MOVE_TIME1 700000
#define MOVE_TIME2 40000
#define nMAX1 3000
#define nMAX2 350
#define THRESHOLD 55
#define SPEED_H 30
#define SPEED_L 25
#define OnRL(speedR,speedL) OnFwd(OUT_B,speedR);OnFwd(OUT_C,speedL);
#define go_forward OnRL(SPEED_H,SPEED_H);//直進
#define turn_left1 OnRL(SPEED_L,-SPEED_L);//左旋回
#define turn_left2 OnRL(SPEED_L,0);//左回転
#define turn_right1 OnRL(-SPEED_L,SPEED_L);//右旋回
#define turn_right2 OnRL(0,SPEED_L);//右回転
#define STEP 1  
#define short_break Off(OUT_BC);Wait(100);
#define CROSS_TIME 210
#define cross_line OnRL(SPEED_L,SPEED_L);Wait(CROSS_TIME);short_break;//交差点通過

task main()
{
    SetSensorLight(S1);
    long t0=CurrentTick();

    while(CurrentTick()-t0<MOVE_TIME2){//急カーブ用プログラム
      int nOnline=0;
      while(nOnline<nMAX2){
         if(SENSOR_1<THRESHOLD-4){
            turn_left2;
            nOnline++;
           } else {
              if(SENSOR_1<THRESHOLD){
                turn_left2;
              } else if(SENSOR_1<THRESHOLD+7){
                 go_forward;
              } else if(SENSOR_1<THRESHOLD+10){
                 turn_right2;
              } else{
                turn_right1;
                  }
                nOnline=0;
             }
         }
        Wait(STEP);
        short_break;
        PlaySound(SOUND_DOUBLE_BEEP);
        turn_right2;Wait(nMAX2);
        cross_line;
        nOnline=0;
     } 

   go_forward;Wait(1800);//タイミングを見計らって、交差点に関係なく直進
  

   while(CurrentTick()-t0<MOVE_TIME1){//急カーブ用プログラム
      int nOnline=0;
      while(nOnline<nMAX1){
         if(SENSOR_1<THRESHOLD-4){
            turn_left1;
            nOnline++;
         } else {
            if(SENSOR_1<THRESHOLD+7){
               go_forward;
            } else if(SENSOR_1<THRESHOLD+10){
               turn_right2;
            } else{
               turn_right1;
               }
               nOnline=0;
           }
      }
      Wait(STEP);
      short_break;
      turn_right1;Wait(nMAX1*STEP);
      cross_line;
      nOnline=0;
   }     
}//MOVETIME1+2以内にゴールイン

反省


添付ファイル: fileNCM_0156-1.jpg 150件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-12-12 (木) 18:48:08