2005/A6/課題右

戻る

int light_max=0;          //光の最大強度を定義し、0からスタート
int i;                    //変数iを定義
int i_brightness;         //光強度最大のときのiをi_brightnessと定義
sub turn_left()           //3/100秒左周り
{
   OnFwd(OUT_A);
   OnRev(OUT_C);
   Wait(3);
   Off(OUT_A+OUT_C);
}
sub turn_right()          //光強度最大の場所に右周りで戻る
{
   OnRev(OUT_A);
   OnFwd(OUT_C);
   Wait(237-i_brightness*3);
   Off(OUT_A+OUT_C);
}

task main()
{
   SetSensor(SENSOR_2, SENSOR_LIGHT); //センサー2を光センサに
      
   for (i=1; i<=79; i++)              //1からカウントしながら79回以下の動作を繰り返す
   {
      turn_left();                    //左周り
      if(SENSOR_2 > light_max)        //もしセンサの値が直前までのlight_maxより大きければ
      {
         light_max = SENSOR_2;        //その値を最大強度に
         i_brightness = i;            //そのときのカウンタの回数をi_brightnessに
         Wait(3);                     //左周りに要する時間と同じだけ待つ              
      }
   }
   turn_right();                      //光の最大強度のところに戻る
}

感想

    滑らかに一回転するのに要する時間と、止まりながら一回転するのに要する時間が異るのに困った。
    結局なんとなくつじつまを合わせることで解決。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-12-16 (金) 09:17:31