前回のものを実際に本体を使って試運転した結果、しっかりと動けてなかったので改良したものです。数値の調整は必要。
#define pen_down OnFwd(OUT_B);Wait(100); //ペンを下げる #define pen_up OnRev(OUT_B);Wait(100); //ペンを上げる #define turn1 OnFwd(OUT_A);OnRev(OUT_C);Wait(85); //右旋回1 #define turn2 OnFwd(OUT_A);OnRev(OUT_C);Wait(40); //右旋回2 #define turn3 OnRev(OUT_A);OnFwd(OUT_C);Wait(70); //左旋回 #define OUT1 Off(OUT_A+OUT_C); Wait(10); //タイヤのモーターを止める #define OUT2 Off(OUT_B);Wait(10); //ペンのモーターを止める task main() { pen_down; OUT2; OnFwd(OUT_A+OUT_C); Wait(150); OUT1; pen_up; OUT2; //一画目 OnRev(OUT_A+OUT_C); Wait(190); OUT1; turn1; OnRev(OUT_A+OUT_C); Wait(50); OUT1; //二画目の始まりまで移動 pen_down; OUT2; OnFwd(OUT_A+OUT_C); Wait(200); OUT1; pen_up; OUT2; //二画目 OnRev(OUT_A+OUT_C); Wait(215); OUT1; turn2; OUT1; OnFwd(OUT_A+OUT_C); Wait(30); OUT1; //三画目の始まりまで移動(後退・旋回) pen_down; OUT2; OnFwd(OUT_A+OUT_C); Wait(150); OUT1; pen_up; OUT2; //三画目 OnRev(OUT_A+OUT_C); Wait(165); OUT1; turn3; OUT1; OnFwd(OUT_A+OUT_C); Wait(111); OUT1; //四画目の始まりまで移動(後退・旋回) pen_down; OUT2; OnFwd(OUT_A+OUT_C); Wait(150); OUT1; pen_up; //四画目 Off(OUT_A+OUT_B+OUT_C); }
はじめは、ただペンを振り下ろすようにしていましたが、それでは当然ペン先が傷んでしまうと思い、できるだけ垂直におろすような形をとりました。
↑ペンを持つ部分
上に書いたプログラムでほぼ完全に動きます。しかし、紙が曲がっていたりでこぼこしていたりすると三画目、四画目が合わなくなってしまいます。今まで新聞紙の上に書いて成功した確率は20%程度なので課題は成功する確率を100%に上げることです。 字を書く仕組みはロボット自体を動かして書くというものだったのでペンの方を動かす仕組みにしていればよかったと思いました。また、実際に字を書かせてみたら字が少しグニャグニャになってしまったので、ペンを持たせる部分をもう少ししっかりさせておけばよかったと思いました。 制作者:水
実にコンパクトにまとめられたと思います。地面の条件が悪いとうまくかけないのが難点。しかし、筆ペンを使うことによりその悩みは解決されるはず。まだ試してないのでわかりませんが、うまくいくはず!うまくいくと良いな。うまくいけばなぁ。 とりあえず動いてくれ。1mmでも良いから。うん。 結果。ふにゃふにゃした。もうちょっとペンを支えるとこをキツくしめなきゃアカンかったー。まぁ、明日があるさ〜明日がある〜若い僕には夢がある〜。俺若いし。 制作者:泰史
このプログムは定義を多く使い、簡略化できた。最初は鉛筆で書こうとしていたが、見えない、書けない、字にならない、の壁に直面した。この窮地に救いの手を差し伸べたのは、筆ペンだった。あの毛筆の柔らかさ、絶妙ですばらしい。 また、ペンを上げ下げする動力の伝わり方を直接伝わらせる方法からギアを介する方法にかえることによって、滑らかなタッチを実現!!そして、 それはもう良寛さんのようなすばらしい字になった・・・。 制作者:ゆうき