[[2018a/Member]] #contents *課題 [#aa34e532] これまで住んだことのある都道府県名、市町村名、地区名などの中から2文字以上のものを選び、それをA4の紙を書くロボットを製作せよ。 **選んだ文字 [#a47fc535] 私は今回「守山」という滋賀県の地名を選択した。理由としては、直線が多く自分のプログラミング技術や作業時間から考えると適切であるように思われたからだ。最初は「石山」という字も考えたが、はらいが難しく断念した。 *マシンについて [#ma0ec29c] 私たちは車両型のマシンを作成した。縦方向、横方向、筆の高さをそれぞれモーターで調整することを考えた。それぞれ独立させることで動きを分かりやすくする狙いがあった。 &ref(2018a/Member/Kondou/Mission1/IMG_10004.jpg,320x240,); このマシンは大きく分けて3点のパーツから成り立っている。 1、横移動を担当するパーツ 2、筆を縦に移動させるパーツ 3、筆の高さを変えるパーツ である。 ** 1、横移動を担当するパーツ [#nc882d83] モーターでタイヤを回転させ、本体ごと筆を横に移動させるパーツである。 当初はキャタピラで動かしていた。機体のバランスは安定はしたが、文字が歪むのでタイヤに切り替えたところ緩和された。 motorx (回転角)を入力することで稼働する。 &ref(2018a/Member/Kondou/Mission1/IMG_10001.jpg,320x240,); ** 2,筆を縦に移動させるパーツ [#y2441fd3] 筆と接続させたアームを、モーターの回転で巻き取ることで縦方向の移動を可能にした。 motory(回転角)を入力することで稼働する。 &ref(2018a/Member/Kondou/Mission1/IMG_10000.jpg,320x240,); ** 3,筆の高さを変えるパーツ [#ra377d41] 当初はモーターの回転で筆と紙の角度を変え、筆が紙についている状況とついていない状況を作っていた。しかし文字の歪みを解消するために、筆の後部につけた紐を巻き取ることで調節する形にした。糸のゆるみが移動のさいに振動を和ら構造になっている。m up,down を入力することで稼働する。 &ref(2018a/Member/Kondou/Mission1/IMG_10002.jpg,320x240,); *プログラミングにあたって [#id372837] 縦に動かすプログラム↓ #def motorx(positionX): mX.run_to_rel_pos(position_sp=positionX, speed_sp=50, stop_action='hold') 横に動かすプログラム↓ #def motory(positionY):mY.run_to_rel_pos(position_sp=positionY, speed_sp=50, stop_action='hold') ペンを紙から離すプログラム #def up(): mZ.run_to_rel_pos(position_sp=-90, speed_sp=50, stop_action='hold') // ペンを紙につけるプログラム #def down(): mZ.run_to_rel_pos(position_sp=90, speed_sp=50, stop_action='hold') // * 「守」のプログラム [#w39f20bd] down() time.sleep(4) motorx(100) ←守のウ冠の左の縦線を引く motorx(100) //守のウ冠の左の縦線を引く up() motorx(-100) //�� time.sleep(6) down motory(-270) motorx(100) //�◆ 吻,�ら�△妊ΥГ硫�線と右の縦線を引く) time.sleep(6) up() motory(140) //�� motorx(-120) time.sleep(4) down() time.sleep(4) motorx(120) //�ぁ 吻�から�い妊ΥГ涼羶瓦僚沈�を引く) time.sleep(4) up() time.sleep(4) motory(60) //�� motorx(100) time.sleep(4) down() time.sleep(4) motory(-120) //�Α 吻イ�ら�Δ農�の横線を引く) time.sleep(4) up() time.sleep(4) motorx(-90) // �� motory(60) time.sleep(4) down() time.sleep(4) motorx(80) //�─ 吻Г�ら�┐農�の縦線を引く) time.sleep(8) up() time.sleep(4) motory(40) //�� motorx(40) time.sleep(4) down() time.sleep(4) up() //�� (��から��で寸の点を書く) *「山」のプログラム [#hdbee2bf] motorx(40) //�� time.sleep(4) motory(-180) //�◆� (�,�ら�△如⊆蕕鮟颪�終わった位置から山の左の縦線の書き出し位置にに移動) time.sleep(4) down() time.sleep(4) motorx(180) //�� time.sleep(8) motory(-120) time.sleep(4) motorx(-180) time.sleep(4) up() //�ぁ 吻�から�い如∋海虜犬僚沈�、横線、右の縦線を書く) time.sleep(4) motorx(180) //�� motory(60) time.sleep(6) down() time.sleep(6) motorx(-540) time.sleep(8) up() //�Α 吻イ�ら�Δ濃海涼羆�の縦線を引く) *反省 [#zad6cbd7] ・ギリギリまで時間がかかってしまった。ev3の理解が出遅れたことも原因の一つだと思った。 ・機体のバランスが悪くこけることがあった ・字の歪みがまだ残っている。縦方向の機構をもう少し工夫すれば緩和させられそうだ。 *感想 [#fa5c6a0c] レゴを組むのはけっこう問題なくいけたがプログラミングと併せて考えると非常に難しかった。臨機応変に構造を変えて工夫してチャレンジできたことはよかったと思う。細かい調整をくり返してようやくうまく動いたときはすおく達成感があった。