]追加された行はこの色です。削除された行はこの色です。[#e114045d]-A4の紙に松本の大学生活を表す漢字一文字を書くロボットを製作する。--漢字の画数は7画以上。--文字は15センチ四方に収めること。[#g58d3543]松本での新生活について選択した漢字は「荒」である。[#rd700d55]&ref(2017a/Member/irin/Mission1/完成品.JPG,60%,今回製作したロボット);今回製作したロボットはプリンターをイメージし、キャタピラを用いて製作した。特徴としてx軸方向にヘッダを動かすモーターとy軸方向にヘッダを動かすモーターを搭載し、それぞれ独立して動かすことで斜線を描くことができる。xy軸で考えることでプログラミングの手間を軽減することができた。[#l5a1389e]&ref(2017a/Member/irin/Mission1/ヘッダ上.JPG,40%,上から見た図);&ref(2017a/Member/irin/Mission1/ヘッダA.JPG,40%,横から見た図A);&ref(2017a/Member/irin/Mission1/ヘッダB.JPG,40%,横から見た図B);上図のようにヘッダ部分は木組み細工の様な箱型の部品である。次にロボットに実際に取り付けられている図を示す。&ref(2017a/Member/irin/Mission1/ヘッダ全体.JPG,70%,俯瞰図);x方向に動かす部品をX、y方向に動かす部品をYとする。仕組みとしては単純で、部品Xを動かすとヘッダはx方向に動くし、部品Yを動かすとヘッダもy方向に動く、といった具合である。ヘッダを目標の位置へ移したい場合、まずx方向へAだけ動かした後、Y方向にBだけ動かせばよい。これはベクトルの合成をイメージするとわかりやすい。[#h2e3ad76]&ref(2017a/Member/irin/Mission1/正面.JPG,60%,正面からの画像);&ref(2017a/Member/irin/Mission1/側面.JPG,60%,側面からの画像);今回ペンを上下させるためにウォームギアを用いた。仕組みとしてはモーターに取り付けられた小ギアの回転をウォームギアに伝え、力の方向を上下に変換するというものである。※後で知ったが、このウォームギアの使用法は想定されていないものらしく、部品を傷める可能性があるので推奨されない。[#fc17c6bb]現在は摩擦を軽減するためにタイヤ使用しているが、改善する前は摩擦が大きく、字が安定しなかった。m=ev3.MediumMotor("outC")y軸方向に動かすモータをmy,x軸方向に動かすモーターをmx,ペンを上下させるためのモーターをmと命名する。今回はtimeモジュールをインポートしている。#posはpositionの略である。m_up():m.run_to_rel_pos(position_sp=-70,duty_cycle_sp=30,speed_sp=50,stop_action="hold")今回は、秒数でモーターを回してヘッダを動かすのではなく、モーターをどれくらいの角度で回すかで制御した。こちらの方法の方が調整しやすく、正確に動かせるであろうと考えたからである。次に関数の説明に移りたいと思う。x軸方向に何度回転させるかをx_pos(),y軸方向に回転させるのはy_pos()とした。双方とも引数に(回転角,モーターの回転速度)を要求する。次に関数の説明に移りたいと思う。x軸方向にどれだけ動かすのかをx_pos(),y軸方向にどれだけ動かすのはy_pos()とした。双方とも引数に(回転角,モーターの回転速度)を要求する。ペンを上へ上げる動きをするものをm_up(),降ろす動きをするものをm_down()とした。これらは、引数を必要とせず、モーターを|70度|回転させる。毎回2秒sleepさせているが、これをしないと前のモーターの動作中に次の動作が始まってしまう。最初、理論値でプログラミングしようと試みたが、ロボットの精度の問題で、文字がうまく書けなかった。そこで、理論値のプログラムで一旦書いてみて、どのようなずれが生じているのか調べ、理論値のプログラムを雛形にし、数値を変えてみて調整を繰り返すことで問題を解決した。[#z2fda281]今回製作したロボットの問題点として、精度が低い、安定しない、という点が挙げられる。うまく書けるときと、うまく書けないときがある。前者を左に、後者を右に示す。&ref(2017a/Member/irin/Mission1/seikou.JPG,60%,うまく書けたとき);&ref(2017a/Member/irin/Mission1/sippai.JPG,60%,失敗したとき);何度かの改良を経て、5回に3回くらいの割合でうまく書けるようになった。[#rb15202e]今回の課題で、「モノを制御する」ということは、トライアンドエラーを積み重ねてやっと実現するものだと知った、また考えていた以上に大変である。いったものの製作、開発は、無駄をそぎ落としていくことが大切だと学んだし、そのためにはもっと余裕をもって作業を進めていくべきだと感じた。それらに加えて、今回レゴブロックの効果的な使用法を学ぶことができた。次回の課題では、今回学んだことを生かしてよりよいものを作りたいと思った。[#hf1c646a]このロボットの問題点として、「安定しない」というものが挙げられたが、これに対する解決策として「キャタピラの向きを横にしてみたらどうか」という助言を先生から頂いたが、時間が足りず採用を見送ることとなった。そこで後日プログラムこそ書かなかったが、個人的に興味があり本体だけ組み立ててみた。&ref(2017a/Member/irin/Mission1/かたぴら.JPG,60%,斜めからの図);&ref(2017a/Member/irin/Mission1/キャタピラ.JPG,60%,上からの図);時間がなく動かすことができなかったが、まだまだキャタピラを横にする以外の改善策が見つかりそうで、このロボットもまだまだ奥が深いと感じた。itピアで見たような方式も試してみたかった。