#contents * 今回の課題 [#la2b8565] 書道ロボを制作して、自分の名前の中から七画以上の文字を選びます。~ そしてプログラミングを書き書道ロボに選んだ文字を書かせます。~ 私は「明」の文字を書きました。 * ロボット本体の説明 [#r0e7278a] このロボットはA端子で筆の上下、B端子で前後、C端子で左右を動くことができる。~ #ref(1434022680969.jpg) ** 前後 [#b524d26f] #ref(/2015a/Member/uchi/Mission1/edo_3.jpg) #ref(1434022664944.jpg) モータが回転すると前後に動く、これを滑り止めとつなぐと上の部分が動く ** 左右 [#e6c77069] #ref(/2015a/Member/uchi/Mission1/edo_2.jpg) ** 筆 [#heee1620] #ref(/2015a/Member/uchi/Mission1/edo_1.jpg) これを回転することによって筆の上げ下げをする、また回転しすぎないようとめ具がある ** 滑り止め [#ca0d208b] #ref(/2015a/Member/uchi/Mission1/edo_4.jpg) これを置くことによって滑らないようにする、これがないと本体が動いてもじがまともに書けなくなる * プログラミングの説明 [#j8095d3a] ** 定義、サブルーチン [#t643c4da] sub syoki()//初期位置に移動(左上)、モーターのパワーの調節 { SetPower(OUT_A,1); SetPower(OUT_B,3); SetPower(OUT_C,3); OnRev(OUT_A); Wait(5); Off(OUT_A); OnFwd(OUT_B); OnRev(OUT_C); Wait(100); Off(OUT_BC); } #define downpen OnFwd(OUT_A);Wait(20);//ペンをおろす #define uppen OnRev(OUT_A);Wait(20);//ペンを上げる #define migi OnFwd(OUT_C);Wait(20);Off(OUT_C);//右に動く #degine hidari OnRev(OUT_C);Wait(20);Off(OUT_C);//左に動く #define ue OnFwd(OUT_B);Wait(20);Off(OUT_B);//上に動く(平面上) #define sita OnRev(OUT_B);Wait(20);Off(OUT_B);//下に動く(平面上) #define end OnRev(OUT_A);Wait(5);Off(OUT_A);//筆をもとに戻す ** メイン [#p5c28582] task main() { syoki();//日 downpen; migi; sita; sita; hidari; ue; ue; uppen; sita; downpen; migi; uppen; ue; migi; downpen;//月 sita; sita; sita; uppen; migi; downpen; ue; ue; ue; hidari; uppen; sita; downpen; migi; uppen; sita; downpen; hidari; uppen; end; } ** 工夫 [#r41dd9f8] 一番最初にやるsyokiで筆の回転の強さを調節したりした。またsyokiは長いのでサブルーチンを使ってみた。ロボットは前後左右を限られた範囲で動くのでそれに合わせて四方向の定義を作った。 * 完成した文字 [#y55f4d3f] #ref(1434033663277[1].jpg) * 反省 感想 [#ja26db63] 今回のロボットはメンバーの一人がかなり頑張ってくれたので次からはレゴのことをもっと理解して手伝えるようになりたいです。またプログラミングは後で気づいたが、定義だけでなく関数を使えば同じプログラムを二度書かないで簡潔にすることができたので次回では気を付けていく。~ また筆の先がつぶれたりし、日によって字の上手さが変わってしまった。自分の書いた字は書くのが速すぎて大きくはみだしてしまった。 また筆の先がつぶれたりし、日によって字の上手さが変わってしまった。自分の書いた字は書くのが速すぎて大きくはみだしてしまった。「明」の字のはらいの部分を直線にすることによって少し手を抜いてしまった気がする。 今回が初めて自分たちでロボットを製作したりプログラムがかけたので楽しかった。しかしまだまだ未熟なので次の課題ではもっと頑張れたらいいなと思いました。