[[2019a/Member]

課題1

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

選んだ文字

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

ロボットの説明

全体の構造 

今回作成したロボットは、 ロボット全体を前後(Y軸方向)に動かす機構 ペンの部分を左右(X方向)に動かす機構 ペンを上げ下げさせる機構 の3つに分かれている。 ロボットの動きとしては、3つの機構を作ることで、前後(Y軸方向)、左右(X方向)を ペンが動き回れる構造となっている。  

ロボット全体を前後(Y軸方向)に動かす機構

,竜々修蓮∩宛紂Y軸方向)の動力を担当している。Aのモーターに出力を入れることで動き,1つのモーターで動かすため、前後にしか動かない。ゝ々  

ペンの部分を左右(X方向)に動かす機構

△竜々修蓮∈険ΑX方向)の動力を担当している。構造をアームにすることで、1つのモーター でペンを左右に動かすことに成功した。 ゝ々

ペンを上げ下げさせる機構

の機構は、ペンの上げ下げを担当している。△竜々修鉢の機構にギアを取り付けることにより,1つのモーターで上げ下げすること可能にした。 ゝ々  

メインプログラムの準備 

ペンを前後(Y軸方向)に移動させるプログラム

,竜々修前後(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);//下から上に書く縦線

主にこの定義した物を使うが、線の長さは、その都度、調整する。

ペンを左右(X方向)に移動させるプログラム

△竜々修左右(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 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);

主にこの定義した物を使うが、線の長さは、その都度、調整する。

四を書くためのプログラム

四の枠組みを書くためのプログラム

     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;

国を書くためのプログラム

国の枠組みを書くためのプログラム

     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;

メインプログラム

上記のプログラムをつなげたものである.

#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;
}

以上がプログラムである。

完成した文字

ゝ々 思ったより綺麗に書けたと思う

課題1の反省

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

感想 

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

 

 

    


添付ファイル: fileIMG_1725.jpg 3件 [詳細] fileIMG_1721.jpg 2件 [詳細] fileIMG_1720.jpg 2件 [詳細] fileIMG_1719.jpg 6件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-07-15 (月) 22:23:54 (36d)