目次 #contents *課題1 [#fa670487] 下の図のようなコースを各チームで作成し、「ミッション」を遂行するためのロボットを作成せよ。 #ref(コース.png,,100%) **ミッション [#y8cc62e2] 次のいずれかのコースで黒い線に沿って動き、途中でボールをゴール付近に立てた350mlの空き缶(黄色で表示)に当てるロボットを製作せよ。 (相棒と違うコースを選ぶこと) 第1.第2コースがあるが、私は第1コースを選択した。 ***第1コース [#hef0ce1d] 1:ロボットを長方形X内におき、Aをスタート 2:Bを右折 3:Kで一時停止して左折 4:Jを直進 5:Iを直進 6:Hを左折 7:Gで一時停止して左折 8:Eで一時停止して右折 9:Lを経て正方形Y内に入って停止 (一時停止の指定がある場所は、1秒間停止すること) ボールはロボットが弧KJIH上にある時にQ地点の空き缶に当てる *ロボットの説明 [#fc515f1f] 移動するための車の部分の基本的な構造は付属の冊子を参考に作成した。 ロボット作成において最も苦戦したのはボールを投げる機構だった。最終的にはボールをつかんで移動し、投げる際に離して本体で押し出すような仕組みとなった。 *プログラムの説明 [#if36ed0f] **プログラムを書く際の工夫 [#ae12b55e] 線を追うプログラムは、今までの学習で作ったプログラムを編集して作成した。ラインと白い部分の境界を進むプログラムで、光センサーの捉える明るさを5段階に分けて処理をする。光センサーが標準の明るさだと判断した場合はロボットを直進。少し暗いと判断した場合は左に曲がり、少し明るいと判断した場合は右に曲がる。最も暗いと判断した場合はその場で左旋回し、最も明るいと判断した場合はその場で右旋回する。センサーが交差点に到着した場合、センサーは線の内部を感知することになるため、最も暗いと判断する。したがってその場で左旋回することができるので、このプログラムだけで交差点を曲がることもできる。このようにすることによって、光センサーは線と余白の境界を往復しながら線をを追うことができる。しかし、このプログラムは左旋回はできても交差点を右に曲がることができないため、指定されたようにコースを移動するためにはこのプログラムを改変する必要があった。まず最初に行ったのが、各交差点を認識して、それぞれのルートに応じた進み方にすることだ。まず初めに、今までのプログラムだと線の左側を進んでいたためAB間を進んだとき交差点Bを感知することができなかった。そのためAB間のみに限りプログラムの処理を逆にして線の右側を進むようにした。次に、このプログラムどおりに進むと、交差点J.I.Eでは進行したい方向と異なる道に進んでしまう。これを改善するためにそれぞれ適切なプログラムを追加して、元のラインに戻ってくるように調整した。最後に、交差点GF間の線を追う際に必ずどちらかのカーブの内側を通ることにるが、ロボット本体にある程度の大きさがあり、曲がり切れずに交差点だと判断してしまうケースが多々あった。この問題の解決策としては、交差点Gを出発してから数秒の間はたとえセンサーが交差点に到着したと判断しても、無視して今までのプログラムを継続するようにプログラムすることで解決した。 *問題点とその改善案 [#oad796f8] *感想 [#w2832c85] ボールを投げる機構に苦戦したため、本体やセンサー類にあまり時間をとることができなかった。これをもう少しシンプルで操作しやすいものにできるようにしたかったが、周りのグループの作成したロボットを見て、まだまだ改善の余地があったと感じた。