class Turntable:
    def __init__(self, port_motor_move, port_motor_turn):
        # Motor for moving turntable forwards and backwards
        self.motor_move = Motor(port_motor_move)
        self.motor_move.speed_sp = 400
        self.motor_move.stop_action = 'brake'
        self.motor_move_positions = (0, -740, -890, -1030, -1175, -1380)

        # Motor for rotating turntable
        self.motor_turn = Motor(port_motor_turn)
        self.motor_turn.speed_sp = 400
        self.motor_turn.stop_action = 'brake'
        self.motor_turn_positions = (0, -345, 345)

    @try_except
    def move_to_abs_pos(self, pos):
        ''' Move the turntable to given absolute position [0,..,5].'''
        self.motor_move.run_to_abs_pos(
            position_sp=self.motor_move_positions[pos])

    @try_except
    def move_to_rel_pos(self, rel_pos):
        ''' Move the turntable over a given distance.'''
        self.motor_move.run_to_rel_pos(position_sp=rel_pos)  # rel_pos=150
        wait_while_motors_running(self.motor_move)

    @try_except
    def turn_to_abs_pos(self, pos):
        ''' Turn the turntable to a given absolute position [0,..,2].'''
        self.motor_turn.run_to_abs_pos(
            position_sp=self.motor_turn_positions[pos])

    @try_except
    def goto_start_pos(self):
        ''' Move and turn the turntable to its start position.'''
        self.move_to_abs_pos(0)
        self.turn_to_abs_pos(0)
示例#2
0
from ev3dev2.motor import Motor
from ev3dev2.sensor.lego import TouchSensor
from ev3dev2.sensor import INPUT_2, INPUT_3

motor1 = Motor(address = 'in1:i2c3:M1')
motor2 = Motor(address = 'in1:i2c3:M2')

touch1 = TouchSensor(INPUT_2)
touch2 = TouchSensor(INPUT_3)

motor1.speed_sp = 200
motor2.speed_sp = 200

#these motor instructions aren't very good
# don't use them as an example of proper motor control

while True:
	if touch1.is_pressed:
		motor1.position_sp = 100
	else:
		motor1.position_sp = 0

	if touch2.is_pressed:
		motor2.position_sp = 360
	else:
		motor2.position_sp = 180

	motor1.run_to_abs_pos()
	motor2.run_to_abs_pos()