[[2006a/B7/課題2左]] [[2006a/B7]] **今回のメンバー [#m3c997be] クーロン茶、たいよう、おかじ * 光センサーを使ったライントレースロボット [#ze3df488]&br; 紙に黒ペンで線を引いて、その上をひたすらまわるロボットの作成&br; **命名・ライントレースロボット『たどるくん』byおかじ (まるで象サンみたいね)[#caa1e92a] ★製作者★ おかじ #ref(2006a/B7/課題2左/SN340006.JPG,50%,正面) これ↑が一応ロボットの原型?です。課題の発表時にはこの姿で走らせました。~ しかし、こんな何の特徴もないロボットじゃつまらない!閲覧者の皆さん、そう思いませんか!?(いや、別に)~ そこで、ロボット製作のエキスパート、おかじさんが素晴らしいロボットを製作してくれました。それがこれ↓ #ref(2006a/B7/課題2左/ashi.jpg,120%,正面) 一応足もあります☆この足で重たい体を支えてます。 #ref(2006a/B7/課題2左/hana.jpg,120%,正面) この鼻。。。ここだけの話やけど上下運動します!!電子辞書を持ち上げるくらいのパワーがあります(マジで) <クーロン茶の戯言> ~ おかじさんによると、本当はこれ、ぞうさんじゃなくてカブトムシのつもりだったらしいです(^o^;でも、最終完成体はぞうでもカブトムシでもなくて、サソリロボットになったんですが...~ ちなみに、この上下する鼻を製作するのに余ってたギアーを10個も使ったとの話(^^; **プログラム [#z174e241] まず、ライントレースをするためのプログラムのみを考えてみることにしました。タッチセンサーのプログラムは後ほど考えることに。 ライントレースのみのプログラムです。<製作者> クーロン茶 task main() { SetSensor(SENSOR_1,SENSOR_LIGHT); SetSensor(SENSOR_3,SENSOR_LIGHT); OnFwd(OUT_A+OUT_C); while (true) { if(SENSOR_1 < 40) { OnFwd(OUT_C); Off(OUT_A); } if(SENSOR_3 < 40) { Off(OUT_C); OnFwd(OUT_A); } } } 次に、上のプログラムに2種類のタッチセンサーのプログラムを追加しました。 右によけて追い越すプログラムです。☆製作者☆ クーロン茶&たいよう task main() { SetSensor(SENSOR_1,SENSOR_LIGHT);センサ−1がライトセンサーであると宣言 SetSensor(SENSOR_2,SENSOR_TOUCH);センサ−2がタッチセンサーであると宣言 SetSensor(SENSOR_3,SENSOR_LIGHT);センサ−3がライトセンサーであると宣言 OnFwd(OUT_A+OUT_C); while (true) { if(SENSOR_1 < 40) { //左側のライトセンサーが黒線に触れると OnFwd(OUT_C); //右側のタイヤだけを回転 Off(OUT_A); } if(SENSOR_3 < 40) { //右側のライトセンサーが黒線に触れると Off(OUT_C); //右側のタイヤだけを回転 OnFwd(OUT_A); } if(SENSOR_2 == 1) { //タッチセンサーが入ると OnRev(OUT_A+OUT_C); //いったんバックして Wait(50); OnFwd(OUT_A); //右によけて追い越して Wait(83); OnFwd(OUT_C); Wait(160); OnRev(OUT_A); Wait(83); OnFwd(OUT_A); Wait(160); OnRev(OUT_A); Wait(87); OnFwd(OUT_A); //またラインとレースを開始します } } } 180度反転して逆走し始めるプログラムです。☆製作者☆ クーロン茶&おかじ task main() { SetSensor(SENSOR_1,SENSOR_LIGHT); センサ−1がライトセンサーであると宣言 SetSensor(SENSOR_2,SENSOR_TOUCH); センサ−2がタッチセンサーであると宣言 SetSensor(SENSOR_3,SENSOR_LIGHT); センサ−3がライトセンサーであると宣言 OnFwd(OUT_A+OUT_C); while (true) { if(SENSOR_1 < 40) { //左側のライトセンサーが黒線に触れると OnFwd(OUT_C); //右側のタイヤだけを回転 Off(OUT_A); } if(SENSOR_3 < 40) { //右側のライトセンサーが黒線に触れると Off(OUT_C); //右側のタイヤだけを回転 OnFwd(OUT_A); } if(SENSOR_2 == 1) { //タッチセンサーが入ると OnRev(OUT_A+OUT_C); //180度反転し Wait(50); OnFwd(OUT_A); //逆走し始めます Wait(165); OnFwd(OUT_C); } } } **工夫した点 [#r1cd8ac1] ★ロボットと制作過程☆&br; 1、カーブでも小回りがきくように、左右のタイヤ幅をできるだけ狭くした。これにより、少々のきついカーブでもラインから脱線しにくくなった。&br; 2、接続のコードが見えないように内部にコードを通し,見栄えを良くした。&br; 3、なんとなく鼻?をつけた 笑☆ でも、重心が片寄りすぎて前の方に支える足を付け加えるはめになった(>_<)&br; おまけ:角(鼻)の動くプログラム、たどるくんの完全体の画像はおかじの個人ページに貼ってあります。 ☆プログラム制作過程★