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()
def test_setup(): from drv8830 import DRV8830 drv8830 = DRV8830(i2c_dev=MockSMBus(1)) del drv8830
def test_setup(i2c_dev): from drv8830 import DRV8830 drv8830 = DRV8830(i2c_dev=i2c_dev) del drv8830
def test_clear_fault(): from drv8830 import DRV8830 drv8830 = DRV8830(i2c_dev=MockSMBus(1)) drv8830.clear_fault()
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
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
def test_set_outputs(): from drv8830 import DRV8830 drv8830 = DRV8830(i2c_dev=MockSMBus(1)) drv8830.set_outputs(out1=0, out2=0)
def test_brake(): from drv8830 import DRV8830 drv8830 = DRV8830(i2c_dev=MockSMBus(1)) drv8830.brake()
def test_set_outputs(i2c_dev): from drv8830 import DRV8830 drv8830 = DRV8830(i2c_dev=i2c_dev) drv8830.set_outputs(out1=0, out2=0)
def test_coast(i2c_dev): from drv8830 import DRV8830 drv8830 = DRV8830(i2c_dev=i2c_dev) drv8830.coast()
def test_brake(i2c_dev): from drv8830 import DRV8830 drv8830 = DRV8830(i2c_dev=i2c_dev) drv8830.brake()
def test_forward(i2c_dev): from drv8830 import DRV8830 drv8830 = DRV8830(i2c_dev=i2c_dev) drv8830.forward()
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
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)
def test_setup_alt_addr2(): from drv8830 import DRV8830, I2C_ADDR2 drv8830 = DRV8830(i2c_dev=MockSMBus(1), i2c_addr=I2C_ADDR2) del drv8830
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)
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
def test_coast(): from drv8830 import DRV8830 drv8830 = DRV8830(i2c_dev=MockSMBus(1)) drv8830.coast()
def test_get_fault(i2c_dev): from drv8830 import DRV8830 drv8830 = DRV8830(i2c_dev=i2c_dev) assert drv8830.get_fault().current_limit == 0
def test_forward(): from drv8830 import DRV8830 drv8830 = DRV8830(i2c_dev=MockSMBus(1)) drv8830.forward()
def test_clear_fault(i2c_dev): from drv8830 import DRV8830 drv8830 = DRV8830(i2c_dev=i2c_dev) drv8830.clear_fault()
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
def test_reverse(i2c_dev): from drv8830 import DRV8830 drv8830 = DRV8830(i2c_dev=i2c_dev) drv8830.reverse()
def test_get_fault(): from drv8830 import DRV8830 drv8830 = DRV8830(i2c_dev=MockSMBus(1)) assert drv8830.get_fault().current_limit == 0
def test_setup_alt_addr3(): from drv8830 import DRV8830, I2C_ADDR3 drv8830 = DRV8830(i2c_dev=MockSMBus(1)) drv8830.select_i2c_address(I2C_ADDR3)
def test_reverse(): from drv8830 import DRV8830 drv8830 = DRV8830(i2c_dev=MockSMBus(1)) drv8830.reverse()
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)