示例#1
0
    def testGetThrottle(self):

        filesystem = SysfsWriterDummy()
        motor = Motor(0, 50.0).setSysfsWriter(filesystem)
        motor.start()
        motor.setThrottle(10.0)

        throttle = motor.getThrottle()
        self.assertEquals(throttle, 10.0, "Throttle wasn't properly returned")
示例#2
0
    def testSetMinThrottle(self):

        filesystem = SysfsWriterDummy()
        motor = Motor(0, 50.0).setSysfsWriter(filesystem)
        motor.start()

        motor.setMinThrottle()
        throttle = motor.getThrottle()

        self.assertEquals(throttle, 0.0, "Throttle wasn't properly set")
示例#3
0
    def testGetDuty(self):

        filesystem = SysfsWriterDummy()
        motor = Motor(0, 50.0).setSysfsWriter(filesystem)
        motor.start()
        motor.setThrottle(10.0)

        duty = motor.getDuty()

        self.assertEquals(duty, 1100000, "Duty wasn't properly returned")
示例#4
0
    def testSetThrottle(self):

        filesystem = SysfsWriterDummy()
        motor = Motor(0, 50.0).setSysfsWriter(filesystem)
        motor.start()

        motor.setThrottle(10.0)

        throttle = motor.getThrottle()
        duty = motor.getDuty()

        self.assertEquals(throttle, 10.0, "Throttle wasn't properly set")
        self.assertEquals(duty, 1100000, "Duty wasn't properly set")
        #pwm6 corresponds to the motor number 0
        self.assertEquals(int(filesystem.read("/sys/class/pwm/pwm6/duty_ns")),
                          1100000, "Duty wasn't properly written")
示例#5
0
    def testStop(self):

        filesystem = SysfsWriterDummy()
        motor = Motor(0, 50.0).setSysfsWriter(filesystem)
        motor.start()

        motor.setThrottle(10.0)
        throttle = motor.getThrottle()
        self.assertEquals(throttle, 10.0, "Throttle wasn't properly set")

        motor.stop()

        throttle = motor.getThrottle()
        self.assertEquals(throttle, 50.0,
                          "Throttle wasn't properly set at neutral value")

        #pwm6 corresponds to the motor number 0
        self.assertEquals(int(filesystem.read("/sys/class/pwm/pwm6/run")), 0,
                          "Motor wasn't properly stopped")
示例#6
0
    def testStart(self):

        filesystem = SysfsWriterDummy()
        motor = Motor(0, 50.0).setSysfsWriter(filesystem)
        motor.start()

        throttle = motor.getThrottle()
        duty = motor.getDuty()

        self.assertEquals(throttle, 50.0, "Incorrect throttle")
        self.assertEquals(duty, 1500000, "Incorrect duty")

        #pwm6 corresponds to the motor number 0
        self.assertEquals(int(filesystem.read("/sys/class/pwm/pwm6/run")), 1,
                          "Motor not running")
        self.assertEquals(
            int(filesystem.read("/sys/class/pwm/pwm6/period_ns")), 20000000,
            "Incorrect period")
        self.assertEquals(int(filesystem.read("/sys/class/pwm/pwm6/duty_ns")),
                          1500000, "Motor not running")
示例#7
0
from servo.motor import Motor
from time import time
from random import uniform

NEUTRAL_THROTTLE = Motor.MIN_THROTTLE + (Motor.MAX_THROTTLE -
                                         Motor.MIN_THROTTLE) / 2.0

motor0 = Motor(0, NEUTRAL_THROTTLE)
motor1 = Motor(1, NEUTRAL_THROTTLE)
n = 0
motor0.start()
motor1.start()
startTime = time()
try:
    while True:
        n += 1
        throttle0 = uniform(0.0, 100.0)
        throttle1 = uniform(0.0, 100.0)
        motor0.setThrottle(throttle0)
        motor1.setThrottle(throttle1)
except KeyboardInterrupt:
    pass
finally:
    endTime = time()
    motor0.stop()
    motor1.stop()
    dTime = endTime - startTime
    avgTime = dTime / n
    freq = 1.0 / avgTime
    print("Avg. time={0}; f={1}".format(avgTime, freq))