[[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つでペンをはさんでます。 ・↑↑ちなみにタイヤの小さいほうが前輪です。 **ロボット完成後のプログラム [#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); } *果たして「木」の出来は・・・!? [#d7d64643] **練習段階では・・・ [#q608aac1] ・実験段階では、一点に交わったり交わらなかったりで非常に不安定な出来栄えだった。 ・運を天に任せ・・・ &ref(kansei.ki.jpg); **ロボットの書いた「木」について [#z5f95dca] ・正直想像以上の出来だった。実験段階でもここまできれいには交わらなかった。やるときはやってくれるなぁこのロボットは!!(笑) ・というわけで成功(?)ということで。。。 *考察 [#ge0c35d0] **難しかった点 [#kf103316] ・やはり一画目、二画目、三画目、四画目を一点に交わせること が難しかった。何度も数値を変えて実験を繰り返し一点に交わるようにしたが、床との摩擦、紙が動く等の問題が山積みである。 ・さらにこのロボットは、走っているうちに左に曲がる傾向があるので、厄介だった。 ・多少強度に難あり。 **工夫した点 [#hdb5217d] ・出来るだけシンプルで動きやすいロボットにした。 ・ペンを挟むタイヤを上方に取り付けることによって、ペンをタイヤで上げたときに上に飛んでいくことを防いだ。 ・また、ペンをブロックで四方を囲むことによってペンのブレを防いだ。 ・初めはペンを下げる時間を決めていたが、ペンを上げ下げしているうちに紙まで届かないことがあるので、 後半になるにつれてペンを下げる時間を長くすることによって 最後まで書き続けることに成功した。 ・プログラミングが楽になるように情報集めに力を注いだ。 ・筆ペンにしたことは正解だったと思う。 **今後改善したい点 [#zbe46e34] ・ギリギリで完成したので、もっと計画的に作成したかった。 ・過去の先輩方のプログラミングや、授業計画などを参考にして、より高度なものを作成すればよかったと思う。 ・例えば、floatを使って「木」の三角目、四画目を曲線にするなど...。 **感想 [#k7010108] ・初めてロボットが木という字を書いたときには感動した。なにせ初めは周りの人から「これアスタリスク?」と言われたもんで。。。 ・ロボットが完成してからは、時間はかかったけれど、割とスムーズに事が運んでよかった。 ・あと、ちゃんとまっすぐ、粘り強く走れるように頑張って!! -コメントをどうぞ -写真を載せると、ロボットのイメージが伝わると思いますよ。 -- [[ゆき(TA)]] &new{2006-05-26 (金) 14:57:44}; -#defineは一行にまとめないと、うまくいかないと思います。 -- [[ゆき(TA)]] &new{2006-05-26 (金) 15:16:05}; #comment