プログラム

 

移動用:

光センサー()を用いて、前進→回転→停止→前進、を遠隔操作で繰り返す。矢印のあるところが光センサーを反応させる所。センサーの観測する光の強さが基準値を超え、その後基準値を下回ったときに反応する。こんな面倒なプログラムになっているのは基準値を超えただけで反応するようにしてしまうと、

前進回転→停止→前進

の赤矢印を反応させようとしたときに、一度に

前進回転停止前進

まで全部反応してしまうので上手くいかないから。

また回転のところが、右回転(前進)と左回転(バック)となっているのは、四輪で普通に回転させようとすると元の位置から勝手にずれてしまうから。言い換えれば構造上の問題をプログラムで見事にカバー。

超音波センサーは距離が近いときだけ反応するが、通常時は動作に関わらない。

 

ボールの打ち出し用:

ゆっくりと打ち出し用の棒(図の赤丸)が回転して回収したボールの一つを捕え、光センサーが反応すると強い力で棒が回転してボールを打ち出す。

打つ前と打った後に棒が逆回転するのは、打ち出しに失敗して詰まってしまうのを防ぐため。一度反対方向に回転させることによって距離を作り、打ち出すまでに棒に加速をつけさせて打ち出しがスムーズに行くようにした。

 

運んでゴール用:

前進→回転の矢印の所で超音波センサーが反応すると、バックかつ連結した水車の逆回転で回収したボールをその場に置いてくる。矢印のところでは、光が基準値を超える、その後基準値を下回るという二個のセンサーの感知があるが、そのちょうど変わり目に超音波センサーが反応すれば良い。競技の中で言うなら、ボールを回収した状態の機体をゴールに前進させ、ゴール壁が近付いている間に懐中電灯で光センサーを照らし、十分に近付いたときに懐中電灯の光を逸らすとバックしてゴールにボールを置いてくるというようになる。