☆左チーム☆(げんき&まさき&サイモン)
光チェイスロボット
int max=0; int i=0, i_max; sub me () { for(i=0; i<=89; i++) { OnFwd(OUT_A); // モーターAを正回転 OnRev(OUT_C); // モーターCを逆回転 Wait(5); Off(OUT_A+OUT_C); // 停止 Wait(1); if(SENSOR_1 > max) //センサー1の値がmax以上ならば { max = SENSOR_1; i_max =i; } } OnFwd(OUT_A); // モーターAを正回転 OnRev(OUT_C); // モーターCを逆回転 Wait(i_max*10); Off(OUT_A+OUT_C); // 停止 OnFwd(OUT_A+OUT_C); // 前進 until(SENSOR_1 < max); // センサー1の値がmax以下ならば } task main () { SetSensor(SENSOR_1, SENSOR_LIGHT); // センサー1が光センサーであると宣言 while(true) { me(); } }
値の微調整を繰り返してうまくいくよう工夫しました。
光の微妙な変化でたまにうまくいかない場合があり、まだ完全とはいえません。また、時間がかかりすぎたのも反省点です。
この課題のおかげででもforを使った繰り返しなど、いままで使えなかったプログラムを組めるようになりました。ただ、やはり完全にできなかったのは心残りです。 ロボット写真 感想