[[2019a/Member]]~ &size(40){課題1};~ ~ &size(20){目次};~ #contents *書いた字とロボットについて [#q4707970] 私たちが書いた感じは「甲府」です。作成時間はざっと''20時間''です。~ ロボットは、ペンを左右に動かすパーツと、ペンを上下させるパーツ、~ そしてロボットを前後に動かすための車輪を3つです。そのうち2つは~ ロボットを支えるためのもので、実際にプログラムで動いている車輪は1つです。~ ペンを左右に移動させて横棒を、ロボットを前後に動かして縦棒を書き、~ それを同時に行うことで斜め線を書きました。~ *完成した文字 [#m978699e] #ref(甲府.jpg) *ロボットの説明 [#d163fa3f] **前輪パーツ [#gdb7009b] 動かすタイヤは前輪一つです。~ パーツを調整しながら重心を真ん中にするのに苦労しました。 #ref(前輪.JPG) **後輪パーツ [#n98b234e] 後輪パーツはバランスを良くするためできるだけ後ろにつけるため~ 棒を2つをくっつけてタイヤを取りつけました。 後輪パーツはバランスを良くするため、棒を2つをくっつけて~ タイヤを出来るだけ後ろに取り付けました。 #ref(後輪.JPG) **ペンを左右に動かすパーツ [#p7621ed9] 上の写真のように歯車を使ってペンを掴んでいるパーツ全体を左右に動かすことで~ ペンを左右に動かしました。 #ref(ペンを左右に動かすパーツ.JPG) **ペンの上げ下げ [#zc9fcf8e] ペンの上げ下げの部分は2つのタイヤでペンを挟み、~ タイヤを回転させて行いました。 #ref(ペンの上げ下げ.JPG) *プログラム [#r4c70992] **準備のためのプログラム [#q29864ff] #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(); //ペンを下げる **甲のプログラム [#z982d763] 甲の左上の端から時計回りに外側を囲み、左の真ん中の線の所まで下がって~ 真ん中の横棒を書きます。そして、真ん中の縦棒の支店までペンを持って行って~ そのまま下に線を引きます。ペンを上げた状態で終わります。 right(32);back(17);left(32);front(17); //甲の字 back(9);right(32);up(); front(9);left(18);down(); back(20);back(10);up(); **移動のプログラム [#r734a5c4] 少し下がってペンを下ろします。 back(7);down(); //移動 **府のプログラム [#s22d67aa] 「广」の部分は書き順と同じで、そのまま右に移動して「イ」の~ 縦棒を逆から書きます。次に「イ」の上の部分を上から斜めに書きます。~ 「寸」の横棒を左から書いて、あとは書き順と同じように書きます。 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(); *プログラム全体 [#re3f640f] #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(); } *感想 [#ge55c15f] ロボットがしっかりしていないとプログラムをきちんと書いても、~ ペンが浮いたり、実行するたび違う動きをしたりするので難しかった。~ ペンが浮くのを対処するのに、2度に分けて長い棒を書いたり、~ ペンを上げるのより下げる時間を長くしたり工夫しました。~ 工夫一つで大きく動きが変わるので驚きました。~ ~ ~ ~