*課題2 黒い線に沿って動くロボット [#pa8f0a88] 黒の線に沿って走るロボットを作成した。 **課題のポイント [#rc682c5a] ●交差点で優先側を走っていない場合には、一時停止し、もう一台のロボットが走り去ってからまた動き出すこと。 ●前方にあるもう一台のロボットに接触した場合、ロボットを停止させ、もう一台のロボットが走り去るのを待つ。 ●ロボットのスピードは速い方がよい。 ●コースには二カ所以上のカーブを入れること。 *コース [#ya525120] &ref(2007a/A6/課題2右/Image0137.jpg,100%,a6); **解説 [#ved43acf] 交差点が二個あるカーブを重視した少し複雑なコースにした。 *ロボット [#f6c56f53] **製作過程1(タイヤなどの土台) [#g1799d7b] &ref(2007a/A6/課題2右/Image0135.jpg,100%,a6); ***解説 [#p4d70717] タイヤは三輪で後輪に大きなタイヤを置くことによって動きを安定させ、土台は地面に対し平行になるようにした。 **製作過程2 (光センサー)[#u8f86c9e] &ref(2007a/A6/課題2右/Image0138.jpg,100%,a6); ***解説 [#a85f237e] 光センサーは前の方につけ、外れるのを防ぐため輪ゴムで補強した。 **制作過程3(タッチセンサー) [#v09663ad] &ref(2007a/A6/課題2右/Image0133.jpg,100%,a6); ***解説 [#rdfee398] タッチセンサーは一番前につけ、一つだけにすることによってスリムさを出すことにした。 **完成図 [#dcc2dd03] &ref(2007a/A6/課題2右/Image0136.jpg,100%,a6); ***解説 [#y1fd5806] 全体として細長くシンプルな感じになり、難しい感じがなく、非常に使いやすく、いいロボットになった。 *プログラム [#s3c2f3d1] #define THRESHOLD 40 task main() { SetSensor(SENSOR_1,SENSOR_LIGHT); //センサー1を光センサーとする SetSensor(SENSOR_2,SENSOR_TOUCH); //センサー2をタッチセンサーとする while(true) { while(SENSOR_2==0) //タッチセンサーが触れてないとき { if(SENSOR_1 < THRESHOLD) //黒い線に沿うプログラム { OnFwd(OUT_A); Off(OUT_C); }else{ Off(OUT_A); OnFwd(OUT_C); } } Off(OUT_A+OUT_C); //タッチセンサーが触れてるとき、一時停止するプログラム Wait(100); } } *まとめ [#r2dfc503] **工夫&苦労した点 [#m467f11c] 工夫したところや苦労したところは、タッチセンサーと光センサーをどのように一直線上に置き、使いやすくかつシンプルにするかという点で、レゴをたくさん使って強度を補強すると重くなりタッチセンサーと光センサーの働きもあまりよくないので、考えた結果輪ゴムを使うことにより、強度の補強と機械の軽量化に成功した。 **感想 [#kcfcb074] 機械のバランスを考えるとうまくいかないことが多く、プログラムを作るときも、ものすごく手間取ってしまったが、出来上がりを見てみるとなかなかよく出来ていてよかったです。今度はもう少し複雑なプログラムにしたいと思いました。 -シンプルに仕上がっていると思います。課題のポイントを説明しているのは良いでしょう。 -- [[ヒロヤ]] &new{2007-06-21 (木) 13:06:45}; #comment