[[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] #ref(./robotics-mission1-5.jpg,100%,ロボット写真4) 最初の筆の置き方を失敗するとうまく書けずに、ずれてしまう。