mirror of
				https://github.com/KevinMidboe/python-gpiozero.git
				synced 2025-10-29 17:50:37 +00:00 
			
		
		
		
	@@ -776,6 +776,20 @@ class Robot(SourceMixin, CompositeDevice):
 | 
			
		||||
                right_motor=Motor(*right),
 | 
			
		||||
                _order=('left_motor', 'right_motor'))
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def value(self):
 | 
			
		||||
        """
 | 
			
		||||
        Represents the motion of the robot as a tuple of (left_motor_speed,
 | 
			
		||||
        right_motor_speed) with ``(-1, -1)`` representing full speed backwards,
 | 
			
		||||
        ``(1, 1)`` representing full speed forwards, and ``(0, 0)``
 | 
			
		||||
        representing stopped.
 | 
			
		||||
        """
 | 
			
		||||
        return super(Robot, self).value
 | 
			
		||||
 | 
			
		||||
    @value.setter
 | 
			
		||||
    def value(self, value):
 | 
			
		||||
        self.left_motor.value, self.right_motor.value = value
 | 
			
		||||
 | 
			
		||||
    def forward(self, speed=1):
 | 
			
		||||
        """
 | 
			
		||||
        Drive the robot forward by running both motors forward.
 | 
			
		||||
 
 | 
			
		||||
@@ -617,20 +617,34 @@ def test_robot():
 | 
			
		||||
        assert (
 | 
			
		||||
            [device.pin for device in robot.left_motor] +
 | 
			
		||||
            [device.pin for device in robot.right_motor]) == pins
 | 
			
		||||
        assert robot.value == (0, 0)
 | 
			
		||||
        robot.forward()
 | 
			
		||||
        assert [pin.state for pin in pins] == [1, 0, 1, 0]
 | 
			
		||||
        assert robot.value == (1, 1)
 | 
			
		||||
        robot.backward()
 | 
			
		||||
        assert [pin.state for pin in pins] == [0, 1, 0, 1]
 | 
			
		||||
        assert robot.value == (-1, -1)
 | 
			
		||||
        robot.forward(0.5)
 | 
			
		||||
        assert [pin.state for pin in pins] == [0.5, 0, 0.5, 0]
 | 
			
		||||
        assert robot.value == (0.5, 0.5)
 | 
			
		||||
        robot.left()
 | 
			
		||||
        assert [pin.state for pin in pins] == [0, 1, 1, 0]
 | 
			
		||||
        assert robot.value == (-1, 1)
 | 
			
		||||
        robot.right()
 | 
			
		||||
        assert [pin.state for pin in pins] == [1, 0, 0, 1]
 | 
			
		||||
        assert robot.value == (1, -1)
 | 
			
		||||
        robot.reverse()
 | 
			
		||||
        assert [pin.state for pin in pins] == [0, 1, 1, 0]
 | 
			
		||||
        assert robot.value == (-1, 1)
 | 
			
		||||
        robot.stop()
 | 
			
		||||
        assert [pin.state for pin in pins] == [0, 0, 0, 0]
 | 
			
		||||
        assert robot.value == (0, 0)
 | 
			
		||||
        robot.value = (-1, -1)
 | 
			
		||||
        assert robot.value == (-1, -1)
 | 
			
		||||
        robot.value = (0.5, 1)
 | 
			
		||||
        assert robot.value == (0.5, 1)
 | 
			
		||||
        robot.value = (0, -0.5)
 | 
			
		||||
        assert robot.value == (0, -0.5)
 | 
			
		||||
 | 
			
		||||
def test_ryanteck_robot():
 | 
			
		||||
    pins = [MockPWMPin(n) for n in (17, 18, 22, 23)]
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user