- 追加された行はこの色です。
- 削除された行はこの色です。
2010a
'''&size(50){もくじ};'''
素晴らしいロボットをつくりました。
120点満点!!
#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(54);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)
*工夫点 [#n8f024e8]
他とは少し違うロボにするために幅を広くしてペンをロボの中心に置いた。旋回を確かなものとするためにRCXとの重量バランスを考えてパーツを多めにした。
*感想 [#b0c2d829]
-風魔tk
時間配分を間違えた。もっと余裕を持って製作したい。
-キングオブハート
最初は戸惑ったが、なんとかうまい具合にいったような気がする。
予想より歪んだ。
*コメント [#z236ac0a]
なんかあったらコメントくださいねー。
- きちんとポイントを書いていると思います。サブルーチンや関数をつくる際には、どのようにわけるかをいろいろ考えてみると良いです。例えば、二人目のプログラムでは角度ごとに作っていますが、一つの方向(モーター)について一つだけ作って秒数を変えるという方法もあります。また、45°、60°90°しか作らないのならば、15°回転をつくり、それぞれ3回、4回、6回繰り返すという方法もあります(つまり、共通部分だけ作って、違う部分だけ別の命令を行うということ)。 -- [[FI]] &new{2010-05-21 (金) 08:09:16};
- 工夫点などもまとめてみて下さい -- [[TAKA]] &new{2010-05-21 (金) 13:28:51};
#comment