[[2010b]] #contents *課題の内容 [#paea5709] A4の紙に相棒の似顔絵を描くロボットを作成する。 -一人につき一つ以上のプログラムを作成すること。 -ペン以外はキットに含まれる部品を使うこと。 -改良や調整をしやすくするため、プログラムにおいて、できるだけサブルーチンや関数、マクロなどを使う。 *メンバー [#g6faa052] -青山伊吹 -植田みるく *製作したロボット [#tb3f6159] **試作段階のロボット [#w1398209] アームをロボットの横の部分に取り付けてペンを上げ下げできるようにしてみました。 上は本体、下はアーム部分だけの写真です。 このままだと、ペンがロボットの横側にきてしまい、プログラムと、ロボットが描く絵とのずれが大きくなります。 また、下の写真で赤く丸のついた部分が非常に取れやすかったため、ペンの上げ下げがうまくいきませんでした。 &ref(2010b/A2/課題1左/CA3A0044.JPG); &ref(2010b/A2/課題1左/CA3A0042.JPG); **完成したロボット [#x547f1da] 見た目がだいぶ変わりました! 左が横から見た写真で右が正面から見た写真です。 1.試作段階からの改善点 -ロボットの横ではなく、前にペンがくるようにしたこと。これにより、プログラムと、ロボットの描く線とのずれが小さくなりました。 -取れやすいところも特になく、ペンの上げ下げができるようになりました。 2.工夫した点 -モーターとタイヤを連結させ、タイヤにペンをはさむことによって、タイヤの動きがペンの動きと同じになるようにしました。 -タイヤにペンをはさんだだけでは、タイヤが回転するうちに、ペンがタイヤの間から外れてしまう事があったので、それがないようにペンを固定する部分を2箇所取り付けました。(写真の赤で囲った部分) &ref(2010b/A2/課題1左/CA3A00541.jpg);&ref(2010b/A2/課題1左/CA3A00531.jpg); *プログラム [#rf8e2bd3] **みるくのプログラム [#x7af882e] #define pen_down OnFwd(OUT_B);Wait(50);Off(OUT_B); //ペンを下げる #define pen_up OnRev(OUT_B);Wait(50);Off(OUT_B); //ペンを上げる #define turn_c(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t);Off(OUT_A+OUT_C); //C側に曲がる #define turn_a(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t);Off(OUT_A+OUT_C); //A側に曲がる #define go_straight(t) OnFwd(OUT_A+OUT_C);Wait(t);Off(OUT_A+OUT_C); //直進 #define go_back(t) OnRev(OUT_A+OUT_C);Wait(t);Off(OUT_A+OUT_C); //後退 task main() { turn_c(400); //輪郭を描く pen_up; go_straight(40); turn_c(100); go_straight(50); turn_c(100); go_straight(70); pen_down; go_straight(20); //目1 pen_up; go_back(100); turn_a(100); go_back(30); turn_c(100); go_straight(65); pen_down; go_straight(40); //鼻(まっすぐの部分) pen_up; go_back(50); turn_a(100); go_straight(60); pen_down; go_back(10); //鼻(折れ曲がりの部分) pen_up; go_back(70); turn_c(100); pen_down; go_straight(20); //目2 pen_up; go_back(75); turn_c(160) pen_down; turn_a(80); //口 } *感想・反省 [#w30bd610] コメント TAKA 写真に解説を入れるのは良かったです。工夫点、反省点を書き出して下さい。「コメント欄を作って下さい」 FI プログラムは二人分お願いします。書くべきポイントは抑えていると思います。