県の副委員長である教育学部の『藤田 裕介』君、そして私同じく教育学部の『和久田 成治』がペアであります。今回の課題は想像力が藤田君の方が豊かであったこと、僕の方が打ち込みが早いことを考慮し、藤田君にはマシンを任せてしまいましたが、プログラミング(全てではなく、少し手伝ってもらいました(汗))と次のロボットについて以外の入力は僕にやらせていただきました。
このロボットの名前は写真の横に書いてある通り”ギョウザ丸”です!由来は、二人に共通の友達であるギョウザ君の名前をいただきました(笑)(ギョウザ!ありがとう!)
一点目はタイヤ部分のギアです。当初の予定では、キャタピラを使う予定だったのですがペンを上下させる箇所にギアを使ってしまったため、使用できなくなりました。また、普通の大きさのタイヤも同様に使用できなくなりました。そのため、少し大きめのタイヤを使用しました。しかしスピードが速すぎて、とても字を書くことができるものではありませんでした。そこで大きなギアを二枚、小さなギアを二枚かませることにより何とか字が書けるようになりました。 [#cde3d8c4] 二つ目は足もと付近です。少しごつくなりすぎたため重量的な問題からタイヤが落下してしまいました。そこで、穴あきパーツに棒をかませることでタイヤ同士が離れることを防ぎました。また、薄い板をかみ合わせてペンを上下させる装置とタイヤを連結させ、強度を上げました。 [#x91ccb99] 三点目はペンを上下させる部分です。この部分はできるだけパーツの量を減らして重量を少なくしました。そのため、他のところと比べると少し地味に見えるようになってしまいました。またペンを使うとき動いてしまっていたので動いてしまっていた方向を補強しました。[#nb996888]
全体的にマシンがごつくなってしまったので、次回からはもう少しコンパクトに仕上げていきたいと思いました。 [#o92372fe]
#define MOVE_TIME 20 //ペンの上げ下げの時間
sub side_move() { OnFwd(OUT_B); Wait(MOVE_TIME); //ペンを下げる Off(OUT_B); Wait(30); OnFwd(OUT_A+OUT_C); Wait(100); //前に進む OnRev(OUT_B); Wait(MOVE_TIME); //ペンを上げる Off(OUT_B); Off(OUT_A+OUT_C); Wait(200); }
sub turn_right() //右に曲がる { OnRev(OUT_C); OnFwd(OUT_A); Wait(109); Off(OUT_A+OUT_C); Wait(200); }
sub turn_left() //左に曲がる { OnRev(OUT_A); OnFwd(OUT_C); Wait(109); Off(OUT_A+OUT_C); Wait(200); }
task main() { side_move(); //一画目の横棒をを描く
OnRev(OUT_A+OUT_C); Wait(140); //二画目の描き始めへ移動 Off(OUT_A+OUT_C); Wait(200); turn_right(); OnFwd(OUT_A+OUT_C); Wait(10); Off(OUT_A+OUT_C); Wait(200); turn_left(); OnRev(OUT_A+OUT_C); Wait(15); Off(OUT_A+OUT_C); Wait(200);
side_move(); //二画目の横棒をを描く
OnRev(OUT_A+OUT_C); Wait(30); //三画目の描き始めへ移動 Off(OUT_A+OUT_C); Wait(200); turn_right(); OnRev(OUT_A+OUT_C); Wait(126); Off(OUT_A+OUT_C); Wait(200);
OnFwd(OUT_B); Wait(MOVE_TIME); //三画目の縦棒を描く:ペンを下げる Off(OUT_B); Off(OUT_A+OUT_C); Wait(60); OnFwd(OUT_A+OUT_C); Wait(55 ); Off(OUT_A+OUT_C); Wait(200); repeat(10) //三画目の曲線を描く { OnFwd(OUT_A+OUT_C); Wait(5); OnFwd(OUT_A); OnRev(OUT_C); Wait(5); Off(OUT_A+OUT_C); } Off(OUT_A+OUT_C); Wait(200); OnRev(OUT_B); Wait(MOVE_TIME); //ペンを上げる Off(OUT_B); repeat(8) //四画目の描き始めへ移動 { OnRev(OUT_A+OUT_C); Wait(10); Off(OUT_A+OUT_C); Wait(20); OnRev(OUT_A); OnFwd(OUT_C); Wait(5); Off(OUT_A+OUT_C); } Off(OUT_A+OUT_C); Wait(200);
OnFwd(OUT_B); Wait(MOVE_TIME); //ペンを下げる Off(OUT_B); Off(OUT_A+OUT_C); Wait(50); repeat(10) //ラスト四画目を描く { OnFwd(OUT_A+OUT_C); Wait(5); OnRev(OUT_A); OnFwd(OUT_C); Wait(5); Off(OUT_A+OUT_C); } OnRev(OUT_B); Wait(MOVE_TIME); Off(OUT_B); }
以上が『天』です。工夫した点は考察がしやすいようにところどころに待機を入れたりしたこと、あとはバックをするときに前進と同じだだけの秒数で同じだけ動いてくれなかったので待機中に距離を測ったりしたこと。。。くらいです(笑)曲線が最後だったりしてその上をなぞったので内心助かりました(汗)しかし、なぞるといってもバックがやはりうまくいかなかったので、何回も試行錯誤を繰り返したのは言う間でもありません(汗)でも、最後の曲線の部分は結構こだわったので、出来上がりを見た時は、正直うれしかったです(照) [#xe5ea2d3] ちなみに僕が奈良県の天理というとこから来ましたので、『天』を選んで、書くことにしました。[#j4a3d845]
#define MOVE_TIME 20 //ペンの上げ下げの時間
sub turn_right() //右に曲がる { OnFwd(OUT_A);OnRev(OUT_C);Wait(40); } sub turn_left() //左に曲がる { OnFwd(OUT_C);OnRev(OUT_A);Wait(40); }
task main() { turn_right(); Off(OUT_A+OUT_C); Wait(100); OnFwd(OUT_B); Wait(MOVE_TIME); //ペンを下げる Off(OUT_B); Off(OUT_A+OUT_C); Wait(100); OnFwd(OUT_A+OUT_C); Wait(50); //一画目を描く Off(OUT_A+OUT_C); Wait(100); OnRev(OUT_B); Wait(MOVE_TIME); //ペンを上げる Off(OUT_B); turn_left(); //二画目へ移動 Off(OUT_A+OUT_C); Wait(100); OnRev(OUT_A+OUT_C); Wait(50); Off(OUT_A+OUT_C); Wait(100); turn_right(); Off(OUT_A+OUT_C); Wait(100); OnFwd(OUT_B); Wait(MOVE_TIME); //ペンを下げる Off(OUT_B); Off(OUT_A+OUT_C); Wait(100); OnFwd(OUT_A+OUT_C); Wait(50); //二画目を描く Off(OUT_A+OUT_C); Wait(100); OnRev(OUT_B); Wait(MOVE_TIME); //ペンを上げる Off(OUT_B);
turn_left(); //三画目へ移動 Off(OUT_A+OUT_C); Wait(100); OnRev(OUT_A+OUT_C); Wait(50); Off(OUT_A+OUT_C); Wait(100);
turn_right(); Off(OUT_A+OUT_C); Wait(100); OnFwd(OUT_B); Wait(MOVE_TIME); //ペンを上げる Off(OUT_B); Off(OUT_A+OUT_C); Wait(100); OnFwd(OUT_A+OUT_C); Wait(50); //三画目を描く(途中まで) Off(OUT_A+OUT_C); Wait(100); OnRev(OUT_B); Wait(MOVE_TIME); //ペンを上げる Off(OUT_B); turn_left(); //三画目のはねまで移動 Off(OUT_A+OUT_C); Wait(100); OnRev(OUT_A+OUT_C); Wait(30);
OnFwd(OUT_B); Wait(MOVE_TIME); //ペンを下げる Off(OUT_B); Off(OUT_A+OUT_C); Wait(100); OnFwd(OUT_A+OUT_C); Wait(25); //三画目のはねを描く Off(OUT_A+OUT_C); Wait(100); OnRev(OUT_B); Wait(MOVE_TIME); //ペンを下げる Off(OUT_B); }
『沼』に関しては、マシンの製造と『天』に意外と時間を使ってしまい、さんずいだけ(しかも完成してない(涙))になってしまいました。『天』の『なぞりバック』(??)と二画目に移る際のマシンの動きには特に使ってしまったのが痛手です(涙)あとはさんずいから刀に移る際の試行錯誤でもだいぶ(というかこれが一番かかったかも)時間を取られ、これもいたででした(涙) [#p3c62100] いうまでもないとは思いますが『沼』は藤田君の出身地によります。 [#g4e324a6]
プログラミングをより少なくより簡単にできるように工夫したいと思います(汗)
コメントをどうぞ