[[2010b]] #contents *メンバー [#fcadf1f1] ヒカル 理香 *ロボットについて [#id2145ce] **本体 [#o15b0364] 似顔絵を描くのに必要なペンを上下させる動作をスムーズに行えるようにしたかったため、シンプルな作りにしました。ペンをどの位置につけるか迷いましたが、ロボットの動きを損なわせないために上部に取り付けました。 #ref(101108_170009.jpg) **工夫点 [#l981f87f] 工夫した点は描いている最中にペンがブレないように支えをつけた点と、ペンの上げ下げをしているときにだんだんとギアがずれてしまうところを上手く固定した点です。 #ref(101108_170038.jpg) #ref(101108_170147.jpg) **苦労した点 [#s7d4d917] 始めはタイヤじゃなくて足でやっていたのですが、それでは描くときにブレてしまうので今のタイヤに変えました。しかし、タイヤに大きいギアを使ってしまったのでペンの上下で使うギアが小さくなってしまいました。そのため上げるときにぶつかってしまっていたので、色々と試して今の形に持っていくことができました. *プログラム [#md91cc51] **ヒカル [#p0518328] #define Pen_Down(t) OnFwd(OUT_B);Wait(t);Off(OUT_B); //ペンを下げる #define Pen_Up OnRev(OUT_B);Wait(5); //ペンを上げる #define Right(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t);Off(OUT_A+OUT_C);//右に回る #define Left(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t);Off(OUT_A+OUT_C); //左に回る #define Forward(t) OnFwd(OUT_A+OUT_C);Wait(t);Off(OUT_A+OUT_C); //前進する #define Retreat(t) OnRev(OUT_A+OUT_C);Wait(t);Off(OUT_A+OUT_C); //後退する task main() { Pen_Down(10); Right(530); //顔の形を書く Pen_Up; Left(66); Retreat(60); Pen_Down(23);//右目を書く Retreat(30); Pen_Up; Retreat(25); Pen_Down(23);//左目を書く Retreat(30); Pen_Up; Forward(120); Left(80); Retreat(20); Pen_Down(23);//鼻を書く Retreat(20); Pen_Up; Forward(45); Right(35); Pen_Down(23);//口を書く Left(70); //完成 } ***完成した似顔絵 [#y34c5876] #ref(20101108170004.jpg) **理香 [#n21be318] #define circle(t) OnFwd(OUT_A); OnRev(OUT_C); Wait(t); Off(OUT_A+OUT_C);//円を書く #define pen_down OnFwd(OUT_B); Wait(20); Off(OUT_B); //ペンを下げる #define pen_up OnRev(OUT_B); Wait(20); Off(OUT_B); //ペンを上げる #define go_forward(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_B); //後進 #define turn_right(t) OnFwd(OUT_A); Wait(t); Off(OUT_A); //右に回る #define turn_left(t) OnFwd(OUT_C); Wait(t); Off(OUT_C); //左に回る task main() { pen_down; //輪郭を書く circle(530); pen_up; turn_left(20); //向きを変える go_back(20); //位置を調整 pen_down; //右目を書く go_back(30); pen_up; turn_right(50); //向きを変える turn_left(70); go_back(18); //位置を調整 pen_down; //左目を書く go_back(30); pen_up; go_forward(60); //向きを変える turn_right(130); go_back(50); //位置を調整 OnRev(OUT_C); //向きを変える Wait(50); Off(OUT_C); go_back(50); //位置を調整 pen_down; //口を書く go_back(60); pen_up; //終了 } ***完成した似顔絵 [#of4a65aa] #ref(101108_162940.jpg) *感想 [#h3157b89] **ヒカル [#x0ef6e56] 今回は初めてのプログラミングでなれないことが多く、作業効率が悪くなってしまったため簡単なものになってしまいましたが、次は創意工夫を施し、より完成度の高い物を作りたいと思います。 **理香 [#od516610] プログラミングすることによりモーターを動かし、実際の動きにするというのが予想以上に難しかったです。ロボットもプログラミングも一つ一つ問題を解決していくことが大切だと思いました。 *コメント [#c39788d3] ご自由にお書きください #comment