[[2006b/A4]]
*このページについて [#fc0a0fe6]
このページでは、光の明るさに比例した音を出して明るいところを探し、その光を追うロボットについて紹介します。
*ロボットのついて [#j4050858]
光をうまくとらえられるように2個の光センサーを前向きに、ロボットの前面に取り付けています。
*プログラム [#f3806847]
 #define TURN_TIME 400  ロボットが1回転する時間を設定します。

 task main ()
  {
  SetSensor(SENSOR_1,SENSOR_LIGHT);
  SetSensor(SENSOR_3,SENSOR_LIGHT); 光センサーを設定します。
  int light_max=0,time_max;
  ClearTimer(0);         
  while(FastTimer(0)<TURN_TIME)   光の強さが最高になるまで繰り返します。
    {OnFwd(OUT_A); OnRev(OUT_C); 
      PlayTone(SENSOR_1*10,3);  光の強さに応じた高さの音が出ます。
           if(SENSOR_1>light_max) 強い光を発見したら、発見までにかかった時間を記憶します。
         {light_max=SENSOR_1;
         time_max=FastTimer(0);
         }  
    } 
   OnFwd(OUT_C);OnRev(OUT_A);Wait(TURN_TIME-time_max); 光が最も強かった方向を向きます。
   OnFwd(OUT_A+OUT_C); Wait(50);
  while(true){
    if(SENSOR_1>SENSOR_3+3)
      {OnFwd(OUT_C);  OnRev(OUT_A); Wait(10);} センサ−1の方が明るかったらセンサ−1の方を向きます。
    if(SENSOR_1+3<SENSOR_3)
      {OnFwd(OUT_A); OnRev(OUT_C); Wait(10);} センサ−3の方が明るかったらセンサ−3の方を向きます。 
    else{OnFwd(OUT_A+OUT_C);}
   }
  }
 
*苦労した点 [#d59674fb]
どのように光の強さに応じた周波数の音を出すかということ。

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