課題1

課題内容

 自分にゆかりのある土地に関連する漢字2文字(合計10画以上)を書けるロボット,プログラミングを作る.

選んだ文字

 北海道出身なので「北海」という文字を選んだ.

ロボットの説明

全体像

DSC_0125-1376x774.JPG

x軸方向

 ラックという部品を使いギアの回転運動をアームを出し入れする運動に変えている.また,スピードを落とすために大きさの違うギアを組み,途中でトルクギアを用いることでプログラミングミスで可動域を過ぎても壊れないようになっている.

DSC_0124-774x1376.JPG

Y軸方向

 車輪で動く仕組みにしようと考え,モーター1つで前進,後進ができるよう,方向を変えられるギアを2回用いている.しながら文字を書くことにしている.

DSC_0123-774x1376.JPG

ペンの上げ下げ

 x軸方向のギアが当たらないように,中空の棒でモーターとペンの上げ下げの仕組みとつないだ.また,ゴムを用いることで,筆圧が強くなりにくく,可動域をこえない仕組みになっている.

DSC_0122-774x1376.JPG

プログラミングの説明

書き順

 Y軸正方向に移動しながら文字を書くと,ペンが動かなくなるという不具合があったため,すべてY軸負方向に移動しながら文字を書いている.

DSC_0134-774x1376.JPG

サブルーチン

#define pen_up OnFwd(OUT_A);Wait(50);Off(OUT_A);//ペンを上げる
#define pen_down OnRev(OUT_A);Wait(50);Off(OUT_A);//ペンを下げる
#define xa_F OnFwd(OUT_B);//アームをx軸正方向に運動させる
#define xa_R OnRev(OUT_B);//アームをx軸負方向に運動させる
#define yt_F OnFwd(OUT_C);//ロボットをY軸正方向に運動させる
#define yt_R OnRev(OUT_C);//ロボットをY軸負方向に運動させる
#define as Off(OUT_B);//アームを止める
#define ts Off(OUT_C);//タイヤを止める
#define ats Off(OUT_BC);//アームとタイヤを止める

メイン

task main()
{
   pen_down;
   xa_F;
   Wait(50);
   as;
   pen_up;
   yt_F;
   Wait(20);
   ts;
   pen_down;
   yt_R;
   Wait(70);
   ts;
   xa_R;
   Wait(20);
   as;
   pen_up;
   yt_F;
   Wait(55);
   ts;
   xa_F;
   Wait(150);
   as;
   pen_down;
   xa_R;
   Wait(50);
   as;
   pen_up;
   yt_F;
   Wait(10);
   ts;
   pen_down;
   yt_R;
   Wait(80);
   ts;
   xa_F;
   Wait(50);
   as;
   yt_F;
   Wait(5);
   ts;
   pen_up;//北完成
   xa_R;
   Wait(150);
   as;
   yt_R;
   Wait(20);
   ts;
   pen_down;
   xa_F;
   yt_R;
   Wait(20);
   ats;
   pen_up;
   yt_R;
   Wait(13);
   ts;
   xa_R;
   Wait(20);
   as;
   pen_down;
   yt_R;
   xa_F;
   Wait(20);
   ats;
   pen_up;
   yt_R;
   Wait(33);
   ts;
   pen_down;
   yt_R;
   xa_R;
   Wait(20);
   ats;
   pen_up;//さんずい完成
   yt_F;
   Wait(90);
   ts;
   xa_F;
   Wait(45);
   as;
   pen_down;
   yt_R;
   xa_R;
   Wait(20);
   ats;
   pen_up
   yt_F;
   xa_F;
   Wait(10);
   ats;
   pen_down;
   xa_F;
   Wait(80);
   as;
   pen_up;
   xa_R;
   Wait(80);
   as;
   yt_R;
   Wait(20);
   ts;
   pen_down;
   yt_R;
   Wait(60);
   ts;
   xa_F;
   Wait(100);
   as;
   pen_up;
   yt_F;
   Wait(60);
   ts;
   xa_R;
   Wait(100);
   as;
   pen_down;
   xa_F;
   Wait(80);
   as;
   yt_R;
   Wait(80);
   ts;
   pen_up;
   yt_F;
   Wait(80);
   ts;
   xa_R;
   Wait(40);
   as;
   pen_down;
   yt_R;
   Wait(60);
   ts;
   pen_up;
   xa_R;
   Wait(60);
   as;
   yt_F;
   Wait(40);
   ts;
   pen_down;
   xa_F;
   Wait(120);
   as;
   pen_up;
}

まとめ

結果

DSC_0121-774x1376.JPG

反省

 ペンの上げ下げ,アーム,車輪の仕組みを別々に作ってから組み立てたため,全体的に無駄が多く,バランスも悪くなってしまった.

感想

 全体で難易度が高かった.プログラミングは思いの外短時間で出来たが,ロボットの完成形を意識せず,作ってしまったため不格好になってしまった.自分にはもっと先を見る力が必要だと感じた.


添付ファイル: fileDSC_0134-774x1376.JPG 40件 [詳細] fileDSC_0121-774x1376.JPG 32件 [詳細] fileDSC_0122-774x1376.JPG 30件 [詳細] fileDSC_0123-774x1376.JPG 27件 [詳細] fileDSC_0124-774x1376.JPG 44件 [詳細] fileDSC_0125-1376x774.JPG 38件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-06-08 (金) 02:48:13 (437d)