[[2019a/Member]]
目次
#contents
*課題1 [#o9a8dd42]
これまで住んだことのある都道府県名,地名,市町村名,地区名などの中から2文字以上のものを選び,それをA4の紙に書くロボットを制作せよ.
*選んだ文字 [#lf18aaef]
山梨にある「甲府」という地名を選んだ.
*ロボットの説明 [#iad2f8ee]
写真と一緒に説明していく.
&ref(2019a/Member/miruama/Mission1/DSC_0963 (2).JPG);
これはタイヤの間にペンを挟み,上下させるためのパーツである.左側のタイヤにはモーターが直接取り付けられており,OnFwd,OnRevで簡単にペンの上げ下げが行える.また,タイヤの間にペンを差し込むだけなので,取り付け,取り外しが簡単に行える.
&ref(2019a/Member/miruama/Mission1/DSC_0971 (3).JPG);
ラックを用いることにより,歯車の回転運動を直線運動に変換し,ペンのx軸方向の移動を可能にした.歯車には直接,モーターが取り付けられている.
&ref(2019a/Member/miruama/Mission1/DSC_0976 (1).JPG);
&ref(2019a/Member/miruama/Mission1/DSC_0965 (2).JPG);
ロボット本体を動かすタイヤは3つ,前輪にモーターが取り付けられている.これによる前後運動により,ペンのy軸方向の移動を可能にしている.
*プログラムの説明 [#d30e03ab]
#define go_front(t) OnFwd(OUT_B);Wait(t);Off();
#define go_back(t) OnRev(OUT_B);Wait(t);Off();
#define go_right(t) OnRev(OUT_A);Wait(t);Off();
#define go_left(t) OnFwd(OUT_A);Wait(t);Off();
#define pen_up() OnRev(OUT_C);Wait(4);Off();
#define pen_down() OnFwd(OUT_C);Wait(10);Off();
上記のサブルーチンの説明していく.「go_(方向)(t)」でその方向にペンがt/100秒間移動するようになっている.「front」「back」の時はロボット本体が前後に,「left」「right」のときはペンを持つアームが左右に動くようになっている.また,「pen_up」「pen_down」によってペンの上げ下げを行う.
「pen_up」「pen_down」に挟まれたプログラムで線を書いていく.
task main(){
pen_down();go_right(32);go_back(17);go_left(32);go_front(17);
go_back(9);go_right(32);pen_up();
&ref(2019a/Member/miruama/Mission1/DSC_0993.JPG);
上のプログラムで,写真のように一筆書きをする.
go_front(9);go_left(18);
pen_down();
go_back(20);go_back(10);
pen_up();
&ref(2019a/Member/miruama/Mission1/DSC_0989.JPG);
ペンを移動させ,「甲」の最後の一画を書く.
上のプログラムで,ペンを移動させ,「甲」の最後の一画を書く.
go_back(7);
pen_down();
go_back(10);
pen_up();
go_right(16);
pen_down();
go_left(32);
go_back(20);go_back(10);
pen_up();
&ref(2019a/Member/miruama/Mission1/DSC_0992.JPG);
写真のような順番でまだれを書く.
上のプログラムで,写真のような順番でまだれを書く.
go_right(12);
pen_down();
go_front(14);go_front(10); //�,寮�//
pen_up();
go_front(6);go_right(6);
pen_down();
OnFwd(OUT_A);OnRev(OUT_B);Wait(10); //�△寮�//
Off(OUT_B);Wait(3);Off();
pen_up();
go_right(16);
pen_down(); //��の線//
go_right(14);
pen_up();
go_left(4);go_front(7);
peb_down(); //�い寮�//
go_back(15);go_back(10);
pen_up();
go_left(12);go_front(14);
pen_down(); //�イ寮�//
OnRev(OUT_AB);wait(4);Off(OUT_B);Wait(2);Off();
}
&ref(2019a/Member/miruama/Mission1/DSC_0990.JPG);
写真と同じ順番で,「付」を書いていく.
上のプログラムで,写真と同じ順番で,「付」を書いていく.
「#define」を用い,プログラムのパーツ化,簡略化に成功した.一動作ごとにWaitを入れることで,入れない時よりも正確な動きができた.長い線を書くときは二回に分けて書くことにより,ペンが引っかかって上手く書けないという問題を解決した.
*完成した文字 [#b9e3123f]
&ref(2019a/Member/miruama/Mission1/DSC_0962 (1).JPG);
*まとめ [#r4db4566]
個人的には90%の完成度である.また,多くの困難,壁に見舞われたが,大胆かつ柔軟な決断により抜け出すことができた.しかし,書いている最中所々ペンが浮いてしまう,という課題は克服することができず,悔しく思っている.また,ロボット本体の強度が少し低めである点も課題である.