- 追加された行はこの色です。
- 削除された行はこの色です。
[[2006a/B2]]
*『木』とロボットに書かせる [#x62d7d3d]
#contents
**試作プログラム [#a0a5d632]
5月17日、とりあえず試作プログラムです。
製作者//:Blue
task main ()
{
OnFwd(OUT_A+OUT_C);
Wait();
OnFwd(OUT_A);OnRev(OUT_C);
Wait();
OnFwd(OUT_A+OUT_C);
Wait();
OnFwd(OUT_A);OnRev(OUT_C);
Wait();
OnFwd(OUT_A+OUT_C);
Wait();
OnFwd(OUT_A);OnRev(OUT_C);
Wait();
OnFwd(OUT_A+OUT_C);
Wait();
OnRev(OUT_A+OUT_C);
Wait();
OnRev(OUT_A);OnFwd(OUT_C);
Wait();
OnFwd(OUT_A+OUT_C);
Wait();
OnRev(OUT_A+OUT_C);
Wait();
OnFwd(OUT_A);OnRev(OUT_C);
Wait();
OnFwd(OUT_A+OUT_C);
Wait();
Off(OUT_A+OUT_C);
}
*やっとロボット完成!! [#we35275c]
**ペンについて [#x3aa76d5]
・どうやってペンを持たせるかでかなり時間をとられてしまった。
・初めはキャタピラにくくりつける、アームを作ってペンを持たせるなど、色々案があったが、すべて計画倒れになってしまう。
・そして現在のようにタイヤにペンを挟み込むという案に落ち着いた。
&ref(kadai.ki.jpg);
&ref(ki.jpg); ←タイヤ2つでペンをはさんでます。
・↑↑ちなみにタイヤの小さいほうが前輪です。
&ref(kadai.ki.jpg);
←ちなみにタイヤの小さいほうが前輪です。
**ロボット完成後のプログラム [#td79ce3d]
・試作プログラムを踏まえてもっと見やすい、そして打ってて楽なプログラムを作りました!
・これがペンを持たせた後の最新プログラムです。
製作者//:Blue
製作日//:2006-5-21
#define turn_right(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t);Off(OUT_A+OUT_C); // 右へ旋回
#define turn_left(t) OnRev(OUT_A);OnFwd(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 go_back(t) OnRev(OUT_A+OUT_C);Wait(t);Off(OUT_A+OUT_C); // まっすぐ後退
#define pen_up(t) OnFwd(OUT_B);Wait(t);Off(OUT_B); // ペンを上げる
#define pen_down(t) OnRev(OUT_B);Wait(t);Off(OUT_B); // ペンを下げる
task main()
{
pen_down(7);
go_straight(100); // 「木」の一画目
pen_up(6);
go_back(85); //二画目始点まで移動開始
turn_right(98);
go_back(21);
pen_down(); //移動終了
go_straight(150); // 「木」の二画目
pen_up(6);
go_back(123); //三画目まで移動開始
turn_right(45); //移動終了
go_straight(31); // 「木」の三画目
pen_down(9);
go_straight(90);
pen_up(6);
go_back(119); //四画目まで移動開始
turn_left(80); //移動終了
go_straight(34); // 「木」の四画目
pen_down(9);
go_straight(100);
pen_up(7);
pen_down(7); //ペンを下ろす
go_straight(100); //「木」の一画目
pen_up(6); //ペンを上げる
go_back(85); //二画目始点まで移動開始
turn_right(98); //90°回転
go_back(21); //二画目の始点まで後退
pen_down(); //ペンを下ろす
go_straight(150); //「木」の二画目
pen_up(6); //ペンを上げる
go_back(123); //三画目まで移動開始
turn_right(45); //右旋回
go_straight(31); //そのまままっすぐ前進
pen_down(9); //ペンを下ろす
go_straight(90); //「木」の三画目
pen_up(6); //ペンを上げる
go_back(119); //四画目まで移動開始
turn_left(80); //左旋回
go_straight(34); //そのまままっすぐ前進
pen_down(9); //ペンを下ろす
go_straight(100); //「木」の四画目
pen_up(7); //ペンを上げる
}
*果たして「木」の出来は・・・!? [#d7d64643]
**練習段階では・・・ [#q608aac1]
・実験段階では、一点に交わったり交わらなかったりで非常に不安定な出来栄えだった。
・運を天に任せ・・・
&ref(kansei.ki.jpg);
**ロボットの書いた「木」について [#z5f95dca]
・正直想像以上の出来だった。実験段階でもここまできれいには交わらなかった。やるときはやってくれるなぁこのロボットは!!(笑)
・というわけで成功(?)ということで。。。
*考察 [#ge0c35d0]
**難しかった点 [#kf103316]
・やはり一画目、二画目、三画目、四画目を一点に交わせること
が難しかった。何度も数値を変えて実験を繰り返し一点に交わるようにしたが、床との摩擦、紙が動く等の問題が山積みである。
・さらにこのロボットは、走っているうちに左に曲がる傾向があるので、厄介だった。
・多少強度に難あり。
・人差し指一本で上半分の装備がとれてしまうので、多少強度に難あり。
・しかし強度に関しては、上と下をつなぎ合わせることに成功したので改善済み☆★
**工夫した点 [#hdb5217d]
・出来るだけシンプルで動きやすいロボットにした。
・ペンを挟むタイヤを上方に取り付けることによって、ペンをタイヤで上げたときに上に飛んでいくことを防いだ。
・また、ペンをブロックで四方を囲むことによってペンのブレを防いだ。
・初めはペンを下げる時間を決めていたが、ペンを上げ下げしているうちに紙まで届かないことがあるので、
後半になるにつれてペンを下げる時間を長くすることによって
最後まで書き続けることに成功した。
・プログラミングが楽になるように情報集めに力を注いだ。
・筆ペンにしたことは正解だったと思う。
**今後改善したい点 [#zbe46e34]
・ギリギリで完成したので、もっと計画的に作成したかった。
・過去の先輩方のプログラミングや、授業計画などを参考にして、より高度なものを作成すればよかったと思う。
・例えば、floatを使って「木」の三角目、四画目を曲線にするなど...。
・写真が少ないので、どのようなロボットなのか、特徴が伝わりにくいので、何とかして視覚的に説明できたらな...。
**プログラミングについては [#d7e5bb35]
・初めて本格的にプログラミングをしたが、タイヤを動かすかとめるかだけの単純なものだが初めは苦労した。
・具体的には、なんといっても同じことを何度も書いて書いて書いて...
・しかし、サブルーチン、マクロを知ってからは同じことを何度も書く必要が無くなり、プログラムが格段に楽に、しかも見やすくなった♪♪
・定義をするところはやはりちょっと厄介だった。。。
**感想 [#k7010108]
・初めてロボットが木という字を書いたときには感動した。なにせ初めは周りの人から「これアスタリスク?」と言われたもんで。。。
・ロボットが完成してからは、時間はかかったけれど、割とスムーズに事が運んでよかった。
・あと、ちゃんとまっすぐ、粘り強く走れるように頑張って!!
-コメントをどうぞ
-写真を載せると、ロボットのイメージが伝わると思いますよ。 -- [[ゆき(TA)]] &new{2006-05-26 (金) 14:57:44};
-#defineは一行にまとめないと、うまくいかないと思います。 -- [[ゆき(TA)]] &new{2006-05-26 (金) 15:16:05};
-よく書けてますね。 -- [[ゆき(TA)]] &new{2006-06-02 (金) 17:03:08};
#comment