2006a/B6
ライン・トレース・ロボットの制作†
黒い線に沿って動くロボットを作る。
メンバー†
- さんさー:プログラム担当
- 偏頭痛:ロボット担当
- HAL:HP担当
所要時間†
ロボット製作、プログラム、試運転合わせて約7〜8時間
プログラム†
思うように動かず、とっっっっっっっっっっても苦労しました。
ライントレース・プログラム :さんさー†
#define THRESHOLD 40
task main()
{
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_2,SENSOR_TOUCH);
SetSensor(SENSOR_3,SENSOR_LIGHT);
while(true)
{
OnFwd(OUT_A+OUT_C); // 基本は前進
if(SENSOR_1 < THRESHOLD){ //センサ−1が黒い線に乗ったら、右回り
Off(OUT_A);
until(SENSOR_1 > THRESHOLD);
}
if(SENSOR_3 < THRESHOLD) { //センサ−3が黒い線に乗ったら、左回り
Off(OUT_C);
until(SENSOR_3 > THRESHOLD);
}
ここに、下のプログラムを入れることで
タッチセンサー反応後の動きを指定できる。
}
}
前方のロボットにぶつかったら、反転して進む :さんさー†
if(SENSOR_2 == 1){ //タッチセンサーが反応したら
OnRev(OUT_A);Wait(180); //反転
OnFwd(OUT_A);
}
前方のロボットにぶつかったら、追い抜かしてライントレースを続ける :HAL†
if(SENSOR_2 == 1){ //タッチセンサーが反応したら
OnRev(OUT_A);Wait(90); //曲がって、線を探す
OnFwd(OUT_A);
}
班員の一言†
- もうプログラムを書きたくない。
- 教室内の人口密度が高いです。
- 目がチカチカしてきた。
- ごめんなさい。
工夫・改善したところ†
- 前回のロボットは部品が多く、組み立て方が複雑で改造するのが難しかったので、今回のロボットは部品を減らしシンプルな作りにした。
- だが、ブロックのくっつけ方が甘く、持ち上げるたびにセンサーや本体が外れてしまったので、パーツを足し試作段階より頑丈な作りにしていった。
- ロボットの軽量化は、ただ部品を減らすだけでは無理だということがわかった。
- プログラムやロボットの異常を発見する作業がとても大変だった。
- 始めは直進さえできなかったのだが理由が分からず、ロボットを組み直したり、電池を替えたりと異常がないか調べてみた。
- それでも理由がかからなかったので、他の班のプログラムを借りてテストした際、普通に走行することができたのでロボットに異常がないことが分かった。
- プラグラムを編集して走らせたところ、緩やかなS字カーブと90度の左カーブは曲がることができたのだが、90度の右カーブを曲がることができなかった。また、センサーの両方が線の上に乗ってしまい、止まってしまうことがあった。
- 両方のセンサーが線に乗ってしまわないように、センサーの間隔を開けてみた。開けすぎるとまた曲がらなくなるが、両方のセンサーが線に乗ってしまう事は少なくできた。
- 左右のセンサーによって線の感知の仕方が違ったので、閾値を測り直した。センサーによってくせがある事と、曲がらない大きな原因が分かった。
- ロボットのカーブへ入る角度によって、カーブを曲がれたり曲がれなかったりした。何度かは知らせた結果、少し直線を走らせてからカーブに入れば曲がれる事が分かった。
- 反転のプログラムは回転速度を事前に測ってからプログラムを作ったので高確率で成功した。
- 追い抜く方は円形のコースを利用し、インコースに曲がりショートカットして抜かすプログラムにした。相手の大きさに関わらず、簡単に追い抜く事ができるようになった。
- 時間は気づけは9時になろうとしている。
(課題2用ライントレースロボ)
- タッチセンサー1つと、光センサ−2つがついています。
- 小回りが利くほうがよいと考え、前回のキャタピラからタイヤに変更。
- タイヤは様々なものを試せるよう取り外しを容易に、それでいて強度は抜群。
- それに伴い無駄なスペースをなくしコンパクトに仕上げました。
- タッチセンサー、本体の取り付け強度が弱かったので、発表前日に補強を加えた。
- 結果完璧な姿へと進化をとげました。
コメント 何でもどうぞ〜†