[[2019a/Member]] #contents *課題1の説明 [#i8e066bc] **内容 [#cadfaad7] これまで住んだことのある都道府県名、市町村名、地区名などの中から2文字以上のものを選び、それをA4の紙を書くロボットを製作する. **選んだ文字 [#u73016f2] なるべく曲線をなくしたいので曲線が比較的少なそうな「信州」を選んだ。 **書く方法 [#ec94d47b] XY座標で書く方法も考えたがやり方がわからず断念。ので、普通に動きながら書く方法に決めた。 *ロボット [#ff7a23a9] **ロボットの機構 [#le15e07e] といっても作り自体は簡単で、左のタイヤ、右のタイヤ、ペンを上げ下げするための機構の三つだけです。 *プログラミング [#j73c907d] 最初に必要そうだと思ったプログラムは前に進む、左に曲がる、右に曲がる、後ろに戻る、ペンを上げる、ペンを下げるの計6つ。前後移動とペンの上げ下げはプログラムとしては単純なので説明は割愛させてもらいます。 **左右に曲がるプログラム [#q246502f] やってみて難しかったのが左右に曲がるプログラム。考えてみれば当たり前だがペンが前についているので、ロボットがその場で回れ右したらペンの位置は大きく移動してしまう。なので、一度前に進み90度回りその後、後ろに戻るという方法で90度回りかつペンの位置は移動しないプログラムを書いた。ちなみに90度ぴったし回る方法がわからなかったのでrun_timedでだいたい90度になりそうな値を設定した。 **文字の書き順 [#p88b64ec] 本来の書き順通りに書いた方が見栄え的には良さそうなのだがプログラム的面倒くさい。楽をしようと思うと下図のように下から上に、上から下にを繰り返すのがよさそうだと思った。 で、実際の書き順は下図のようにした。 *実際のプログラム [#y0135a2c] **モジュールのインポート、インスタンスの作成 [#g25e2eed] #!/usr/bin/env python3 from ev3dev.ev3 import* from time import sleep l = LargeMotor('outD') leftのl。左のタイヤ。 r = LargeMotor('outA') rightのr。右のタイヤ。 a = MediumMotor('outB') armのa。かと思ったが適当につけただけかもしれない。ペンの上げ下げ用。 i = 1000 何かに使えるかもと設定した。