[[2009a]]

&size(20){''目次''};
#contents
----

**○レポート上での名前について[#s4a5239f]
 名字の頭文字です。A4はみんな名字違うのでわかりやすいと思います。~
~
**○初期設計[#e449017b]
 最初に作っていた車体にどのようにペンを装着するのかを考えた。最初の不安はペンをどのように上下させるのかということと小回りを利かせることだ。~
~
**○車体の制作[#o0f79ce2]
*・前輪について [#r1a6a896]
#ref(1.jpg);~
 前輪は今回大きな役割を果たしていると思う。ペンを中心において車体の動きがそのまま絵となるように前輪を作った。またRCXをおくための補強としてもよい役割を果たしている。~
*・ペンについて [#y09a4135]
#ref(2.jpg);~
 ペンについてはギアとラックを用いた。棒をいくつか用いてペンを固定し、きちんと上下するようにした。ペンをはめるのが簡単である。~
~
*○完成 [#cf00869e]
#ref(5.jpg);~
#ref(7.jpg);~
~
 多少強度に不安があったが、改良をかさねて当初作っていた形よりは強くなった。壊れやすいが立ち直りやすいのが売りである。~
~
**○プログラム [#pc7785b3]
#ref(4.jpg);~
 ~
~
 sub turn_left()
{
OnFwd(OUT_C); ~
OnRev(OUT_A); ~
Wait(90); ~
}

 sub go_straight()
{
OnFwd(OUT_A+OUT_C); ~
Wait(30); ~
Off(OUT_A+OUT_C); ~
}


task main()~
{ ~
OnFwd(OUT_B);//輪郭描き始め~
OnFwd(OUT_B);//輪郭描き始め
Wait(5); ~
Off(OUT_B); ~
OnFwd(OUT_A+OUT_C); ~
Wait(60); ~
Off(OUT_A+OUT_C); ~
OnFwd(OUT_C); ~
Wait(190); ~
Off(OUT_C); ~
OnFwd(OUT_A+OUT_C); ~
Wait(20); ~
Off(OUT_A+OUT_C); ~
OnFwd(OUT_C); ~
Wait(190); ~ 
Off(OUT_C); ~
OnFwd(OUT_A+OUT_C); ~
Wait(60); ~
Off(OUT_A+OUT_C); ~
OnFwd(+OUT_C); ~
Wait(180); ~
Off(+OUT_C); ~
OnFwd(OUT_A+OUT_C); ~
Wait(20); ~
Off(OUT_A+OUT_C); ~
OnFwd(+OUT_C); ~
Wait(180); ~
Off(+OUT_C); ~
OnRev(OUT_B); ~
Wait(5); ~
Off(OUT_B);//輪郭描き終わる~
OnFwd(OUT_C); ~
OnRev(OUT_A); ~
Wait(90); ~

サブルーチンを使いたいのですが、輪郭はブログラムがそれぞれ違うのでこのままにしました。

turn_left(); // 移動(輪郭〜左のメガネ)
OnFwd(OUT_A+OUT_C); ~
Wait(20); ~
Off(OUT_A+OUT_C); ~
Off(OUT_A+OUT_C);//移動終わり(輪郭〜左のメガネ)


OnFwd(OUT_B);//左のメガネ~
Wait(5); ~
Off(OUT_B); ~
OnFwd(OUT_A+OUT_C); ~
Wait(30); ~
Off(OUT_A+OUT_C); ~
go_straight(); ~
OnRev(OUT_B); ~
Wait(5); ~
Off(OUT_B);

OnFwd(OUT_B); ~
Wait(5); ~
Off(OUT_B); ~
OnFwd(OUT_C); ~
OnRev(OUT_A); ~
Wait(90); ~
OnFwd(OUT_A+OUT_C); ~
Wait(30); ~
Off(OUT_A+OUT_C); ~
turn_left(); ~
go_straight(); ~
OnRev(OUT_B); ~
Wait(5); ~
Off(OUT_B); ~

OnFwd(OUT_B); ~
Wait(5); ~
Off(OUT_B); ~
OnFwd(OUT_C); ~
OnRev(OUT_A); ~
Wait(90); ~
OnFwd(OUT_A+OUT_C); ~
Wait(30); ~
Off(OUT_A+OUT_C); ~
turn_left(); ~
go_straight(); ~
OnRev(OUT_B); ~
Wait(5); ~
Off(OUT_B); ~

OnFwd(OUT_B); ~
Wait(5); ~
Off(OUT_B); ~
OnFwd(OUT_C); ~
OnRev(OUT_A); ~
Wait(90); ~
OnFwd(OUT_A+OUT_C); ~
Wait(30); ~
Off(OUT_A+OUT_C); ~
turn_left(); ~
go_straight(); ~
OnRev(OUT_B); ~
Wait(5); ~
Off(OUT_B); ~

OnFwd(OUT_B); ~
Wait(5); ~
Off(OUT_B); ~
OnFwd(OUT_C); ~
OnRev(OUT_A); ~
Wait(90); ~
turn_left(); ~
OnRev(OUT_B); ~
Wait(5); ~
Off(OUT_B);//左メガネおわり~
OnFwd(OUT_A+OUT_C); ~


OnFwd(OUT_A+OUT_C); 移動(左のメガネ〜右のメガネ)
Wait(60); ~
Off(OUT_A+OUT_C); ~
Off(OUT_A+OUT_C); 移動終わり(左のメガネ〜右のメガネ)

OnFwd(OUT_B);//右メガネはじめ~
Wait(5); ~
Off(OUT_B); ~
OnFwd(OUT_A+OUT_C); ~
Wait(30); ~
Off(OUT_A+OUT_C); ~
go_straight(); ~
OnRev(OUT_B); ~
Wait(5); ~
Off(OUT_B); ~

OnFwd(OUT_B); ~
Wait(5); ~
Off(OUT_B); ~
OnFwd(OUT_C); ~
OnRev(OUT_A); ~
Wait(90); ~~
OnFwd(OUT_A+OUT_C); ~
Wait(30); ~
Off(OUT_A+OUT_C); ~
turn_left(); ~~
go_straight(); ~
OnRev(OUT_B); ~
Wait(5); ~
Off(OUT_B); ~

OnFwd(OUT_B); ~
Wait(5); ~
Off(OUT_B); ~
OnFwd(OUT_C); ~
OnRev(OUT_A); ~
Wait(90); ~
OnFwd(OUT_A+OUT_C); ~
Wait(30); ~
Off(OUT_A+OUT_C); ~
turn_left(); ~
go_straight(); ~
OnRev(OUT_B); ~
Wait(5); ~
Off(OUT_B); ~

OnFwd(OUT_B); ~
Wait(5); ~
Off(OUT_B); ~
OnFwd(OUT_C); ~
OnRev(OUT_A); ~
Wait(90); ~
OnFwd(OUT_A+OUT_C); ~
Wait(30); ~
Off(OUT_A+OUT_C); ~
turn_left(); ~
go_straight(); ~
OnRev(OUT_B); ~
Wait(5); ~
Off(OUT_B);//右メガネおわり~
OnFwd(OUT_A+OUT_C); ~

OnFwd(OUT_A+OUT_C); 移動(右のメガネ〜口)
Wait(50); ~
Off(OUT_A+OUT_C); ~
Off(OUT_A+OUT_C);  移動終わり(右のメガネ〜口)~

OnFwd(OUT_B); //口書き始め~
Wait(5); ~
Off(OUT_B); ~
OnFwd(OUT_A+OUT_C); ~
Wait(50); ~
Off(OUT_A+OUT_C); ~
OnRev(OUT_B); ~
Wait(5); ~
Off(OUT_B);//口書き終わり~
Off(OUT_B);//口書き終わり~~
~
~


竹:私が描いたのは鈴の顔。まず輪郭を円ではなく楕円形にすることを考えた。カーブをさせるときにWaitの時間を調節したりすることできれいな楕円を完成させることができた。    メガネはちょっと光ったように見える。これはカーブをさせる際についてしまったものだが、メガネの反射をうまく表していると思ったためそのまま採用した。また長さの感覚がつかみづらかった。試行錯誤を経て結構良い似顔絵を作ることが出来たと思う。書き上げる事が出来てよかった。~
~
----~
#ref(3.jpg);~
~
~
task main()~
{ ~
OnFwd(OUT_B); //輪郭書き始め~
Wait(5); ~
Off(OUT_B) ~
OnFwd(OUT_C); ~
Wait(190); ~
Off(OUT_C); ~
OnFwd(OUT_A+OUT_C); ~
Wait(20); ~
Off(OUT_A+OUT_C); ~
OnFwd(OUT_C); ~
Wait(190); ~
Off(OUT_C); ~
OnFwd(OUT_A+OUT_C); ~
Wait(60); ~
Off(OUT_A+OUT_C); ~
OnFwd(OUT_C); ~
Wait(180); ~
Off(OUT_C); ~
OnFwd(OUT_A+OUT_C); ~
Wait(20); ~
Off(OUT_A+OUT_C); ~
OnFwd(OUT_C); ~
Wait(180); ~
Off(OUT_C); ~
OnFwd(OUT_A+O UT_C); ~
Wait(20); ~
Off(OUT_A+OUT_C); ~
OnRev(OUT_B);//輪郭終わり ~
Wait(5); ~
Off(OUT_B); ~
OnFwd(OUT_C); ~
OnRev(OUT_A); ~
Wait(30); ~
Off(OUT_A+OUT_C); ~
OnFwd(OUT_A+OUT_C); ~
Wait(90); ~
Off(OUT_A+OUT_C); ~
OnFwd(OUT_B);/口書き始め ~
Wait(10); ~
Off(OUT_B); ~
OnFwd(OUT_A+OUT_C); ~
Wait(20); ~
Off(OUT_A+OUT_C); ~
OnFwd(OUT_A); ~
OnRev(OUT_C); ~
Wait(70); ~
Off(OUT_A+OUT_C); ~
OnRev (OUT_A+OUT_C); ~
Wait(20); ~
Off(OUT_A+OUT_C); ~
OnRev(OUT_B);//口終わり ~
Wait(5); ~
Off(OUT_B); ~
OnRev(OUT_A+OUT_C); ~
Wait(70); ~
Off(OUT_A+OUT_C); ~
OnFwd(OUT_C); ~
OnRev(OUT_A); ~
Wait(40); ~
Off(OUT_A+OUT_C); ~
OnFwd(OUT_B); ~
Wait(10); ~
Off(OUT_B); ~
OnRev(OUT_A+OUT_C);//右目の部分 ~
Wait(30); ~
Off(OUT_A+OUT_C); ~
OnRev(OUT_B); ~
Wait(5); ~
Off(OUT_B); ~
OnFwd(OUT_A; ~
OnRev(OUT_C); ~
Wait(70); ~
Off(OUT_A+OUT_C); ~
OnFwd(OUT_A+OUT_C); ~
Wait(60); ~
Off(OUT_A+OUT_C); ~
OnFwd(OUT_A); ~
OnRev(OUT_C); ~
Wait(110); ~
Off(OUT_A+OUT_C); ~
OnFwd(OUT_B); ~
Wait(10); ~
Off(OUT_B); ~
OnFwd(OUT_A+OUT_C); //左目の部分~
Wait(30); ~
Off(OUT_A+OUT_C); ~
OnRev(OUT_B); ~
Wait(5); ~
Off(OUT_B); ~
OnFwd(OUT_C); ~
OnRev(OUT_A); ~
Wait(30); ~
Off(OUT_A+OUT_C); ~
OnRev(OUT_A+OUT_C); ~
Wait(30); ~
Off(OUT_A+OUT_C); ~
OnFwd(OUT_B);//鼻書き始め ~
Wait(10); ~
Off(OUT_B); ~
OnRev(OUT_A+OUT_C); ~
Wait20); ~
Off(OUT_A+OUT_C); ~
OnFwd(OUT_A); ~
OnRev(OUT_C); ~
Wait(40); ~
Off(OUT_A+OUT_C); ~
OnRev(OUT_A+OUT_C); ~
Wait(20); ~
Off(OUT_A+OUT_C);//鼻書き終わり ~ ~ ~ ~


鈴:僕は竹の顔を書いたが、顔の形を書くとき、竹の書いた僕の顔のものよりWaitの時間を変えて楕円ではあるが、微妙に異なるようにしてみた。また口を書くとき車体がうまく回転しないため予定のようにならなかったが、予定のものよりらしい顔になったと思うのでそのまま使うことにした。~~

**○感想~ [#i2d8a9e3]
 竹:慣れてくれば楽しいのだが、まだ必死な中で取り組んだため、ほっとしたという感覚が強い。思うようにいかない部分が多かったが、意外とうまくいった部分もあってよかったと思う。今回学んだことをいかして次につなげたい。~
 鈴:おもに車体を作ったけど、最初のやつで顔を作ろうとした時に、全く顔が出来なかったので一から作るのが大変だった。車体の形一つでプログラムの内容も大きく変わるので、双方の大切さがわかった。

ロボットの説明やプログラムを書こうと頑張っています。~
これからの課題でも生きるので、サブルーチンや関数を使ってみてください。~
プログラムを貼る時は、どの行も半角で一行あけると、見やすく表示されます。~
また、ロボットの説明をもっと詳しくしたり(特にペンの上げ下げ)、似顔絵の写真を貼ったりすると、良いレポートになると思います。 FI

ロボットの工夫に味がある!ただもう少し工夫点の説明が欲しい。~
プログラムは説明不足です。説明をつけることにより、マクロやサブルーチンにまとめられそうなところが見えてきて、課題の条件「可能な部分についてはサブルーチンや関数、マクロなどを使って部品に分けること。」が達成しやすくなるはずです。(こさか)

一応、書くべきことは大体書いてます。しかし、マクロやサブルーチンなどを使えてません。必ずしも必要ではないですが、図や写真に書き込みを入れることでわかりやすい説明になるろ思います FI


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