[[2005/A2/課題4]] *作成中... [#b9dea41a] NoImage 光の追跡者 *Light pursuer [#h7c43911] **プログラム [#q1022ba2] #define MEGANE 120 //ロボが一周する時間 #define LEFT_X OnFwd(OUT_A);OnRev(OUT_C);Wait(1);Off(OUT_A+OUT_C);//左回転 #define RIGHT_X OnFwd(OUT_C);OnRev(OUT_A);Wait(1);Off(OUT_A+OUT_C);//右回転 task main() { SetSensor(SENSOR_2,SENSOR_LIGHT); int light_max = 0; //「見つけた明るさ」の最大値 int i = 0; int MAX = 0; //最も明るかった地点の番号 for(i=0; i<=MEGANE; i++){ LEFT_X; //まず左に一周しつつ if(SENSOR_2>light_max){ //このlight_maxを light_max = SENSOR_2; //見つけた中で、一番明るい MAX = i; //明るさの値に塗り変える。 } } Off(OUT_A+OUT_C); //とりあえず一周したら Wait(50); //休憩してみる(確認の目的あり) repeat(10){ //上で見つけた明るさを元に for(i=0; i<=MEGANE; i++){ //右回転で探しては前進、探しては前進 if(light_max-10>=SENSOR_2){ //最も明るい所よりも若干、暗くても進ませます。 RIGHT_X; } else{ OnFwd(OUT_A+OUT_C); Wait(20); Off(OUT_A+OUT_C); } } } } **作成者 [#f9654d49] キャベツ 富岡 トマト **ロボの話 [#r09a8a67] 今までのロボ達の「バランスの悪さ」と戦ううち、培われた技術。 部品の組合せや特にコレといった工夫もないように見えるであろう、今回のロボ。 ...個人的には今回のコンセプト「シンプルイズザベスト」にのっとり、 シンプルさの中に秘められた、安定性、を見せつける。 走ってるうちに壊れなければ良い ......と思って組み立てた時には、まさか、 とーますに軽く分解されるとは、思いもしなかったキャベツとトマトなのでした。 **プログラムの話 [#xbb72a6d] 今回も、お手本を参考にしつつ。 自分なりの理解をしてプログラムを作成。(理解するのに時間がかかり過ぎ...) プログラムとしては、 1.ロボットが一周する事を、おそらく75分割 2.分割した事で、明るい方向を(MAX)番号として記憶 3.その番号の地点まで回転 4.明るい方を向いたら、少し前進 5.1に戻って繰り返し というような形で考えてみた。 ...が、ロボが全く同じ回転を繰り返す事が前提となっている事や、 一周が75等分では、おおざっぱ過ぎたかも...。 ついでに言うと、携帯電話のライトで試したのみで、 懐中電灯では、まだ試していない...。 **感想など [#mc707c26]