◇課題2『黒い線に沿って動くロボット』
☆製作に関して プログラム †反転して進む †制作者// takumi task main() { SetSensor(SENSOR_3,SENSOR_LIGHT);//センサ−3を「光」、センサー1を「タッチセンサー」と定義する SetSensor(SENSOR_1,SENSOR_TOUCH); while (true) { if(SENSOR_3 < 50)//センサー3が黒線上に無いとき、左タイヤだけが動く { OnFwd(OUT_A); Off(OUT_C); Wait(5); } if(SENSOR_3 > 50)//センサー3が黒線上に有るとき、右タイヤだけが動く { OnFwd(OUT_C); Off(OUT_A); Wait(5); if(SENSOR_1 == 1)//センサ−1が反応したとき、バックして反転 { OnRev(OUT_A+OUT_C); Wait(50); OnFwd(OUT_A);OnRev(OUT_C); Wait(235); } } } } 追い抜いて進む (反転プログラムを流用) †制作者// takumi task main() { SetSensor(SENSOR_3,SENSOR_LIGHT);//センサ−3を「光」、センサー1を「タッチセンサー」と定義する SetSensor(SENSOR_1,SENSOR_TOUCH); while (true) { if(SENSOR_3 < 50) { OnFwd(OUT_A); Off(OUT_C); Wait(5); } if(SENSOR_3 > 50) { OnFwd(OUT_C); Off(OUT_A); Wait(5); if(SENSOR_1 == 1)//センサ−1が反応 { OnRev(OUT_A+OUT_C);//少しバック Wait(90); OnFwd(OUT_A);OnRev(OUT_C);//右に約45度回転 Wait(50); OnFwd(OUT_A+OUT_C);//少し直進 Wait(100); OnFwd(OUT_C);OnRev(OUT_A);//左に約45度回転 Wait(50); OnFwd(OUT_A+OUT_C);//少し直進 Wait(120); OnFwd(OUT_C);OnRev(OUT_A);//左に約45度回転 Wait(30); } } } } 苦労した点とその解決 †タッチセンサーをつけるのは簡単だったけれども光センサーをどの位置につけるかに結構悩まされました。でも結局タッチセンサーの真下につけることで解決しました。また光センサーをいくつつけるかも悩んだけど1つの方がプログラムが簡単だと思ったので1つにしました。タッチセンサーに光センサーも加わったのでプログラムは全体的に大変でした。 工夫した点 †
製作時間&費用 †
反省/感想 †今回「ライントレースロボ」を作って、慣れてきたせいか、ロボもプログラムも比較的早くできた。また、役割分担もできていて一人一人しっかりできた。しかし、プログラムの完成度は低く、まだまだ改良の余地があった。今後の課題として、得意分野だけをするのではなく、他の分野の作業(特に、ロボの製作)もできるよう一層の努力が必要である。 是非コメントをお願いします
2006a/B4へ戻る |