これまで住んだことのある都道府県名、市町村名、地区名などの中から2文字以上、かつ合計10画以上のものを選び、それをA4の紙に書くロボットを作成せよ。
私たちは書きやすさを考慮し、今現在住んでいる「松本」という文字を書くことにした。ペアがマクロと松の木偏を、私が松の公と本を担当した。
プログラミングの簡略化のためにプリンタ型のロボットを製作した。台車と左右の動きとペンの上げ下げの動きを出すために計3個のモーターを取り付けた。安定化させるために上下・前後・左右のバランスに注意した。
#define TATE_down150 OnFwd(OUT_B);Wait(150);Off(OUT_B); #define TATE_down50 OnFwd(OUT_B);Wait(50);Off(OUT_B); #define TATE_UP50 OnRev(OUT_B);Wait(50);Off(OUT_B); #define TATE_UP100 OnRev(OUT_B);Wait(100);Off(OUT_B); #define TATE_UP25 OnRev(OUT_B);Wait(25);Off(OUT_B); #define NANAME_right OnFwd(OUT_B);OnRev(OUT_C);Wait(100);Off(OUT_BC); #define NANAME_right_half OnFwd(OUT_B);OnRev(OUT_C);Wait(050);Off(OUT_BC); #define NANAME_right_quarter OnFwd(OUT_B);OnRev(OUT_C);Wait(025);Off(OUT_BC); #define NANAME_rightback OnRev(OUT_B);OnFwd(OUT_C);Wait(100);Off(OUT_BC); #define NANAME_rightback_half OnRev(OUT_B);OnFwd(OUT_C);Wait(050);Off(OUT_BC); #define NANAME_rightback_quarter OnRev(OUT_B);OnFwd(OUT_C);Wait(035);Off(OUT_BC); #define NANAME_left OnFwd(OUT_BC);Wait(100);Off(OUT_BC); #define NANAME_left_half OnFwd(OUT_BC);Wait(050);Off(OUT_BC); #define NANAME_leftback OnRev(OUT_BC);Wait(100);Off(OUT_BC); #define NANAME_leftback_half OnRev(OUT_BC);Wait(050);Off(OUT_BC); #define UP OnFwd(OUT_A);Wait(100);Off(OUT_A); #define DOWN OnRev(OUT_A);Wait(50);Off(OUT_A); #define YOKO_left100 OnFwd(OUT_C);Wait(100);Off(OUT_C); #define YOKO_right100 OnRev(OUT_C);Wait(100);Off(OUT_C); #define YOKO_left50 OnFwd(OUT_C);Wait(50);Off(OUT_C); #define YOKO_right50 OnRev(OUT_C);Wait(050);Off(OUT_C);
task main() { YOKO_right100; UP; YOKO_left50; TATE_UP50; DOWN; TATE_down150; UP; TATE_UP100; DOWN; NANAME_left_half; UP; NANAME_leftback_half; DOWN; NANAME_right_half; UP;
TATE_UP100; YOKO_right50; DOWN; NANAME_left_half; UP; NANAME_leftback_half; YOKO_right50; DOWN; NANAME_right_half; UP; YOKO_left100; DOWN; NANAME_left_half; YOKO_right100; UP; NANAME_rightback_quarter; DOWN; NANAME_right_half; UP;
YOKO_left100; YOKO_left100; TATE_down150; DOWN; YOKO_right100; YOKO_right100; UP; YOKO_left100; TATE_UP50; DOWN; TATE_down150; UP; TATE_UP50; TATE_UP50; DOWN; NANAME_left; UP; NANAME_leftback; DOWN; NANAME_right; UP; YOKO_left100; YOKO_left50; TATE_UP25; DOWN; YOKO_right100; }
松の右側が少し上に行きすぎており、右斜め下に向かう線がガタついているが読める程度にはかけた。
プログラミングに関数を用いればより簡単にかけたと思う。マクロの数も多すぎた。ロボットが少し大きくなりすぎたが、分解しやすいようにした。