課題1目次
#contents
*課題内容 [#l307e235]
キット(ペンを含む)を使ってA4の紙に自分の名前の中の7画以上の漢字を書け。
*ロボットの作成 [#ze772911]
・車体の部分は曲がりやすいように3輪の構造となっている、そのためロボット自体が動き回ってペンを下ろして字を書くタイプである。ペンの部分は芸がなくモーターに直接糸でペンをくくりつけ、モーターの回転でペンを上下させるというシンプルな構造となっている。
#ref(name1.PNG)
#ref(image2.JPG)
・最初はもっと大きいタイヤであったがそれだとどうしてもA4の紙に収まるようなロボットの動きは難しかったのでタイヤを小さくした。他にもペンの構造がシンプルなためにペンと車体本体の結合がいまいちだったので、しっかりと固定した。

*プログラムの説明 [#e9775801]
#ref(e.png)
・図の灰色の部分はロボットが通っているがペンを下ろしていない部分である。
・図の番号はロボットが通っていく順番である。>
  #define MOVE_TIME 10
    #define move_1 OnFwd(OUT_AC);Wait(MOVE_TIME);//番号1,2,3を進む直線を定義
   #define turn_left Off(OUT_A);OnFwd(OUT_C);Wait(110);//左に曲がるを定義
     #define turn_right Off(OUT_C);OnFwd(OUT_A);Wait(110);//右に曲がるを定義
     #define UP_PEN OnFwd(OUT_B);Wait(10);Off(OUT_B);//ペンの上げる動作を定義
     #define DOWN_PEN OnRev(OUT_B);//ペンの下げる動作を定義
      #define MOVE_2 OnFwd(OUT_AC);Wait(3);//6から7,9から10、11から12に移動する動作を定義
・一筆書きで簡単に書きたかったので右左折の距離はほとんど同じにした。>
  {
       move_1;UP_PEN;Off(OUT_AC);Wait(200);//1
       turn_left;Off(OUT_AC);Wait(200);
         DOWN_PEN;move_1;UP_PEN;Off(OUT_AC);//2
       turn_right;Off(OUT_AC);Wait(200);
       DOWN_PEN;move_1;UP_PEN;Off(OUT_AC);Wait(200);//3
        turn_left;Off(OUT_AC);
       DOWN_PEN;OnFwd(OUT_AC);Wait(14);Off(OUT_AC);Wait(200);//4
       OnFwd(OUT_C);OnRev(OUT_A);Wait(90);Off(OUT_AC);Wait(200);
       move_1;Off(OUT_AC);Wait(200);//5
      OnFwd(OUT_C);OnRev(OUT_A);Wait(90);Off(OUT_AC);Wait(200);
         OnFwd(OUT_AC);Wait(2);Off(OUT_AC);Wait(200);UP_PEN;//6
        OnFwd(OUT_C);OnRev(OUT_A);Wait(90);Off(OUT_AC);Wait(200);
           MOVE_2;Off(OUT_AC);Wait(200);DOWN_PEN;
         OnFwd(OUT_AC);Wait(2);Off(OUT_AC);Wait(200);//7
         turn_left;Off(OUT_AC);Wait(200);DOWN_PEN;
      OnFwd(OUT_AC);Wait(2);Off(OUT_AC);Wait(200);//8
        UP_PEN;turn_right;Off(OUT_AC);Wait(200);
        DOWN_PEN;OnFwd(OUT_AC);Wait(2);Off(OUT_AC);Wait(200);//9
      UP_PEN;MOVE_2;Off(OUT_AC);
       DOWN_PEN;OnFwd(OUT_AC);Wait(13);Off(OUT_AC);Wait(200);//10
      UP_PEN;turn_left;Off(OUT_AC);Wait(200);
      DOWN_PEN;OnFwd(OUT_AC);Wait(13);Off(OUT_AC);Wait(200);//11
      UP_PEN;MOVE_2;Off(OUT_AC);Wait(200);
      OnFwd(OUT_AC);Wait(2);Wait(200);Off(OUT_ABC);Wait(200);//12
}
   ・ロボットの動きが早いとうまく書けなかったので一つの動作の後に毎回waitを入れた。
*感想とこれからの課題 [#beca74a0]
・曲がる時の秒数や直進するときの秒数など、どれもA4の上に収めるのは難しかったそのため何度もプログラムを書き換えてロボットに転送するのはとても手間がかかった。できるだけ簡単にしようと斜めの線を入れずにかくかくの字体にしたが、それでもかなり難しかった。
・今後のロボット製作では今回のA4の上にまとめるのが難しかったことを考えて、変速ギアをうまく使ってタイヤもの回転数を考えていきたい。プログラムの面では今回はdefineしか使わなかったためロボットの動きが固定化されて字が綺麗にかくことができなっかたため、次回は関数の定義などを使って綺麗にロボットをうごかしていきたい。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS