[[2019a/Member/mikoto/Mission1]]

目次
#contents

*課題1 [#q9faf2e6]

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

**選んだ文字 [#y55e8fc2]

地元であり、また書きやすい「上田」にしようと考えたが、画数が少なかったため、&size(25){上田市}; にした。

*ロボットの説明 [#j74de017]

#ref(2019a/Member/mikoto/Mission1/robotics1.jpg,100%,アーム)

・過去の受講生のページを参考にしてペン先がy軸を移動できるアームを作った。
・過去の受講生のページを参考にしてペン先がy軸を移動できるアームを作った。アームは曲げ伸ばしできる。モーターが動くと、アームがマジックハンドのように伸び縮みし、ペン先が移動する仕組みとなっている。
(参考にしたページ→ [[2018b/Member/ndksiba/Mission1]]

#ref(2019a/Member/mikoto/Mission1/robotics2.jpg,100%,アームの先)

・最初は動きやすさを重視し、アームの先はもう少し自由な構造だったが、自由すぎて動いた後で元の位置に戻ってこないことがあったので、自由度を減らして写真のような構造に落ち着いた。

*プログラムの説明 [#l0802dd6]

**書き順 [#febd3f23]

#ref(2019a/Member/mikoto/Mission1/kakizyun.png,70%,書き順)

・「上」の字以外は正しい書き順になるようにした。

**プログラムを書く際の工夫 [#c5efc5d0]

・プログラムが長くなることが予想されたので、定義や変数を駆使して短く書きやすくなるようにした。

・定義名を日本語にしたので、美しいとは言い難いが視覚的に分かりやすい。

**プログラムの定義 [#r6b3ca0e]

 #define pen_sage OnRev(OUT_B,15);Wait(300);Off(OUT_B); //ペンを下げる
 #define pen_age OnFwd(OUT_B,15);Wait(300);Off(OUT_B); //ペンを上げる
 #define tate(s) OnFwd(OUT_A,25);Wait(s);Off(OUT_A); //縦画を書く
 #define yoko(s) OnFwd(OUT_C,30);Wait(s);Off(OUT_C); //横画を書く
 #define return_t(s) OnRev(OUT_A,25);Wait(s);Off(OUT_A); //縦方向に戻る
 #define return_y(s) OnRev(OUT_C,30);Wait(s);Off(OUT_C); //横方向に戻る

**「上」を書くプログラム [#i2bb17cc]

task main ()
 {
     pen_sage;
     yoko(300); //1画目
     pen_age;
     tate(1000);
     return_y(950);
     pen_sage;
     yoko(980); //2画目
     pen_age;
     return_y(480);
     return_t(2000);
     pen_sage;
     tate(2000); //3画目
     pen_age;

**「田」を書くプログラム [#sc1d71a2]

     tate(300);
     return_y(270);
     pen_sage;
     tate(1200); //1画目
     pen_age;
     return_t(1200);
     pen_sage;
     yoko(700);
     tate(1200); //2画目
     pen_age;
     return_y(450);
     return_t(1200);
     pen_sage;
     tate(1200); //3画目
     pen_age;
     return_t(600);
     return_y(270);
     pen_sage;
     yoko(700); //4画目
     pen_age;
     return_y(700);
     tate(600);
     pen_sage;
     yoko(700); //5画目
     pen_age;

**「市」を書くプログラム [#lf6bd874]

     return_y(450);
     tate(300); 
     pen_sage;
     tate(300); //1画目
     pen_age;
     return_y(450);
     pen_sage;
     yoko(980); //2画目
     pen_age;
     return_y(700);
     tate(300);
     pen_sage;
     tate(450); //3画目
     pen_age;
     return_t(450);
     pen_sage;
     yoko(600);
     tate(450); //4画目
     return_y(100);
     pen_age;
     return_y(300);
     return_t(750);
     pen_sage;
     tate(900); //5画目
     pen_age;
       
 }

*反省・改善点 [#q768956c] 

・時間が無く、妥協が目立った。また、せっかくロボットをxy型にしたが、座標計算が雑で狙い通りの線が引けなかった。次はさらにクオリティの高いものを作りたい。



トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS