A3の紙に相棒の似顔絵を書くロボットを作成せよ。
Mizu
Ta2
筆記部分は改良せず。
#define PEN_TIME 10 //ペンの上げ下げにかかる時間 #define TURN 50 //車体を回転の軸まで持っていく時間 sub down() //ペン下ろす { OnFwd(OUT_B);Wait(PEN_TIME);Off(OUT_B); } sub up() //ペン上げる { OnRev(OUT_B);Wait(PEN_TIME);Off(OUT_B); } #define go(i) OnRev(OUT_A);OnFwd(OUT_C);Wait(i);Off(OUT_A+OUT_C); //iミリ秒前進 #define back(i) OnFwd(OUT_A);OnRev(OUT_C);Wait(i);Off(OUT_A+OUT_C); //iミリ秒後退 #define right(i) back(TURN);OnRev(OUT_A+OUTC);Wait(i);Off(OUT_A+OUT_C);go(TURN); //iミリ秒右回転,136で360°回転,17で45°回転,45で120°回転 #define left(i) back(TURN);OnFwd(OUT_A+OUT_C);Wait(i);Off(OUT_A+OUT_C);go(TURN); //iミリ秒左回転 task main() { up();down();go(70); //輪郭 ペンを紙につけて開始 up();left(34);down();go(100); up();left(17);down();go(50); up();left(34);down();go(100); up();left(17);down();go(50); up();back(25);left(88);go(10); //移動 down();go(15);up();go(20);down();go(15); //眉 up();left(34);go(5);left(34);go(8); //移動 down();Wait(50);up();go(34);down();Wait(50); //目 up();back(12);right(34);go(10); //移動 down();go(25);up();right(34); //鼻 down();go(10);up();right(34); down();go(25); up();back(35);right(34);back(5); //移動 repeat(3){down();go(20);up();right(45);} //口 go(200); //紙の上から移動 }
時間が足りなくて微調整をすることができず、完成できなかった。
#define Pen 10 #define move 100 void straight(int i) //前進 { OnRev(OUT_A);OnFwd(OUT_C); Wait(i); Off(OUT_A+OUT_C); } void back(int i) //後退 { OnFwd(OUT_A);OnRev(OUT_C); Wait(i); Off(OUT_A+OUT_C); } void right(int i) //右回転 { OnRev(OUT_A+OUT_C); Wait(i); Off(OUT_A+OUT_C); } void left(int i) //左回転 { OnFwd(OUT_A+OUT_C); Wait(i); Off(OUT_A+OUT_C); } sub pen_down() //ペン下ろす { OnFwd(OUT_B); Wait(11); Off(OUT_B); } sub pen_up() //ペン上げる { OnRev(OUT_B); Wait(Pen); Off(OUT_B); } task main() { straight(80); //まずは輪郭、ペンを下げた状態からスタート pen_up(); back(60); left(20); Off(move); straight(50); pen_down(); straight(30); pen_up(); back(60); left(20); Off(move); straight(50); pen_down(); straight(40); pen_up(); back(40); left(20); Off(move); straight(50); pen_down(); straight(30); pen_up(); back(40); left(20); Off(move); straight(150); pen_up(); //輪郭ここまで left(40); //髪の書き始め repeat(5) { straight(20); pen_down(); right(3); pen_up(); left(3); //髪ここまで } left(40); //眼鏡ここから straight(30); left(40); straight(40); pen_down(); straight(25); pen_up(); straight(15); pen_down(); straight(10); pen_up(); straight(15); pen_down(); straight(25); pen_up(); left(90); straight(5); left(90); straight(65); pen_down(); right(10); left(10); straight(15); pen_up(); straight(10); pen_down(); right(10); left(10); straight(15); pen_up(); left(90); straight(10); left(90); straight(40); pen_down(); right(10); left(10); straight(15); pen_up(); straight(10); pen_down(); right(10); left(10); straight(15); pen_up(); straight(25); //眼鏡ここまで right(135); //口ここから straight(40); right(45); pen_down(); right(45); pen_up(); //口ここまで straight(20); //鼻ここから pen_down(); straight(5); pen_up(); //鼻ここまで straight(100); //終了 }
残念ながらぐちゃぐちゃになってしまって、人の顔を作ることができなかった…
眼鏡の難しさを痛感
眼鏡から目を変更して予定ではこうなる予定だったのに…
人なら簡単にできることをロボットでやろうと思うととても難しくて改めてロボット製作の大変さを感じた。
ロボット本体にこだわりすぎて、プログラムがちょっと雑に…
最初キャタピラだったが、うまくいかなかったため、タイヤに変えるのに苦労した。
コメントをどうぞ