ウメ
田中
2つのギアでキャタピラを動かし、残り1つのギアでペンを動かします。ゴムを使い2本の棒を回転させ、アームを動かします。
#define MOVE_TURN 165 //90度旋回時間 #define TURN_BACK 130 //旋回後微調整時間 #define AMARI 80 //旋回前微調整時間 #define TATE 60 //縦への移動時間 #define YOKO 100 //横への移動時間 sub turn_right() { OnFwd(OUT_C); OnRev(OUT_A); Wait(MOVE_TURN); Rev(OUT_A+OUT_C); Wait(TURN_BACK); Off(OUT_A+OUT_C); } //右への90度旋回
task main() { OnFwd(OUT_B); Wait(20); Off(OUT_B); OnRev(OUT_A+OUT_C); Wait(TATE); Off(OUT_A+OUT_C); OnRev(OUT_B); Wait(7); Off(OUT_B); //ここで一画目が終了 OnFwd(OUT_A+OUT_C); Wait(TATE); Fwd(OUT_A+OUT_C); Wait(AMARI); turn_right(); OnFwd(OUT_B); Wait(20); //ここから二画目:横 Off(OUT_B); OnFwd(OUT_A+OUT_C); Wait(YOKO); Off(OUT_A+OUT_C); OnRev(OUT_B); Wait(7); Off(OUT_B); OnFwd(OUT_A+OUT_C); Wait(AMARI); Off(OUT_A+OUT_C); turn_right(); //右へ90度旋回 OnFwd(OUT_B); Wait(20); Off(OUT_B); OnFwd(OUT_A+ OnFwd(OUT_B); Wait(20); //二画目:縦 Off(OUT_B);OUT_C); Wait(TATE); Off(OUT_A+OUT_C); OnRev(OUT_B); Wait(10); Off(OUT_C); OnFwd(OUT_A+OUT_C); Wait(AMARI); turn_right(); //右へ90度旋回 OnFwd(OUT_A+OUT_C); Wait(YOKO); Off(OUT_A+OUT_C); OnRev(OUT_A+OUT_C); Wait(YOKO);//三画目 Off(OUT_A+OUT_C); OnRev(OUT_B); Wait(10); Off(OUT_B); OnFwd(OUT_A+OUT_C); Wait(AMARI); Fwd(OUT_A+OUT_C); Wait(34); turn_right(); //右へ90度旋回 OnFwd(OUT_A+OUT_C); Wait(100); Off(OUT_A+OUT_C); OnFwd(OUT_B); Wait(20); Off(OUT_B); OnRev(OUT_A+OUT_C); Wait(200);//四画目 Off(OUT_A+OUT_C); //停止 }
#define HUDE_TIME 10//筆上げ下げの時間 #define MOVE1_TIME 150//一画書く時間(3画目を除く) #define TURN1_TIME 177//90度旋回時間
sub hdown(){OnFwd(OUT_B); Wait(HUDE_TIME); Off(OUT_B);}//筆を下ろす動作 sub hup(){OnRev(OUT_B); Wait(HUDE_TIME); Off(OUT_B);}//筆を上げる動作 sub turn right(){Fwd(OUT_A); Wait(TURN1_TIME); Rev(OUT_A); Wait(BACK2_TIME); Off(OUT_A+OUT_C);}//右90度旋回
task main() { hdown(); OnFwd(OUT_A+OUT_C); Wait(MOVE1_TIME);//1画目 hup(); Rev(OUT_A+OUT_C); Wait(38); turn right();//2画目始点までの移動 hdown(); OnFwd(OUT_A+OUT_C); Wait(MOVE1_TIME); Off(OUT_A+OUT_C);//2画目前半 hup(); OnFwd(OUT_A+OUT_C); Wait(84); turn right();//2画目後半始点までの移動 hdown(); OnFwd(OUT_A+OUT_C); Wait(MOVE1_TIME); hup()//2画目後半 Rev(OUT_A+OUT_C); Wait(MOVE1_TIME); Fwd(OUT_A); Wait (TURN1_TIME); Rev(OUT_A); Wait(50); Fwd(OUT_A); Wait(200); Off(OUT_A+OUT_C); hup();//ずれ落ちてきた筆を補正 OnRev(OUT_A+OUT_C); Wait(150); Off(OUT_A+OUT_C);//3画目始点までの移動 hdown(); OnRev(OUT_A+OUT_C); Wait(230); Off(OUT_A+OUT_C); hup();//3画目 OnFwd(OUT_A+OUT_C); Wait(220); Rev(OUT_C); Wait(TURN1_TIME); Rev(OUT_A); Wait(33); Off(OUT_A+OUT_C);//4画目始点までの移動 hdown(); OnRev(OUT_A+OUT_C); Wait(MOVE1_TIME); hup();//4画目 OnFwd(OUT_A+OUT_C); Wait(300); Rev(OUT_C); Wait(185); Fwd(OUT_C); Wait(50); Rev(OUT_C); Wait(185); Off(OUT_A+OUT_C);//5画目始点までの移動 hdown(); OnFwd(OUT_A+OUT_C); Wait(MOVE1_TIME); Off(OUT_A+OUT_C); hup();//完成 }