- 追加された行はこの色です。
- 削除された行はこの色です。
[[2014b/MemberOnly/進行状況]]
*ロボットデザイン [#o73f357c]
ロボットの全体図
#ref(./robotics-mission1-1.jpg,100%,ロボット写真1)
ロボットの構造は大きく分けると以下のようになる。
紙を押し出すロボット
#ref(./robotics-mission1-3.jpg,100%,ロボット写真2)
ペンを動かすロボット
#ref(./robotics-mission1-4.jpg,100%,ロボット写真3)
これら二つのロボットを別々に動かし、文字を書く。紙を押し出すロボットの上にレールの役割を果たすレゴブロックがあり、その上をペンを持ったロボットが走るという仕組みになっている。~
このアイデアは、プリンターの構造がヒントとなった。~
また、ロボットの移動の時など、反動でペンが意図しない向きに動き、文字がずれてしまうことを防ぐため、地面平行な向きに対してはペンが動かないように固定し、垂直方向への動きしかできないようにした。~
モーターを使って、ペンを垂直方向へ動かすのはたいへんだった。写真から分かるように、ギアを組み合わせてその動きができるように調整した。
*プログラム [#of2a41d1]
#define SPEED 20
#define up OnFwd(OUT_A,80);Wait(200);Off(OUT_A);
#define down OnRev(OUT_A,80);Wait(210);Off(OUT_A);
task main()
{
OnRev(OUT_B,20);
OnFwd(OUT_C,10);
Wait(800);
Off(OUT_BC);
up;
down;
OnRev(OUT_B,20);
OnRev(OUT_C,10);
Wait(800);
Off(OUT_BC);
up;
OnFwd(OUT_B,SPEED);
Wait(300);
Off(OUT_B);
down;
OnFwd(OUT_B,SPEED);
Wait(800);
Off(OUT_B);
up;
OnRev(OUT_B,SPEED);
Wait(500);
Off(OUT_B);
down;
OnRev(OUT_C,SPEED);
Wait(500);
Off(OUT_C);
up;
OnFwd(OUT_C,SPEED);
Wait(333);
Off(OUT_C);
OnRev(OUT_B,SPEED);
Wait(400);
Off(OUT_B);
down;
OnFwd(OUT_B,SPEED); Wait(800);
Off(OUT_B);
up;
OnRev(OUT_C,SPEED);
Wait(333);
Off(OUT_C);
down;
OnRev(OUT_B,SPEED);
Wait(900);
Off(OUT_B);
up;
OnFwd(OUT_B,SPEED);
Wait(900);
Off(OUT_B);
OnFwd(OUT_C,SPEED);
Wait(170);
Off(OUT_C);
down;
OnRev(OUT_B,20);
OnRev(OUT_C,10);
Wait(400);
Off(OUT_BC);
up;
OnRev(OUT_B,SPEED);
Wait(300);
Off(OUT_B);
down;
OnRev(OUT_B,20);
OnFwd(OUT_C,10);
Wait(400);
Off(OUT_BC);
up;
}
*結果 [#dff1b0b8]
*反省 [#dff1b0b8]
#ref(./robotics-mission1-5.jpg,100%,ロボット写真4)
最初の筆の置き方を失敗するとうまく書けずに、ずれてしまう。