2006a/C3/課題3左

作成者:中央線・西日暮里

#define turn_right OnFwd(OUT_A);OnRev(OUT_C);     //右回りを定義 
#define turn_left OnRev(OUT_A);OnFwd(OUT_C);      //左回りを定義
#define Stop_turning Off(OUT_A+OUT_C);         //旋回の停止を定義
#define TURN_TIME 50                  //旋回時間を0,5秒に設定
#define go_straight OnFwd(OUT_A+OUT_C);Wait(50);Off(OUT_A+  OUT_C);Wait(50);   //直進を定義
task main()
{
   SetSensor(SENSOR_2,SENSOR_LIGHT);         //センサー2は光センサー
   int light_max=0,time_max=0;            //光の最大値を0、最大値を観測した時間を0とおく
   while(true){ 
   turn_left;Wait(25);Off(OUT_A+OUT_C);Wait(10);   //0,25秒左回り、0,1秒待つ(ロボットが激しく動くのを防止するため)
   turn_right;                   //右に回る
   ClearTimer(0);        
   while(FastTimer(0)<TURN_TIME){           
      if(SENSOR_2>light_max){            //センサー2の値が光の最大値より大きかったら
          light_max=SENSOR_2;           //光の最大値をセンサー2の値に置き換え
          time_max=FastTimer(0);
          }
     }
     Stop_turning;Wait(100);           //旋回停止、一秒待つ
     turn_left;                 //左回り     
     Wait(TURN_TIME-time_max);         //回った時間−最大値を観測した時間
     Stop_turning;               //旋回停止
     go_straight;               //直進      
     light_max=0;               //光の最大値を0と置く
     time_max=0;               //最大値を観測した時間を0と置く
     }
}

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