Пример #1
0
    def __init__(self, addr=0x64):
        '''Init object mixer
        min_ff_temp: minimum forward flow temperature
        max_ff_temp: maximum forward flow temperature
        mix_close: closing time of mixer
        mix_open: opening time of mixer
        mix_pause: wait time to let new temperature settle
        ff_temp_target_val: forward flow target temperature
        ff_temp_is_val: forward flow is temperature
        hyst: temperature hystere
        addr: I2C address of motor driver, defaults to 0x64
        voltage: motor voltage
        '''
        threading.Thread.__init__(self)
        self.running = False
        self.min_ff_temp = 28
        self.max_ff_temp = 34
        self.mix_time_c = .1
        self.mix_time_m = .1
        self.mix_time_f = .05
        self.mix_pause_c = 5 
        self.mix_pause_f = 10
        self.ff_temp_target_val = 30
        self.ff_temp_is_val = 31
        self.hyst = .5

        self.addr = addr
        self.voltage = 3.3
        self.mot = DRV8830(self.addr)
        self.mix_t_stop = threading.Event()
Пример #2
0
def test_setup():
    from drv8830 import DRV8830
    drv8830 = DRV8830(i2c_dev=MockSMBus(1))
    del drv8830
Пример #3
0
def test_setup(i2c_dev):
    from drv8830 import DRV8830
    drv8830 = DRV8830(i2c_dev=i2c_dev)
    del drv8830
Пример #4
0
def test_clear_fault():
    from drv8830 import DRV8830
    drv8830 = DRV8830(i2c_dev=MockSMBus(1))
    drv8830.clear_fault()
Пример #5
0
def test_voltage_out_of_range():
    from drv8830 import DRV8830
    drv8830 = DRV8830(i2c_dev=MockSMBus(1))
    drv8830.set_voltage(0)
    assert drv8830.get_voltage() == 0
Пример #6
0
def test_set_voltage():
    from drv8830 import DRV8830
    drv8830 = DRV8830(i2c_dev=MockSMBus(1))
    drv8830.set_voltage(5.06)
    assert drv8830.get_voltage() == 5.06
Пример #7
0
def test_set_outputs():
    from drv8830 import DRV8830
    drv8830 = DRV8830(i2c_dev=MockSMBus(1))
    drv8830.set_outputs(out1=0, out2=0)
Пример #8
0
def test_brake():
    from drv8830 import DRV8830
    drv8830 = DRV8830(i2c_dev=MockSMBus(1))
    drv8830.brake()
Пример #9
0
def test_set_outputs(i2c_dev):
    from drv8830 import DRV8830
    drv8830 = DRV8830(i2c_dev=i2c_dev)
    drv8830.set_outputs(out1=0, out2=0)
Пример #10
0
def test_coast(i2c_dev):
    from drv8830 import DRV8830
    drv8830 = DRV8830(i2c_dev=i2c_dev)
    drv8830.coast()
Пример #11
0
def test_brake(i2c_dev):
    from drv8830 import DRV8830
    drv8830 = DRV8830(i2c_dev=i2c_dev)
    drv8830.brake()
Пример #12
0
def test_forward(i2c_dev):
    from drv8830 import DRV8830
    drv8830 = DRV8830(i2c_dev=i2c_dev)
    drv8830.forward()
Пример #13
0
def test_setup_alt_addr2(i2c_dev):
    from drv8830 import DRV8830, I2C_ADDR2
    drv8830 = DRV8830(i2c_dev=i2c_dev, i2c_addr=I2C_ADDR2)
    del drv8830
Пример #14
0
def test_setup_alt_addr3(i2c_dev):
    from drv8830 import DRV8830, I2C_ADDR3
    drv8830 = DRV8830(i2c_dev=i2c_dev)
    drv8830.select_i2c_address(I2C_ADDR3)
Пример #15
0
def test_setup_alt_addr2():
    from drv8830 import DRV8830, I2C_ADDR2
    drv8830 = DRV8830(i2c_dev=MockSMBus(1), i2c_addr=I2C_ADDR2)
    del drv8830
Пример #16
0
import time
from explorerhat import motor
from drv8830 import DRV8830, I2C_ADDR1, I2C_ADDR3

v = 4
speed = 70

left = DRV8830(I2C_ADDR1)
right = DRV8830(I2C_ADDR3)

left.set_voltage(0)
right.set_voltage(0)
#time.sleep(3)

#Set Voltages
left.set_voltage(v)
right.set_voltage(v)

# Move forward
left.forward()
right.forward()
motor.one.forwards(speed)
motor.two.forwards(speed)
time.sleep(0.5)

# Slide to the left
left.reverse()
right.forward()
motor.one.forwards(speed)
motor.two.backwards(speed)
time.sleep(2)
Пример #17
0
def test_set_voltage(i2c_dev):
    from drv8830 import DRV8830
    drv8830 = DRV8830(i2c_dev=i2c_dev)
    drv8830.set_voltage(5.06)
    assert drv8830.get_voltage() == 5.06
Пример #18
0
def test_coast():
    from drv8830 import DRV8830
    drv8830 = DRV8830(i2c_dev=MockSMBus(1))
    drv8830.coast()
Пример #19
0
def test_get_fault(i2c_dev):
    from drv8830 import DRV8830
    drv8830 = DRV8830(i2c_dev=i2c_dev)
    assert drv8830.get_fault().current_limit == 0
Пример #20
0
def test_forward():
    from drv8830 import DRV8830
    drv8830 = DRV8830(i2c_dev=MockSMBus(1))
    drv8830.forward()
Пример #21
0
def test_clear_fault(i2c_dev):
    from drv8830 import DRV8830
    drv8830 = DRV8830(i2c_dev=i2c_dev)
    drv8830.clear_fault()
Пример #22
0
def test_set_voltage_snap():
    # Should snap to the nearest available voltage and read back correctly
    from drv8830 import DRV8830
    drv8830 = DRV8830(i2c_dev=MockSMBus(1))
    drv8830.set_voltage(0.82)
    assert drv8830.get_voltage() == 0.80
Пример #23
0
def test_reverse(i2c_dev):
    from drv8830 import DRV8830
    drv8830 = DRV8830(i2c_dev=i2c_dev)
    drv8830.reverse()
Пример #24
0
def test_get_fault():
    from drv8830 import DRV8830
    drv8830 = DRV8830(i2c_dev=MockSMBus(1))
    assert drv8830.get_fault().current_limit == 0
Пример #25
0
def test_setup_alt_addr3():
    from drv8830 import DRV8830, I2C_ADDR3
    drv8830 = DRV8830(i2c_dev=MockSMBus(1))
    drv8830.select_i2c_address(I2C_ADDR3)
Пример #26
0
def test_reverse():
    from drv8830 import DRV8830
    drv8830 = DRV8830(i2c_dev=MockSMBus(1))
    drv8830.reverse()
Пример #27
0
 def __init__(self, **kwargs):
     serial_address_index = kwargs.get('serial_address_index', 1)
     self._address = [I2C_ADDR1, I2C_ADDR2, I2C_ADDR3,
                      I2C_ADDR4][serial_address_index - 1]
     self._motor = DRV8830(self._address)