「井」の字です。
名前の通り文字を書くロボットですね〜。まぁ、まずはプログラムを。
#define SWING 40 筆を上げ下げする時間です task main() { OnFwd(OUT_B); 筆を下ろします Wait(SWING); Off(OUT_B); Wait(50); OnFwd(OUT_A+OUT_C); 1画目です Wait(100); Off(OUT_A+OUT_C); Wait(50); OnRev(OUT_B); 筆を上げます Wait(SWING); Off(OUT_B); Wait(50); OnRev(0UT_A); 2画目の開始点へ。 OnFwd(OUT_C); 回転してます Wait(15); OnRev(OUT_C); モーターCを逆回転にし、バックします Wait(130); OnFwd(OUT_A); モーターAを純回転にし、先ほどとは逆に回転します Wait(15); Off(OUT_A+OUT_C); Wait(50); OnFwd(OUT_B); 筆を下ろします Wait(SWING); Off(OUT_B); Wait(50); OnFwd(OUT_A+OUT_C); 2画目です Wait(135); 1画目より長めにしてます Off(OUT_A+OUT_C); Wait(50); OnRev(OUT_B); 筆を上げます Wait(SWING); Off(OUT_B); Wait(50); OnRev(OUT_A+OUT_C); 3画目の開始点へ Wait(140); OnFwd(OUT_A); 直角に回転します Wait(82); Off(OUT_A+OUT_C); Wait(50); OnFwd(OUT_B); 筆を下ろします Wait(SWING); Off(OUT_B); Wait(50); OnFwd(OUT_A+OUT_C); 3画目です Wait(100); Off(OUT_C+OUT_A); Wait(50); OnRev(OUT_B); 筆を上げます Wait(SWING); Off(OUT_B); Wait(50); OnFwd(OUT_A); 4画目の開始点へ OnRev(OUT_C); 回転します Wait(20); OnRev(OUT_A); Wait(130); OnFwd(OUT_C); Wait(20); Off(OUT_A+OUT_C); Wait(50); OnFwd(OUT_B); 筆を下ろします Wait(SWING); Off(OUT_B); Wait(50); OnFwd(OUT_A+OUT_C); 4画目です Wait(135); やっぱり3画目より長めです。 Off(OUT_A+OUT_C); Wait(50); OnRev(OUT_B); 最後に筆を上げて終わりです Wait(SWING); Off(OUT_B); }
このプログラムは少し長さの違う平行線の組を直角にクロスさせたものです。
直角を見つけるのはそれほど労せず、字が単純ということもあり、このプログラムは大変ではなかったですね。
今回の苦労話はプログラムの作成よりもその後にあります。
自分のパソコンでプログラムを作成し、そのプログラムをホットメールに送信、学校のパソコンでロボットに転送をしていたのです。が、送信時に、何がいけないのかスペースが変な文字に変換されたり、改行がなくなってたり・・・。
パソコンについての知識が多くない自分にはどうしてそうなったのかわからず、がんばっておかしくなったところをキリキリ直しました。