'''&size(50){もくじ};''' #contents *メンバー[#f44996f5] -風魔tk -キングオブハート の二人でーす。よろしーく *今回の方針 [#db9c756b] -ペンの昇降と、マシンの移動で似顔絵を書く。 -方向転換の際にペンの位置がずれるのが面倒だと感じたので、マシンの回転中心にペンを配置する。 --これによりカクカクの線がとても書きやすくなるはずである。 -ゴムは高価なので使わないようにする。 -なるべくスタイリッシュにする。 *今回作ったロボット [#a6cb101f] #ref(./PPP2.jpg) #ref(./ooo.jpg) 不格好だけどかなり頑丈。スタイリッシュではないが、まあ良しとしよう。 *ロボット製作 [#u336def8] まったくのオリジナルは大変だと感じたので、初めに作ったロボをちょっと分解し、左右のタイヤ間の距離を広げ、マシン中央にペンの昇降機を配置する。 #ref(./P1010349_2.jpg) **ペンの昇降機について [#v5262b65] ペンをしっかり固定するために、モーター直結のタイヤ1つと、補助のタイヤ2つでペンを上下させるオーソドックスなものにした。 #ref(./pen.jpg) **本体について [#obd1efb9] -タイヤ間を広げた結果、メインフレームがふにゃふにゃになったので、あまりのパーツで補強する。 --(マシンが縦に長くなりそうだったので、フレームの下部から補強した。) -ペンが真ん中にくるように昇降機を配置すると、RCX本体が置けなくなり、左右非対象になってしまった。重量のバランスをとるため、反対側にブロックを大量に載せた。 -RCX本体がやたらと外れるので上から補強しようとしたが、やめた。 *似顔絵 [#h6184533] 相方の似顔絵をできる限り似せて描きます。 **プログラム [#xc5a8458] 風魔tkのプログラム↓ #define down OnRev(OUT_B);Wait(5);Off(OUT_B); //ペン5秒を下げる #define up OnFwd(OUT_B);Wait(5);Off(OUT_B); //ペンを5秒上げる #define go_st(t) OnFwd(OUT_A+OUT_C);Wait(t);Off(OUT_A+OUT_C); //t秒前に進む #define turn_r(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t);Off(OUT_C+OUT_A); //右にt秒その場で回転 #define turn_l(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t);Off(OUT_A+OUT_C); //左にt秒その場で回転 task main(){ down; go_st(100);//輪郭始め turn_l(45); go_st(100); turn_l(130); go_st(100); turn_l(50); go_st(100); turn_l(110); go_st(100);//輪郭終わり up; turn_l(147); go_st(30); turn_l(60); down; go_st(30);//左目 up; go_st(20); down; go_st(30);//右目 up; turn_r(140); go_st(50); down; go_st(25);//鼻 turn_l(100); go_st(25); up; go_st(40); turn_r(137); down; go_st(40);//口 } キングオブハートのプログラム↓ #define up OnFwd(OUT_B);Wait(6);Off(OUT_B); //ペン上げ #define down OnRev(OUT_B);Wait(6);Off(OUT_B); //ペン下げ #define left45 OnFwd(OUT_A);OnRev(OUT_C);Wait(53);Off(OUT_A+OUT_C);//左に45°回転 #define right45 OnFwd(OUT_C);OnRev(OUT_A);Wait(53);Off(OUT_A+OUT_C);//右に45°回転 #define left90 OnFwd(OUT_A);OnRev(OUT_C);Wait(105);Off(OUT_A+OUT_C);//左に90°回転 #define right90 OnFwd(OUT_C);OnRev(OUT_A);Wait(105);Off(OUT_A+OUT_C);//右に90°回転 #define left30 OnFwd(OUT_A);OnRev(OUT_C);Wait(70);Off(OUT_A+OUT_C);//左に60°ほど回転 #define right30 OnFwd(OUT_C);OnRev(OUT_A);Wait(70);Off(OUT_A+OUT_C);//右に60°ほど回転 #define masu1 OnFwd(OUT_A+OUT_C);Wait(20);Off(OUT_A+OUT_C);//1マス進む #define masu2 OnFwd(OUT_A+OUT_C);Wait(40);Off(OUT_A+OUT_C);//2マス進む #define masu3 OnFwd(OUT_A+OUT_C);Wait(60);Off(OUT_A+OUT_C);//3マス進む #define masu4 OnFwd(OUT_A+OUT_C);Wait(80);Off(OUT_A+OUT_C);//4マス進む #define back_masu1 OnRev(OUT_A+OUT_C);Wait(20);Off(OUT_A+OUT_C);//1マス下がる #define back_masu2 OnRev(OUT_A+OUT_C);Wait(40);Off(OUT_A+OUT_C);//2マス下がる #define naname1 OnFwd(OUT_A+OUT_C);Wait(26);Off(OUT_A+OUT_C);//正方形1マスの対角線分すすむ #define naname2 OnFwd(OUT_A+OUT_C);Wait(52);Off(OUT_A+OUT_C);//正方形2マスの対角線分すすむ #define back_naname1 OnRev(OUT_A+OUT_C);Wait(26);Off(OUT_A+OUT_C);//正方形1マスの対角線分下がる task main() { down; //顔の輪郭 masu2 left45 naname2 left45 masu2 left45 naname2 left45 masu4 left45 naname2 left45 masu2 left45 naname2 left45 masu3 //顔の輪郭終了 right45 //髪を描く back_naname1 right90 back_naname1 right90 naname1 right90 naname1 right90 back_naname1 right90 back_naname1 //髪終了 up //左目まで移動 naname2 left45 down //左目 back_masu1 up //右目まで移動 masu4 down //右目 back_masu1 up //鼻の上まで移動 back_masu1 left30 //鼻を描く down back_masu1 left90 OnRev(OUT_A+OUT_C);Wait( 10 ); Off(OUT_A+OUT_C); //ここまで鼻 up //口の右端まで移動 OnRev(OUT_A+OUT_C);Wait( 10 ); Off(OUT_A+OUT_C); left90 //口をかく down OnFwd(OUT_A+OUT_C);Wait( 10 ); Off(OUT_A+OUT_C); right30 masu1 //口終了 up //ペンをあげる } @@ 方眼紙を利用してプログラムを書いたため「ななめ1マス」とか書いてありますが、ゆるしてやってください。 **できた似顔絵 [#t131c86d] tk #ref(./koba.jpg) キング #ref(./king.jpg) *感想 [#b0c2d829] -風魔tk 時間配分を間違えた。もっと余裕を持って製作したい。 -キングオブハート 最初は戸惑ったが、なんとかうまい具合にいったような気がする。 予想より歪んだ。 *コメント [#z236ac0a] なんかあったらコメントくださいねー。 #comment