目次
課題はクラスメイトの似顔絵を描くことである。
ペンの下ろし方は、歯車を回転することでペン先を設置させる方法である。
ペンを持ち上げるときは特に気をつけた。
rotatepenの速度を速くしすぎると、回転しすぎるので押させる必要があるが、
遅すぎるとモーターの駆動力がモーターを持ち上げるのに必要な力に達し得ないので、
速すぎず、遅すぎずの速さに設定した。
まずは前置き部分と定義である
!/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)
完成!
ペンの設置が不規則であるため、少し車体の動きを変えてしまう イレギュラーを発生させてしまうため、同じプログラミングでも 同じ動きができなかった。 プログラミング制作時間は10時間を要した。 そのため、ロボットプログラミングに少し慣れてきた。