- 追加された行はこの色です。
- 削除された行はこの色です。
[[2019a/Member]]
#!/usr/bin/env python3
from ev3dev.ev3 import *
from time import sleep
#!/usr/bin/env python3
from ev3dev.ev3 import *
from time import sleep
mL = LargeMotor('outA')
mR = LargeMotor('outD')
mM = MediumMotor('outB')
cs = ColorSensor('in3')
cs.mode = 'COL-REFLECT'
mL = LargeMotor('outD')
mR = LargeMotor('outC')
mM = MediumMotor('outB')
cs = ColorSensor('in3')
cs.mode = 'COL-REFLECT'
def motor_init():
def motor_init(): #モーターをリセット
mL.reset()
mR.reset()
def arm_move(t,y):
def arm_move(t,y): #ピンポン玉回収用アームを動かす。tにモーターを動かす時間[s]を、yにモーターを動かす速度を入力する。y>0だとアームが上がり、y<0だとアームが下がる。
x = time.time()
while time.time() - x < t:
mM.run_forever(speed_sp=y)
mM.stop()
sleep(1)
def move_forward(t):
def catch_up(x,t):
mM.run_timed(speed_sp=x,time_sp=t,stop_action='hold')
sleep(1)
def move_forward(t): #時間t[s]だけ前進する
x = time.time()
while time.time() - x < t: mL.run_forever(speed_sp=-100) mR.run_forever(speed_sp=-100)
while time.time() - x < t:
mL.run_forever(speed_sp=-100)
mR.run_forever(speed_sp=-100)
mL.stop()
mR.stop()
def move_back(t):
def move_back(t): #時間t[s]だけ後進する
x = time.time()
while time.time() - x < t:
mL.run_forever(speed_sp=100)
mR.run_forever(speed_sp=100)
mL.stop()
mR.stop()
def turn_right(t):
def turn_left(t): #時間t[s]だけ右周りの回転をする
x = time.time()
while time.time() - x < t:
mL.run_forever(speed_sp=100)
mR.run_forever(speed_sp=-100)
mL.stop()
mR.stop()
def turn_left(t):
def turn_right(t): #時間t[s]だけ左周りの回転をする
x = time.time()
while time.time() - x < t:
mL.run_forever(speed_sp=-100)
mR.run_forever(speed_sp=100)
mL.reset()
mR.reset()
def line_trace_left(t,c):
def line_trace_right(t,c): #線の左側に沿って前進する。t[s]でコーナーを判定する時間の長さを指定し、c[cs.calue()]で白と黒の境目の値を指定する。
x = time.time()
while time.time() - x < t:
if cs.value() > c:
mL.run_forever(speed_sp=-80)
mR.run_forever(speed_sp=40)
mL.run_forever(speed_sp=40)
mR.run_forever(speed_sp=-80)
x = time.time()
else:
mL.run_forever(speed_sp=40)
mL.run_forever(speed_sp=-80)
mR.run_forever(speed_sp=40)
if time.time() - x >t:
mL.stop()
mR.stop()
def line_trace_left(t,c): #線の右側に沿って前進する。t[s]でコーナーを判定する時間の長さを指定し、c[cs.calue()]で白と黒の境目の値を指定する。
x = time.time()
while time.time() - x < t:
if cs.value() > c:
mL.run_forever(speed_sp=-80)
mR.run_forever(speed_sp=40)
x = time.time()
else:
mL.run_forever(speed_sp=40)
mR.run_forever(speed_sp=-80)
if time.time() - x >t:
mL.stop()
mR.stop()
def change_paper(): #用紙を変更する。片方の用紙からもう片方の用紙に移動する際、通過した黒線の数で行きたい線に行けるようにする。
x = 0
while x < 2:
if cs.value() > 50:
mL.run_forever(speed_sp=100)
mR.run_forever(speed_sp=100)
if cs.value() < 50:
mL.stop()
mR.stop()
x = x + 1
if __name__ == '__main__':
print(cs.value())
sleep(1)
motor_init()
sleep(1)
line_trace_left(1,40)
sleep(1)
turn_right(0.57)
sleep(1)
move_back(4.2)
sleep(1)
arm_move(2,300)
sleep(1)
move_forward(2.1)
sleep(1)
catch_up(300,500)
sleep(1)
move_forward(5)
sleep(1)
turn_right(1)
sleep(1)
arm_move(1,300)
sleep(1)
turn_left(3)
sleep(1)
line_trace_right(1,40)
sleep(1)
turn_left(0.52)
sleep(1)
move_forward(7)
sleep(1)