[[2011a]]

[[2011a/A5/課題1右/餅最高]]

目次
#contents

*メンバー紹介的な何か [#u781069e]
-いばらきけんみん
-ばるす!

*課題的な何か [#u409d42c]
相棒の似顔絵を面白く描く。
-相棒の似顔絵を面白く描く。
-下の絵をお手本にして絵を描かせることにした。
#ref(2011a/A5/課題1右/otehon.jpg,70%,おてほ)
*ロボット的な何か [#kb9fb980]
**名前 [#pa1b0680]
ムスカRV-X05
ムスカRV-X05               (命名いばらきけんみん)
**特徴 [#o28a7023]
-落ちこぼれ。でもいい奴。
-小回りの利く四輪型で安定してお絵描きできるすごいやつ。でも落ちこぼれ。
-小回りの利く四輪型で安定してお絵描きできるすごいやつ。%%でも落ちこぼれ。%%
-しかもペンを持つ部分がスライド式なのでぶれない。すごくぶれない。
**改善点 [#f57c8e8f]
-当初は見た目と安定性を考え、キャタピラ型だったのだが、動くときに紙を巻き込んでしまい絵が描けなかったので四輪型になった。結果、小回りが利くのはもちろんのこと、小型化にも成功した。
-当初は作りやすさを考え、アーム型だったが、見た目の向上と安定化のため、アーム型からスライド型に変更された。
**構造 [#x0004848]
-マシンの全体。シンプルでバランスのいいマシンである。
#ref(2011a/A5/課題1右/zentai.jpg,70%,zen)
-ペンの上げ下ろし機構。ギアに下の写真のスライドを挟んで上げ下ろしをする。
-ここにウォームギアを使用することで、スライドがむやみに動くことを防いだ。同時に上げ下ろしの確実性も増す効果もあった。
#ref(2011a/A5/課題1右/gear.jpg,70%,ギ)
#ref(2011a/A5/課題1右/slide.jpg,70%,ス)

*プログラミング的な何か [#qc6c5571]
**こういうところを頑張った [#ade9022b]
-プログラミングにサブルーチンやリピートを使って、効率化したところ。
-顔の輪郭にこだわり、はっきりとした線が引けるように微調整を重ねたところ。
特に、回転した後に線が離れるのを直すように努力した。
**サブルーチンとか [#k1a8de58]
最も使うであろうモーターに対する命令を定義やマクロ、サブルーチンや関数を使用して表した。
 #define a OUT_A
 #define b OUT_B
 #define c OUT_C
 #define d OUT_A+OUT_C
 #define e OnFwd(OUT_A);Wait(20);Off(OUT_A);  
 #define f OnFwd(OUT_C);Wait(20);Off(OUT_C);
 #define asd(zt) OnFwd(d);Wait(zt);Off(d);
 #define dsa(tz) OnRev(d);Wait(tz);Off(d);


 void turn_left(int t)
 {
 OnRev(b);Wait(100);Off(b); //bあげる
 OnFwd(d);Wait(58);Off(d); //書かずに進む
 dsa(100); //bあげる
 asd(50) //書かずに進む
 OnFwd(c);OnRev(a);Wait(t);Off(d); //回転
 OnRev(d);Wait(66);Off(d); //バック
 OnFwd(b);Wait(100);Off(b); //bさげる
 dsa(66); //バック
 asd(100); //bさげる
 }

 sub turn_right()
 {OnRev(b);Wait(100);Off(b); //bあげる
 OnFwd(d);Wait(50);Off(d); //書かずに進む
 asd(50); //書かずに進む
 OnFwd(a);OnRev(c);Wait(100);Off(d); //回転
 OnRev(d);Wait(66);Off(d); //バック
 OnFwd(b);Wait(100);Off(b); //bさげる
 dsa(66); //バック
 asd(100); //bさげる
 }
ただ、最初に定義を考えてからプログラムを考えたせいで、途中で微調整が出来ず、かえってプログラムが長く見にくくなってしまった。
**輪郭 [#i2b7f03e]
 repeat(6){e;f;}   //髪の毛
おそらく最もコンパクト化に成功した部分。

#ref(2011a/A5/課題1右/髪型.jpg,70%,髪型)

 OnRev(b);Wait(100);Off(b); //bあげる
 OnFwd(d);Wait(58);Off(d); //書かずに進む
 OnFwd(c);OnRev(a);Wait(90);Off(d); //回転
 OnRev(d);Wait(66);Off(d); //バック
 OnFwd(b);Wait(100);Off(b); //bさげる

 OnFwd(d);Wait(100);Off(d); //前進   //輪郭初め
髪の書き終わりから輪郭の書き始めに90°回転する部分。割とスムーズに行った。


 asd(100) //前進   //輪郭初め
 turn_left(50); 
 OnFwd(d);Wait(46);Off(d); //前進
 asd(46) //前進
 turn_left(40); 
 OnFwd(d);Wait(52);Off(d); //前進
 asd(52) //前進
 turn_left(50); 
 OnFwd(d);Wait(46);Off(d); //前進
 asd(46) //前進
 turn_left(45); 
 OnFwd(d);Wait(100);Off(d); //前進
 OnRev(d);Wait(30);Off(d); //バック
 asd(100) //前進   //輪郭終わり
顔の輪郭。おそらく最も手間をかけた部分。というかここで力尽きた。orz

 dsa(30); //バック
 turn_left(30); 
 OnFwd(d);Wait(21);Off(d); 
 asd(21) 
 turn_left(66); 
 OnFwd(d);Wait(95);Off(d); 
 asd(95) 
 turn_left(66); 
 OnFwd(d);Wait(21);Off(d); 
 turn_left(125);      
 asd(21) 
 turn_left(125);
-一番初めの輪郭。
#ref(2011a/A5/課題1右/輪郭失敗.jpg,70%,しっぱい) 
-修正した後の輪郭。
#ref(2011a/A5/課題1右/輪郭成功.jpg,70%,成功)
**眼鏡 [#ad618a41]
 OnFwd(d);Wait(115);Off(d); 
 OnRev(d);Wait(15);Off(d); 
 turn_right(); 
 OnFwd(d);Wait(30);Off(d); 
 turn_right(); 
 OnFwd(d);Wait(38);Off(d); 
 turn_right(); 
 OnFwd(d);Wait(30);Off(d); 
 turn_left(100); 
 OnRev(b);Wait(100);Off(b); //bあげる
 OnFwd(d);Wait(30);Off(d); 
 OnFwd(b);Wait(100);Off(b); //bさげる
 turn_left(100); 
 OnFwd(d);Wait(30);Off(d); 
 turn_right(); 
 OnFwd(d);Wait(38);Off(d); 
 turn_right(); 
 OnFwd(d);Wait(30);Off(d);
最も失敗した部分。定義を最初にしたことによるしわ寄せが一気に来た。修正したかったがあまりにも酷過ぎたので諦めた。
#ref(2011a/A5/課題1右/メガネ.jpg,70%,MEGA)
**鼻と口 [#cc73cbbd]
 今回のプログラミングほぼ共同で作業したせいでほとんどの部分が同じになったので、この部分だけ別々に作業した。
・いばらきけんみんの場合
シンプルな感じ
 OnRev(b);Wait(100);Off(b); //bあげる
 OnRev(d); Wait(75);Off(d);
 OnFwd(b);Wait(100);Off(b);   //bさげる
 turn_right();
 OnFwd(d);Wait(32);Off(d);
 turn_left(100);
 OnRev(b);Wait(100);Off(b); //bあげる
 OnFwd(d);Wait(16);Off(d);
 OnFwd(b);Wait(100);Off(b);   //bさげる
 e;f;Off(d);
#ref(2011a/A5/課題1右/完成した絵.jpg,70%,かんs)


・ばるす!の場合
去年までの写真を見る限り、口にこだわっていたグループはほぼなかったので、少し拘ってみた。
 OnRev(b);Wait(100);Off(b); //bあげる
 OnRev(d); Wait(75);Off(d);
 OnFwd(b);Wait(100);Off(b);   //bさげる
 turn_right();
 OnFwd(d);Wait(32);Off(d);
 turn_left(100);
 OnRev(b);Wait(100);Off(b); //bあげる
 OnFwd(d);Wait(16);Off(d);
 OnFwd(b);Wait(100);Off(b);   //bさげる
 e;f;Off(d);
 turn_left(180);
 OnRev(b);Wait(100);Off(b); //bあげる
 OnFwd(d);Wait(40);Off(d);
 turn_left(90);
 e;f;Off(d);
最も適当になった部分。正直線だけで表すことはしたくなかったのだがこれしか思いつかなかった。もっと芸術的センスがあったら…
#ref(2011a/A5/課題1右/EPSON001.JPG,25%,or)

*まとめ的な何か [#o7cd883b]
-車輪の構造を改善する
-プログラムを書くときは最初に定義書かない。
-どうしても書くならばなるべき小さいものにする。
-美的センスを養う
今回の課題で足りないものが何かよくわかったので次回以降に生かせる…はず…



*感想的な何か [#t191b099]
-時間内にマシンが完成しなかったので、一時はどうなるかと思いましたが、納得の出来るマシンを作り上げることができたと思います。この小回りの利く車体を生かしたプログラミングを心がけましたが、その分誤差が出やすくなってしまったので、大変でした。もう少し時間をかけられれば、もっと綺麗な顔になったのかもしれません。(いばらきけんみん)
-機体を設計するときからプログラミングが終わるときまで、始終頭を悩ましてくれたムスカRV-X05だが、なんだかんだ言って結構いい出来になったと自負している。ムスカも満足だろう(違)。ただ、サブルーチンや関数を最初に決めたのは失敗だった。見やすくなると思ったのだが微調整ができずにかえって見にくくなってしまった。プログラムをマシンに転送する時間もバカにならない…。いや、マジで。次からは気を付けようと思う。(ばるす!)




*コメント欄的な何か [#w364db69]
ゆっくりかいていってね!!!
- わーすごーいこのマシーンすごーい(棒) -- [[ばるす!]] &new{2011-05-20 (金) 12:11:50};
- 今編集中? -- [[いばらき]] &new{2011-05-20 (金) 12:34:50};
- 完成!! -- [[ばるす!]] &new{2011-05-28 (土) 03:41:40};
- 授業中にも説明しましたが、マクロなどの名前は少々長くなっても分かりやすいものを使いましょう。 -- [[松本]] &new{2011-05-31 (火) 14:08:58};
- 二人のプログラムと結果を掲載してください。 -- [[松本]] &new{2011-06-06 (月) 15:14:33};

#comment


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS