#contents
*課題1 [#gd4395f2]
**課題内容 [#uf65a700]
 自分にゆかりのある土地に関連する漢字2文字(合計10画以上)を書けるロボット,プログラミングを作る.
**選んだ文字 [#ff9d9463]
 北海道出身なので「北海」という文字を選んだ.
*ロボットの説明 [#f906cbb3]
**全体像 [#c8688b79]
#ref(DSC_0125-1376x774.JPG)
**x軸方向 [#o0a463b6]
 ラックという部品を使いギアの回転運動をアームを出し入れする運動に変えている.また,スピードを落とすために大きさの違うギアを組み,途中でトルクギアを用いることでプログラミングミスで可動域を過ぎても壊れないようになっている.
#ref(DSC_0124-774x1376.JPG)
**Y軸方向 [#d2baac70]
 車輪で動く仕組みにしようと考え,モーター1つで前進,後進ができるよう,方向を変えられるギアを2回用いている.しながら文字を書くことにしている.
#ref(DSC_0123-774x1376.JPG)
**ペンの上げ下げ [#tdb5a6cc]
 x軸方向のギアが当たらないように,中空の棒でモーターとペンの上げ下げの仕組みとつないだ.また,ゴムを用いることで,筆圧が強くなりにくく,可動域をこえない仕組みになっている.
#ref(DSC_0122-774x1376.JPG)
*プログラミングの説明 [#f1510164]
**書き順 [#vefe0d03]
 Y軸正方向に移動しながら文字を書くと,ペンが動かなくなるという不具合があったため,すべてY軸負方向に移動
 Y軸正方向に移動しながら文字を書くと,ペンが動かなくなるという不具合があったため,すべてY軸負方向に移動しながら文字を書いている.
#ref(DSC_0134-774x1376.JPG)
**サブルーチン [#badf4585]
 #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);//アームとタイヤを止める
**メイン [#r91b3ff5]
 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;
 }
*まとめ [#w086fccf]
**結果 [#l0b4143a]
#ref(DSC_0121-774x1376.JPG)
**反省 [#h6c400b8]
 ペンの上げ下げ,アーム,車輪の仕組みを別々に作ってから組み立てたため,全体的に無駄が多く,バランスも悪くなってしまった.
**感想 [#ud299678]
 全体で難易度が高かった.プログラミングは思いの外短時間で出来たが,ロボットの完成形を意識せず,作ってしまったため不格好になってしまった.自分にはもっと先を見る力が必要だと感じた.

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