*勉強ノート1−1 [#j889ce26] -文字書きロボットについて 名前の通り文字を書くロボットなのですが、調整が難しかったですね〜。まぁ、まずはプログラムを。「井」の字です。 #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); } このプログラムは少し長さの違う平行線を直角にクロスさせたものです。 平行線の組の中で、長さを変えました。 直角を見つけるのはそれほど労せず、字が単純ということもあり、このプログラムは大変ではなかったですね。 [[2006b/A1/kuroneko/1st_robot1-2]] このプログラムのsub使用バージョンです。 [[2006b/A1/kuroneko]] 灰猫トップへはこちら。