目次
課題1については2019a/Mission1を参照
「長野」と書くことにした。
下記を参照
下の車が縦に動き、上に乗っている車が横に動くようになっている。上の車にペンを上げ下げするアームを取り付けた。下の車にレールを取り付け、その上をもう一台の車が動くようにすることで、前後左右に線を描けるようにした。また、下の車はタイヤを五個取り付けることでレールの安定性を高めた。
下の車は前後に動き、上に乗っている車は左右に動く。また、上に乗っている車に上げ下げができるペンを取り付けたことで、縦・横・斜めに線を引くことを可能にした。さらに、上に乗っている車にはペンの重さによる転倒を防ぐために、おもりを取り付けた。
#define stp OnFwd(OUT_A,10);Wait(200);Off(OUT_A)//ペンを下げる動作 #define revp(s) OnRev(OUT_A,20);Wait(s);Off(OUT_A)//ペンを上げる動作 #define stmain(s) OnFwd(OUT_C,20);Wait(s);Off(OUT_C)//一番下の車の前進 #define revmain(s) OnRev(OUT_C,20);Wait(s);Off(OUT_C)//一番下の車の後退 #define stsub(s) OnFwd(OUT_B,20);Wait(s);Off(OUT_B)//上に乗ってる車の前進 #define revsub(s) OnRev(OUT_B,20);Wait(s);Off(OUT_B)//上に乗ってる車の後退 #define vertical(s) stp;stmain(s);revp(s);revmain(s);//線を縦に書く動作 #define horizen(s) stp;stsub(s);revp(s);revsub(s);//線を横に書く動作 #define diagonal(s) OnFwd(OUT_B,20);OnRev(OUT_C,20);Wait(s);Off(OUT_BC);//線を右上に書く動作 #define oblique(s) OnFwd(OUT_B,20);OnFwd(OUT_C,20);Wait(s);Off(OUT_BC);//線を右下に書く動作
task main() { vertical(400); repeat(3){ horizen(500); stmain(150); } stp; revsub(300); stsub(1000); revp(250); revsub(800); stp; OnFwd(400); diagonal(200); revp(250); diagonal(200); stp; diagonal(200); revp(250); revsub(200); stp; oblique(350); revp(250);
stmain(400); revsub(400); repeat(5){ horizen(350); stmain(120); } stsub(175); revmain(120); stp; revmain(240); revp(250); revsub(175); revmain(300); repeat(3){ vertical(300); stsub(175); } horizen(300); stsub(175); stmain(150); stp; diagonal(200); revp(250); stmain(500); revsub(150); stp; revsub(100); revp(250); stsub(100); stp; revmain(350); oblique(100); }
車の上に車を乗せるという斬新な発想ではあったが、思ったよりうまくできた。少ないパーツでコンパクトに仕上がったと感じた。
上に乗っている車が不安定だったので、そこを改良できればよかったと思う。また、ペンを取り付けたアームがガタガタしていたが、そこの改善策を思いつけなかった。