旧ホームページ最新の20件2020-02-202019b/Member/yuu/Mission32020-02-192019b/MemberOnly/再評価2019b/MemberOnly2020-02-172019b/Member/jh1dmz/Mission32020-02-152019b/Member/udon/Mission32019b/Member/takaki/Mission22019b/Member/udon/Mission22019b/Member/Takehiko/Mission32019b/Member/sumi/Mission32019b/Member/sumi/Mission22019b/Member/takaki/Mission32019b/Member/twin/Mission22019b/Member/sumi/Mission12019b/Member/strand/Mission32019b/Member/twin/Mission32019b/Member/twin/Mission12019b/Member/yamaji/Mission32019b/Member/kurisuke/Mission32019b/Member/shin/Mission22019b/Member/shin/Mission1メニュー編集お知らせの追加バンパーの写真はもう残っておらず、バンパーの解説はできませんでした。図や説明を増やして、他の部分をわかりやすくしていました。†2箇所以上交差点のある周回コース(黒い線)をA0版の画用紙上描き、その自作のコースを3周するロボットを作成せよ。(重複しないようにひとり一つ選ぶ)(a)3秒間停止して待つ。(c)180度旋回して5秒間コースを逆走し、再び180度旋回してもとの向きに走る*なお、私達のグループは(a)と(b)を選択した。上の図のように、交差点が3つ、カーブが4つある。(a)カーブのすぐ後の交差点や(b)急カーブのすぐ近くに交差点がある所が難所である。カーブを曲がりきらないと、交差点で一時停止したとき、車体が黄色の矢印の方向を向いてしまう。そのまま直進するため、その方向にコースアウトする。(上の図を参照)急カーブを曲がりきらないと、2つ光センサが黄色の丸の上に乗ってしまう。このとき黒黒と認識するため、一時停止の後直進し、次のカーブをまわれなくなる。これらの難所はカーブを正確に回れるようにすることで乗り切れた。詳しくは(5)工夫した点参照。最初に設定した位置ではセンサーが離れすぎてしまうので少し狭くするため片方だけ1ブロック分内側に移してある。ロボットの前方にはダブルバンパーを取り付けた。前方のタイヤのみがモーターとつながっている。後輪はゴム無しである。当初は、前輪と後輪を連結したマシンを考えていた。この場合、前輪と後輪の間にある歯車の数が偶数個だと前輪と後輪の回転方向が逆になる。そのため、噛み合わせがうまくいっても前進することができない。このことはディファレンシャル・ギアの原理に関わっている。制作過程の失敗談2:左右のタイヤを連結させてしまったことオリジナルの車体を作った際、左右の車輪を連結してしまった。そのため、プログラムは正常でもうまく曲がることができなかった。くだらないミスだったが、気づくまでに少し時間がかかった。//kaisuuという変数を定義して、何周走ったかの目安にする。//交差点の停止部分を9回通過するまで、以下のプログラムを実行。//左が白、右が黒のとき右に曲がる。//左が黒、右が白のとき左に曲がる。このとき、kaisuuを1増やす。//タッチセンサが反応したら、3秒停止した後、再スタートする。停止中は音楽を止めている。SHOUTOTU()の中身を以下のようにする。Wait(215);}3ライントレースの原理ライントレースには、以下の二つの方法がある。(a)光センサをロボットの前方に、道路の幅よりやや広く並べて取り付ける。(b)光センサをロボットの前方に、くっつけて取り付ける。はみ出さずに停止できるので、この課題では(a)の方が優れている。4untilを用いるか否か例えば右の光センサが白、左が黒のとき、左に曲がらなければならない。用いてプログラムを組むこともできる。上の例の瞬間から左が白になるまでは、右の光センサの変化が無視され、コースの変化に対して柔軟に対応できなくなる。実際、交差点の停止部分で回転し続け、うまくいかなかった。これは以下のような理由による。コースによっては、交差点の停止部分で右が白、左が黒→黒黒と変化することがある。このプログラムでは、白黒→黒黒と変化してもなお、untilの前の命令(すなわち、左が白になるまで左回転)を実行し続けているからである。両方の光センサが黒を認識することで、交差点に到達したことを認識し、停止するようにプログラムした。その後、85秒間直進する。何秒直進するかを調節するのが大変だった。短すぎると、反対側の黒の太線部分で停止しまうし、長すぎると直後のカーブをつっきてしまうからだ。6衝突した際にはマシンの前方にタッチセンサを備えつけ、それが反応することで他のマシンとの接触を認識する。その後、3秒間停止して再び動き出すようにプログラムした。7いかにして、3周したら停止させるか?以下の2つの方法が考えられるが、前者をとった。(a)whileの条件に時間を用いる1周にかかる時間を計測し、その3倍の時間の間だけwhileの中身が実行されるようにする。(b)whileの条件に変数を用いる交差点の停止部分で両方の光センサが黒を認識する度に1増加するような変数を定義し、3周した時点で止まるようにする。衝突した際に3秒間だけ停止するようにプログラムしたから、衝突した場合3周回る前に停止してしまう。よって、後者の方が適している。†1速さと正確さは両立できないとりあえず、スピードを抑え、コースを3周することをまず第一に考えた。直線は問題なかったから、いかにきついカーブでもまわれるかが問題だった。左右のタイヤ間の距離が小さいほど、小回りがきく。そのため、モーターの大きさから考えて幅が最小である、オリジナルの車体を作った。(b)前輪と後輪をつなぐか?実際に、試してみたところそれぞれのタイヤが独立していた方が方向転換がうまく行き、スムーズに曲がれた。前輪と後輪を独立させた。最初は前後輪ともにゴムのタイヤにしていた。カーブを曲がる際に、後輪のゴムが抵抗となってスムーズに曲がることができなかった。松本先生のアドバイスで、後輪をゴムのついていないタイヤに変えることで摩擦を減らし、スムーズに曲がれるようにした。�速さの追求〜ギア及びタイヤの半径比〜今回のマシンのように、前輪のみがモーターと直結しているマシンが、1秒間直進した場合に進む距離を求め、最速の組み合わせを考えてみた。*円周率は3.14とした。aは定数だから、bとdをできるだけ大きくして、cを小さくすれば速くなることがわかる。空中で回転させる場合は問題ないが、実際に地面で回転させる場合は計算と合わなかった。これは、一定なのはモータの回転数ではなく出力であること、タイヤに取り付けたギアの半径を小さくして、タイヤの半径が大きくすれば、地面との摩擦によるモーメント(前進方向と逆向き)が前進方向のモーメントと比較して、大きくなるためだと考えられる。難所の(a)はカーブを曲がる能力を上げることで乗り切れた。交差点を、停止部分と垂直に進むためのプログラムも考えてみた。これは上のプログラムの黒黒の場合の中身に(*にはさまれている部分)に相当する。SENSOR_3>40){OnFwd(OUT_A+OUT_C);Wait(85);}黒黒となったら、どちらかの光センサが白となるまで直進。なったら、停止部と平行になったと判断して直進。右が白、左が黒の場合、右の前輪が出すぎだと判断し、左のタイヤを前に進める。右が黒、左が白の場合も同様。以下の図は左が前に出て停止した場合である。停止後何秒直進するかの調節がまだのため、このプログラムは試作段階である。2軽量化モーターが同じ力しか出せない以上、できるだけ軽い方が早く走れると考えた。穴が開いている部品を使ったり、使う部品は最小限にする等の工夫が考えられる。軽くすると丈夫さが失われ、そのバランスが問題である。曲がる際には摩擦が少ないほうがうまくいく。3輪の方が4輪よりも摩擦が少ない。†カーブの後すぐにある一時停止に車体が斜めの状態で侵入してしまい、一時停止の後直進するというプログラムによってコースアウトしてしまい直すのに苦労しました。結局ロボット自体を変えるしか方法がなく、組み替えるのに時間がかかって大変でした。最初は課題1より簡単だと思っていたが、むしろこっちの方が大変で時間がかかった。それだけにキチンと3周したところを見たときはとてもうれしかった。見た人にもわかるように、そのバンパーの機構でどのように接触センサーを押しているかの説明がほしいです。