課題3 #contents *課題内容 [#ob7e69df] 懐中電灯の光を追いかけて進むロボットを製作し、以下の中から2種類以上のプログラムを作成せよ。 光源を見失った時には曲を演奏しながらぐるっと旋回して光源を探す 光源を見失った時には明るさに比例した周波数の音を出しながら旋回して光源を探す 光源を見失っていないときにはある曲を演奏し、見失った時には別の曲を演奏しながら光源を探す 上記のいずれかに『光源に近づき過ぎると停止する』という機能を追加する ただし支給されているモータ、光センサ、タッチセンサはいくつ使ってもよい。 *プログラム1 [#ud194d51] #define top OnFwd(OUT_A+OUT_C); #define right OnRev(OUT_C);OnFwd(OUT_A); #define left OnRev(OUT_A);OnFwd(OUT_C); #define minus 15 #define Do 523 #define Re 587 #define Mi 659 #define Fa 698 #define So 784 #define La 880 #define Si 988 #define So_ 392 int light_max; int time_max; task main() { SetSensor(SENSOR_2,SENSOR_LIGHT); light_max=SENSOR_2; time_max=Timer(0); ClearTimer(0); while(Timer(0)<=14) { right; if(SENSOR_2>light_max) { ClearTimer(1); light_max =SENSOR_2 ; } else { light_max = light_max; time_max =Timer(1); } } ClearTimer(1); while(Timer(1)<= time_max) { left; } while(true) { if(SENSOR_2>= light_max-minus) { top; PlayTone(Mi,25); Wait(35); PlayTone(Mi,25); Wait(50); PlayTone(Mi,25); Wait(50); PlayTone(Do,25); Wait(30); PlayTone(Mi,40); Wait(45); PlayTone(So,50); Wait(100); PlayTone(So_,50); Wait(100); } if(SENSOR_2< light_max-minus) { right; ClearTimer(2); until((SENSOR_2>= light_max-minus)||(Timer(2)==5)); } if(SENSOR_2< light_max-minus) { left; until(SENSOR_2>= light_max-minus); } } } *反省点 [#j2ca8008] センサー2個でやろうとして、結局できなくて1個でやってしまった。 #comment