[[ロボティクス入門ゼミ]] 目次 #contents *勉強ノート [#ha807192] テスト 祐介のページ *自己紹介 [#c8c81e9e] 祐介 -工学部1年 男 -出身地 神奈川県 -趣味 登山、温泉 -好きな食べ物 鶏肉全般 *課題1「介」 [#gdb208e8] **プログラム [#c6db305b] task main() { OnFwd(OUT_C);Wait(25);Off(OUT_C); OnFwd(OUT_A);Wait(300); OnRev(OUT_C);Wait(25);Off(OUT_C); OnRev(OUT_A);Wait(540);Off(OUT_A); OnFwd(OUT_A);Wait(100); OnFwd(OUT_C);Wait(25);Off(OUT_C); OnFwd(OUT_A);Wait(300); OnRev(OUT_C);Wait(25);Off(OUT_C); OnRev(OUT_A);Wait(950);OnFwd(OUT_A);Wait(480); OnRev(OUT_A);Wait(780); OnFwd(OUT_A);Wait(50); OnFwd(OUT_C);Wait(27);Off(OUT_C); OnFwd(OUT_A);Wait(200); OnRev(OUT_C);Wait(25);Off(OUT_C); OnRev(OUT_A);Wait(920);OnFwd(OUT_A);Wait(500); OnRev(OUT_A);Wait(1170); OnFwd(OUT_A);Wait(250); OnFwd(OUT_C);Wait(27);Off(OUT_C); Wait(300); Off(OUT_A);OnRev(OUT_C); task main() { OnFwd(OUT_C);Wait(25);Off(OUT_C); //筆を紙に下ろす OnFwd(OUT_A);Wait(300); //第一画目 OnRev(OUT_C);Wait(25);Off(OUT_C); //筆を上げる OnRev(OUT_A);Wait(540);Off(OUT_A); //二画目へ向かって移動、方向転換 OnFwd(OUT_A);Wait(100); //直進 OnFwd(OUT_C);Wait(25);Off(OUT_C); //筆を下ろす OnFwd(OUT_A);Wait(300); //二画目 OnRev(OUT_C);Wait(25);Off(OUT_C); //筆を上げる OnRev(OUT_A);Wait(950);OnFwd(OUT_A);Wait(480); //以下、三画目へ移動 OnRev(OUT_A);Wait(780); // OnFwd(OUT_A);Wait(50); // OnFwd(OUT_C);Wait(27);Off(OUT_C); //筆を下ろす OnFwd(OUT_A);Wait(200); //三画目 OnRev(OUT_C);Wait(25);Off(OUT_C); //筆を上げる OnRev(OUT_A);Wait(920);OnFwd(OUT_A);Wait(500); //以下、四画目へ移動 OnRev(OUT_A);Wait(1170); // OnFwd(OUT_A);Wait(250); // OnFwd(OUT_C);Wait(27);Off(OUT_C); //筆を下ろす OnFwd(OUT_A);Wait(300);Off(OUT_A); //四画目、停止 OnRev(OUT_C); //筆を放し、終了 } **苦労した点 [#pa5bb694] -キャタピラなので紙を巻き込んでしまう -摩擦が大きく関係してくるため、毎回微妙に動きが変わる。 -ロボットの構造上、その場で転回できないため、字に対して動きが大きくなりすぎる。(紙からはみ出して、床の材質がかわると摩擦が変わり、正確さがかける。) *課題2 ライントレースロボット [#g61b56e1] 画用紙に書かれた黒いライン上を走るロボット。さらに、タッチセンサーを使い、ほかのロボットと正面衝突したときに右に迂回するプログラム。 **プログラム [#hf1eda5d] task main() { SetSensor(SENSOR_1,SENSOR_LIGHT); SetSensor(SENSOR_2,SENSOR_TOUCH); SetSensor (SENSOR_3,SENSOR_LIGHT); //各センサーを設定 while(true) { if(SENSOR_2==1) //相手ロボットと接触したら { OnRev(OUT_A+OUT_C); Wait(30); //少し後退 OnFwd(OUT_A); OnRev(OUT_C); Wait(60);//右を向く OnFwd(OUT_A+OUT_C);Wait(150); //ラインをはずれる OnRev(OUT_A);OnFwd(OUT_C);Wait(60); //ラインに向かう OnFwd(OUT_A+OUT_C);until(SENSOR_3<42);//ラインに乗るまで直進 } if(SENSOR_3<42) //以下、ラインとレースのプログラム 右のセンサーがラインに触れると { OnFwd(OUT_A); Rev(OUT_C); Wait(25); //右に方向修正 OnFwd(OUT_A+OUT_C); //直進 } if(SENSOR_1<42) //左のセンサーがラインに触れると { OnFwd(OUT_C); Rev(OUT_A); Wait(25); //左に方向修正 OnFwd(OUT_A+OUT_C); //直進 } else{OnFwd(OUT_A+OUT_C);} //両方のセンサーが触れなければ直進 } } **苦労した点 [#u75f6f86] コースのどの位置で対向車に接触するかによって、迂回した後にライン上に戻れないことが多く、苦労した。例えば、円形のコースなので、迂回したまま反対側のラインに乗ったり、逆向きに走り出したりなど。そこで相手も迂回してくれることを想定して、小回りで回避するようにした。 *リンク [#gd51b434] [[2006b/A4/ひかるのページ]]