2019a/Member
課題1
目次
私たちが書いた感じは「甲府」です。作成時間はざっと20時間です。
ロボットは、ペンを左右に動かすパーツと、ペンを上下させるパーツ、
そしてロボットを前後に動かすための車輪を3つです。そのうち2つは
ロボットを支えるためのもので、実際にプログラムで動いている車輪は1つです。
ペンを左右に移動させて横棒を、ロボットを前後に動かして縦棒を書き、
それを同時に行うことで斜め線を書きました。
動かすタイヤは前輪一つです。
パーツを調整しながら重心を真ん中にするのに苦労しました。
後輪パーツはバランスを良くするため、棒を2つをくっつけて
タイヤを出来るだけ後ろに取り付けました。
上の写真のように歯車を使ってペンを掴んでいるパーツ全体を左右に動かすことで
ペンを左右に動かしました。
ペンの上げ下げの部分は2つのタイヤでペンを挟み、
タイヤを回転させて行いました。
#define wait(t) Wait(t); //簡略化 #define off() Off(OUT_ABC);wait(100); #define front(t) OnFwd(OUT_B);wait(t);off(); //前へ #define back(t) OnRev(OUT_B);wait(t);off(); //後ろへ #define right(t) OnRev(OUT_A);wait(t);off(); //ペンを右へ #define left(t) OnFwd(OUT_A);wait(t);off(); //ペンを左へ #define up() OnRev(OUT_C);wait(4);off(); //ペンを上げる #define down() OnFwd(OUT_C);wait(10);off(); //ペンを下げる
甲の左上の端から時計回りに外側を囲み、左の真ん中の線の所まで下がって
真ん中の横棒を書きます。そして、真ん中の縦棒の支店までペンを持って行って
そのまま下に線を引きます。ペンを上げた状態で終わります。
right(32);back(17);left(32);front(17); //甲の字 back(9);right(32);up(); front(9);left(18);down(); back(20);back(10);up();
少し下がってペンを下ろします。
back(7);down(); //移動
「广」の部分は書き順と同じで、そのまま右に移動して「イ」の
縦棒を逆から書きます。次に「イ」の上の部分を上から斜めに書きます。
「寸」の横棒を左から書いて、あとは書き順と同じように書きます。
back(10);up(); //府の字 right(16);down(); left(32);back(20);back(10);up(); right(12);down(); front(14);front(10);up(); front(6)right(6);down(); OnFwd(OUT_A);OnRev(OUT_B);wait(10); Off(OUT_B);wait(3);off();up(); right(16);down(); right(14);up(); left(4);front(7); back(15);back(10);up(); left(12);front(14);down(); OnRev(OUT_AB);wait(4);Off(OUT_B); wait(2);off();
#define wait(t) Wait(t); //簡略化 #define off() Off(OUT_ABC);wait(100); #define front(t) OnFwd(OUT_B);wait(t);off(); //前へ #define back(t) OnRev(OUT_B);wait(t);off(); //後ろへ #define right(t) OnRev(OUT_A);wait(t);off(); //ペンを右へ #define left(t) OnFwd(OUT_A);wait(t);off(); //ペンを左へ #define up() OnRev(OUT_C);wait(4);off(); //ペンを上げる #define down() OnFwd(OUT_C);wait(10);off(); //ペンを下げる task main{ right(32);back(17);left(32);front(17); //甲の字 back(9);right(32);up(); front(9);left(18);down(); back(20);back(10);up(); back(7);down(); //移動 back(10);up(); //府の字 right(16);down(); left(32);back(20);back(10);up(); right(12);down(); front(14);front(10);up(); front(6)right(6);down(); OnFwd(OUT_A);OnRev(OUT_B);wait(10); Off(OUT_B);wait(3);off();up(); right(16);down(); right(14);up(); left(4);front(7); back(15);back(10);up(); left(12);front(14);down(); OnRev(OUT_AB);wait(4);Off(OUT_B); wait(2);off(); }
ロボットがしっかりしていないとプログラムをきちんと書いても、
ペンが浮いたり、実行するたび違う動きをしたりするので難しかった。
ペンが浮くのを対処するのに、2度に分けて長い棒を書いたり、
ペンを上げるのより下げる時間を長くしたり工夫しました。
工夫一つで大きく動きが変わるので驚きました。