A4の紙にペンとロゴのロボットのキットだけで相方の似顔絵を書くロボット。
MIYA ホン
作った部分は少ないですができるだけ工夫してみました。
#define TURN_RIGHT1 OnFwd(OUT_C);OnRev(OUT_A);Wait(350);Off(OUT_A+OUT_C); //顔の輪郭 #define BACK OnRev(OUT_A+OUT_C);Wait(30);Off(OUT_A+OUT_C); //元の位置にもどる #define FWD OnFwd(OUT_A+OUT_C);Wait(30);Off(OUT_A+OUT_C); //ペンを書けるところまで前進 #define RIGHT2 UP;Wait(100);BACK;OnFwd(OUT_C);OnRev(OUT_A);Wait(105);Off(OUT_A+OUT_C);FWD;DOWN;Wait(100); //髪の形1 #define UP OnFwd(OUT_B);Wait(10);Off(OUT_B); //ペン上昇 #define DOWN OnRev(OUT_B);Wait(8);Off(OUT_B); //ペン降下 #define MAE OnFwd(OUT_A+OUT_C);Wait(70);Off(OUT_A+OUT_C); //髪の縦線 #define RIGHT UP;Wait(100);BACK;OnFwd(OUT_C);OnRev(OUT_A);Wait(70);Off(OUT_A+OUT_C);FWD;DOWN;Wait(100); //方向転換 #define TURN_RIGHT_90 OnFwd(OUT_A);OnRev(OUT_C);Wait(85);Off(OUT_A+OUT_C); //90度回転 #define EYE OnFwd(OUT_A+OUT_C);Wait(45);Off(OUT_A+OUT_C);DOWN;OnFwd(OUT_A+OUT_C);Wait(25);Off(OUT_A+OUT_C);UP;OnFwd(OUT_A+OUT_C);Wait(35);Off(OUT_A+OUT_C);DOWN;OnFwd(OUT_A+OUT_C);Wait(25);Off(OUT_A+OUT_C); #define TURN_LEFT_90 OnFwd(OUT_C);OnRev(OUT_A);Wait(85);Off(OUT_A+OUT_C); //90度回転
task main() { TURN_RIGHT1; OnFwd(OUT_A+OUT_C);Wait(60);Off(OUT_A+OUT_C); //前髪 RIGHT;MAE; //髪の縦線 RIGHT2;OnFwd(OUT_A+OUT_C);Wait(100);Off(OUT_A+OUT_C); //髪の横線 RIGHT2;MAE; //髪の縦線 UP;OnFwd(OUT_C);OnRev(OUT_A);Wait(145);Off(OUT_A+OUT_C);OnFwd(OUT_A+OUT_C);Wait(60); //方向転換 TURN_RIGHT_90;EYE; //目 UP;BACK;TURN_LEFT_90;OnFwd(OUT_A+OUT_C);Wait(30);Off(OUT_A+OUT_C); TURN_LEFT_90;OnFwd(OUT_A+OUT_C);Wait(65);Off(OUT_A+OUT_C); DOWN;OnFwd(OUT_A+OUT_C);Wait(30);Off(OUT_A+OUT_C);UP; //口 }
#define pen_up OnFwd(OUT_B); Wait(10); Float(OUT_B);//pen up #define pen_down OnRev(OUT_B); Wait(10); Float(OUT_B);// pen down #define circle OnFwd(OUT_A);OnRev(OUT_C);Wait(355); Float(OUT_A+OUT_C);//circle #dafine hair OnRev(OUT_A+OUT_C);Wait(110);Float(OUT_A+OUT_C);Wait(100);//start hair #define 1/4_turn OnFwd(OUT_A);OnRev(OUT_C);Wait(83);Float(OUT_A+OUT_C);Wait(100); #define go_back OnRev(OUT_A+OUT_C); Wait(5); Float(OUT_A+OUT_C); Wait(100);//go back #define smlie OnFwd(OUT_A);OnRev(OUT_C);Wait(35);Float(OUT_A+OUT_C);OnFwd(OUT_C);OnRev(OUT_A);Wait(70);OnFwd(OUT_A);OnRev(OUT_C);Wait(35);Float(OUT_A+OUT_C);Wait(100); #define go20 OnFwd(OUT_A+OUT_C); Wait(20);Float(OUT_A+OUT_C);Wait(100);//smile
task main() { circle; hair; pen_up; OnFwd(OUT_A+OUT_C); Wait(110); Float(OUT_A+OUT_C); Wait(100); //go 1/4_turn; go back; pen_down; smile; pen up; go20; 1/4 turn; go20; pen down; go20; pen up; go15; pen down; go20; }
ロボットを作ることは想像していたよりも難しくてロボット自体を作ることにおいてもプログラムを作ることにおいても時間のかかることで結局うまくできませんでしたが苦労しました。
ペンの位置が固定できなくて、大変でした。よく上がるためにゴムを連結するぺんが下がらないし、下がるためのゴムを連結すると上がらないし、難しいでした。結局、一番大きいゴムで、弱く固定することで解決なりました。そして、線の連結の方向によって、ロボットの方向も変わることを考えずにプログラミングを作って苦労しました。