[[2019a/Member]] #contents *課題1 [#i76b354f] これまで住んだことのある都道府県名、市町村名、地区名などの中から2文字以上、かつ合計10画以上のものを選び、それをA4の紙を書くロボットを製作せよ。 私たちは、現在住んでいる「松本」という地名を選んだ。 *ロボットの説明 [#u06e8ae7] 前後左右に動いて、文字を書くロボットを作ることにした。下記の3つの構造を組み合わせ、ロボットを組み立てた。 +ロボットを前後に動かす +ペンを左右に動かす +ペンを上下に動かす 以下がロボットの写真である。 #ref(2019a/Member/www/Mission1/robo1.jpg,50%) **1.ロボットを前後に動かす [#d98ec2f8] 一つのタイヤで二つのモーターを一気に動かせるようにした。 また、歯車を2列にして使い、(8/24)×(8/40)=1/15 とスピードを減速させた。 #ref(2019a/Member/www/Mission1/robo2.jpg,50%) **2.ペンを左右に動かす [#ee52b288] 歯車の回転運動を左右の直線運動に帰るために、平らでギザギザしたパーツを使用した。 ここでも、減速をするために歯車を使いスピードを(8/40)×(8/24)=1/15 とし、白い歯車を使うことで、大きな負荷がかかっても空回りしてロボットが壊れることを予防した。 1のロボットを前後に動かす際と似たような歯車の使いかたをしたが、タイヤを使う点、ギザギザのパーツを使う点が異なっており、左右で程よいバランスに動くように歯車の数や大きさを調節するのが大変だった。 さらに、左右の動きを安定化させるために右側にモーターの力が伝わらない歯車を設置した。 上部の青いパーツは、位置を微調整する際に使用した。 #ref(2019a/Member/www/Mission1/robo3.jpg,50%) **3.ペンを上下に動かす [#oe1337f7] ここでも、ペンを左右に動かすときにと同様に、青いパーツを取り付けて簡単に微調整を行えるようにした。 #ref(2019a/Member/www/Mission1/robo5.jpg,50%) 写真右側のモーターから左側のペンに動力を伝える。 接合部分の紫色のチューブによって、モーターが回りすぎても空回りし、ロボットが壊れることを予防できた。 #ref(2019a/Member/www/Mission1/aiu.jpg,25%) *プロブラム [#xdadceef] プログラムを書くためにdefineを使い、プログラムを見やすくした。 定義したものは以下の通り。 -上下の動き #define TATE_down150 OnFwd(OUT_B);Wait(150);Off(OUT_B); //下に動く #define TATE_down50 OnFwd(OUT_B);Wait(50);Off(OUT_B); #define TATE_UP50 OnRev(OUT_B);Wait(50);Off(OUT_B); //上に動く #define TATE_UP100 OnRev(OUT_B);Wait(100);Off(OUT_B); #define TATE_UP25 OnRev(OUT_B);Wait(25);Off(OUT_B); -斜めの動き #define NANAME_right OnFwd(OUT_B);OnRev(OUT_C);Wait(100);Off(OUT_BC); //斜め右に動く #define NANAME_right_half OnFwd(OUT_B);OnRev(OUT_C);Wait(050);Off(OUT_BC); #define NANAME_right_quarter OnFwd(OUT_B);OnRev(OUT_C);Wait(025);Off(OUT_BC); #define NANAME_rightback OnRev(OUT_B);OnFwd(OUT_C);Wait(100);Off(OUT_BC); #define NANAME_rightback_half OnRev(OUT_B);OnFwd(OUT_C);Wait(050);Off(OUT_BC); #define NANAME_rightback_quarter OnRev(OUT_B);OnFwd(OUT_C);Wait(035);Off(OUT_BC); #define NANAME_left OnFwd(OUT_BC);Wait(100);Off(OUT_BC); //斜め左に動く #define NANAME_left_half OnFwd(OUT_BC);Wait(050);Off(OUT_BC); #define NANAME_leftback OnRev(OUT_BC);Wait(100);Off(OUT_BC); #define NANAME_leftback_half OnRev(OUT_BC);Wait(050);Off(OUT_BC); -横の動き #define YOKO_left100 OnFwd(OUT_C);Wait(100);Off(OUT_C); //左に動く #define YOKO_left50 OnFwd(OUT_C);Wait(50);Off(OUT_C); #define YOKO_right100 OnRev(OUT_C);Wait(100);Off(OUT_C); //右に動く #define YOKO_right50 OnRev(OUT_C);Wait(050);Off(OUT_C); -ペンの上下 #define UP OnFwd(OUT_A);Wait(100);Off(OUT_A); //ペンが上がる #define DOWN OnRev(OUT_A);Wait(50);Off(OUT_A); //ペンが下がる **「松」を書く [#i5c411e2] 「松」の書き順は以下の通り。 #ref(2019a/Member/www/Mission1/matsu.jpg,50%,) task main() { YOKO_right100; //1画目 UP; YOKO_left50; //1から2への移動 TATE_UP50; DOWN; //2画目 TATE_down150; UP; TATE_UP100; //2から3への移動 DOWN; //3画目 NANAME_left_half; UP; NANAME_leftback_half; //3から4への移動 DOWN; //4画目 NANAME_right_half; UP; TATE_UP100; //4から5への移動 YOKO_right50; DOWN; //5画目 NANAME_left_half; UP; NANAME_leftback_half; //5から6への移動 YOKO_right50; DOWN; //6画目 NANAME_right_half; UP; YOKO_left100; //6から7への移動 DOWN; //7画目 NANAME_left_half; YOKO_right100; UP; NANAME_rightback_quarter; //7から8への移動 DOWN; //8画目 NANAME_right_half; UP; **「松」から「本」への移動 [#s803fcec] YOKO_left100; YOKO_left100; TATE_down150; **「本」を書く [#of676355] 「本」の書き順は以下の通り。 #ref(2019a/Member/www/Mission1/moto.jpg,50%) DOWN; //1画目 YOKO_right100; YOKO_right100; UP; YOKO_left100; //1から2への移動 TATE_UP50; DOWN; //2画目 TATE_down150; UP; TATE_UP50; //2から3への移動 TATE_UP50; DOWN; //3画目 NANAME_left; UP; NANAME_leftback; //3から4への移動 DOWN; //4画目 NANAME_right; UP; YOKO_left100; //4から5への移動 YOKO_left50; TATE_UP25; DOWN; //5画目 YOKO_right100; } *完成した文字 [#o0a3bf39] #ref(2019a/Member/www/Mission1/moji.jpg,50%) *まとめ [#w7e36272] 結構きれいに書けたのではないかと思う。ただ、問題点として、以下があげられる。 -斜めの線がガタガタしてしまう -左右に動くときにペンがぶれる -文字の右側の部分がかすれた感じになる -車体の上下が分解しやすかった 解決策としては、 -歯車をきつくあわせる -ペンの固定を強化する -左右の重さのバランスをとる -縦に固定するパーツを使う