白いホイールを投げるロボットを作成し、以下の動きをするようにプログラムを作成せよ。全方向から懐中電灯(固定)の方向を探しだし、手前50cmまで進んで懐中電灯を狙ってブロックを投げる。懐中電灯をゆっくり動かしたとき懐中電灯に向かって進み、動きを止めれば50cmの距離まで近づいて懐中電灯を狙ってブロックを投げる。・条件・モータ、光センサ、タッチセンサはそれぞれ2個まで使用可。平面的な方向だけでなく懐中電灯の高さまで含めた方向を探す場合にはモータを3個使用してもよい。初めはそのままモータの回転力を用いてホイールを投げる方法を考えました。これではモータのトルクでは不十分なため、放物運動で飛距離が短く満足のいくものではありませんでした。そこで、もっと飛距離が出て加えて他のチームと違う方式を考えた場合、ゴムを使用することを思いつきました。これはパチンコやゴム鉄砲からヒントを得ました。光センサーは前方に2つ付けることで光方向を読み取る精度を上げることを考えました。力強さや安定性から車輪はタンクを用いて以下に仕上がりました。タンクは旋回時の車体のぶれが大きいためやはり車輪駆動方式にする事に。以上を踏まえ最終的なロボットは以下のようになりました。中央のモーターがFF車のエンジンが剥き出しのような印象を与えるロボットに仕上がっています。モータは一つなので負荷を押さえると共に、回転軸を一方の車輪に固定するため、3輪駆動方式にしました。車体の水平を保つのに加え、負荷を押さえるために後輪のゴムは外しました。光センサーは懐中電灯をLEDライトにしたら光の指向性が高くなり上手に左右の光センサーで捉えられなかったため、中央に一つ付けました。今回投げるホイールは左のタイヤのゴムを剥いだ右側のものです。初め、図のようにホイールを輪ゴムに引っかけて、横から棒でホイールを固定します。動作時は�のギアが右に回転することでホイールを引っかけていた棒が引き出されます。今回のポイントは一つのモーターでマシンを駆動させるディファレンシャル・ギアです。このギアの組み方なら片方のギアを固定しても、もう片方のギアを回すことが出来ます。上の図で�、�、�の3つのギアを内包する灰色のギアが回ることで内側の�のギアも軸の周りを回ります。従って噛み合っている�と�のギアも回転することで動力を左右の車輪に伝え、前進します。支え棒により�のギアが回らないようになります。�のギアが�のギアの周りを回転しながら回ります。従って�のギアは�のギアに噛み合わさっているため、�のギアも回転することで片方の車輪だけが回ります。†メカニカルな打ち出し構造ではないが、パチンコのようなゴムの打ち出しはモーターの回転力を使うより非常に良く飛びます。今回作製したマシンは5メートル以上飛びました。ゴムの強度の調整により飛距離も調整可能になりました。ホイールが放物軌道を描きにくくなっています。}Off(OUT_A);}基本アルゴリズム・適正光量が得られない場合は回転動作により光源を常に探し続ける。・条件にあった場合だけ前進動作や投てき動作を行うようにする。課題1,2共に光源方向に進む条件、50�手前でホイールを投げる条件が同じであるため、プログラム1で光源方向が定まらない限り光源を探し続けるようにするとどちらの課題も一つでこなせるようになりました。プログラムの将来性を考えた場合、閾値は初めに変数で定義していた方がよいかもしれないが、それでも全体的にかなりシンプルなプログラムになっている。懐中電灯にホイールを当てることは出来ませんでしたが、課題はだいたい達成できたと思います。光センサーを2個用いることが出来ればもっと左右方向の精度が上がったかもしれません。プログラム動作前に周囲の光量など環境設定が必要となることや、マシンが永遠に動き続けるなどはプログラムの改善を考えたい。改善後プログラムにbreakコマンドを入れることで投てき後にマシンが止まるように出来ました。†whileから抜け出すにはbreakを使うとよいと思います。ロボットの説明やプログラムのシンプルさはとてもよいです。デファレンシャル・ギアを使うと、正回転だけでは直進できないはずです。課題2では光源が左右に曲がったりすることもあり、直線運動ではありません。20:11:39このデファレンシャル・ギアが正回転で右に曲がり、逆回転で左に曲がる様式で組まれていると勘違いしていました。ディファレンシャル・ギアの説明はとても良いです。課題1と課題2の両方できる汎用性が高いプログラムを組んだのはすばらしいです。ある程度強い光の方向に進むプログラムより、相対的に最も強い光の方向に進んだほうが正確な光源のある方向を見つけられます。課題2では光源が直進運動だけでなく、左右に曲がる場合に対応できないのが惜しいです。プログラムを頑張ればもっと良い評価になります。