*書道ロボa2L [#x2a6ac62] #contents **ロボット [#c48337eb] このロボットは指定した文字を書くために作られ、もともとキャタピラ型だったものを都合上タイヤの方が動きやすいだろうということで急きょタイヤ型にチェンジし、また、数々の試行錯誤を重ねたのちに出来上がった2aLの初号機である。 ***作成過程 [#x8c310e8] 1 基礎部分・・・授業の初めの方で作った物を少し改造して使用 2 アーム部分・・・メンバーが自宅にて作成して来たものを使用 3 接合&調整・・・ロボティクス授業時間内に進行、完了。 ***工夫(特徴) [#ba46ec93] アーム部分においてただ腕を振り下ろす仕組みではなく、ギアを駆使してペンを垂直に降ろせるようなものを作った。ギアは低速で、確実に降ろしたい場所におろせるように工夫。また、マシンの旋回のことを考え、ペンの位置をマシンの中央部に設置。マシン自体はバランスをとるために正面から見たときにできるだけ左右対称になるように心がけた。 **「木」の字を書くプログラム [#d24ca4f0] #define PEN_TIME 10 sub pendown() //ペンを下ろす { OnFwd(OUT_B); Wait(PEN_TIME); Off(OUT_B); } sub penup() //ペンを上げる { OnRev(OUT_B); Wait(PEN_TIME); Off(OUT_B); } task main() { pendown(); //1画目 OnFwd(OUT_A+OUT_C); Wait(120); Off(OUT_A+OUT_C); penup(); OnFwd(OUT_A); //線を書かずに2画目へと移動 OnRev(OUT_C); Wait(92); OnFwd(OUT_A+OUT_C); Wait(50); Off(OUT_A+OUT_C); OnFwd(OUT_A); OnRev(OUT_C); Wait(92); OnFwd(OUT_A+OUT_C); Wait(60); OnFwd(OUT_A); OnRev(OUT_C); Wait(92); Off(OUT_A+OUT_C); pendown(); //2画目 OnFwd(OUT_A+OUT_C); Wait(150); Off(OUT_A+OUT_C); penup(); OnRev(OUT_A+OUT_C); //線を書かずに後退、3画目へと移動 Wait(100); Off(OUT_A+OUT_C); OnFwd(OUT_C); OnRev(OUT_A); Wait(35); pendown(); //3画目 OnFwd(OUT_A+OUT_C); Wait(100); Off(OUT_A+OUT_C); penup(); OnRev(OUT_A+OUT_C); //ペンを上げ、次の4画目のため向きを変える Wait(100); Off(OUT_A+OUT_C); OnFwd(OUT_A); OnRev(OUT_C); Wait(70); pendown(); //4画目 OnFwd(OUT_A+OUT_C); Wait(100); Off(OUT_A+OUT_C); penup(); } **「田」の字を書くプログラム [#j558415a] #define TURN_TIME 93 sub turnright() //右に90度曲がる { OnRev(OUT_A); OnFwd(OUT_C); Wait(TURN_TIME); Off(OUT_A+OUT_C); } sub turnleft() //左に90度曲がる { OnFwd(OUT_A); OnRev(OUT_C); Wait(TURN_TIME); Off(OUT_A+OUT_C); } sub pendown() //ペンを下げる { OnFwd(OUT_B); Wait(10); Off(OUT_B); } sub penup() //ペンを上げる { OnRev(OUT_B); Wait(10); Off(OUT_B); } task main() { pendown(); //一画目 OnFwd(OUT_A+OUT_C); Wait(100); Off(OUT_A+OUT_C); penup(); OnRev(OUT_A+OUT_C); Wait(100); Off(OUT_A+OUT_C); turnleft(); pendown(); //二画目 OnFwd(OUT_A+OUT_C); Wait(120); Off(OUT_A+OUT_C); penup(); OnRev(OUT_A); OnFwd(OUT_C); Wait(100); Off(OUT_A+OUT_C); pendown(); OnFwd(OUT_A+OUT_C); Wait(95); Off(OUT_A+OUT_C); penup(); OnRev(OUT_A+OUT_C); Wait(48); Off(OUT_A+OUT_C); tuenright(); pendown(); //三画目 OnFwd(OUT_A+OUT_C); Wait(115); Off(OUT_A+OUT_C); penup(); OnRev(OUT_A+OUT_C); Wait(60); Off(OUT_A+OUT_C); turnright(); OnFwd(OUT_A+OUT_C); Wait(42); Off(OUT_A+OUT_C); pendown(); //四画目 OnRev(OUT_A+OUT_C); Wait(100); Off(OUT_A+OUT_C); penup(); turnleft(); OnFwd(OUT_A+OUT_C); Wait(53); Off(OUT_A+OUT_C); pendown(); //五画目 OnRev(OUT_A+OUT_C); Wait(100); Off(OUT_A+OUT_C); penup(); } **プログラム作成にあたっての考察 [#l6675e8f] ロボットの構造上の「ペンが回転軸の中心にある」という利点を最大限に生かすようプログラムを組みました。ペンが回転軸の中心にある、すなわちロボットの通った軌跡を線として表すことができる。この特性により、角をプログラムでは回転運動のみで、何度も交わる画も、後退を取り入れることによりより正確に表せるようになっています。 **反省と感想etc [#vefaf9cb] ペンを回転軸の中心に持ってくるという案により、プログラム面での文字の構成は当初予想していた通り容易に達成することができました。 しかし、ペン事態を支えるアームの強度が足りなかったため、回転時にペン先を点として固定することができず、回転時に一度ペンを紙面から離さねばならない問題が生じてしまい、それを期間内には改善することできなかったのが残念でした。 さらに、ロボットの動き方として一番動きやすい方法を考えるとものによっては、違う書き順でないとプログラムが大変になってしまい、結局本来の書き方でなくなってしまったりしました。 また、プログラムの構成を前提としたロボットの設計だったため、重量が予想以上に重くなってしまったので、今後は一方にのみとらわれず、全体を見て設計をできるようにしたい。 次の課題では「強度」という観点に対してより重点を置き、設計をしていこうと考えています。 ついしん、いろいろな関係により写真のupができなくてすみませんでした。次回はできる限り努力します(汗)。 **コメント [#x0a48432] コメントお待ちしてまーす!! -作成過程の説明はよいと思います。「反省と感想etc」本文に誤字あり。 -- [[ヒロヤ]] &new{2007-05-24 (木) 00:35:32}; #comment