- 追加された行はこの色です。
- 削除された行はこの色です。
[[2006a/A1]]
#contents
*課題3:光を追いかけるロボット [#we03515a]
懐中電灯の光を追いかけて進むロボットを製作し、以下の中から2種類以上のプログラムを作成せよ。
+光源を見失った時には曲を演奏しながらぐるっと旋回して光源を探す
+光源を見失った時には明るさに比例した周波数の音を出しながら旋回して光源を探す
+光源を見失っていないときにはある曲を演奏し、見失った時には別の曲警を演奏しながら光源を探す
+上記のいずれかに『光源に近づき過ぎると停止する』という機能を追加する
ただし支給されているモータ、光センサ、タッチセンサはいくつ使ってもよい。
*ロボット [#n95dfc0e]
*プログラム [#p42eee5d]
#define left(t) OnRev(OUT_A);OnFwd(OUT_C);Wait(t);Off(OUT_A+OUT_C);
#define front(j) OnFwd(OUT_A+OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define back(j) OnRev(OUT_A+OUT_C);Wait(j);Off(OUT_A+OUT_C);
#define right(j) OnRev(OUT_C);OnFwd(OUT_A);Wait(j);Off(OUT_A+OUT_C);
#define turntime 200
int lightmax=0;
int timemax=0;
task main()
{ while(true)
{
SetSensor(SENSOR_1,SENSOR_LIGHT);
ClearTimer(0);
OnRev(OUT_C);OnFwd(OUT_A);
while(FastTimer(0) < turntime)
{
if(SENSOR_1 > lightmax)
{lightmax=SENSOR_1;
timemax=FastTimer(0);}
}
left(200 - timemax);
front(100);
}
}
*工夫した点 [#i0075af7]
*反省点 [#bc377d9c]