ロボット名の由来 同じグループでありながら、自分のペアの人の名前を間違えるという偉業を成し遂げてくれたため。
『合』『目』
工夫した点は、ペンをセットする部分がもろくなってしまったのでロボットに持たせたペンがきちんと動くように持ち手の周りをブロックで固めて補強しました。またチューブを取り付けたことで、ペンの動きをより正確に、より安定させることができました。またペンの上げ下げする時間を極力短くするように工夫をしました。 苦労した点はロボットが90度に曲がる時間を見つけるために調節したところと、実際ペンを持った時に所定の場所にペン先がくるように調節したことです。
task main() { //1画目(いよいよ書き始めます。ドキドキです。) OnFwd(OUT_B);Wait(1); OnFwd(OUT_A+OUT_C);Wait(80); OnRev(OUT_B);Wait(1); //2画目(方向転換させる前に、ロボを少し前進させることで書き始める位置を調整しました。) OnFwd(OUT_A+OUT_C);Wait(10); OnFwd(OUT_C);Wait(80); OnRev(OUT_A+OUT_C);Wait(98); OnFwd(OUT_B);Wait(1); OnFwd(OUT_A+OUT_C);Wait(80); OnRev(OUT_B);Wait(1); //3画目(思うような位置に動いてくれず苦労しました。方向転換する前の前進、後退で位置を揃えました) OnFwd(OUT_A+OUT_C);Wait(60); OnRev(OUT_C);Wait(150); OnRev(OUT_A+OUT_C);Wait(35); OnFwd(OUT_B);Wait(1); OnRev(OUT_A+OUT_C);Wait(40); OnRev(OUT_B);Wait(1); //4画目(いよいよ長方形の部分に取りかかります。3画目に対して直角になるように調整しました。) OnFwd(OUT_A+OUT_C);Wait(120); OnRev(OUT_A);Wait(110); OnRev(OUT_A+OUT_C);Wait(80); OnFwd(OUT_B);Wait(1); OnFwd(OUT_A+OUT_C);Wait(35); OnRev(OUT_B);Wait(1); //5画目(3画目と平行4画目と垂直になるような位置や角度の決定なので比較的やりやすかったです。) OnFwd(OUT_A+OUT_C);Wait(60); OnRev(OUT_A);Wait(105); OnRev(OUT_A+OUT_C);Wait(98); OnFwd(OUT_B);Wait(1); OnFwd(OUT_A+OUT_C);Wait(40); OnRev(OUT_B);Wait(1); //6画目(俄然やる気が出ました。しかし誤って組んだプログラムを消してしまい振り出しに戻りました。) OnFwd(OUT_A+OUT_C);Wait(80); OnRev(OUT_C);Wait(105); OnRev(OUT_A+OUT_C);Wait(92); OnFwd(OUT_B);Wait(1); OnFwd(OUT_A+OUT_C);Wait(40); OnRev(OUT_B);Wait(1); //7画目(最後です。最後の最後で書き順が違っていて焦りましたが、書き順を直してやっと完成です。) OnFwd(OUT_A+OUT_C);Wait(85); OnRev(OUT_C);Wait(105); OnRev(OUT_A+OUT_C);Wait(40); OnFwd(OUT_B);Wait(1); OnRev(OUT_A+OUT_C);Wait(40); OnRev(OUT_B);Wait(1); }
上の部分と下の長方形の部分とのバランスをとるのに苦労しました。
最後の6画目、7画目に入ってからくだらないミスを連発してしまいページにプログラムをうまく載せられなくて残念です。遅れてすみません。
また、ペンを取り付ける部分がもろくなってペン筋が微妙にずれてしまったのがスムーズにいかなかった原因の1つだと思われます。ガサツで適当な所が制作者に似たのでしょうか(苦笑)
しかし最終的には満足のいく素晴らしい漢字を書いてくれたので良しとします。1番気を遣った文字のバランスの部分は完璧にできました。
sub SUB1() //目の横の線。最後、3回同じ動きをするのでサブルーチンを用いた。 { OnFwd(OUT_A+OUT_C); Wait(40); OnRev(OUT_A); OnFwd(OUT_C); Wait(95); Off(OUT_A+OUT_C); OnRev(OUT_A+OUT_C); Wait(50); OnFwd(OUT_B); Wait(1); OnFwd(OUT_A+OUT_C); Wait(60); OnRev(OUT_B); Wait(1); OnRev(OUT_A+OUT_C); Wait(60); OnRev(OUT_C); OnFwd(OUT_A); Wait(95); Off(OUT_A+OUT_C); } task main() { //一画目。一回引いた線の上を戻って書きはじめの位置まで戻るように調節した。 OnFwd(OUT_B); Wait(1); OnFwd(OUT_A+OUT_C); Wait(120); OnRev(OUT_B); Wait(1); OnRev(OUT_A+OUT_C); Wait(120); //二画目。向きを変えてから直角に曲がるまで。角度の調節が難しかった。 OnRev(OUT_A); OnFwd(OUT_C); Wait(95); Off(OUT_A+OUT_C); OnRev(OUT_A+OUT_C); Wait(50); OnFwd(OUT_B); Wait(1); OnFwd(OUT_A+OUT_C); Wait(60); OnRev(OUT_B); Wait(1); OnRev(OUT_C); OnFwd(OUT_A); Wait(95); Off(OUT_A+OUT_C); OnRev(OUT_A+OUT_C); Wait(50); OnFwd(OUT_B); Wait(1); OnFwd(OUT_A+OUT_C); Wait(120); //二画目の線をそのまま戻って二画目の最初の場所に戻る。三画目を書くためにマシンを直角に曲がらせる。 OnRev(OUT_B); Wait(1); OnRev(OUT_A+OUT_C); Wait(120); OnRev(OUT_C); OnFwd(OUT_A); Wait(95); Off(OUT_A+OUT_C); OnFwd(OUT_A+OUT_C); Wait(60); OnRev(OUT_A); OnFwd(OUT_C); Wait(95); Off(OUT_A+OUT_C); //最後の三画分である目の横棒の部分。同じ書き方になるように工夫した。 SUB1(); SUB1(); SUB1(); } //終了
直角に線を引ける様なプログラムを考え、それを応用していけばいいので比較的やりやすかった。3画目と4画目、そして全体のバランスを考えてプログラミングした。思ったよりも時間がかかってしまったが、とても良い出来になったと思う。