#ref(robo1.jpg,center) *『介』を書くロボットープログラム [#d7da0012] &ref(suke.jpg); ←書けた「介」 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);//ペンを上げる } +工夫した点 -ペンの装着場所を後方にしたため、最初のプログラムでは誤差ができてしまった。そこで、微妙な動作の秒数を変化させたり、画と画の繋ぎ目まで移動するようにプログラムしなおしたこと。 -プーリーを使って動力を弱めて、動作をゆっくりにして正確な動作になるようにした。 #ref(robot3.jpg.jpg); ↑これがプーリーです 2.次に活かしたい点 -プログラムでサブルーチンを使用したりして、もっとコンパクトなプログラムを作りたい。 *『太』を書くロボットープログラム [#w061e2e6] &ref(huto.jpg); ←これが書けた『太』 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. 苦労した点 #ref(『太』 図1.JPG) 図1の?の部分がうまく合わさらなかった。図1の?の部分と同じ時間戻ってしまうと、?の部分がうまく合わさらなかった。この接合部分をうまく合わせるために、何度も試行錯誤を繰り返した。試行錯誤の結果、?よりも少なく戻り、ペンを下ろさずに数秒前進し位置を合わせてからペンを下ろし書くようにした。 *comment [#p5cd8ef9] -コメント欄を追加させていただきました。 -- [[ゆき(TA)]] &new{2006-11-24 (金) 12:56:01}; -苦労した点を図示したのは良いですね。 -- [[ゆき(TA)]] &new{2006-11-24 (金) 12:57:22}; -図1の説明で "?" になっている部分がありますよ。 -- [[ゆき(TA)]] &new{2006-11-24 (金) 12:58:23}; #comment