[[2017b/Member/yan/Mission1]]
* 目次 [#h39e1f4c]
**課題 [#fba43546]
**選んだ漢字 [#n84ebf67]
**ロボットの本体の説明 [#d3d15bdd]
**結果 [#c0de0266]
**プログラム説明 [#b978208f]
**感想 [#xfaa88f9]
#contents
* 課題 [#z3e02be1]
 これまで住んだことのある都道府県名、市町村名、地区名などの中から2文字以上のものを選び、それをA4の紙を書くロボットを製作せよ。 †
ひとりにつき一つ以上のプログラムを作成すること。
ペン以外はキットに含まれる部品を使うこと。
キットに付属の高価な輪ゴムは切れやすいので切れないように細心の注意を払うこと。
改良や調整をしやすくするため、ロボット本体だけでなく、プログラムについても可能な部分についてはサブルーチンや関数、マクロなどを使って部品に分けること。
* 選んだ漢字 [#y87684a8]
 上海

* ロボットの本体の説明 [#h1ba7c7d]
二つのモーターは左右のタイヤの運行をコントロールする。右に曲がる方法1:左のタイヤは前進する、右のタイヤを動作しないととロボットは右に進む(本体は元場所にずれる)。方法2:左のタイヤは前進する同時に右のタイヤは左のタイヤと同じ速度で後ろに移動する(曲がったロボットは元場所にある)。左に曲がる方法は右に曲がる方法と同じ。真ん中のモーターはペンの上げ、下げを制御する。
#ref(2017b/Member/yan/mission1/progranm1/2.jpg,123.8kb)
後ろから見るとこのような感じ
*字を書く時の説明 [#f3de2f9e]
ペンを下してからロボットを移動して字を書く、次の画目を書くために、一時的にペンをアップして次の画目の場所へ移動する。
#ref(2017b/Member/yan/mission1/progranm1/23.jpg,24.3kb)
*ペンをコントロール部分 [#e402c741]
#ref(2017b/Member/yan/mission1/progranm1/7.png,432.6kb)
後ろから見る様子。A端子は右タイヤをコントロール、B端子はペンを上げ下げコントロール、C端子は左タイヤをコントロールする。ゴムでケーブルを縛って地面に触れないため。
#ref(2017b/Member/yan/mission1/progranm1/3.jpg,114.0kb)
ロボットの底盤を固定するため、下部分は長い穴を付いたパッツを利用した、ミニタイヤと本体間の距離も注意しなければならない。
#ref(2017b/Member/yan/mission1/progranm1/25.jpg,80.6kb)
*結果 [#q0dbec5a]
乾電池の電源を消耗するによって少しずつずれた
#ref(2017b/Member/yan/mission1/progranm1/1.jpg,64.5kb)

* プログラム説明 [#l06029b4]
     
 #define MP_L 40  右のタイヤの移動する速さ
 #define MP_R 40  ひたりのタイヤの移動する速さ
 #define MP_P 5   ペンの上げ下げの速さ


 sub T_R(int time)   右に曲がる、ひたりのタイヤだけ前に進む 
 sub T_R(int time)   右に回る、ひたりのタイヤだけ前に進む 
 {    
     OnFwd(OUT_C,MP_R);
     Wait(time);
     Off(OUT_C);Wait(1000);
 } 


 sub T_L(int time)    左に曲がる、右のタイヤだけ前に進む
 sub T_L(int time)    左に回る、右のタイヤだけ前に進む
 {
     OnFwd(OUT_A,MP_L);
     Wait(time);
     Off(OUT_A);Wait(1000);
 }

 sub R_B (int time) 後退する
 {
     OnRev(OUT_AC,MP_R);
     Wait(time);
     Off(OUT_AC);Wait(1000);
 }

 sub M_Line(int time)     前進する
 {   
     OnFwd(OUT_AC,MP_L);
     Wait(time);
     Off(OUT_AC);Wait(1000);
 }
 #define P_On OnFwd(OUT_B,MP_P); Wait(500); Off(OUT_B); ペン下ろす
 #define P_Off OnRev(OUT_B,MP_P); Wait(700); Off(OUT_B); ペン上げる


 task main()
 {
   P_On;M_Line(500);P_Off;
   T_R(1200);R_B(980);P_On;M_Line(250);P_Off;
   T_R(1000);R_B(310);T_R2(1050);R_B(600);P_On;R_B(550);P_Off;
   M_Line(1400);T_L(1400);R_B(500);T_L(500);P_On;R_B(150);P_Off;
   T_R(500);R_B(500);T_L(500);P_On; R_B(150);P_Off;
   T_L(1500);R_B(800);P_On;R_B(200);P_Off;
   M_Line(450);T_L(100);T_L(500);R_B(1100);P_On;R_B(150);P_Off;
   M_Line(300);T_R(1100);R_B(900);T_L(150);R_B(100);P_On; R_B(350);P_Off;
   M_Line(700);T_L(1300);R_B(450);P_On; R_B(380);P_Off;
   M_Line(180);T_R(1280);R_B(1000);P_On;R_B(300);P_Off;
   M_Line(120);T_R(1250);R_B(1000);P_On; R_B(500);P_Off;
   M_Line(580);T_L(1500);R_B(520);P_On; R_B(440);P_Off;
   M_Line(650);T_L(1300);R_B(530);T_L(1550);R_B(600);P_On;R_B(380);P_Off;
   M_Line(260);T_R(1450);R_B(1050);P_On; R_B(300);P_Off;
*task main() [#h57c874f]
#ref(2017b/Member/yan/mission1/progranm1/4.jpg,74kb)
*「上」のプログラミング [#w6ce63d6]
 P_On;
 M_Line(500);
 P_Off;  //一画目 ペンを下ろして0.5秒前に進んで、ペン上げる
 T_R(1200);
 R_B(980);
 P_On;
 M_Line(250);
 P_Off; // に画目 右に1.2秒回って、0.98秒後退してペンを下ろして0.25秒前に進む。ぺん上げる。
 T_R(1000);
 R_B(310);
 T_R2(1050);
 R_B(600);
 P_On;
 R_B(550);
 P_Off;//三画目 右に1秒回る、後退して右に0.105秒回って、後退してペンを下ろして後退して0.55秒後ペン上げる。
*「海」のプログラミング [#ua6b1d6e]
 M_Line(1400); 
 T_L(1400);
 R_B(500);
 T_L(500);//ロボットは移動して「海」を書き始める。
 P_On;
 R_B(150);
 P_Off; //一画目 
 T_R(500);
 R_B(500);
 T_L(500);
 P_On;
 R_B(150);
 P_Off;//二画目
 T_L(1500); 
 R_B(800);
 P_On;
 R_B(200);
 P_Off;//三画目
 M_Line(450);
 T_L(100);
 T_L(500);
 R_B(1100);
 P_On;
 R_B(150);
 P_Off;//四画目
 M_Line(300);
 T_R(1100);
 R_B(900);
 T_L(150);
 R_B(100);
 P_On; 
 R_B(350);
 P_Off;//五画目
 M_Line(700);
 T_L(1300);
 R_B(450);
 P_On; 
 R_B(380);
 P_Off;//六画目
 M_Line(180);
 T_R(1280);
 R_B(1000);
 P_On;
 R_B(300);
 P_Off;//七画目
 M_Line(120);
 T_R(1250);
 R_B(1000);
 P_On; 
 R_B(500);
 P_Off;//八画目
 M_Line(580);
 T_L(1500);
 R_B(520);
 P_On;
 R_B(440);
 P_Off;//九画目
 M_Line(650);
 T_L(1300);
 R_B(530);
 T_L(1550);
 R_B(600);
 P_On;
 R_B(380);
 P_Off;//十画目
 M_Line(260);
 T_R(1450);
 R_B(1050);
 P_On; 
 R_B(300);
 P_Off;//十一画目
 }
*感想 [#i9c37ab6]
 1.上記のように組み立てたロボットの左右対称することは重要である。左右対称しないと左右タイヤの速さに影響がある。
 2.電池の残りなどで大きくズレが起こった。
 3.ほかのチームのロボットを見って、みんなの考えはすごかったと思う。特にプリンターのように動くロボットは印象に残った。
 4.大変だったが頑張ります。 


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