[[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%の完成度である.また,多くの困難,壁に見舞われたが,大胆かつ柔軟な決断により抜け出すことができた.しかし,書いている最中所々ペンが浮いてしまう,という課題は克服することができず,悔しく思っている.また,ロボット本体の強度が少し低めである点も課題である.

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