[[2018a/Member]]
#contents
*更新履歴 [#y7eb06be]
8月10日ープログラム上の説明を追記
*課題について [#off65039]
**課題内容 [#q4b470e5]
これまでに住んだことのある都道府県名、市町村名、地区名などの中から2文字以上のものを選び、それをA4の紙に書くロボットを制作せよ。

**選んだ文字 [#te2a1eff]
群馬県出身なので「群馬」

*ロボットについて [#o72ea476]
**ロボット [#pb49427b]
#ref(2018a/Member/mochi/Mission1/s_DSC_0190.JPG,50%, )
先駆者さんを参考にさせていただいた。

**横移動 [#v0d6671b]
#ref(2018a/Member/mochi/Mission1/s_DSC_0194.JPG,50%, )
キャタピラを用いて平面の移動をできるようにした。
斜め移動も可。
**縦移動 [#v0546bf1]
#ref(2018a/Member/mochi/Mission1/s_DSC_0191.JPG,50%, )
ミディアムモーターの回転移動を用いて上下移動をできるようにした。

*プログラム概要 [#k2762422]
**モジュールのインポート及びモーターの名前付け [#af119627]
 #!/usr/bin/env python3
 from ev3dev.ev3 import *
 from time import sleep 
 mx = LargeMotor('outA')
 my = LargeMotor('outB')
 mz = MediumMotor('outC')

time関数をインポート。
名前はx軸方向をmx,y軸方向をmy,z軸方向をmzとした。
**諸々の関数の定義 [#c16e08bd]
  def forward (i,j): #同時にx方向にi[cm],y方向にj[cm]進む 
  	if i > 0: #x方向の進行方向を判定 
  		speed_x = -100
  	else:
  		i = -i
  		speed_x = 100
  
  	if j > 0: #y方向の進
  	行方向を判定
  		speed_y = -100
  	else:
  		speed_y = 100
  		j = -j
  	mx.run_timed(time_sp = i * 250, speed_sp = speed_x) 
  	my.run_timed(time_sp = j * 250, speed_sp = -speed_y) 
i, jを実数とし、
x軸の正の方向にi[cm], y軸の正の方向にj[cm]だけ進みたければ 
ベクトル(i, j)を渡すことにより実行できる。
i<0 のときはx軸は負の向きへ、j<0のときはy軸が負の向きへ移動することにより、 
向きの指定が符号の違いのみで指定できる。

   def up(): #ペンを上げる
          mz.run_timed(time_sp = 300, speed_sp = -100)
 
ペンを上げる。

  def down(): #ペンを下げる
         mz.run_timed(time_sp = 300, speed_sp = 100)
ペンを下げる

  def down_forward_up(i, j): 
         down()
         time.sleep(1)
         forward(i, j)
         time.sleep(1)
         up()
down(), forwarf(i, j), up()の合成。
定義しておくことで入力が少なくできるときがあるため定義。

*実際に描写 [#c19a2a13]
前節で定義した関数を適宜用いて書いていけば良い。

**「群」 [#ic55152e]
 down()
 time.sleep(1)
 forward(2.4, 0) #一画目
 time.sleep(1)
 forward(0, 2.4)
 time.sleep(1)
 forward(-2.4, 0) #二画目
 time.sleep(1)
 up()
 time.sleep(1)
 forward(0, -1.2) #三画目に移動
 time.sleep(1)
 down()
 time.sleep(1)
 forward(2.4, 0) #三画目
 time.sleep(1)
 up()
 time.sleep(1)
 forward(-1.2, -1.2) #四画目に移動
 time.sleep(1)
 down()
 time.sleep(1)
 forward(0, 2.4) #四画目
 time.sleep(1)
 forward(-2.4, 2.4) #四画目
 time.sleep(1)
 up()
 time.sleep(1)
 forward(1.2, -1.2) #五画目に移動
 time.sleep(1)
 down()
 forward(0, 1.2) #五画目
 time.sleep(1)
 forward(0, 2.4)
 time.sleep(1)
 forward(0, -2.4)
 time.sleep(1)
 forward(-2.4, 0)
 time.sleep(1)
 up()
 time.sleep(1)
 forward(1.2, -4.8) #6画目に移動
 time.sleep(1)
 down_forward_up(0.4, 1.2) #6画目
 time.sleep(1) 
 forward(1.6, -1.2) #7画目に移動
 time.sleep(1)
 down_forward_up(-0.4, 1.2) #7画目
 time.sleep(1)
 forward(-1.6, 0.6) #8画目に移動
 time.sleep(1)
 down_forward_up(2.4, 0) #8画目
 time.sleep(1)
 forward(-1.6,0.8) #9画目に移動
 time.sleep(1)
 down_forward_up(1.2, 0) #9画目
 time.sleep(1)
 forward(-1.6,0.8) #10画目に移動
 time.sleep(1)
 down_forward_up(2.4, 0) #10画目
 time.sleep(1)
 forward(-1.2, -2.4) #11画目に移動
 time.sleep(1)
 down_forward_up(0, 4) #11画目
 time.sleep(1)

**「馬」 [#xb28616a]
 forward(4, 6) #1画目に移動
 time.sleep(1)
 down_forward_up(4, 0) #1画目
 time.sleep(1)
 forward(-4, 0.8) #2画目に移動
 time.sleep(1)
 down_forward_up(4, 0) #2画目
 time.sleep(1)
 forward(-4, 0.8)  #3画目に移動
 time.sleep(1)
 down_forward_up(4, 0) #3画目
 time.sleep(1)
 forward(-4, -1.6) #4画目に移動
 time.sleep(1)
 down_forward_up(0, 2.4) #4画目
 time.sleep(1)
 forward(0.8, -2.4) #5画目に移動
 time.sleep(1)
 down_forward_up(0, 2.4) #5画目
 time.sleep(1)
 forward(-0.8, 0) #6画目に移動
 time.sleep(1)
 down()
 time.sleep(1)
 forward(3.0, 0) #7画目
 time.sleep(1)
 forward(-0.2, 2.4)
 time.sleep(1)
 forward(-0.6, 0.2)
 time.sleep(1)
 up()
 time.sleep(1)
 forward(-4, -1.6) #8画目に移動
 time.sleep(1)
 down_forward_up(0, 1.2) #8画目
 time.sleep(1)
 forward(0.6, -1.2) #9画目に移動
 time.sleep(1)
 down_forward_up(0, 1.2) #9画目
 time.sleep(1)
 forward(0.6, -1.2) #10画目に移動
 time.sleep(1)
 down_forward_up(0, 1.2) #10画目
 time.sleep(1)
 forward(0.6, -1.2) #11画目に移動
 time.sleep(1)
 down_forward_up(0, 1.2) #11画目

*実際に書けた文字 [#r961cfb0]
実際にはこのような文字が書けた。
#ref(2018a/Member/mochi/Mission1/s_DSC_0195.JPG,50%, )
とても文字には見えない。


*反省 [#led171a4]
私のプログラムには自身があったが、ロボット自身にいくつか欠陥があった。
致命的なのは全体の剛性の低さで、それゆえにキャタピラの回転がペンの移動に今ひとつ伝わらず、
移動自体が困難な状態であった。また、ペンも筆先がもう少し短いほうが良かったと感じている。

*改善策 [#k6ae1bcc]
ロボットの補強。
筆ペンの再考。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS