目次
#contents

*はじめに [#k14a799f]
今回、出身地の漢字を書くという課題が出された。私は、「岐阜」という文字を書くこととなった。

相方のS君とともに、文字書く書く君ロボットを作った。

*ロボットの説明 [#z034e371]
3つのモータを使用した。ペンを動かすために、モータA:y軸,モータB:x軸,モータC:z軸とした。

正面図:重さの大部分を占めるLIS本体が比較的後ろにあり、重心を真ん中にするために、不要なタイヤなどをつけた。

見た目にも気を遣い、色遣いやギアが見える感じは、クールな印象を与えている。
#ref(2017b/Member/tetsuya/Mission1/IMG_2225.JPG,10%)
モータA: x軸動かすための装置。ギアを組み合わせることによって速度を落とし、精密な動きにした。ギアは一つしか使っていないので、前後にしか動かない。

モータB: y軸に動かすための装置だが、うまいことギアを組み合わせた。可動域やバランスも意識した。

モータC: z軸に動かすための装置、つまり、ペンの上げ下げ機構。ペンを止めるために輪ゴムを使ったオリジナル装置を作った。

ちなみに、ペンは筆ペンを使った。税込み432円とニートながら奮発した。これからも大事に使っていこうと思う。
#ref(2017b/Member/tetsuya/Mission1/IMG_2228.JPG,10%)
↑モータCの写真
初めは、車の頭にペンを取り付けるというシンプルな設計のものを作った。ギアが二つ使えるので、左右にも動くことが可能である。しかし、回転したときに、円の中心から離れているため、一にかなりの誤差が生じる。
**良かった点 [#wb1b048a]
・このロボットは相方のS君がほとんど作ってくれたのだが、重量のバランスを考え、安定していた。

・特に難しかったのが、x軸方向に動かすモータBだが、レゴブロックの長さを見直し調整することで克服した。

・レゴがしっかり組み込まれていたので、素晴らしい直線を描くことができた。
**課題 [#t1002c6e]
・「はね問題」が解決できなかった。「はね問題」とは、ペンを上げるときに、はねをしてしまうものだ。モータCによる動作が垂直に上げることができれば、解決するだろう。

*プログラミングの説明 [#k289ab22]
#ref(2017b/Member/tetsuya/Mission1/gifu.png)
↑画数を少なくするために、この書き順にする。

まず、マクロで定義した。時間を指定できるようにした。
 #define go(t) OnFwd(OUT_B);Wait(t);Off(OUT_B)
 #define back(t) OnRev(OUT_B);Wait(t);Off(OUT_B)
 #define right(t) OnFwd(OUT_A);Wait(t);Off(OUT_A)
 #define left(t) OnRev(OUT_A);Wait(t);Off(OUT_A)
 #define up OnFwd(OUT_C);Wait(50);Off(OUT_C)
 #define down OnRev(OUT_C);Wait(50);Off(OUT_C)
「岐」は、偏(へん)と旁(つくり)のバランスを保つことに、注意した。
  task main ()
 {  
 //gi
    down; //1
    back(30);right(30);go(30);
    up;back(30);left(15);
    down; //2
    go(70);
    up;right(25);back(30);
    down; //3
    right(40);
    up;left(20);go(30);
    down; //4
    back(60);
    up;left(20);
    down; //5
    right(40);
    OnRev(OUT_AB);Wait(40);Off(OUT_AB);
    up;go(40);
    down; //6
    OnRev(OUT_B);OnFwd(OUT_A);Wait(40);Off(OUT_AB);
    up;back(40);left(20);

「阜」の一画目にいけるところまでいってもらった。
 //fu
    down;//1
    OnRev(OUT_AB);Wait(40);Off(OUT_AB);
    back(60);right(40);go(20);left(40);
    up;go(20);
    down; //2
    right(40);go(20);left(40);
    up;right(20);back(60);
    down; //3
    back(50);
    up;left(40);go(30);
    down; //4
    right(100);
    up;
 }
    
**良かった点 [#db881c5b]
・z軸方向の動きが多いほど、誤差が生じるので、考えうる限りの少ない画数と効率の良いプログラムにした。

・横の全長を100とし、数学的に文字を書いた。
**課題 [#d812bab1]
・このロボットの大きすぎる欠点として、斜めの線は一定の角度でしか描けないという点だ。モータの速度はギアによって変化できるが、x軸方向、y軸方向ともに可動時間を合わせなければならないからだ。

*おわりに [#le04ec57]
#ref(2017b/Member/tetsuya/Mission1/IMG_2286.JPG,10%)
無事、誰もが認識できる程度の字を書くことができた。

私は、今回初めてロボティクスに触れたが、プログラミングでロボットを動かす楽しさや達成感を味わうことができた。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS