[[2008a/MemberOnly/進行状況A]] *目次 [#k76cab90] #contents *課題1:似顔絵ロボット [#ucfc92b8] パートナーの似顔絵をロボットに書かせる。 #ref(2008a/A1/課題1左/mae.jpg,100%,前); 前から見た写真 #ref(2008a/A1/課題1左/usiro.jpg,200%,後ろ); 後ろから見た写真 #ref(2008a/A1/課題1左/pen2.jpg,100%,ペン); ペンを持っている写真&br; 片側のタイヤを前方のモータで動かしペンの上げ下げをさせた。 *プログラム [#lbf7940d] ***プログラム1 [#e2b1cbb9] task main() { OnRev(OUT_B); //ペンを下ろす Wait(5); OnFwd(OUT_A+OUT_C); //前進 Wait(80); Off(OUT_C); //右に曲がる Wait(430); OnFwd(OUT_A+OUT_C); //前進 Wait(80); Float(OUT_A+OUT_C); //滑らかに止まる OnFwd(OUT_B); //ペンを上げる Wait(5); Off(OUT_B); //ペンを止める OnRev(OUT_A+OUT_C); //後進 Wait(30); OnFwd(OUT_A); //左輪正回転 OnRev(OUT_C); //右輪負回転 Wait(90); repeat(2){ //{}内2回繰り返し OnFwd(OUT_A+OUT_C); //前進 Wait(10); OnRev(OUT_B); //ペンを下ろす Wait(5); OnFwd(OUT_A+OUT_C); //前進 Wait(30); OnFwd(OUT_B); //ペンを上げる Wait(5); Off(OUT_B); //ペンを止める } OnFwd(OUT_A); //左輪正回転 OnRev(OUT_C); //右輪負回転 Wait(110); OnFwd(OUT_A+OUT_C); //前進 Wait(80); OnFwd(OUT_A); //左輪正回転 OnRev(OUT_C); //右輪負回転 Wait(70); OnRev(OUT_B); //ペンを下ろす Wait(5); OnFwd(OUT_A+OUT_C); //前進 Wait(30); OnFwd(OUT_B); //ペンを上げる Wait(5); Off(OUT_B); //ペンを止める OnRev(OUT_A+OUT_C); //後退 Wait(15); OnFwd(OUT_A); //左輪正回転 OnRev(OUT_C); //右輪負回転 Wait(100); OnFwd(OUT_A+OUT_C); //前進 Wait(20); OnRev(OUT_B); //ペンを下ろす Wait(5); OnFwd(OUT_A+OUT_C); //前進 Wait(20); Float(OUT_A+OUT_B+OUT_C); //すべてを滑らかに止める } #ref(2008a/A1/課題1左/1.jpg,100%,絵1); プログラム1で描いた絵 ***プログラム2 [#cd8a751e] task main() { OnRev(OUT_B); はじめにペンを下ろす Wait(5); repeat(2){ OnFwd(OUT_A+OUT_C); まず輪郭の円を反時計回りに描き始める Wait(50); Off(OUT_C); Wait(450); OnFwd(OUT_C); Wait(30); } Float(OUT_A+OUT_C); 円を描き終え止まる OnFwd(OUT_B); いったんペンを上げる Wait(5); Off(OUT_B); OnFwd(OUT_A); 目を描くために90度右に方向転換 OnRev(OUT_C); Wait(100); repeat(2){ 以下の動作を2回繰り返す OnFwd(OUT_A+OUT_C); ちょっとだけ進んで目を描くポイントへ行く Wait(15); OnRev(OUT_B); ペンを下ろす Wait(5); OnFwd(OUT_A+OUT_C); 目を描く Wait(30); OnFwd(OUT_B); ペンを上げる Wait(5); Off(OUT_B); } Float(OUT_A+OUT_C); 口を描くためにUターンする OnFwd(OUT_A); OnRev(OUT_C); Wait(130); OnFwd(OUT_A+OUT_C); Wait(80); OnFwd(OUT_A); OnRev(OUT_C); Wait(70); OnRev(OUT_B); ペンを下ろす Wait(5); OnFwd(OUT_A+OUT_C); 口を描く Wait(30); Float(OUT_A+OUT_B+OUT_C); ペンを上げ、いったん止まる OnFwd(OUT_A); 鼻を描くためポイントへ移る OnRev(OUT_C); Wait(120); OnFwd(OUT_A+OUT_C); Wait(20); OnRev(OUT_B); ペンを下げる Wait(5); OnFwd(OUT_A+OUT_C); 鼻を描き始める Wait(15); OnFwd(OUT_C); 逆‘く’の字をつくるプログラミング OnRev(OUT_A); Wait(110); OnFwd(OUT_A+OUT_C); Wait(15); OnFwd(OUT_B); Wait(5); Float(OUT_A+OUT_B+OUT_C); ペンを上げ、止まる OnFwd(OUT_A+OUT_C); 髪の毛を描くポイントへロボを進ませる Wait(45); OnFwd(OUT_A); OnRev(OUT_C); Wait(60); OnFwd(OUT_A+OUT_C); Wait(60); OnFwd(OUT_A); OnRev(OUT_C); Wait(100); OnRev(OUT_B); ペンを下げる Wait(5); OnFwd(OUT_A+OUT_C); 髪の毛を描き始める Wait(128); OnFwd(OUT_B); ペンを上げる Wait(5); Float(OUT_A+OUT_B+OUT_C); すべての動作を終了 } #ref(2008a/A1/課題1左/2.jpg,100%,絵2); プログラム2で描いた絵 **工夫した点・努力した点 [#pb63b1da] ・車体の真ん中にあるスペースで、タイヤを使いペンの上げ下げをさせた。&br; ・書いているとどうしてもペンがずれてしまい線が薄くなってしまったので、ペンを下げる方向にペンをはさんでいるタイヤを回転させ続けることで筆圧を上げた。&br; ・キャタピラでなく丸いタイヤを使うことでスムーズな動きができた。&br; ・前後の重さのバランスをとるのが大変だった。何度もロボットの改造をしてバランスをとることに成功してこのロボットができた。 **反省・感想 [#sa0b0fb9] ・毎回動きが変わって、その都度プログラムを調整するのが大変だった。&br; ・タイヤをうまく使って、ペンの上げ下げができた。&br; ・空いている時間を見つけて、パートナーと協力し合いロボットをつくることができ、絆が深まった。 **コメントをお願いします [#b8b83f7b] #comment --------------- 1回目 良かった点~ �ペンの上げ下げの機構は工夫しています。~ �ホームページも最低限のことはかけています。~ 改善できる点~ �全体的にもっと具体的に書くべきだと思います。例えば、どのような調整が必要だったか、ロボットの各部分の仕組み、工夫した点等です。図や写真を使えば効果的です。~ �関数やサブルーチンを用いる練習にもなるので、使ってみて下さい。~ I 2回目 2回目~ 書くべきことはきちんと書けています。さらに良いレポートのするためには説明の具体性とわかりやすさが必要だと思います。例えば、ロボットの写真を貼るだけではなく矢印や文を加えたり、工夫した点に図を使う等です。過去の良いページを参考にしてみてください。 RIGHT:[[ロボティクス入門ゼミ]] RIGHT:[[2008a/A3]]