今回の課題は、黒いライン上にある障害物(ここでは缶)を避けながらコースを一周(時計回りもしくは反時計回り)するプログラムを作成するという課題でした。私は、反時計回りのプログラミングをやりました。コースは下の通りです。1〜7の順番でプログラムを作成しました。7の部分で缶をひとつ設置し、缶を動かすプログラムを作成しました。矢印の方向に進みます。†ロボットを作る時に一番考えたのは、光センサーの位置と缶を動かすアームの部分です。光センサーは、なるべくロボットの本体に近い形にし、小回りが利くように取り付けました。当初はロボの脚がキャタピラーであったり、虫の足をイメージしたものであったが、スピーディーで小回りが出来るタイヤに変更しました。ちなみにタイヤは前輪駆動にし、後ろはシンプルに補助車輪を付ける形にしました。缶を掴むアームはただ挟む感じではなく、片方にのみアームをつけることで包み込む形で缶を避けるシステムにしました。相方さんがより頑丈にアームを改良してくださいました。缶を認識するタッチセンサーはバンパーに凹凸をつけることでより感度よく反応するように工夫しました。アームは左サイドにのみ取り付けました。後ろにおもりを付けると動きがスムーズになりました。タッチセンサーにバンパーを取り付けました。左右違う長さの部品を取り付け、缶がいい具合にフィットするように工夫しました。†アームが若干重くなってしまって、重心が前になってしまいました。その為、動きがガクガクしてしまうのが難点。タッチセンサーもバンパーをつけたものの、軽すぎる空き缶の場合は認識する感度が低いためより改良する必要がありました。私が担当したのは、コースを反時計回りで動くプログラム。交差点を渡るプログラムに少し戸惑ったが、タイマーとカウンタを使うことで正確に渡れるようにしました。光センサーの値が変わってしまう時がある(変数にすればよかったのだろうか...)。プログラムの冒頭に定数を決めておく。//�にかかる時間サブルーチンを使ってプログラムをコンパクトにする。//カウンタをリセット}交差点は今回一番悩み、苦労した点です。最初は、カウンタをなかなかうまく使うことができず交差点と認識して渡ることが出来ませんでした。試行錯誤を繰り返して、なんとかカウンタを使うことが出来ました。このプログラムでは、交差点に差し掛かった時に黒が連続して6回位以上になった場合は、音で交差点と知らせ、交差点と判断して横断します。音の動作を入れたことで、交差点と認識できているかどうか、確かめることが出来るようになったので良かったと思います。//右旋回Wait(70);OnFwd(OUT_AC);Wait(100);Off(OUT_ABC);}缶をつかむプログラムは移動に結構スペースを取るため、もう少し小回りができるプログラムにすればより良くなると思います。//停止}サブルーチンを使用したことでコンパクトにすることが出来ました。�は半径が小さく、交差点のプログラムだとうまく走ることが出来なかったので、通常のライントレースのプログラムにしました。���は、すべて交差点を渡ることが出来るプログラムにしました。�では、缶を移動するプログラムを入れ、ゴールするようにしました。高い確率で一周できるようになりました。缶を動かすアームを包み込んで動かす仕組みにしたのがなかなか良かったと思う。オリジナルのロボットを作ることが出来た。タッチセンサーを改良して、缶を認識する感度をもっと上げる工夫をすべきであった。目と羽を付けたことで、ロボットが可愛く?なった(笑)余談ですが、目が動いている途中によく取れます。†コースを反時計回りにするプログラミングをしたが、ロボットが自分の思っている通りに動いてくれない時があり、かなり苦戦しました。交差点を曲がるプログラムを、始めはカウンタを使ったプログラムでやっていたがうまくいかず、タイマーとカウンタを使ったプログラムにしたらうまく交差点を渡れるようになりました。交差点ときちんと判断し、渡ることが出来るようになったのでよかったです。時々失敗することもあるため、もう少し微調整が必要であると思いました。缶を動かすプログラムでは、動きをシンプルにしたことで組み込みやすかったです。移動範囲を狭くしたほうがよりコンパクトになってよかったと思います。今回、初めてロボットのプログラミングをしてみて分からないことばかりでしたが、同じ班の仲間に助けをもらったり、練習問題を繰り返しやってみたりして、何とか出来たのでよかったです。缶をひとつ置いた場合しか出来なかったので、ふたつ置いた場合のプログラムをやってみたいです。