僕たちのロボット †僕たちが作ったロボットはかなりの重さはあるが、俊敏なロボットです。機能性を高めていったらかなりの重さになりました。しかし、タイヤとモーターが直接つながっているので、とっても俊敏です。まさにお笑い芸人の「タイムマシン3号」のふくよかな方の人みたいな感じです。知っている人は納得。知らない人は調べてね。 (1)は一見無意味に見えますが、実はこれがないとロボットが後ろに倒れてしまいます。倒れないようにするにはどうしたらよいかを議論した結果、シンプルに支えをつけることになりました。ロボットの前部を重くする案もありました。しかし、重くするブロックをつける場所が、プログラムをダウンロードするときに使う赤外線のところしかなく断念。ダメ押しとして『これ以上重くしてどうする!!』ということで完璧にあきらめました。つける支えを車輪にすることによって、ロボットの動きの邪魔にならないようにしました。 (2)にはペンがあります。4つのタイヤによって挟まれ、そのタイヤが動くことによってペンが上下します。最初は、2つのタイヤのみでペンを上下させていました。しかし、字を書いているうちにペンがずれてしまい、うまくかけなくなってしまいました。そのズレを直すためにタイヤを計4つにして、ペンを安定させました。そのせいでロボットが重くなったといっても過言ではありません。何度もいうようですが、重たくても俊敏! 『介』を書くロボットープログラム †task main() { OnFwd(OUT_B); Wait(20); Off(OUT_B); //ペンを下ろす OnFwd(OUT_A+OUT_C); Wait(100); Off(OUT_A+OUT_C);//『介』の一画目の直進 OnRev(OUT_B); Wait(20); Off(OUT_B);//ペンを上げる OnRev(OUT_A+OUT_C); Wait(130); Off(OUT_A+OUT_C);//一画目を戻る OnFwd(OUT_C); OnRev(OUT_A); Wait(75);//二画目に向けて旋回 OnFwd(OUT_A+OUT_C); Wait(40); Off(OUT_A+OUT_C);//一画目と二画目が重なるように旋回後に前進 OnFwd(OUT_B); Wait(30); Off(OUT_B);//ペンを下ろす OnFwd(OUT_A+OUT_C); Wait(120); Off(OUT_A+OUT_C);//二画目の直進 OnRev(OUT_B); Wait(20); Off(OUT_B);//ペンを上げる OnRev(OUT_A+OUT_C); Wait(50); Off(OUT_A+OUT_C);//二画目を途中まで戻る OnFwd(OUT_A); OnRev(OUT_C); Wait(110); Off(OUT_A+OUT_C);//三画目に向かえるように旋回 OnFwd(OUT_A+OUT_C); Wait(100); Off(OUT_A+OUT_C);//三画目に向けて二画目上から前進 OnFwd(OUT_C); OnRev(OUT_A); Wait(75); Off(OUT_A+OUT_C);//三画目を書き始められるように旋回 OnFwd(OUT_B); Wait(20); Off(OUT_B);//ペンを下ろす OnFwd(OUT_A+OUT_C); Wait(50); Off(OUT_A+OUT_C);//三画目を書く OnRev(OUT_B); Wait(20); Off(OUT_B);//ペンを上げる OnRev(OUT_A+OUT_C); Wait(50); Off(OUT_A+OUT_C);//三画目を戻る OnFwd(OUT_C); OnRev(OUT_A); Wait(75); Off(OUT_A+OUT_C);//四画目に向けて旋回 OnFwd(OUT_A+OUT_C); Wait(40); Off(OUT_A+OUT_C);//四画目に向けて直進 OnFwd(OUT_A); OnRev(OUT_C); Wait(75); Off(OUT_A+OUT_C);//四画目を書き始められるように旋回 OnFwd(OUT_B); Wait(30); Off(OUT_B);//ペンを下ろす OnFwd(OUT_A+OUT_C); Wait(80); Float(OUT_A+OUT_C);//四画目を直進し滑らかに終わる OnRev(OUT_B); Wait(20); Off(OUT_B);//ペンを上げる } 工夫した点 †
↑これがプーリーです 次に活かしたい点 †
『太』を書くロボットープログラム †
task main() { OnFwd(OUT_B); Wait(20); Off(OUT_B); //ペンを下ろす OnFwd(OUT_A+OUT_C); Wait(120); Off(OUT_A+OUT_C); //『太』の『―』を書くために前進 OnRev(OUT_B); Wait(20); Off(OUT_B); //ペンを上げる OnRev(OUT_A+OUT_C); Wait(105); Off(OUT_A+OUT_C); //後進 OnFwd(OUT_A); OnRev(OUT_C); Wait(105); Off(OUT_A+OUT_C); //右回転 OnFwd(OUT_B); Wait(25); Off(OUT_B); //ペンを下ろす OnFwd(OUT_A+OUT_C); Wait(130); Off(OUT_A+OUT_C); //『太』の『/』を書くために前進 OnRev(OUT_B); Wait(20); Off(OUT_B); //ペンをあげる OnRev(OUT_A+OUT_C); Wait(135); Off(OUT_A+OUT_C); //後進 OnFwd(OUT_C); OnRev(OUT_A); Wait(65); Off(OUT_A+OUT_C); //左回転 OnFwd(OUT_A+OUT_C); Wait(40); Off(OUT_A+OUT_C); //このままだとズレが生じるので、少し前進 OnFwd(OUT_B); Wait(25); Off(OUT_B); //ペンを下ろす OnFwd(OUT_A+OUT_C); Wait(110); Off(OUT_A+OUT_C); //『太』の『\』を書くために前進 OnRev(OUT_B); Wait(20); Off(OUT_B); //ペンを上げる OnRev(OUT_A+OUT_C); Wait(40); Off(OUT_A+OUT_C); //後進 OnFwd(OUT_A); OnRev(OUT_C); Wait(90); //右回転 OnFwd(OUT_A+OUT_C); Wait(65);Off(OUT_A+OUT_C); //前進 OnFwd(OUT_C); OnRev(OUT_A); Wait(80); Off(OUT_A+OUT_C); //左回転 OnFwd(OUT_B); Wait(25); Off(OUT_B); //ぺンを下ろす OnFwd(OUT_A+OUT_C); Wait(20); Off(OUT_A+OUT_C); //『太』『、』を書くために前進 OnRev(OUT_B); Wait(20); Off(OUT_B); //ペンを上げて終了 }
2. 苦労した点 図1の(1)の部分がうまく合わさらなかった。図1の(2)の部分と同じ時間戻ってしまうと、(1)の部分がうまく合わさらなかった。この接合部分をうまく合わせるために、何度も試行錯誤を繰り返した。試行錯誤の結果、(2)よりも少なく戻り、ペンを下ろさずに数秒前進し位置を合わせてからペンを下ろし書くようにした。 3. 感想 プログラミングをはじめてやって、とても楽しかった。ロボットを動かすのは本当に大変な作業だなと思った。ドラえもんや鉄腕アトムを作ることが、どれだけ難しいかがわかった気がする。 comment †
|