一台に二つのインテリジェントブロックを使いました。上のインテリジェントブロックはタイヤのモーター、ストックしているボールを送り出す装置のモーター、二つのカラーセンサー、超音波センサー、タッチセンサーにつながっており、下のインテリジェントブロックはアームについている3つのモーターにつながっています。アームは人の手に例えると手(指の根本)、手首、肘の3つの関節があります。手と肘はほとんど直接モーターの動力を伝えていますが、腕の軽量化のために手首は肘から歯車をいくつか介してモーターの動力を伝えています。これを含めたアームの製作はハード面において最も苦労した部分だと思います。下の写真は歯車でどのように動力を伝えるかを考えている段階で作った簡易的なモデルです。茶色の軸がある部分が肘のモーターと手首のモーター(黒い歯車がある方が手首のモーター、灰色の歯車がある方が肘のモーター)に相当し、灰色の軸と黒の軸が一直線上に通ってる部分が肘に相当し、黒い軸一本が通っている部分が手首に相当します。ここでは手首と肘が近いのでわかりづらいですが赤いパーツとそれと同じように動く灰色のパーツが前腕に相当する部分です。動作の制御については手首を固定しながら肘を動かす場合は肘と手首のを同じ速度で回さなければならないという点に注意しなければいけません。この点に注意すれば、手首と肘をそれぞれ可動域内で任意の角度にすることができます。†アームについているカラーセンサーを使って缶の上のボールを認識し、アームを使ってボールを持ち上げ、上のインテリジェントブロックの上にあるボールをためておく部分にボールを入れ、ボールを置く空き缶を超音波センサーで認識したらモーターを使ってボールを送り出し、上のインテリジェントブロックと下のインテリジェントブロックの間にある道にボールを通して、アームではみ出ないようにして、缶の上に置くという仕組みになっています。以下の画像のような流れで動作します。本番では課題用のプログラムを用意するのが間に合わなかったため、本番で説明用に使ったプログラムと課題用に使おうと思っていたプログラムを分けて書きます。#fb,sa,da,reset,stopのいずれかを入力する。#入力されたものがfbならばfetch_ball()を実行する。#入力されたものがsaならばset_arm()を実行する。#入力されたものがdaならばdown_arm()を実行する。#入力されたものがresetならばarm_reset()を実行する。#入力されたものがstopならばをプログラムを止める。e,w,h,reset,stop"を表示する。#入力に応じて分岐点までライントレースをする。#,で区切った1つの数字と二つの文字(整数,"r"または"l","r"または"l")を入力する。#follow_line()で使うsign_flとintersection()で使うsignに使う。†まずこのファイルの書き方を書きます。一行目を除いたそれぞれの行では、main()でのfollow_line()を実行中に分岐点に差し掛かった時にどのような動作をするかを指定します。一行目には「s,1」または「s,-1」と書きます。これはプログラム開始時に右と左のどちらの境界をとっているということにするかを表しており、右ならば1左ならば-1を選びます。残りの行ではintersection()だけを実行させるときは「"i",整数,"r"または"l"」、fb()を実行させるときは「"f",整数,"r"または"l"」、pb()を実行させるときは「"p",整数,"r"または"l"」を書きます。整数と"r"または"l"についてはintersection()の説明の中に書いてあります。fb()とpb()実行するときの整数と"r"または"l"はfb()とpb()の実行直前に行うintersection()がうまく動作するように書きます。†ハード面についてのアイデアをまとめる段階が少し雑になってしまい、メンバーの意見を十分に取り入れきれず、ロボットの構造のアイデアが固まってからもその実現や細かい変更に多くの時間を使い、本番の前々日までハード面の修正が必要となり、最終的にプログラムを試す時間が少なくなってしまいました。プログラムは主に私が作ることになっており他のメンバーにも手伝ってもらえることにはなっていましたが、プログラムを分担して作れるように考えることとプログラムに関する情報共有が不十分であったことからプログラムをほとんど一人で作らざるを得ませんでした。最終的に本番の前日から徹夜して大まかに作ってあったプログラムを修正しつつ作りましたが、インテリジェントブロックへのプログラムのコピーにかなりの時間がかかり、数値の調整ができず、本番には間に合いませんでした。関数ごとの挙動に関するデバッグは終わっていたので、もう少し時間があれば完成しそうというところまでは作れていました。これらのことを通して改めてグループで何かを作ることの難しさと計画的に進めることの重要性を感じましたが、それでも一人では今回作ったようなものを作るのは難しかったと思うので、これからこのような協力して何かを作る機会があった時にはこの経験を生かしてより良い結果となるようにしていきたいです。