[[2007a/A9/ロボコン]]
#contents
*ライントレースについて [#w8265ecb]
方法としては、以下の通りである。&br;

**方法 [#c520ef10]
A,2つのセンサーでトレース(黒、黒)&br;
B,2つのセンサーでトレース(白、白)&br;
C,1つのセンサーでトレース(黒)&br;

-''1つでトレース、一つで箱感知、一つで交差点を認識させることにしました。''

**参考までに。それぞれのプログラム(動作保障はいたしませんが。) [#x5923bcf]
-''Bのプログラム''&br;
[[課題2のページ>2007a/A9/課題2左]]をご覧下さい。

-''Cのプログラム''&br;
 #define MOTOR OUT_A+OUT_C
 #define THRESHOLD 40 //閾値
 int search_dir;

 sub turn_left(){ OnRev(OUT_A);OnFwd(OUT_C); }
 sub turn_right(){ OnFwd(OUT_A);OnRev(OUT_C); } 

 task main() 
 {
 SetSensor(SENSOR_1,SENSOR_LIGHT);
 SetSensor(SENSOR_2,SENSOR_LIGHT);OnFwd(MOTOR); //最初の動きとして直進させる。
 while(true){
  if(SENSOR_1<THRESHOLD)     //線を見失ったら
  {
   if(search_dir==0){
     turn_right(); Wait(5);
      if(SENSOR_1>THRESHOLD){  //線をみつけたのなら直進
          OnFwd(MOTOR); 
          search_dir=0;
      }else{                    //見付からないのなら反対側を探す
          turn_left(); Wait(10);
           if(SENSOR_1>THRESHOLD){   //見付けたのなら直進
             OnFwd(MOTOR);
             search_dir=1;
           }else{                    //見付からないのなら1秒前進
             OnFwd(MOTOR);Wait(100);
             search_dir=0;
           }
      }
    }
    if(search_dir==1){
      turn_left(); Wait(5);
        if(SENSOR_1>THRESHOLD){
           OnFwd(MOTOR);
           search_dir=1;
        }else{
           turn_right(); Wait(10);
            if(SENSOR_1>THRESHOLD){
              OnFwd(MOTOR);
              search_dir=0;
            }else{
              OnFwd(MOTOR); Wait(100);
              search_dir=1;
            }
        }
     }
   }
  }
  Off(OUT_A+OUT_C);
 }

**コメントをどうぞ。 [#td6ee9cd]
#comment


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