〇下の図のようなコースを各チームで作成し、「ミッション」を遂行するためのロボットを作成する。・交差点では1秒間停止し、丁字路では直角方向に進入する時のみ一時停止すること。・ライントレースを行う際、カラーセンサーが読み取った数値によって黒と白の判別をする。今回は黒いラインと模造紙の白の境をジグザグに移動する方法を選んだ。この方法だと交差点を検知しやすいという反面、別の場所で交差点を誤認してしまうことがある。そのため誤認してしまう場所を調べロボットをその度コースに復帰させる必要がある。・Dの交差点では黒の検知時間が長くなることを利用して一時停止できる関数を作成した。・AからDまではコースの外側をライントレースさせ、Dからはコースの内側でライントレースをさせることでGからの円のライントレースを円滑に進められるようにした。これは、初めから内側でトレースしてしまうとCを交差点と誤認してしまうからである。ロボットの全体像である。コースが小さく、狭いためロボットの小回りはプログラミングで調整した。アーム部分はミディアムモーターと接続されており、可動域は180度である。カラーセンサーはロボット中央部分に接続されており、模造紙との距離が離れすぎてしまうと読み取る値もバラバラになってしまうので近くに固定するのが重要である。スタート地点であらかじめアームを上に上げておくことでライントレースしやすくして、ピンポン球回収の時にだけアームを動かせばいいようにした。モーターをリセットする関数である。ロボットを前進、後退させる関数である。モーターを回転させる時間を変数tを用いた。t=1000のときモーターは約1秒間回転する。モーターの回転をそれぞれ逆回転にして左右回転できるようにした。変数tについては前進、後退と一緒である。ライントレースする関数である。これはAからDまでの外側をライントレースするとき、つまり黒線が右側にあるときに使用する。カラーセンサーが読み取る値の時間変数tによってwhile関数から抜けてif関数へとつながるようになっている。while関数から抜けるときは交差点を検知していることになる。while関数の中でもさらに場合分けされていて、カラーセンサーが11以下(黒)の値を読み取ったら左前、11より大きく(白)なったら右前に動きジグザグに進むようになっている。これは、内側をライントレースするとき、つまり黒線が左側にあるときに使用する。上のプログラムと車輪の回転を逆にしているだけで他は一緒である。アーム部分を上下させる関数である。回転させる角度をtとした。回転するスピードは100で安定した。ロボット、プログラムの作成と改めて時間のかかるものだと実感した。ライントレースでは、計測時間を10分の1単位で調整しなければならなく、とても時間がかかった。最終的なプログラムでの成功率は30%ほどとかなり低く、円のトレースがなかなか上手くいかなかったり、初める位置によっても成功率が大きく左右させられた。ピンポン球のリリースはアームを下げるだけというシュートとはほど遠いものとなった。良かった点としては、交差点Dの検知はほぼ確実にでき、外側ライントレースから内側ライントレースへの切り替わりをスムーズに行えた。〇下の図のようなコースを各チームで作成し、「ミッション」を遂行するためのロボットを作成する。・交差点では1秒間停止し、丁字路では直角方向に進入する時のみ一時停止すること。・ライントレースを行う際、カラーセンサーが読み取った数値によって黒と白の判別をする。今回は黒いラインと模造紙の白の境をジグザグに移動する方法を選んだ。この方法だと交差点を検知しやすいという反面、別の場所で交差点を誤認してしまうことがある。そのため誤認してしまう場所を調べロボットをその度コースに復帰させる必要がある。・Dの交差点では黒の検知時間が長くなることを利用して一時停止できる関数を作成した。・AからDまではコースの外側をライントレースさせ、Dからはコースの内側でライントレースをさせることでGからの円のライントレースを円滑に進められるようにした。これは、初めから内側でトレースしてしまうとCを交差点と誤認してしまうからである。ロボットの全体像である。コースが小さく、狭いためロボットの小回りはプログラミングで調整した。アーム部分はミディアムモーターと接続されており、可動域は180度である。カラーセンサーはロボット中央部分に接続されており、模造紙との距離が離れすぎてしまうと読み取る値もバラバラになってしまうので近くに固定するのが重要である。スタート地点であらかじめアームを上に上げておくことでライントレースしやすくして、ピンポン球回収の時にだけアームを動かせばいいようにした。モーターをリセットする関数である。ロボットを前進、後退させる関数である。モーターを回転させる時間を変数tを用いた。t=1000のときモーターは約1秒間回転する。モーターの回転をそれぞれ逆回転にして左右回転できるようにした。変数tについては前進、後退と一緒である。ライントレースする関数である。これはAからDまでの外側をライントレースするとき、つまり黒線が右側にあるときに使用する。カラーセンサーが読み取る値の時間変数tによってwhile関数から抜けてif関数へとつながるようになっている。while関数から抜けるときは交差点を検知していることになる。while関数の中でもさらに場合分けされていて、カラーセンサーが11以下(黒)の値を読み取ったら左前、11より大きく(白)なったら右前に動きジグザグに進むようになっている。これは、内側をライントレースするとき、つまり黒線が左側にあるときに使用する。上のプログラムと車輪の回転を逆にしているだけで他は一緒である。アーム部分を上下させる関数である。回転させる角度をtとした。回転するスピードは100で安定した。ロボット、プログラムの作成と改めて時間のかかるものだと実感した。ライントレースでは、計測時間を10分の1単位で調整しなければならなく、とても時間がかかった。最終的なプログラムでの成功率は30%ほどとかなり低く、円のトレースがなかなか上手くいかなかったり、初める位置によっても成功率が大きく左右させられた。ピンポン球のリリースはアームを下げるだけというシュートとはほど遠いものとなった。良かった点としては、交差点Dの検知はほぼ確実にでき、外側ライントレースから内側ライントレースへの切り替わりをスムーズに行えた。