[[2019a/Member]
*課題1 [#j4fa8c8d]

これまで住んだことのある都道府県、市町村名、地区名などの中から2文字以上、かつ合計10画以上のものを選び、それをA4の紙に書くロボットを製作せよ。

*選んだ文字 [#o4f64b97]

愛媛出身だったため「四国」を選んだ

*ロボットの説明 [#a504126d]
**全体の構造  [#h35ab329]
今回作成したロボットは、
�� ロボット全体を前後(Y軸方向)に動かす機構
�� ペンの部分を左右(X方向)に動かす機構
�� ペンを上げ下げさせる機構
の3つに分かれている。
ロボットの動きとしては、3つの機構を作ることで、前後(Y軸方向)、左右(X方向)を
ペンが動き回れる構造となっている。
 
**�� ロボット全体を前後(Y軸方向)に動かす機構 [#k63d5548]
�,竜々修蓮∩宛紂�Y軸方向)の動力を担当している。Aのモーターに出力を入れることで動き,1つのモーターで動かすため、前後にしか動かない。&ref(2019a/Member/Asahi/Mission1/IMG_1719.jpg,10%,�ゝ々�);
 
**�� ペンの部分を左右(X方向)に動かす機構 [#te9253b7]
�△竜々修蓮∈険Α�X方向)の動力を担当している。構造をアームにすることで、1つのモーター
でペンを左右に動かすことに成功した。
&ref(2019a/Member/Asahi/Mission1/IMG_1720.jpg,10%,�ゝ々�);

**�� ペンを上げ下げさせる機構 [#u1c24997]
��の機構は、ペンの上げ下げを担当している。�△竜々修鉢�の機構にギアを取り付けることにより,1つのモーターで上げ下げすること可能にした。
&ref(2019a/Member/Asahi/Mission1/IMG_1721.jpg,10%,�ゝ々�);
 
*メインプログラムの準備  [#lde830a2]
 
**ペンを前後(Y軸方向)に移動させるプログラム [#o2c41cc2]
�,竜々修�前後(Y軸方向)に動くようにプログラムする。
 #define st OnFwd(OUT_A,50);Wait(700);Off(OUT_A);Wait(1000);
 #define ba OnRev(OUT_A,50);Wait(700);Off(OUT_A);Wait(1000);
 #define st OnFwd(OUT_A,50);Wait(700);Off(OUT_A);Wait(1000);//上から下に書く縦線
 #define ba OnRev(OUT_A,50);Wait(700);Off(OUT_A);Wait(1000);//下から上に書く縦線
主にこの定義した物を使うが、線の長さは、その都度、調整する。

**ペンを左右(X方向)に移動させるプログラム [#s62611d1]
�△竜々修�左右(X方向)に動くようにプログラムする。
 #define ri OnFwd(OUT_B,25);Wait(700);Off(OUT_B);Wait(1000);
 #define le OnRev(OUT_B,25);Wait(700);Off(OUT_B);Wait(1000);
 #define ri OnFwd(OUT_B,25);Wait(700);Off(OUT_B);Wait(1000);//左から右に書く横線
 #define le OnRev(OUT_B,25);Wait(700);Off(OUT_B);Wait(1000);//右から左に書く横線
主にこの定義した物を使うが、線の長さは、その都度、調整する。

**ペンを上げ下げさせるプログラム [#h0ce46b2]
��の機構が上げ下げするようにプログラムする。
 #define dw OnFwd(OUT_C,23);Wait(450);Off(OUT_C);Wait(1000);
 #define up OnRev(OUT_C,20);Wait(450);Off(OUT_C);Wait(1000);
主にこの定義した物を使うが、線の長さは、その都度、調整する。

*四を書くためのプログラム [#rf71996c]

**四の枠組みを書くためのプログラム [#t6fca199]
      up;
      st;//左側の縦線
      up;
      dw;
      le;//下側の横線
      up;
      dw;
      ba;//右側の縦線
      up;
      dw;
      ri;//上側の横線
      up; 
毎回ペンの上げ下げを入れているのは,ペンを安定させるためである.

**四の中身を書くためのプログラム [#hacee9a3]
      OnRev(OUT_B,30);Wait(100);Off(OUT_B);Wait(1000);//左側の曲線
      OnFwd(OUT_C,30);Wait(350);Off(OUT_C);Wait(1000);
      OnFwd(OUT_A,50);Wait(400);Off(OUT_A);Wait(1000);
      up;
      OnRev(OUT_A,50);Wait(300);Off(OUT_A);Wait(1000);//右側の曲線
      OnRev(OUT_B,30);Wait(100);Off(OUT_B);Wait(1000);
      dw;
      OnFed(OUT_A,50);Wait(500);Off(OUT_A);Wait(1000);
      OnRev(OUT_B,20);Wait(250);Off(OUT_B);Wait(1000);
      up;

*国を書くためのプログラム [#cd749675]

**国の枠組みを書くためのプログラム [#lc3f4e35]
      dw;
      st;//右側の縦線
      up; 
      dw;
      ri;//下側の横線
      OnRev(OUT_C,30);Wait(200);Off(OUT_C);Wait(1000);
      OnRev(OUT_C,30);Wait(350);Off(OUT_C);Wait(1000);
      ba;左側の縦線
      up;
      dw;
      le;//上側の横線
      up;

**国の中身を書くためのプログラム [#i8fe6df1]
    OnFwd(OUT_A,50);Wait(250);Off(OUT_A);Wait(1000);//一番上の横線
      OnFwd(OUT_B,50);Wait(200);Off(OUT_B);Wait(1000);
      OnFwd(OUT_C,20);Wait(550);Off(OUT_C);Wait(1000);  
      OnRev(OUT_B,30);Wait(250);Off(OUT_B);Wait(1000);
      up;
      OnFwd(OUT_A,50);Wait(250);Off(OUT_A);Wait(1000);//二番目の横線
      dw;
      OnRev(OUT_B,30);Wait(250);Off(OUT_B);Wait(1000);
      up;
      OnFwd(OUT_A,50);Wait(250);Off(OUT_A);Wait(1000);//三番目の横線
      dw;
      OnFwd(OUT_B,30);Wait(250);Off(OUT_B);Wait(1000);
      up;
      OnRev(OUT_B,25);Wait(250);Off(OUT_B);Wait(1000);//縦線
      dw;
      OnRev(OUT_A,50);Wait(100);Off(OUT_A);Wait(1000);
      up;
      OnFwd(OUT_A,50);Wait(100);Off(OUT_A);Wait(1000);
      OnFwd(OUT_B,18);Wait(300);Off(OUT_B);Wait(1000);//点
      dw;
      OnRev(OUT_A,50);Wait(400);Off(OUT_A);Wait(1000);
      up;



*メインプログラム [#i4061d2a]
上記のプログラムをつなげたものである.

 #define st OnFwd(OUT_A,50);Wait(700);Off(OUT_A);Wait(1000);
 #define ri OnFwd(OUT_B,25);Wait(700);Off(OUT_B);Wait(1000);
 #define dw OnFwd(OUT_C,23);Wait(450);Off(OUT_C);Wait(1000);
 #define up OnRev(OUT_C,20);Wait(450);Off(OUT_C);Wait(1000);
 #define le OnRev(OUT_B,25);Wait(700);Off(OUT_B);Wait(1000);
 #define ba OnRev(OUT_A,50);Wait(700);Off(OUT_A);Wait(1000);

 task main()
 {
     up;
     st;
     up;
     dw;
     le;
     up;
     dw;
     ba;
     up;
     dw;
     ri;
     up;
     OnRev(OUT_B,30);Wait(100);Off(OUT_B);Wait(1000);
     OnFwd(OUT_C,30);Wait(350);Off(OUT_C);Wait(1000);
     OnFwd(OUT_A,50);Wait(400);Off(OUT_A);Wait(1000);
     up;
     OnRev(OUT_A,50);Wait(300);Off(OUT_A);Wait(1000);
     OnRev(OUT_B,30);Wait(100);Off(OUT_B);Wait(1000);
     dw;
     OnFed(OUT_A,50);Wait(500);Off(OUT_A);Wait(1000);
     OnRev(OUT_B,20);Wait(250);Off(OUT_B);Wait(1000);
     up;
     OnFwd(OUT_A,50);Wait(1000);Off(OUT_A);Wait(1000);
     dw;
     st;
     up; 
     dw;
     ri;
     OnRev(OUT_C,30);Wait(200);Off(OUT_C);Wait(1000);
     OnRev(OUT_C,30);Wait(350);Off(OUT_C);Wait(1000);
     ba;
     up;
     dw;
     le;
     up;
     OnFwd(OUT_A,50);Wait(250);Off(OUT_A);Wait(1000);
     OnFwd(OUT_B,50);Wait(200);Off(OUT_B);Wait(1000);
     OnFwd(OUT_C,20);Wait(550);Off(OUT_C);Wait(1000);  
     OnRev(OUT_B,30);Wait(250);Off(OUT_B);Wait(1000);
     up;
     OnFwd(OUT_A,50);Wait(250);Off(OUT_A);Wait(1000);
     dw;
     OnRev(OUT_B,30);Wait(250);Off(OUT_B);Wait(1000);
     up;
     OnFwd(OUT_A,50);Wait(250);Off(OUT_A);Wait(1000);
     dw;
     OnFwd(OUT_B,30);Wait(250);Off(OUT_B);Wait(1000);
     up;
     OnRev(OUT_B,25);Wait(250);Off(OUT_B);Wait(1000);
     dw;
     OnRev(OUT_A,50);Wait(100);Off(OUT_A);Wait(1000);
     up;
     OnFwd(OUT_A,50);Wait(100);Off(OUT_A);Wait(1000);
     OnFwd(OUT_B,18);Wait(300);Off(OUT_B);Wait(1000);
     dw;
     OnRev(OUT_A,50);Wait(400);Off(OUT_A);Wait(1000);
     up;
 }
以上がプログラムである。

*完成した文字 [#t8737637]
&ref(2019a/Member/Asahi/Mission1/IMG_1725.jpg,10%,�ゝ々�);
思ったより綺麗に書けたと思う


*課題1の反省 [#q7888504]
初めてのプログラミングだったため、なるべく簡単な物にしようと思いx,y軸の物にした。
プログラミングは、予想通り比較的簡単だったが、安定した文字を書くのに苦労した。
その理由はロボット本体にあると考えられるので、それを箇条書きにしてまとめる。
・�△竜々修鉢�の機構の固定が弱かった。
・アームが動くことによって重心がずれ、そのたびに筆圧が変わってた。

*感想  [#y7099a6c]
初めてのプログラミングだったが、楽しく行えたと思う。
この調子で次の課題も頑張っていきたい。
 
 
  

 



 












    

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