・A3用紙に相棒の似顔絵を書くロボットの製作
・前進後退ができる ・左右に方向転換ができる ・ペンを装着し固定できる ・モーターによってペンを上げ下げできる ・動作中に分解しない耐久性がある
この条件でロボットを制作した
このロボットでは、ギアを使ってペンを持ち上げる装置を作るのが大変だった。ギアを使ってペンを持ち上げるにはバランスなどを考えることが必要であり、うまくバランスをとるために片側を重くすることにした。
task main() {
OnFwd(OUT_A); Wait(800); Off(OUT_A);//輪郭を書く OnFwd(OUT_C); OnRev(OUT_A);//旋回 Wait(100);// OnFwd(OUT_C); Wait(8); OnFwd(OUT_A+OUT_C);//前進 Wait(50); Off(OUT_A+OUT_C); OnFwd(OUT_B);//ペン上げる Wait(50); Off(OUT_B);//ペン下げる OnFwd(OUT_C); OnRev(OUT_A); Wait(300);//旋回 OnFwd(OUT_A+OUT_C);//前進 Wait(200); OnFwd(OUT_B);ペン上げる Wait(50); OnFwd(OUT_C); OnRev(OUT_A); Wait(50);//旋回 OnFwd(OUT_B);//ペン上げる Wait(50); Off(OUT_A+OUT_C); Off(OUT_B); }
task main()
{
OnFwd(OUT_A+OUT_C);//輪郭 前進 Wait(180); OnFwd(OUT_B);//ペン上げ Wait(14); Off(OUT_B); Wait(22); OnRev(OUT_C);//旋回 OnFwd(OUT_A); Wait(101); OnRev(OUT_A+OUT_C);//後退 Wait(40); Off(OUT_A+OUT_C); Wait(30); OnRev(OUT_B);ペン下げ Wait(14); Off(OUT_B); Wait(22); OnFwd(OUT_A+OUT_C);//前進 Wait(160); Off(OUT_A+OUT_C); Wait(30); OnFwd(OUT_B);//ペン上げ Wait(14); Off(OUT_B); Wait(22); OnFwd(OUT_A+OUT_C);//前進 Wait(30); Off(OUT_A+OUT_C); Wait(30); OnRev(OUT_C);//旋回 OnFwd(OUT_A); Wait(101); OnRev(OUT_A+OUT_C);//後退 Wait(40); Off(OUT_A+OUT_C); Wait(30); OnRev(OUT_B);//ペン下げ Wait(14); Off(OUT_B); Wait(22); OnFwd(OUT_A+OUT_C);//前進 Wait(160); Off(OUT_A+OUT_C); Wait(30); OnFwd(OUT_B);//ペン上げ Wait(14); Off(OUT_B); Wait(22); OnRev(OUT_A+OUT_C);//目 Wait(20); Off(OUT_A+OUT_C); Wait(20); OnFwd(OUT_A);//旋回 OnRev(OUT_C); Wait(100); OnRev(OUT_A+OUT_C);//後退 Wait(50); Off(OUT_A+OUT_C); Wait(20); OnFwd(OUT_A+OUT_C);//前進 Wait(10); OnFwd(OUT_B);//ペン上げ Wait(14); Off(OUT_B); Wait(5); OnFwd(OUT_A+OUT_C);//前進 Wait(10;;;;;;); OnRev(OUT_B);//ペン下げ Wait(14); Off(OUT_B); Wait(5); OnFwd(OUT_A+OUT_C);//前進 Wait(10); OnFwd(OUT_B);//ペン上げ Wait(14); Off(OUT_B); Wait(5); OnFwd(OUT_A+OUT_C);//前進 Wait(10); OnRev(OUT_B);//ペン下げ Wait(14); Off(OUT_B); Wait(5); OnFwd(OUT_A);//旋回 OnRev(OUT_C); Wait(100); Off(OUT_A+OUT_C); Wait(20); OnFwd(OUT_A+OUT_C);//口 Wait(70); Off(OUT_A+OUT_C); Wait(20); OnFwd(OUT_A);//旋回 OnRev(OUT_C); Wait(101); OnRev(OUT_A+OUT_C);//後退 Wait(60); Off(OUT_A+OUT_C); Wait(20); OnRev(OUT_B);//ペン下げ Wait(14); Off(OUT_B); Wait(22); OnFwd(OUT_A+OUT_C);//前進 Wait(40); Off(OUT_A+OUT_C); Wait(20); }
顔を四角くすることにこだわっていたら、プログラムがすごく長くなってしまったので、見にくかった。これをアドバイス通り関数を使って表したいと思う。
1:ペンをうまく固定できない 2:ペンが紙との摩擦で変な方向に曲がってしまう 3:最後の目と口が変な方向に行ってしまう
ペンの安定性を高める為に周りをブロックで固めた。 プログラムの正確さを高めるため、何度も微調整を行った。
良かった点
①ホームページに書くべきことは概ね書けています。
改善点 ①ロボットの写真ははるだけではなく、各機構に分けて説明するとわかりやすいです。 ②プログラムに関数を使ってみると、見やすいし、今後につながると思います。