- 追加された行はこの色です。
- 削除された行はこの色です。
[[2009a]]
*目次 [#pddf8a4f]
#contents
*課題1:似顔絵ロボットを作る [#sd29fb5e]
**メンバー [#i67fff3a]
つっちー&しゅーた
**ロボットについて [#y66d6625]
***外形 [#oe1c3eda]
僕たちは最初「なんか強そう・・・」とかゆう理由でキャタピラのマシンを作りました。
で、似顔絵を書くに当ってデカいし少し動きづらいので、タイヤの方に変えようと一時期思いましたが、やはり最初の印象は強かったのか、またタイヤは動きが早すぎてうまく描けないんじゃないかと判断しキャタピラのままでいくことを決心しました。
#ref(2009a/A6/課題1左/NEC_0003.JPG,30%)
***ペンの固定の仕方、描き方 [#d1964443]
ペンはZEBRAのマッキーを使用しました。
固定の仕方としては、最初はタイヤを用いた固定法を考えたのですが、どこにどうゆう風に取り付けたらいいのかわからず挫折しました。
なのでこのような感じで、付属部品を駆使して、モーターを取り付け、ペンを付属のゴムで巻き付けるシンプルなものしました。なんせ本体がデカいっすから(泣)
描き方はモーターを回転して上げ下げさせるごく単純な方法ですが、これを作るのにまた意外と苦労しましたf(^_^);
#ref(2009a/A6/課題1左/NEC_0002.JPG,30%)
***工夫した点 [#f5dcfeb5]
作り始めた初期の頃、モーターでペンを下げて描く時にペンへの力が足りないのか線が点線になってしまったり、薄くなってしまったりしてました。
そこで、「じゃあもっと力を加えて濃くはっきりしてやろう!!」と素晴らしい発想をし、描いている間もモーターを回転させた状態にしておく手法を取りました。
しかし↓↓
今度はモーターを取り巻く付属部品に力がかかり、崩壊・・・(・o・;)↓↓
その後あれこれ考えた末、描いてる間ペンに適当な圧力をかけてくれる素晴らしい部品を発見しました。それこそまたまた付属のゴムでした(笑)
今回は本当に付属のゴムが僕たちを救ってくれました(;^_^A
ゴムによってペンに左斜め下方向に力をかけ、ペンを下に押さえつけました。
これが僕らなりの工夫です。
***反省点 [#t4892f08]
ペンの固定位置が悪かったような気がします。
ロボットの動きとペンの動きが違ったのでプログラミング時に苦労しました。
なのでもう少し固定位置を考えるべきでした。
**プログラミングについて [#t7c713ff]
***つっちーの [#i1536264]
マクロをたくさん用いてやったのですが、なかなか長くなってしまいました。
#define mae OnFwd(OUT_A+OUT_C);
#define sto Off(OUT_A+OUT_C);
#define c OnFwd(OUT_C);
#define a OnFwd(OUT_A);
#define ba OnRev(OUT_A);
#define bc OnRev(OUT_C);
#define penup OnFwd(OUT_B);//ペンをあげる
#define pendu OnRev(OUT_B);//ペンをあげる
#define pensto Off(OUT_B);
task main()
{
bc;
a;
Wait(600);//輪郭を書く
sto;
penup;Wait(20);
pensto;
bc;
Wait(270);
sto;
mae;
Wait(40);
bc;
Wait(40);
sto;
pendu;
Wait(20);
pensto;
mae;
Wait(16);//目を書く
penup;
Wait(20);
pensto;
mae;
Wait(16);//目を書く
sto;
pendu;
Wait(20);
pensto;
mae;
Wait(16);
penup;
Wait(20);
pensto;
sto;
c;
Wait(440);
sto;
mae;
Wait(50);
sto;
ba;
Wait(190);
sto;
Wait(50);
mae;
Wait(30);
sto;
Wait(50);
pendu;
Wait(30);
pensto;
mae;
Wait(80);//口を書く
penup;
Wait(30);
pensto;
mae;
Wait(100);
sto;
ba;
Wait(270);
sto;
mae;
Wait(110);
sto;
pendu;
Wait(30);
pensto;
Wait(100);
ba;
bc;
Wait(80);//鼻を書く
sto;
Wait(50);
penup;
Wait(30);
pensto;
}
***しゅーたの [#t59c9536]
僕もマクロを用いて少しは省略できました↑↑
#define pen_up OnFwd(OUT_B);Wait(30);Off(OUT_B); //ペンを上げる。
#define pen_down OnRev(OUT_B);Wait(30);Off(OUT_B); //ペンを下げる。
task main()
{
pen_down;
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(660);
Off(OUT_A+OUT_C); //輪郭を描く。
pen_up;
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(180);
Off(OUT_A+OUT_C);
OnRev(OUT_A+OUT_C);
Wait(110);
Off(OUT_A+OUT_C);
pen_down;
OnFwd(OUT_A+OUT_C);
Wait(50);
Off(OUT_A+OUT_C); //左目を描く。
pen_up;
OnFwd(OUT_A+OUT_C);
Wait(20);
Off(OUT_A+OUT_C);
pen_down;
OnFwd(OUT_A+OUT_C);
Wait(50);
Off(OUT_A+OUT_C); //右目を描く。
pen_up;
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(200);
Off(OUT_A+OUT_C);
pen_down;
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(120);
Off(OUT_A+OUT_C); //口を描く。
pen_up;
}
**完成品 [#s7d8bebe]
***つっちーの(しゅーたの顔) [#if6cb99a]
***しゅーたの(つっちーの顔) [#h794d542]
やっぱりキャタピラの振動で、微妙に点線になってしまいました↓
でも結構似てると思います!!
#ref(2009a/A6/課題1左/NEC_0004.JPG,30%)
*感想 [#q1e3243a]
キャタピラ独特のズレに苦労しました。同じプログラミングでも一回ごとにズレが出てしまい、waitの時間設定がとても大変でした。
このせいで、前髪のギザギザや、楕円に近い顔の輪郭等をあきらめざるを得ませんでした
また、直線からカーブ カーブから直線がうまくできず、大変でした。
でも久しぶりにこの課題で一つのことにパートナーと取り組むとゆうことをして、チームワークの大事さなどがわかりました。これからも頑張ります!!
なにかありましたら、コメントお願いします。
- ロボットの説明はOKです。欲を言えば、ペンの上げ下げ部分の説明がもう少し欲しいです。付属のゴムをどう使ったら点線を回避できたのでしょう…?プログラムの説明ももっと描いてください! -- [[こさか]] &new{2009-05-21 (木) 22:42:39};
- また、「ひとりにつき一つ以上のプログラムを作成すること。」の条件がありますので、誰が書いたプログラムか明記してください。 -- [[こさか]] &new{2009-05-21 (木) 22:43:03};
#comment