[[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] どのように光の強さに応じた周波数の音を出すかということ。