[[2018a/Member]] #contents *課題 [#u0e15833] これまで住んだことのある都道府県名、市町村名、地区名などの中から2文字以上のものを選び、それをA4の紙に書くロボットを製作せよ。 *ロボット本体の説明 [#d307915b] **全体像 [#vc94b622] #ref(./IMG_7734.JPG,50%,全体像) 今回作成したロボットは �●�軸方向の移動に関わる機構(以下、��軸制御機構) �■�軸方向の移動に関わる機構(以下、y軸制御機構) ��ペンの上下に関わる機構(以下、ペン制御機構) の3つの機構で構成されている。 プログラミングの容易さを考慮して、横と縦の動きが別々に独立している��y座標型を採用した。 **��軸制御機構 [#ab79a124] #ref(./IMG_7742.JPG,50%,��軸制御機構) トルクギアを用いたことで、モータが回転しすぎても壊れたり、負荷がかからないように工夫した。また、複数のギアを組み合わせたことで、��軸方向の移動が速すぎないよう工夫した。また、��軸方向の可動範囲を大きくするために **y軸制御機構 [#n26ace9a] #ref(./IMG_7733.JPG,50%,y軸制御機構) 大きいほうの車輪はモータと接続されているが、小さいほうの車輪は接続されておらず、大きいほうの車輪が動くことにより小さいほうの車輪が受動的に動く仕組みとなっている。また、1つのモーターで2つのタイヤを動かす必要があったため、複数のギアを組み合わせた。その結果、y軸方向も移動が速すぎることなく適切な速度となった。 大きいほうの車輪はモータと接続されているが、小さいほうの車輪は接続されておらず、大きいほうの車輪が動くことにより小さいほうの車輪が受動的に動く仕組みとなっている。また、1つのモーターで2つのタイヤを動かす必要があったため、モーターの回転を90度回転させるギア等を組み合わせた。その結果、y軸方向も移動が速すぎることなく適切な速度となった。 **ペン制御機構 [#ec2c641f] #ref(./IMG_7732 (2).JPG,50%,ペン制御機構) モータと接続した1つの歯車と接続されていない歯車を輪ゴムでつないだことで、ペンの上下の速度がより正確に文字を書く上で適切なものとなったと思う。また、結果的にスムーズな上下運動にもつながった。 *プログラムの説明 [#kcb96203] **書き順 [#k2c8a5f7] 本来の書き順にとらわれず、いかに効率的に書くかを重視した。 #ref(./IMG_7776 (1).jpg,50%,書き順); **サブルーチン[#k41d3fd9] ペンの上げ下げにかかる時間を少し多めにとることで確実に書くことができるようになった。また、上下左右の移動にかかる時間は一画一画ごとに調整した。 また、モータAはペン制御機構、モータBは��軸制御機構、モータCはy軸制御機構である。 #define move_plusx(t) OnFwd(OUT_B);Off(OUT_C);Wait(t);Off(OUT_BC);//右移動 #define move_minusx(t) OnRev(OUT_B);Off(OUT_C);Wait(t);Off(OUT_BC);//左移動 #define move_plusy(t) Off(OUT_B);OnFwd(OUT_C);Wait(t);Off(OUT_BC);//前移動 #define move_minusy(t) Off(OUT_B);OnRev(OUT_C);Waut(t);Off(OUT_BC);//後ろ移動 #define pen_down OnRev(OUT_A);Wait(100);Off(OUT_A);//ペン下げる #define pen_up OnFwd(OUT_A);Wait(100);Off(OUT_A);//ペン上げる **メイン [#i558272b] taskmain() { //北の1画目 pen_down; move_minusy(38); move_minusx(50); pen_up; //北の2画目 move_plusy(25); move_plusx(25); pen_down; move_plusx(25); pen_up; //北の3画目 move_plusx(25); pen_down; move_plusx(25); pen_up; //北の4画目 move_plusy(13); move_minusx(25); pen_down; move_minusy(38); move_plusx(50); pen_up; //海の1画目 move_minusy(25); move_minusx(25); pen_down; move_minusx(50); pen_up; //海の2画目 move_minusx(25); pen_down; move_minusx(25); pen_up; //海の3画目 move_minusy(25); pen_down; move_plusx(125); pen_up; //海の4画目 move_minusy(13); pen_down; move_minusx(75); pen_up; pen_down; move_plusy(25); pen_up; pen_down; move_plusx(50); pen_up; pen_down; move_minusx(38); pen_up; //海の5画目 move_minusx(25); move_plusy(13); pen_down; move_plusy(25); pen_up; //海の6画目 move_plusy(25); move_minusx(13); pen_down; move_minusy(25); pen_up; //海の7画目 move_minusy(50); move_minusx(25); pen_down; move_minusx(25); pen_up; Off(OUT_ABC) } *まとめ [#af9d2d0c] **結果 [#m0b40b8a] #ref(./image_6483441 (3).JPG,50%,結果) **課題 [#o9ad53ed] 各部品を独立して作成していたため、すべての部品を結合させたときのロボットのバランスが悪くなってしまった。特に、アーム部分は片方のみにモータを乗せていたため、アームの位置が重心の変化に大いに影響する形となってしまった。今後は全体のバランスもしっかり考慮したうえでさくせいしたい。また、書き順は簡潔になるよう工夫したが、プログラミング自体はあまり簡潔でないように思えるので、今後は改善していきたい。 **感想 [#afe7cf9d] 最初は文字を書くロボットの作成は私にはハードルが高いと感じた。実際、厳しい部分も多々あったが、チームの方の協力により無事完成することができて良かった。今後もチームワークを大事にしつつ、自分のスキル向上も図りたい。