- 追加された行はこの色です。
- 削除された行はこの色です。
[[2010b/A4右]]
*似顔絵ロボット[2010/a4/右] [#eb5bf758]
#contents
*課題1:似顔絵を描くロボット [#q54d9a3f]
**課題内容:ロボットを使って相手の似顔絵を描く [#c7a0abb3]
A4用紙に相手の似顔絵を描くロボットを作成する。
**注意点(ルール) [#b3ee90ec]
***ひとりにつき一つ以上のプログラムを作成すること。 [#wff514e4]
***ペン以外はキットに含まれる部品を使うこと。 [#t1f97409]
***キットに付属の高価な輪ゴムは切れやすいので切れないように細心の注意を払うこと。 [#ba3ab38e]
***改良や調整をしやすくするため、ロボット本体だけでなく、プログラムについても可能な部分についてはサブルーチンや関数、マクロなどを使って部品に分けること。 [#y8941c98]
**メンバー紹介 [#b810f30a]
-貴トラマンヒロ
冷静沈着(-。-)y-゜゜゜
-フジゃる丸優
茶髪の風雲児\(゜ロ\)(/ロ゜)/
*お互いの似顔絵を描くロボットを作成する [#p25a4994]
**注意点とルール [#a056ead0]
-1人につき1つ以上のプログラムを完成させること
-ペン以外はキットに含まれる部品を使うこと
-キットに付属の高価な輪ゴムは切れやすいので切れないように細心の注意を払うこと
-改良や調整をしやすくするため、ロボット本体だけでなく、プログラムについても可能な部分についてはサブルーチンや関数、マクロなどを使って部品に分けること
**工夫した点 [#ea14bbe4]
-初号機のドライブベースはキャタピラだったが、パーツをたくさん使うことや、小回りが利かないといった難点があったため、自分たち独自のドライブベースにし、車輪で動かせる2号機を作成した。
#ref(DSCN0356.JPG)
-3輪走行にすることで、見た目にも斬新なデザインとなった。
#ref(DSCN0354.JPG)
また、後輪を回るようにしたため、より滑らかなカーブが実現された。
-ペンを動かす部分は、車輪を用い、ペンが外れないようにブロックを積み上げた。
#ref(DSCN0351.JPG)
断面図
#ref(無題.png)
星部分のみが回転し、他の車輪は補助
**苦労した点 [#p1ceb2f6]
-前後のバランスが悪く、後輪が浮いてしまった。そのため、NQC本体を後ろのほうに付け、バランスを保った。
-授業、サークル、バイトなど各々の用事が忙しく、なかなか2人で会って作業ができなかった。
*車体について [#db20c905]
ビジュアルを重視★★★
#ref(DSCN0343.JPG)
少々機動性に欠けるかもしれないが、見た目には代えられない。そこはうまいことプログラミングでカバー。
#ref(DSCN0357.JPG)
あえての二輪が前輪で、一輪が後輪。これがバックが難しくした。
*プログラム [#ee187074]
バックが苦手という弱点を頑張って克服。何度もプログラムしては動かしての繰り返しで、プログラミングは特に試行錯誤、悪戦苦闘した。
**貴トラマンヒロのプログラム [#t094a797]
+
void pen_up() //ペンを上げる
{OnRev(OUT_B);
Wait(050);
Off(OUT_B);}
void pen_down() //ペンを下げる
{OnFwd(OUT_B);
Wait(030);
Off(OUT_B);}
task main ()
{SetPower(OUT_A,2);
SetPower(OUT_C,2);
pen_down(); //ペンを下げる
OnFwd(OUT_A); //輪郭を書く
OnRev(OUT_C);
Wait(300);
Off(OUT_A+OUT_C);
Wait(100);
pen_up(); //ペンを上げる
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(100);
Off(OUT_A+OUT_C);
pen_down(); //ペンを下げる
OnFwd(OUT_A+OUT_C); //目を書く
Wait(030);
Off(OUT_A+OUT_C);
pen_up(); //ペンを上げる
OnFwd(OUT_A+OUT_C); //調整
Wait(020);
Off(OUT_A+OUT_C);
pen_down(); //ペンを下げる
OnFwd(OUT_A+OUT_C); //目を書く
Wait(030);
Off(OUT_A+OUT_C);
pen_up(); //ペンを上げる
OnFwd(OUT_A); //方向転換
OnRev(OUT_C);
Wait(070);
Off(OUT_A+OUT_C);
Wait(100);
SetPower(OUT_A,1);
SetPower(OUT_C,1);
OnFwd(OUT_A+OUT_C);
Wait(100);
Off(OUT_A+OUT_C);
Wait(200);
pen_down(); //ペンを下げる
OnFwd(OUT_A+OUT_C); //口を書く
Wait(030);
Off(OUT_A+OUT_C);
pen_up(); //ペンを上げる}
***貴トラマンヒロの作品 [#ha340a6b]
#ref(DSCN0361.JPG)
**フジゃる丸優のプログラム [#i89bd34a]
+
task main()
{
OnFwd(OUT_B); //ペンを置く
Wait(030);
Off(OUT_B);
SetPower(OUT_A,2); //輪郭を書く
SetPower(OUT_C,2);
OnFwd(OUT_A);
Wait(380);
Off(OUT_A);
OnRev(OUT_B); //ペンを上げる
Wait(050);
Off(OUT_B);
OnFwd(OUT_A+OUT_C); //方向転換
Wait(50);
Off(OUT_A+OUT_C) ;
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(70);
Off(OUT_A+OUT_C) ;
OnFwd(OUT_A+OUT_C);
Wait(015);
Off(OUT_A+OUT_C) ;
OnFwd(OUT_B); //ペンを置く
Wait(030);
Off(OUT_B);
OnFwd(OUT_A+OUT_C); //目を書く
Wait(020);
Off(OUT_A+OUT_C);
OnRev(OUT_B); //ペンを上げる
Wait(050);
Off(OUT_B);
OnFwd(OUT_A+OUT_C); //調整
Wait(030);
Off(OUT_A+OUT_C) ;
OnFwd(OUT_B); //ペンを置く
Wait(030);
Off(OUT_B);
OnFwd(OUT_A+OUT_C); //目を書く
Wait(030);
Off(OUT_A+OUT_C);
OnRev(OUT_B); //ペンを上げる
Wait(050);
Off(OUT_B);
OnFwd(OUT_A); //方向転換
Wait(185);
Off(OUT_A);
OnFwd(OUT_A+OUT_C);
Wait(030);
Off(OUT_A+OUT_C) ;
OnFwd(OUT_A);
Wait(060);
Off(OUT_A);
OnFwd(OUT_B); //ペンを置く
Wait(030);
Off(OUT_B);
OnFwd(OUT_A+OUT_C); //口を書く
Wait(020);
Off(OUT_A+OUT_C);
OnFwd(OUT_A);
Wait(040);
Off(OUT_A);
OnRev(OUT_B); //ペンを上げる
Wait(050);
Off(OUT_B);}
***フジゃる丸優の作品 [#xac1042b]
#ref(DSCN0359.JPG)
*感想、反省 [#ed10b610]
-フジゃる丸優
--何度も集まったり協力することはできたが、結果が思うようについてこずくじけそうだった。でもあきらめず頑張れてよかった。
-貴トラマンヒロ
--今回、ロボット作成を行ったが、ギア比の事を考えずにつくってしまったために超高速マシンになってしまった...orz
--次回からはもっとスピードや機動性の事も考えてマシンを作ろうと思った。
--協力することでなんとかなった部分が大きいと思う。相方に感謝したい。
#ref(DSCN0347.JPG)
↑彼も僕らが作ったマシーンに大満足。oO☆
*コメントをどうぞ [#x420ee6f]
- プログラムの掲載をお願いします。 -- [[TAKA]] &new{2010-11-12 (金) 17:01:12};
- まだ終わっていないみたいなので、また後で見ます。ロボットの説明はがんばっているので、後半もがんばってください。 -- [[FI]] &new{2010-11-12 (金) 18:15:33};
- 図に矢印などを入れてうまく使っていますし、工夫した点もわかりやすいです -- [[FI]] &new{2011-02-08 (火) 13:42:11};
*メンバー紹介 [#h78df11c]
#comment