[[2016a/Member]]

目次

#contents

*課題 [#c628f72e]

~課題はクラスメイトの似顔絵を描くことである。

*ロボットの概形 [#w1a43a72]

#ref(./k.PNG,ev3全体の概形)
#ref(./penrotate.gif,ev3全体の概形)
ペンの下ろし方は、歯車を回転することでペン先を設置させる方法である。



~ペンを持ち上げるときは特に気をつけた。
~rotatepenの速度を速くしすぎると、回転しすぎるので押させる必要があるが、
~遅すぎるとモーターの駆動力がモーターを持ち上げるのに必要な力に達し得ないので、
~速すぎず、遅すぎずの速さに設定した。

*描画の手順 [#t74c474b]
~まずは前置き部分と定義である
 
 !/usr/bin/python

 import ev3dev.ev3 as ev3
 import time


 left = ev3.LargeMotor('outD')
 right = ev3.LargeMotor('outA')
 arm = ev3.MediumMotor('outC')

 def forward(t,dl,dr):
        left.run_forever(duty_cycle_sp=dl)
        right.run_forever(duty_cycle_sp=dr)
        time.sleep(t/1000)
        left.stop()
        right.stop()

 def rotatepen(t,da):
        arm.run_forever(duty_cycle_sp=da)
        time.sleep(t/1000)
        arm.stop()

~顔のラインを描く

 forward(1000,29,20)
 forward(1000,38,10)
 forward(2500,12,1)''
 

~髪を書く

 forward(4100,30,-15)
 forward(3100,-30,15)
 forward(2400,38,-18)
 forward(2400,-40,24)
 forward(2400,45,-20)
 forward(2600,-38,20)
 forward(2400,47,-23)
 forward(2600,-35,25)
 forward(2600,39,-24)
 forward(2600,-32,24)
 forward(2100,40,-21)
 forward(1600,-32,24)
 forward(1400,45,-23)
~一度ペン先をあげて、回転する.。
できるだけ車体を用紙の横と平行にする
 time.sleep(1)

 rotatepen(1000,40)
 forward(2100,45,-23)
 forward(2230,27,2)
 forward(1600,-50,-50)

 
~目を描く 
 forward(1000,20,20)
 time.sleep(1)
 rotatepen(1100,-32)
 time.sleep(1)
 rotatepen(1100,40)
 forward(1000,20,20)
 time.sleep(1)
 forward(1000,35,35)
 rotatepen(1100,-32)
 time.sleep(1)
 rotatepen(1100,40)


~先ほど通った奇跡上を後退してたどり、
楕円常時移動して途中でペンを下ろして口をかく
 forward(3900,-30,-30)
 forward(1000,25,33)
 time.sleep(1)
 rotatepen(1100,-29)
 forward(1000,20,28)


~完成!

#ref(./掛けた画.png,547 KB,実際描いた画である)

*感想 [#aa92acae]

ペンの設置が不規則であるため、少し車体の動きを変えてしまう
イレギュラーを発生させてしまうため、同じプログラミングでも
同じ動きができなかった。
プログラミング制作時間は10時間を要した。
そのため、ロボットプログラミングに少し慣れてきた。

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