目次
2017a/Mission1を参照してください
私は初めて自転車だけが交通手段になったので「車」を選びました。
私達は基本の車型を崩さずに車体を動かして文字を書くことにした。この後ろにある組み立てられたパーツはアームを付けた時のバランスを取るためにある。これがなっかたらアームの重さで重心が前にずれてしまうため車体が揺れてしまいまともに字を書くことが難しくなるのと、ペンが紙に着きっぱなしになってしまう。
アームを上げ下げさせることでペンを動かす。モータのところに位置合わせのためのゴムとギヤ方向を変えるためのギヤが付いている。そして間にあるギアで上下移動する。
時計回り{プログラム上ではOnRev(OUT_*)}のときに、ペンを下げることができ反時計回り{プログラム上ではOnFwd(OUT_*)}のときに、ペンを上げることができる。
また写真では確認しにくいがアームの後ろにあるグレーのパーツが上がりすぎや下がりすぎを防ぐことができ、黄色のパーツでモータを止めた振動でアームが取れてしまうのを抑えることができる。
「車」の正式な書き順ではなく写真のように書いていきます。
#define TURN_left(t) OnFwd(OUT_C);Wait(t);Float(OUT_C); #define TURN_right(t) OnFwd(OUT_A);Wait(t);Float(OUT_A); #define UP_pen OnFwd(OUT_B);Wait(12);Float(OUT_B); #define DOWN_pen OnRev(OUT_B);Wait(12);Float(OUT_B);
ここはすべての画数において共通の定義である。見てもわかるようにこれは上から車体を左に曲げる、右に曲げる、ペンを上げる、ペンを下げるとなっている。(t)で曲がる時間を調節する。 注意 毎回(t)は違いますが基本は垂直になるように回転させていて、そのときは縦・横で表現していることもある。違うときには、説明を追加する。
まずは一画目を見てみましょう。
task main() { TURN_left(190); DOWN_pen; //1画目// OnRev(OUT_AC); //モータACを反時計回りにまわす=車体を後退させる// Wait(95); //次の命令の待ち時間// Float(OUT_AC); //モータACを止める// UP_pen; //1画目終了// }
車体は縦においた状態から始めていますのでまず横にするためにTURN_leftをして、そのまま書いている。
task main() { OnRev(OUT_AC); Wait(10); Float(OUT_AC); TURN_left(180); TURN_right(187); TURN_right(187); OnRev(OUT_AC); Wait(45); Float(OUT_AC); Wait(50); DOWN_pen; //2画目// OnRev(OUT_AC); Wait(45); Float(OUT_AC); Wait(50); UP_pen; //2画目終了// }
二画目に至るために車体を180°回転させて書く位置まで動かして書いている。ここで長さを長くし過ぎるとバランスが崩れるので気をつけましょう。
task main() { OnFwd(OUT_AC); Wait(50); Float(OUT_AC); Wait(50); TURN_left(225); OnRev(OUT_AC); Wait(155); Float(OUT_AC); Wait(50); DOWN_pen; //3画目// OnRev(OUT_AC); Wait(65); Float(OUT_AC); Wait(50); UP_pen; //3画目途中終了// OnRev(OUT_AC); Wait(25); Float(OUT_AC); Wait(50); TURN_right(218); Wait(50); OnRev(OUT_AC); Wait(135); Float(OUT_AC); DOWN_pen; //3画目途中// OnRev(OUT_AC); Wait(55); Float(OUT_AC); UP_pen; //3画目終了// }
三画目は二画目の最初に戻し横にして場所を調整して書いている。その後100°くらい回転させて、それによりずれた分を戻してから書いている。
task main() { OnFwd(OUT_AC); //モータACを時計回りに回す=車体を前進させる// Wait(30); Float(OUT_AC); Wait(10); TURN_right(160); Wait(50); OnRev(OUT_AC); Wait(125); Float(OUT_AC); Wait(20); DOWN_pen; //4画目// OnRev(OUT_AC); Wait(58); Float(OUT_AC); UP_pen; //4画目終了// }
四画目は先ほど角度がずれているので80°くらい回転させて、それによりずれた分を戻して書いている。
task main() { TURN_left(218); OnRev(OUT_AC); Wait(85); Float(OUT_AC); TURN_left(178); OnRev(OUT_AC); Wait(165); Float(OUT_AC); Wait(20); DOWN_pen; //5画目// OnRev(OUT_AC); Wait(65); Float(OUT_AC); Wait(50); UP_pen; //5画目終了// }
五画目は180°回転させるだけでは、行かせたい位置には相当なズレが生じるので途中で少し戻すことで調整している。またそれでもずれた分を戻して書いている。
task main() { TURN_right(220); Wait(10); OnRev(OUT_AC); Wait(250); Float(OUT_AC); Wait(10); TURN_left(225); Wait(20); OnRev(OUT_AC); Wait(75); Float(OUT_AC); Wait(50); DOWN_pen; //6画目// OnRev(OUT_AC); Wait(85); Float(OUT_AC); Wait(10); UP_pen; //6画目終了// }
六画目はまず四画目の下に持っていくために車体を縦にして下げている。その後横にして場所を調節して書いている。これも遠すぎるとバランスが崩れてていしまう。
task main() { TURN_left(205); OnRev(OUT_AC); Wait(285); Float(OUT_AC); Wait(10); DOWN_pen; //7画目// OnFwd(OUT_AC); Wait(155); Float(OUT_AC); UP_pen; //7画目終了// }
七画目は縦にしてバックさせることで上に戻している。そのあと前進させることで書いている。上のようにやるときは、時間調整は長すぎると感じるくらいのところから始めると良い。これはアームが長いほど当てはまる。
これらを連続で実行することで写真のようになった
漢字は一つでも角度と場所がずれてしまう成り立たなくなってしまうことが多くとても難しい、そして上記の通りにやってうまく行かないこともあるだろう。なぜなら動きに少しの誤差が生じてしまうからだ。それでも諦めずに根気よく立ち向かっていく精神を持って頑張ってほしい。また車型でやる場合は、この時間でこれくらい進んでこの位置に持ってきたらこれくらいずれているなどという感覚は持っていたほうが良いが、この感覚をかなり良く持っていないとうまく行かないので、自信のない人は動かして何回もやったほうが上手く行くでしょう。
調整するのにも多大な時間がかかり疲れましたが、自分にとって良い経験になったのではないかと思いました。