2019a/Member/Nove/Mission1 #contents *課題について [#wf61b35c] これまで暮らしたことのある都道府県名、または市町村名から漢字2文字以上、かつ合計画数10画以上のものを選ぶ。そして、それをA4用紙に書くロボットを作成しなさい。 **選んだ文字 [#c3b67117] 自分は今住んでいる「松本」を選びました。 *ロボット本体の説明 [#q1394e9f] **全体として [#z685660b] 初め、四輪ロボットで動かしていたのですが「紙がぐちゃぐちゃになる」、「回転が大きくなる」という難点がありました。先生の助言もあり、最終的に二輪+補助輪のロボットにしました。 二輪にするにあたり、作った補助輪の写真を上げておきます。これはロボットの道具に付随していたテキストの物を作りました。 #ref **工夫した点 [#i216a38b] タイヤのちょうど真ん中にペン先が来るよう考えました。殆ど最初に作ったロボットと同じですが、黒の部品を前にずらすことでペンを動かすモーターを固定したり、後ろの補助輪がぶつからないように調整しました。 動かした部分の写真です。 **ペン部分 [#o2c5496b] 最後にペンを動かすモーターの説明です。 今回、自分は歯車を前後に回すことで、ペンを付けた黄色の部品を上下に動かそうと考えました。しかし、実際には動きませんでした。自分の力不足ですが、時間がたらずその調整は出来ませんでした。詳しくはプログラムの欄でも述べます。 *プログラミングについて [#n70522f3] **松のプログラム [#jc4ff3b9] ペンの上下移動 接続不良なのか送信してもペンを動かすモーターが動きませんでした そのため、ペンを置いたまま文字を書きました。 #define pen_up OnFwd(OUT_B);Wait(10);Off(OUT_B)//ペンを上げる #define pen_down OnRev(OUT_B);Wait(10);Off(OUT_B)//ペンを下げる 以下、松の画数で説明していきます。 1画目から2画目の移動 片足止めた状態で回転すると、2画目の最初の位置にペンが来るためこうしました。 #define turn0 Off(OUT_A);OnRev(OUT_C);Wait(170);Off(OUT_AC);Wait(10); 3画目に移るための回転 #define turnright0 OnRev(OUT_C);OnFwd(OUT_A);Wait(40);Off(OUT_AC);Wait(10); 4画目に移るための回転 #define turnleft0 OnRev(OUT_A);OnFwd(OUT_C);Wait(60);Off(OUT_AC);Wait(10); 5画目に向かうための回転 #define turnleft1 OnRev(OUT_A);OnFwd(OUT_C);Wait(70);Off(OUT_AC);Wait(10); 5画目の向きへの回転 #define turnright1 OnRev(OUT_C);OnFwd(OUT_A);Wait(110);Off(OUT_AC);Wait(10); 6画目への移動のための回転 #define turnleft2 OnRev(OUT_A);OnFwd(OUT_C);Wait(110);Off(OUT_AC);Wait(10); 6画目を書くための回転 #define turnright2 OnRev(OUT_C);OnFwd(OUT_A);Wait(55);Off(OUT_AC);Wait(10); 7画目の始点に移動するための回転 #define turnright3 OnRev(OUT_C);OnFwd(OUT_A);Wait(80);Off(OUT_AC);Wait(10); 7画目の向きの調整の回転 #define turnleft3 OnRev(OUT_A);OnFwd(OUT_C);Wait(20);Off(OUT_AC);Wait(10); 7画目を書いてる途中の回転 #define turnleft4 OnRev(OUT_A);OnFwd(OUT_C);Wait(110);Off(OUT_AC);Wait(10); 8画目の向きに傾ける回転 #define turnright2 OnRev(OUT_C);OnFwd(OUT_A);Wait(55);Off(OUT_AC);Wait(10); まとめたもの OnFwd(OUT_AC);Wait(50);Off(OUT_AC);Wait(20);//ペン上げ pen_up; turn0; OnFwd(OUT_AC);Wait(10);Off(OUT_AC);Wait(20);//ペン下げ pen_down; OnFwd(OUT_AC);Wait(130);Off(OUT_AC);Wait(20);//ペン上げ pen_up; OnRev(OUT_AC);Wait(100);Off(OUT_AC);Wait(20); turnright0;//ペン下げ pen_down; OnFwd(OUT_AC);Wait(50);Off(OUT_AC);Wait(20);//ペン上げ pen_up; OnRev(OUT_AC);Wait(40);Off(OUT_AC);Wait(20); turnleft0;//ペン下げ pen_down; OnFwd(OUT_AC);Wait(40);Off(OUT_AC);Wait(20);//ペン上げ pen_up; OnRev(OUT_AC);Wait(30);Off(OUT_AC);Wait(20); turnleft1; OnFwd(OUT_AC);Wait(70);Off(OUT_AC);Wait(20); turnright1;//ペン下げ pen_down; OnFwd(OUT_AC);Wait(40);Off(OUT_AC);Wait(20);//上げ pen_up; OnRev(OUT_AC);Wait(40);Off(OUT_AC);Wait(20); turnleft2; OnFwd(OUT_AC);Wait(10);Off(OUT_AC);Wait(20); turnright2;//下げ OnFwd(OUT_AC);Wait(40);Off(OUT_AC);Wait(20);//上げ pen_up; turnright3; OnFwd(OUT_AC);Wait(20);Off(OUT_AC);Wait(20); turnleft3;//下げ pen_down; OnFwd(OUT_AC);Wait(40);Off(OUT_AC);Wait(20); turnleft4; OnFwd(OUT_AC);Wait(60);Off(OUT_AC);Wait(20);//上げ pen_up; turnright2; OnRev(OUT_AC);Wait(10);Off(OUT_AC);Wait(20);//下げ pen_down; OnFwd(OUT_AC);Wait(30);Off(OUT_AC);Wait(20);//上げ pen_up; **松の終わりから本への移動 [#q2ce381f] 本の一画目は移動を少なくするために逆から書くことにしました。 turnright4; OnFwd(OUT_AC);Wait(20);Off(OUT_AC);Wait(20); turnright3;//下げ pen_down; **本のプログラム [#r9c3ed72] 2画目へ向きを変えるための回転(90°) #define turnleft5 OnRev(OUT_A);OnFwd(OUT_C);Wait(80);Off(OUT_AC);Wait(10); 3画目は松の木ヘンを利用しました。 4画目への方向転換は90°のため2画目の時のを利用しました。 5画目への移動は片方固定の方が位置が良かったので少し変えました。 #define turn1 Off(OUT_C);OnRev(OUT_A);Wait(80);Off(OUT_AC);Wait(10); まとめると OnFwd(OUT_AC);Wait(110);Off(OUT_AC);Wait(20);//上げ pen_up; OnRev(OUT_AC);Wait(55);Off(OUT_AC);Wait(20); turnleft5; OnRev(OUT_AC);Wait(10);Off(OUT_AC);Wait(20);//下げ pen_down; OnFwd(OUT_AC);Wait(80);Off(OUT_AC);Wait(20);//上げ pen_up; OnRev(OUT_AC);Wait(70);Off(OUT_AC);Wait(20); turnright0; pen_down; OnFwd(OUT_AC);Wait(80);Off(OUT_AC);Wait(20);//上げ pen_up; OnRev(OUT_AC);Wait(80);Off(OUT_AC);Wait(20); turnleft5;//下げ pen_down; OnFwd(OUT_AC);Wait(80);Off(OUT_AC);Wait(20);//上げ pen_up; turn1; OnRev(OUT_AC);Wait(80);Off(OUT_AC);Wait(20);//下げ pen_down; OnFwd(OUT_AC);Wait(50);Off(OUT_AC);Wait(20); *書いた文字 [#ra4f81df] *最後に [#c69cb117] defineが多すぎると感じました。 ほかの人のを見てXY軸でやることが一番いいのではないかと感じました。 次回は自分もそれを使用して、今回の多くの失敗をなくせるよう取り組んでいきたいです。