半径1m以内にある懐中電灯を探して、懐中電灯にピンポン玉を当てるロボットを製作。
課題2とほぼ同じ。課題2ロボット
変更点はライントレーサーの向きを前向きにして、前方の明るさを認識できる様にした。
旋回のみ。
#define turn_left OnFwd(OUT_C);OnRev(OUT_A)// 左旋回 #define turn_right OnFwd(OUT_A);OnRev(OUT_C)// 右旋回
360度以上回転して明るさの最大値を探し、その方向を向く。そして、ボールをシュートする。
task main() { SetSensor(SENSOR_3,SENSOR_LIGHT); int lightsensor=0; // ライトセンサーの値を入力 int d_max=0; // 最大値までの時間を入力 ClearTimer(0); // タイマーをリセット turn_left; //旋回始め while (FastTimer(0) < 330) { // 設定した秒数旋回する if (SENSOR_3 > lightsensor){ // センサーの最大値を超えたら lightsensor=SENSOR_3; // 明るさの値を更新し d_max=FastTimer(0); // 時間も更新 } } Off(OUT_AC);Wait(100); turn_right; // スタート位置に戻る Wait(330); Off(OUT_AC); turn_left; Wait(d_max); // スタート位置から最大値までの秒数分、旋回 Off(OUT_AC); OnRev(OUT_B); Wait(90); // アームを開く Off(OUT_B); OnFwd(OUT_AC); Wait(50); // ボールをシュート OnRev(OUT_AC); Wait(50); Off(OUT_AC); }
今回の課題は前回のロボットをほぼそのまま使えたので良かった。明るさの最大値を探すということはいいアイディアだと思った。