#contents
*課題1 [#r1f6eda4]
A4の紙に漢字で2文字の地名を書く。
**選んだ文字  [#a6a84c76]
自分の出身県である三重にしました。

*ロボットの説明 [#e4c07987]
最初はペンの上げ下げに一個、タイヤの回転に二個モーターを取り付けていたがプログラミングが非常に複雑になり、また毎回同じように書くことが出来なかったため、x軸y軸にペンが動くロボットを作成することにしました。
**X軸 [#m1d7b0ee]
X軸は細長いレゴブロックにギアの歯を合わせて左右に移動できるようにしました。
X軸Y軸に比べて稼働範囲が狭いため漢字の横書を書くことにしました。
#ref(2017b/Member/shun/Mission1/IMG_1756.JPG,10%,ロボット)

**Y軸 [#ee71beb4]
y軸はロボットを前後に移動させました。
後ろに重心があったため、前に余分なタイヤをつけ重くしました。
#ref(2017b/Member/shun/Mission1/IMG_1717.JPG,10%,ロボット)

**ペンの上げ下げ [#rc2979d7]
もう一つのモーターを回転させてペンの上げ下げをしました。ペンの上げ下げのスピードを遅くするために一番小さなギアと一番大きなギアを絡ませました。ペンは下の写真にある二本の棒に輪ゴムで固定させました。しかしペンを上げ下げするときに余分ななせんが入り、それを無くすことが出来なかった。

#ref(2017b/Member/shun/Mission1/IMG_1759.JPG,10%,ロボット)

*プログラム [#r97cad26]
初めにペンの上げ下げ、x軸である右と左、 y軸である前と後ろを定義しました。
文字の書き順は主にx軸を先にすべて書きその後y軸を書くことによりロボットの無駄な動きを無くしました。
**定義 [#lce11b34]
X軸、Y軸、ペンの上げ下げの動きを定義しました。
 #define WRITE_TIME 50           
 #define right(t) OnFwd(OUT_A);Wait(t);Off(OUT_A)           //X軸右移動
 #define left(t) OnRev(OUT_A);Wait(t);Off(OUT_A)           //X軸左移動
 #define go(t) OnFwd(OUT_B);Wait(t);Off(OUT_B)           //Y軸前進
 #define back(t) OnRev(OUT_B);Wait(t);Off(OUT_B)         //Y軸後退
 #define up OnFwd(OUT_C);Wait(WRITE_TIME);Off(OUT_C)           //ペンを下ろす
 #define down OnRev(OUT_C);Wait(WRITE_TIME);Off(OUT_C)            //ペンを上げる
**タスクメイン [#ue9961aa]
「三」「重」の順に書くようにしました。
「三」は一般的な書き順、「重」は特殊な書き順で書きました。
 task main()
 {
    down;       
    right(80);        //1画目
    up;
    left(70);
    back(50);
    down;
    right(60);        //2画目
    up;
    left(70);
    back(50);
    down;
    right(80);         //3画目
    up;         //「三」完成
    left(50);
    back(50);
    down;
    right(20);       //1画目
    up;
    left(50);
    back(20);
    down;
    right(80);        //2画目
    up;
    left(60);
    back(20);
    down;
    back(40);       //3画目
    right(40);       
    go(40);        //4画目
    left(40);       //6画目
    up;
    back(20);
    down;
    right(40);     //5画目
    up;
    left(50);
    back(40);
    down;
    right(60);     //8画目
    up;
    left(70);
    back(20);
    down;
    right(80);       //9画目
    up;
    left(40);
    down;
    go(120);        //7画目
    up;      //「重」完成
 } 

*書けた文字 [#ra75c98a]
ペンを上げ下げする際にできる無駄な線をできるだけなくそうと努力したが完全に無くすことはできなかった。しかし三重という字が識別できるように仕上げることができた。
#ref(2017b/Member/shun/Mission1/IMG_1760.JPG,10%,ロボット)


*感想 [#d20df912]
初めはロボットを前後左右に動かすことにより、文字を書こうとしていたが、実際にプログラムを作成しロボットを動かすとなると、とても大変だということに気づき断念しました。その後xy軸にロボットが動くように作成することにより文字を書くことができた。今回一番工夫した点はロボットの頑丈さである。ギア、モーター、レゴのパーツに無駄な力がかからないようなロボットを作った。そうすることにより電池の減りを抑えること、また何回文字を書いても文字の形が変わらないようにすることができた。

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