詳しくは2019a/Mission1 今回ロボットで書く文字は『富山』にした。
ロボットの構造は、縦には本体が動き、横にはアームが動くようにした。
後輪とAをつなぎ前後に動くようにしてある。
下の写真のように後輪はつながれています。
アームは、Bとつなぎ左右に動くようになっている。
このアームは、重すぎると、車体が傾いたり、スムーズにアームが動かなかったりするため、かなり修正を重ねた。
下の写真は、アームを動かすモーター部分です。
ペンの上げ下げ部分はCと繋げて動かした。
下の写真でもわかるように、ペンは輪ゴムで固定しました。
下の写真は、全体の写真です。
三次元移動ができれば、文字を書くことができると判断して、縦、横、上下の3✖2個のサブルーチンを用意しました。 その中で上下は、ペンの上げ下げのため時間固定、縦、横は、筆跡となるため変数tをつかいました。
int t; sub front() {OnFwd(OUT_A);Wait(t);Off(OUT_A);Wait(100);} sub back() {OnRev(OUT_A);Wait(t);Off(OUT_A);Wait(100);} sub right() {OnFwd(OUT_B);Wait(t);Off(OUT_B);Wait(100);} sub left() {OnRev(OUT_B);Wait(t);Off(OUT_B);Wait(100);} sub touch() {OnFwd(OUT_C);Wait(13);Off(OUT_C);Wait(100);} sub up() {OnRev(OUT_C);Wait(13);Off(OUT_C);Wait(100);}
(1画ごとに分けて載せてあります。)
task main() { touch(); t=7;back();
up(); t=21;left(); touch(); t=7;back();
up(); t=7;front(); touch(); t=35;right(); t=7;back();
富のウかんむり部分です。
up(); t=21;left(); touch(); t=14;right();
ウかんむりの次の一(4画目)です。
up(); t=7;back(); t=14;left(); touch(); t=7;back();
up(); t=7;front() touch() t=14;right(); t=7;back();
up(); t=14;left(); touch(); t=14;right();
口の部分です。(5〜7画目)
up(); t=7;back(); t=14;left(); touch(); t=14;back();
up(); t=14;front(); touch(); t=14;right(); t=14;back();
up(); t=7;front(); t=14;left(); touch(); t=14;right();
up(); t=7;front(); t=7;left(); touch(); t=14;back();
up(); t=7;left(); touch(); t=14;right();
富の最後田の部分です。(8〜12画目)
up(); t=7;left(); t=10;back();
touch(); t=30;back();
up(); t=15;front(); t=15;left(); touch(); t=15;back(); t=30;right();
up(); t=15;front(); touch(); t=15;back(); }
山の3画すべてです。 以上で富山が書き終わります。
私たちのロボットは、後輪以外歯車を2つ以上使っておらず、動きが速すぎてしまった。
勢いによって進む距離が変わってしまう現象は、多めに停止時間をとることで、影響を最小限にできた。
しかし、アームのブレによって横線がぶれてしまうことが多く、はじめに作った頃よりは改善されたもののやはり文字を書くのに大きな影響を受けてしまった。
ペンの上げ下げ部分は、アームの重さの関係上歯車を含む部品を多く使えず、少し不安定になってしまった。
他にもペンの摩擦で動く距離が変わってしまい、線と線がしっかり重ならないところが出てきてしまっている。 対策として、筆ペンを採用すると少し緩和されるかもしれないと思った。、