* 課題1 字書きロボット作成【中】【古】[#g5784f41]
●A4の紙に字を上手に書くロボットを作った。
●文字は出身地を書くということで、それぞれ『東中野山』の『中』と『名古屋』の『古』を書き、一般的な書き順に従って書いた。
●ロボットを作るために使う部品は、全てキットに含まれるものを使用。
*ロボットの解説 [#l735cff0]
&ref(2007a/A6/課題1右/20070523195808.jpg,50%,ロボット全体図);
●モーターA、Cはタイヤに使い、Bはペンを上げ下げするのに使った。
●文字を書くペンはロボットの前方に設置。
●ペンを固定するためにゴムを使用。
●とても簡素なロボットとなった。
*字書きロボットのプログラム [#r9c90393]
**【中】のプログラム [#i84bbb03]
task main()
{
OnFwd(OUT_A+OUT_C); 一画目
Wait(80);
OnFwd(OUT_B);
Wait(8);
Float(OUT_B);
OnRev(OUT_A);
Wait(80);
OnRev(OUT_A+OUT_C);
Wait(50);
OnRev(OUT_B);
Wait(8);
Float(OUT_B);
OnFwd(OUT_A+OUT_C);二画目
Wait(120);
OnFwd(OUT_B);
Wait(8);
Float(OUT_B);
OnFwd(OUT_A+OUT_C);
Wait(80);
OnRev(OUT_C);
Wait(90);
OnRev(OUT_A+OUT_C);
Wait(50);
OnRev(OUT_B);
Wait(8);
Float(OUT_B);
OnFwd(OUT_A+OUT_C);
Wait(80);
OnFwd(OUT_B);
Wait(8);
Float(OUT_B);
OnFwd(OUT_A+OUT_C);
Wait(40);
OnRev(OUT_C);
Wait(80);
OnFwd(OUT_A+OUT_C);
Wait(80);
OnRev(OUT_B);
Wait(10);
Float(OUT_B);
OnRev(OUT_A+OUT_C);三画目
Wait(130);
OnFwd(OUT_B);
Wait(10);
Float(OUT_B);
Fwd(OUT_A);
Wait(50);
OnFwd(OUT_A+OUT_C);
Wait(180);
OnRev(OUT_C);
Wait(30);
OnRev(OUT_B);
Wait(10);
Float(OUT_B);
OnRev(OUT_A+OUT_C); 四画目
Wait(250);
Float(OUT_A+OUT_C);
}
**【古】のプログラム [#lfa70c57]
task main()
{
OnFwd(OUT_A+OUT_C); 一画目
Wait(200);
OnFwd(OUT_B);
Wait(8);
Float(OUT_B);
OnRev(OUT_C);
Wait(250);
OnFwd(OUT_A+OUT_C);
Wait(140);
OnRev(OUT_C);
Wait(200);
OnRev(OUT_B);
Wait(8);
Float(OUT_B);
OnFwd(OUT_A+OUT_C); 二画目
Wait(150);
OnFwd(OUT_B);
Wait(8);
Float(OUT_B);
OnRev(OUT_C);
Wait(90);
OnFwd(OUT_A+OUT_C);
Wait(100);
OnRev(OUT_C);
Wait(270);
OnFwd(OUT_A+OUT_C); 三画目
Wait(80);
OnFwd(OUT_B);
Wait(8);
Float(OUT_B);
OnRev(OUT_A);
Wait(80);
OnRev(OUT_A+OUT_C);
Wait(50);
OnRev(OUT_B);
Wait(8);
Float(OUT_B);
OnFwd(OUT_A+OUT_C);四画目
Wait(120);
OnFwd(OUT_B);
Wait(8);
Float(OUT_B);
OnFwd(OUT_A+OUT_C);
Wait(80);
OnRev(OUT_C);
Wait(100);
OnRev(OUT_A+OUT_C);
Wait(50);
OnRev(OUT_B);
Wait(8);
Float(OUT_B);
OnFwd(OUT_A+OUT_C);
Wait(80);
OnFwd(OUT_B);
Wait(8);
Float(OUT_B);
OnFwd(OUT_A+OUT_C);
Wait(40);
OnRev(OUT_C);
Wait(80);
OnFwd(OUT_A+OUT_C); 五画目
Wait(80);
OnRev(OUT_B);
Wait(8);
Float(OUT_B);
Float(OUT_A+OUT_C);
}
*工夫した点 [#t354b702]
●ロボットを出来るだけ小さく、シンプルなものにするため、使用する部品を必要最小限にし、ペンを固定するのにゴムを使用した。
●ペン先を最初から紙に接するように調節した。
●ペンの上げ下げをするとき、モーターを回しすぎるとペン先がつぶれてしまうため、モーターの回転する時間をかなり研究した。
●ロボットを走らせていると振動で、固定していたはずのモーターが動いてしまい、紙から離しておいたペン先がだんだん下がってきて紙に触れてしまうため、モーター部分を本来の部品とゴムを使ってきつめに固定した。
*苦労した点 [#h0f015bb]
●ペンを固定する位置がロボットの本体の中心にあれば移動したり回転したとしても字がそのまま続けてかけていたけど、 作ったロボットはペンをロボットの前方に付けたため、プログラムの微調整にかなりの時間がかかった。
●ペンの上げ下げがうまくいかず、ところどころ字が薄くなってしまったりした。
●プログラムがかなり複雑なので、どこのプログラムがどんな風に動くか、作っているときにわからなくなった。
●字を書く際に紙を手で押さえてないとうまく書けず手こずった。
●同じプログラムのはずなのに書く度に文字の角度が違って大変だった。
*完成した文字 [#x4761dcc]
**【中】の完成図 [#qf8525c2]
&ref(2007a/A6/課題1右/20070523201506.jpg,50%,『中』);
●最後の直線がだいぶ曲がってしまって、うまく出来なかった。
**【古】の完成図 [#h101ab38]
&ref(2007a/A6/課題1右/20070523201338.jpg,50%,『古』);
●90度の角度がうまく書けず、歪な文字になってしまった。
*反省 [#z1171a47]
●やはり、ペンを固定する位置をロボットの前方ではなく中心にして、もっとプログラムを簡潔に出来ればよかった。
●ロボットの作りをシンプルで、かつ、小さくするのにこだわりすぎて、車体がもろい作りになってしまった。
●サブルーチンをうまく使いこなせなかった。
*感想 [#u7b5ae57]
●まだまだ勉強が足りないと痛感した。次回の課題は、今回の反省や経験をふまえ、取り組みたいと思う。
*解決方法 [#j2446543]
●方法としてはロボットを進行方向と一緒にペンを動かせるように作り直すか、このままでやるとしたら時間を正確に設定し、90度の角度を見極めるかだと思います。機械本体とペンを離しすぎると自分が想像している字と全然違う字になり、機械自体も気分次第で曲がる時間が日に日に変わり、どの班でもその機械の調子を合わせるのが大変だったようなので、それに対応するためには関数を使いその動かす日に数値を合わせていくしかないような気がした。
コメントをどうぞ
-完成した文字の写真を載せているのはよい。 -- [[ヒロヤ]] &new{2007-05-24 (木) 00:55:55};
-古のプログラムが一部はみだしています。あと、コメントが文字化けしてるので、直しておいてください。 -- [[まいける(TA)]] &new{2007-05-24 (木) 08:06:25};
-レポート修正しました。再評価をお願いします。 -- [[A6R]] &new{2007-06-14 (木) 17:52:53};
-見ました。もう少し考察等してみてはいかがでしょう?なぜ90度の角度がうまく書けなかったか、など。 -- [[ヒロヤ]] &new{2007-06-14 (木) 21:18:12};
-解決方法を載せ、レポート修正しました。再評価をお願いします。 -- [[A6R]] &new{2007-07-02 (月) 14:43:10};
-レポートの再評価は[[2007a/MemberOnly/進行状況A]]でTAに依頼しましょう。 -- [[松本]] &new{2007-07-02 (月) 22:42:27};
#comment