- 追加された行はこの色です。
- 削除された行はこの色です。
[[2005/A2/課題4]]
*作成中... [#b9dea41a]
NoImage
光の追跡者
*Light pursuer [#h7c43911]
**プログラム [#q1022ba2]
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
int light_max = 0;
int i = 0;
int MAX = 0; //ここまでは関数を決めるなどの、お約束事項//
for(i=0; i<=75; i++){ //とりあえずセンサーを動かしながら一周//
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(1);
Off(OUT_A+OUT_C);
if(SENSOR_2>light_max){ //明るい地点を探すため//
light_max = SENSOR_2;
MAX = i; //その地点をMAXとして残す//
}
}
Off(OUT_A+OUT_C); //一周したら止まってみる//
Wait(100);
repeat(MAX){ //明るい地点を向くまで回転//
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(1);
Off(OUT_A+OUT_C);
}
OnRev(OUT_A+OUT_C); //明るい方を向いたら少し//
Wait(50); //進んで、休む//
Off(OUT_A+OUT_C);
}
**作成者 [#f9654d49]
キャベツ 富岡 トマト
**ロボの話 [#r09a8a67]
**プログラムの話 [#xbb72a6d]
今回も、お手本を参考にしつつ。
自分なりの理解をしてプログラムを作成。(理解するのに時間がかかり過ぎ...)
プログラムとしては、
1.ロボットが一周する事を、おそらく75分割
2.分割した事で、明るい方向を(MAX)番号として記憶
3.その番号の地点まで回転
4.明るい方を向いたら、少し前進
5.1に戻って繰り返し
というような形で考えてみた。
...が、ロボが全く同じ回転を繰り返す事が前提となっている事や、
一周が75等分では、おおざっぱ過ぎたかも...。
ついでに言うと、携帯電話のライトで試したのみで、
懐中電灯では、まだ試していない...。
**感想など [#mc707c26]