[[2009a]] &size(20){''目次''}; #contents ---- **○レポート上での名前について[#s4a5239f] 名字の頭文字です。A4はみんな名字違うのでわかりやすいと思います。~ ~ **○初期設計[#e449017b] 最初に作っていた車体にどのようにペンを装着するのかを考えた。最初の不安はペンをどのように上下させるのかということと小回りを利かせることだ。~ ~ **○車体の制作[#o0f79ce2] *・前輪について [#r1a6a896] #ref(2009a/A4/課題1右/1.jpg,200%,前輪); 前輪は今回大きな役割を果たしていると思う。ペンを中心において車体の動きがそのまま絵となるように前輪を作った。またRCXをおくための補強としてもよい役割を果たしている。~ 最初は四輪タイプの車体を使っていたが車体が回転する際に片方のタイヤがその向きと垂直に動いてしまい、摩擦で紙が折れ曲がってしまってうまく書けなかったので三輪タイプに変更した。前輪にゴムの部分をあえてつけなかったのもタイヤが回らなかったときに紙との摩擦を少なくするためである。 *・ペンについて [#y09a4135] #ref(2009a/A4/課題1右/2.jpg,200%,ペン); #ref(2009a/A4/課題1右/10.jpg,200%,ギアとラック); ペンについてはギアとラックを用いた。棒をいくつか用いてペンを固定し、きちんと上下するようにした。ペンをはめるのと固定する強さを変えるのが簡単である。~ また、最初ペンは機体の先端に取り付けていたが機体が旋回するときに円を描いてしまうので直接機体の動きが絵にできるように機体の中心にペンをとりつけた。 *○完成 [#cf00869e] #ref(2009a/A4/課題1右/5.jpg,150%,上から);~ #ref(2009a/A4/課題1右/7.jpg,150%,上からwithペン);~ #ref(2009a/A4/課題1右/12.jpg,150%,横から);~ 多少強度に不安があったが、改良をかさねて当初作っていた形よりは強くなった。壊れやすいが立ち直りやすいのが売りである。そして何度も書くようにペンが車体の中心に来るようにしたのが唯一にして最大の特徴。~ ~ **○プログラム [#pc7785b3] #ref(2009a/A4/課題1右/4.jpg,200%,鈴face); #ref(2009a/A4/課題1右/8.jpg,150%,鈴face順序);~ ~ ~ #define pen_down {OnFwd(OUT_B);Wait(5);Off(OUT_B);}//ペンを下げる #define pen_up {OnRev(OUT_B);Wait(5);Off(OUT_B);}//ペンを上げる #define go_straight(t) {OnFwd(OUT_A+OUT_C);Wait(t);Off(OUT_A+OUT_C);}//直進 #define turn_left {OnFwd(OUT_C);OnRev(OUT_A);Wait(90);}//その場で左旋回 #define go_left(t) {OnFwd(OUT_C);Wait(t);Off(OUT_C);}//円を描きつつ左へ task main() { pen_down //輪郭描き始め go_straight(60) go_left(190) go_straight(20) go_left(190) go_straight(60) go_left(180) go_straight(20) go_left(180) pen_up//輪郭描き終わる turn_left//移動(輪郭〜左のメガネ) go_straight(20)//移動終わり(輪郭〜左のメガネ) pen_down //左のメガネ書き始め go_straight(30) pen_up pen_down turn_left go_straight(30); pen_up pen_down turn_left go_straight(30) pen_up pen_down turn_left go_straight(30) pen_up pen_down turn_left pen_up//左メガネおわり go_straight(60)//移動(左メガネ〜右メガネ) pen_down//右メガネ書き始め go_straight(30) pen_up pen_down turn_left go_straight(30) pen_up pen_down turn_left go_straight(30) pen_up pen_down turn_left go_straight(30) pen_up//右メガネおわり go_straight(50)//移動(右メガネ〜口) pen_down//口書き始め go_straight(50) pen_up //口書き終わり 完成 } 竹:私が描いたのは鈴の顔。まず輪郭を円ではなく楕円形にすることを考えた。カーブをさせるときにWaitの時間を調節したりすることできれいな楕円を完成させることができた。 メガネはちょっと光ったように見える。これはカーブをさせる際についてしまったものだが、メガネの反射をうまく表していると思ったためそのまま採用した。また長さの感覚がつかみづらかった。試行錯誤を経て結構良い似顔絵を作ることが出来たと思う。書き上げる事が出来てよかった。~ ~ ----~ #ref(2009a/A4/課題1右/3.jpg,200%,竹face);~ #ref(2009a/A4/課題1右/9.jpg,150%,竹face順序);~ ~ #define turn_left(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t);Off(OUT_A+OUT_C);//その場で左旋回 #define turn_right(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t);Off(OUT_A+OUT_C);//その場で右旋回 #define go_straight(t) OnFwd(OUT_A+OUT_C);Wait(t);Off(OUT_A+OUT_C);//直進 #define back_straight(t) OnRev(OUT_A+OUT_C);Wait(t);Off(OUT_A+OUT_C);//後退 #define up_pen OnRev(OUT_B);Wait(5);Off(OUT_B);//ペンを上げる #define down_pen OnFwd(OUT_B);Wait(10);Off(OUT_B);//ペンを下げる #define go_left OnFwd(OUT_C);Wait(190);Off(OUT_C);//円を描きつつ左へ task main() { up_pen//輪郭描き始め go_straiht(60) go_right go_straight(20) go_right go_straight(60) go_right go_straight(20) go_right up_pen//輪郭描き終わり turn_left(30) go_straight(90)//移動(口へ) down_pen//口描き始め go_straight(25) turn_right(70) go_straight(25) up_pen//口描き終わり go_straight(70)//移動(右の眼へ) turn_left(40) down_pen//右の目描き始め back_straight(30) up_pen//右の目描き始め turn_right(70) go_straight(60)//移動(左の眼へ) turn_right(110) down_pen//左の目描き始め go_straight(30) up_pen//左の目描き終わり turn_left(30) back_straight(30)//移動(鼻へ) down_pen//鼻描き始め back_straight(20) turn_right(40) back_straight(20)//鼻描き終わり } 鈴:僕は竹の顔を書いたが、顔の形を書くとき、竹の書いた僕の顔のものよりWaitの時間を変えて楕円ではあるが、微妙に異なるようにしてみた。また口を書くとき車体がうまく回転しないため予定のようにならなかったが、予定のものよりらしい顔になったと思うのでそのまま使うことにした。~~ **○感想 [#i2d8a9e3] 竹:慣れてくれば楽しいのだが、まだ必死な中で取り組んだため、ほっとしたという感覚が強い。思うようにいかない部分が多かったが、意外とうまくいった部分もあってよかったと思う。今回学んだことをいかして次につなげたい。~ 鈴:おもに車体を作ったけど、最初のやつで顔を作ろうとした時に、全く顔が出来なかったので一から作るのが大変だった。車体の形一つでプログラムの内容も大きく変わるので、双方の大切さがわかった。 ロボットの説明やプログラムを書こうと頑張っています。~ これからの課題でも生きるので、サブルーチンや関数を使ってみてください。~ プログラムを貼る時は、どの行も半角で一行あけると、見やすく表示されます。~ また、ロボットの説明をもっと詳しくしたり(特にペンの上げ下げ)、似顔絵の写真を貼ったりすると、良いレポートになると思います。 FI ロボットの工夫に味がある!ただもう少し工夫点の説明が欲しい。~ プログラムは説明不足です。説明をつけることにより、マクロやサブルーチンにまとめられそうなところが見えてきて、課題の条件「可能な部分についてはサブルーチンや関数、マクロなどを使って部品に分けること。」が達成しやすくなるはずです。(こさか) 一応、書くべきことは大体書いてます。しかし、マクロやサブルーチンなどを使えてません。必ずしも必要ではないですが、図や写真に書き込みを入れることでわかりやすい説明になるろ思います FI 画像が増えて、ロボットの工夫がしっかりわかりました。~ プログラムの説明もわかりやすくなり、さらにマクロもしっかり使えています。あとは、ここにコメント欄があるとチェックしやすくて有難いです(笑)。(こさか 5/29 0:20) コメントをどうぞ - to⇒こさかさん 再評価ありがとうございました! -- [[竹]] &new{2009-05-29 (金) 15:05:20}; #comment