[[2011a]]
#contents
* 課題の内容 [#d13cc6fb]
A4の紙に相棒の似顔絵を書くロボットを作成せよ。
-ひとりにつき一つ以上のプログラムを作成すること。
-ペン以外はキットに含まれる部品を使うこと。
-キットに付属の高価な輪ゴムは切れやすいので切れないように細心の注意を払うこと。
-改良や調整をしやすくするため、ロボット本体だけでなく、プログラムについても可能な部分についてはサブルーチンや関数、マクロなどを使って部品に分けること。
* メンバー紹介 [#m6f70161]
-たま
-オ
* ロボットの紹介 [#m199eefc]
** 本体 [#h6bc1442]
&Ref(7.jpg);
土台をできるだけ小さくして動きを少なくしました。
&Ref(3.jpg);
RCXが重く、動いてる途中で後ろに倒れてしまうのでつっかいを作りました。
** アーム [#tafe6fbe]
&Ref(12.jpg);
ペンの取り外しにするためにエレベータの形で作ったのですが、しっかりと固定ができなかったのでタイヤを利用して上下に動くように作りました。
** 完成 [#kf748912]
&Ref(1.jpg);
&Ref(2.jpg);
* プログラム [#b8bbbbe2]
-たま
#define down OnRev(OUT_B);Wait(25);Float(OUT_B); //ペンを下げる
#define up OnFwd(OUT_B);Wait(15);Float(OUT_B); //ペンを上げる
#define left(lt) OnRev(OUT_A);OnFwd(OUT_C);Wait(lt);Off(OUT_A+OUT_C); //左曲がり
#define right(rt) OnFwd(OUT_A);OnRev(OUT_C);Wait(rt);Off(OUT_A+OUT_C); //右曲がり
#define go(gt) OnFwd(OUT_A+OUT_C);Wait(gt);Off(OUT_A+OUT_C); //前進
#define back(bt) OnRev(OUT_A+OUT_C);Wait(bt);Off(OUT_A+OUT_C); //後退
task main()
{
down;
left(200);
right(200); //輪郭
back(25);
up;
back(25);
down;
back(20);
up; //目
left(50);
go(20);
right(50);
down;
go(40); //口
}
-オ
sub w()
{ Wait(20);
}
sub maru() //丸を描く
{ OnFwd(OUT_A);
OnRev(OUT_C);
Wait(220);
OnRev(OUT_A);
OnFwd(OUT_C);
Wait(220);
Off(OUT_A+OUT_C);
}
sub kak() //左曲がり
{ OnRev(OUT_A);
OnFwd(OUT_C);
Wait(45);
Off(OUT_A+OUT_C);
}
sub kak2() //右曲がり
{ OnFwd(OUT_A);
OnRev(OUT_C);
Wait(45);
Off(OUT_A+OUT_C);
}
sub kak3() //左曲がり(kakより時間が長くてもっと曲がる)
{ OnRev(OUT_A);
OnFwd(OUT_C);
Wait(55);
Off(OUT_A+OUT_C);
}
sub up() //ぺーんを上がる
{ OnFwd(OUT_B);
Wait(15);
Off(OUT_B);
}
sub down() //ぺーんを下がる
{ OnRev(OUT_B);
Wait(20);
Off(OUT_B);
}
void go(int t) //前に行く
{ OnFwd(OUT_A+OUT_C); Wait(t);
Off(OUT_A+OUT_C);
Wait(20);
}
void back(int t) //後ろに行く
{ OnRev(OUT_A+OUT_C); Wait(t);
Off(OUT_A+OUT_C);
Wait(20);}
task main()
{ down();
w();
maru(); //顔
w();
back(75);
up();
w();
kak();
w();
go(10); //前髪
kak2();
w();
go(10);
down(); //目
w();
go(20);
up();
w();
go(10);
down();
w();
go(20);
w();
up();
w();
go(60);
w();
kak();
w();
go(15);
w();
kak3();
w();
down(); //口
w();
go(30);
w();
up();
}
* 似顔絵 [#wa82c84d]
-たま
&Ref(1_1.jpg);
-オ
&Ref(2_1.jpg);
&Ref(2_2.jpg);
赤い線はペンが書いた線,青い線は動いた経路です。
* 感想 [#u3f6b359]
**tama [#mb5176a7]
ペンの稼動部の固定に苦労したが何とか作ることができた。似顔絵の完成度があまりよくなかったので機会があったらまた挑戦したい。
**オ [#iad6811f]
最初は何を作ればいいか分からなくて時間がかかったんです。
エレベータ形式でやろうと思ったけど固定するところがなくて諦めたのが残念です。
パトーナのアイディアのおかげでタイヤに変えてうまくできてよかった。
また機会があればRCXを動いて中心を正確に当てたい。
* コメントをお願いします [#i156506a]
- サブルーチンなどの名前は多少長くなっても分かりやすい名前にしましょう。 -- [[松本]] &new{2011-05-27 (金) 10:29:32};
#comment