[[2015a/Member]] 目次 #contents *初めに [#i0f62ab0] 比較的簡単な「松」という字を書くことにしました。 *ロボット本体について [#md4ccfd8] 文字を書くという課題なので、場所のコンディションに影響されやすいタイヤはなるべく使わない方が良いと考えました。そこでタイヤの代わりなる動きをギアで再現することにしました。 **ギアを使った動き [#t15eadec] &ref(./モーター.png); &ref(./DSC_0110.JPG); 複数のギアを組み合わせて、文字に対して横の向きの動きする機構を作りました。 **タイヤを使った動き [#zfa7b6c8] #ref(./DSC_0107.JPG) タイヤを使って、文字に対して縦の向きの動きをする機構を作りましたが、アームなど組み立ての関係でタイヤの位置が重心からかなり離れてしまったため電池をつけて重心の位置を調節しました。 **ペンの上下の動き [#v3f6daf9] #ref(./DSC_0109.JPG) ペンの上下の動きは本体に対して斜め向きの動きをします。 *プログラミングについて [#h1ab4dc0] **用意した定義 [#h077c501] #define migi_yoko(t) OnFwd(OUT_C,80);Wait(t);Off(OUT_C);Wait(1000); #define hidari_yoko(t) OnRev(OUT_C,80);Wait(t);Off(OUT_C);Wait(1000); #define ue_tate(t) OnFwd(OUT_B,60);Wait(t);Off(OUT_B);Wait(1000); #define sita_tate(t) OnRev(OUT_B,60);Wait(t);Off(OUT_B);Wait(1000); #define up OnRev(OUT_A,60);Wait(500);Wait(1000); #define down OnFwd(OUT_A,60);Wait(500);Wait(1000); まず、初めにプログラミングを作りやすくするために、右への横の動き、左への横の動き、上からの縦の動き、下からの縦の動き、ペンを上げる動き、ペンを下げる動きを以下のように定義しました。 -右への横の動き →migi_yoko(t) -左への横の動き →hidari_yoko(t) -上からの縦の動き→ue_tate(t) -下からの縦の動き→sita_tate(t) -ペンを上げる動き→up -ペンを下げる動き→down 縦横の動きでは動く時間えお「t」と置きました。また、それぞれの動きの後に「Wait(1000)」を入れて一秒間の停止を入れることで動きをなるべく正確に行えるようにしました。 **プログラミング本体 [#db5ea88b] task main () { down; migi_yoko(150);//一画目 up; hidari_yoko(90); sita_tate(75); down; ue_tate(250);//二画目 up; hidari_yoko(75); down; sita_tate(100);//三画目 up; migi_yoko(200); down; ue_tate(100);//四画目 up; migi_yoko(40); sita_tate(100); down; sita_tate(100);//五画目 up; migi_yoko(150); down; ue_tate(100);//六画目 up; ue_tate(100);//七画目 down; ue_tate(50); hidari_yoko(150); sita_tate(60);//八画目 up; } #ref(./松.png,40%) 上の図のように書き順は無視して書きました。 「上からの縦の動き」を実行するときにタイヤが滑ってしまうことが多かったので、実行する時間を少し長めにしました。 *最後に [#w7a42726] #ref(./DSC_0106.JPG) 実際に書いた字はかなりブレてしまいました。これはロボットの横の動きをする機構と本体の接続が弱かったからだと思います。ガイドレールを付けることができれば、ブレを抑えることができたと思いますが、他の部分にパーツを使いすぎたのでつけることができませんでした。 今回の課題では、ロボットの製作に時間をかけ過ぎたのでプログラミングの工夫があまりできませんでしたが、時間をかけて作ったロボットも完成度が高いと言えるほどのものではありませんでした。今回の課題で、ある程度ロボットの製作の雰囲気がつかめたと思うので、次回の課題ではプログラミングにも力を入れたいです。