光を追いかけるロボットのプログラム

 #define THRESHOLD 40   // 閾値
 #define RUN_TIME 1500   // トレースする時間(単位 1/10 秒)
 
 int move_time ;  
 int right ;  
 
 task main ()
 {
   SetSensor(SENSOR_1, SENSOR_LIGHT);
 
   ClearTimer(0);                    // Timer(0) をリセット
 
   right = 0 ; move_time = 0 ;
 
   OnFwd(OUT_A);OnRev(OUT_C);
           
   while ( Timer(0) <= 36 ) {  // タイマー0が既定値以下の時に繰り返す
 
  if (SENSOR_1 > right) { // 明るい光を感知した場合
   right = SENSOR_1;
   move_time = Timer(0);
 
   Off(OUT_A); OnFwd(OUT_C);  //前進
  }
 
  else {                      // 暗いままである場合
              OnFwd(OUT_A); Off(OUT_C);  //その場で回転
         }
     }
 
 
  }
 

コメント

 まず最初にその場で一回転し、明るい光を感知させるのですが、
 この最初の一回転にかかる時間を出来るだけ正確に設定するのが大変でした。

戻る


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-02-28 (月) 18:56:49