Exemple #1
0
 def __init__(self, board=0):
     mcp = MCP23S17(0, 0x20 + toint(board))
     mcp.writeRegister(mcp.getAddress(mcp.IODIR, 0),
                       0x00)  # Port A as output
     mcp.writeRegister(mcp.getAddress(mcp.IODIR, 8),
                       0xFF)  # Port B as input
     mcp.writeRegister(mcp.getAddress(mcp.GPPU, 0), 0x00)  # Port A PU OFF
     mcp.writeRegister(mcp.getAddress(mcp.GPPU, 8), 0xFF)  # Port B PU ON
     self.mcp = mcp
     self.board = toint(board)
Exemple #2
0
    def __init__(self, slave=0x40, frequency=50):
        I2C.__init__(self, toint(slave))
        PWM.__init__(self, 16, 12, toint(frequency))
        self.VREF = 0

        self.prescale = int(25000000.0 / ((2**12) * self.frequency))
        self.mode1 = self.M1_RESTART | self.M1_AI

        self.writeRegister(self.MODE1, self.M1_SLEEP)
        self.writeRegister(self.PRESCALE, self.prescale)
        time.sleep(0.01)

        self.writeRegister(self.MODE1, self.mode1)
Exemple #3
0
    def __init__(self, time=0.18, slave= 0x23,mode=4,  name="gy_30"):
        I2C.__init__(self, toint(slave))
        self.name = name
        # self.wake() # devices are powered down after power reset, wake them
        # self.setTime(toint(time))

        if slave == 0:
            self.addr = self.I2C_ADDRESS_L
        else:
            self.addr = self.I2C_ADDRESS_H
        if mode == 0:
            self.mode = self.CONTINUOUSLY_H_RES_MODE
            self.wait = 0.18 # Wait 180ms for result
            self.resolution_div = 1
        elif mode == 1:
            self.mode = self.CONTINUOUSLY_H_RES_MODE_2
            self.wait = 0.18 # Wait 180ms for result
            self.resolution_div = 2
        elif mode == 2:
            self.mode = self.CONTINUOUSLY_L_RES_MODE
            self.wait = 0.024 # Wait 24ms for result
            self.resolution_div = 1
        elif mode == 3:
            self.mode = self.ONE_TIME_H_RES_MODE
            self.wait = 0.18 # Wait 180ms for result
            self.resolution_div = 1
        elif mode == 4:
            self.mode = self.ONE_TIME_H_RES_MODE_2
            self.wait = 0.18 # Wait 180ms for result
            self.resolution_div = 2
        else:
            self.mode = self.ONE_TIME_L_RES_MODE
            self.wait = 0.024 # Wait 24ms for result
            self.resolution_div = 1
Exemple #4
0
 def __init__(self, chip, channelCount, vref):
     SPI.__init__(self, toint(chip), 0, 8, 10000000)
     DAC.__init__(self, channelCount, 12, float(vref))
     self.buffered = False
     self.gain = False
     self.shutdown = False
     self.values = [0 for i in range(channelCount)]
Exemple #5
0
 def __init__(self, chip, channelCount, resolution, name):
     SPI.__init__(self, toint(chip), 0, 8, 10000000)
     DAC.__init__(self, channelCount, resolution, 2.048)
     self.name = name
     self.buffered=False
     self.gain=False
     self.shutdown=True
     self.values = [0 for i in range(channelCount)]
Exemple #6
0
    def __init__(self, chip, slave, channelCount, name):
        global MCP23S_SLAVES
        index = toint(chip) << 7 | toint(slave)
        print(MCP23S_SLAVES[index])

        if MCP23S_SLAVES[index] != None:
            raise Exception("SLAVE_ADDRESS_USED")

        SPI.__init__(self, toint(chip), 0, 8, 10000000)
        MCP23XXX.__init__(self, channelCount)
        self.slave = self.SLAVE
        iocon_value = 0x08  # Hardware Address Enable
        iocon_addr = self.getAddress(self.IOCON)
        self.writeRegister(iocon_addr, iocon_value)
        self.slave = toint(slave)
        self.name = name
        MCP23S_SLAVES[index] = self
        print(MCP23S_SLAVES[index])
Exemple #7
0
    def __init__(self, altitude=0, external=None):
        self.altitude = toint(altitude)
        if isinstance(external, str):
            self.external = deviceInstance(external)
        else:
            self.external = external

        if self.external != None and not isinstance(self.external,
                                                    Temperature):
            raise Exception("external must be a Temperature sensor")
Exemple #8
0
 def __init__(self, gpio, channel, invert=False):
     self.gpioname = gpio
     self.channel = toint(channel)
     if isinstance(invert, str):
         self.invert = str2bool(invert)
     else:
         self.invert = invert
     self.gpio = None
     self.setGPIOInstance()
     self.gpio.setFunction(self.channel, GPIO.IN)
Exemple #9
0
 def __init__(self, board=0):
     self.board = toint(board)
     MCP23S17.__init__(self, 0, 0x20 + self.board)
     self.writeRegister(self.getAddress(self.IODIR, 0),
                        0x00)  # Port A as output
     self.writeRegister(self.getAddress(self.IODIR, 8),
                        0xFF)  # Port B as input
     self.writeRegister(self.getAddress(self.GPPU, 0),
                        0x00)  # Port A PU OFF
     self.writeRegister(self.getAddress(self.GPPU, 8), 0xFF)  # Port B PU ON
Exemple #10
0
 def __init__(self, slave=0x48, resolution=12):
     TMP102.__init__(self, slave)
     resolution = toint(resolution)
     if not resolution in range(9,13):
         raise ValueError("%dbits resolution out of range [%d..%d]bits" % (resolution, 9, 12))
     self.resolution = resolution
     
     config  = self.readRegister(0x01)
     config &= ~0x60
     config |= (self.resolution - 9) << 5
     self.writeRegister(0x01, config)
     self.readRegisters(0x00, 2)
Exemple #11
0
    def __init__(self, slave=0x20):
        slave = toint(slave)
        if slave in range(0x20, 0x28):
            self.name = "PCF8574"
        elif slave in range(0x38, 0x40):
            self.name = "PCF8574A"
        else:
            raise ValueError(
                "Bad slave address for PCF8574(A) : 0x%02X not in range [0x20..0x27, 0x38..0x3F]"
                % slave)

        I2C.__init__(self, slave)
        GPIOPort.__init__(self, 8)
        self.portWrite(0xFF)
        self.portRead()
Exemple #12
0
 def __init__(self, slave, channelCount, resolution, name):
     I2C.__init__(self, toint(slave))
     ADC.__init__(self, channelCount, resolution, 4.096)
     self._analogMax = 2**(resolution-1)
     self.name = name
     
     config = self.readRegisters(self.CONFIG, 2)
     
     mode = 0 # continuous
     config[0] &= ~self.CONFIG_MODE_MASK
     config[0] |= mode
     
     gain = 0x1 # FS = +/- 4.096V
     config[0] &= ~self.CONFIG_GAIN_MASK
     config[0] |= gain << 1
     
     self.writeRegisters(self.CONFIG, config)
Exemple #13
0
 def __init__(self,
              slave=0b0010011,
              current=20,
              frequency=781,
              prox_threshold=15,
              prox_cycles=10,
              cal_cycles=5):
     I2C.__init__(self, toint(slave))
     self.setCurrent(toint(current))
     self.setFrequency(toint(frequency))
     self.prox_threshold = toint(prox_threshold)
     self.prox_cycles = toint(prox_cycles)
     self.cal_cycles = toint(cal_cycles)
     self.__setProximityTiming__()
     self.__setAmbientMeasuringMode__()
     time.sleep(0.001)
     self.calibrate(
     )  # may have to be repeated from time to time or before every proximity measurement
Exemple #14
0
 def __init__(self, slave, time, gain, name="TSL2561X"):
     TSL_LIGHT_X.__init__(self, slave, time, name)
     self.setGain(toint(gain))
Exemple #15
0
 def __init__(self, adc, channel):
     self.adcname = adc
     self.channel = toint(channel)
     self.adc = None
     self.pluginManager = PluginManager()
     self.setADCInstance()
Exemple #16
0
 def __init__(self, slave, channelCount, name):
     I2C.__init__(self, toint(slave))
     MCP23XXX.__init__(self, channelCount)
     self.name = name
Exemple #17
0
 def __init__(self, slave, time, name="TSL_LIGHT_X"):
     I2C.__init__(self, toint(slave))
     self.name = name
     self.wake()  # devices are powered down after power reset, wake them
     self.setTime(toint(time))
Exemple #18
0
 def __init__(self, chip, channelCount, resolution, vref, name):
     SPI.__init__(self, toint(chip), 0, 8, 10000)
     ADC.__init__(self, channelCount, resolution, float(vref))
     self.name = name
     self.MSB_MASK = 2**(resolution-8) - 1
Exemple #19
0
 def __init__(self, pwm, channel):
     self.pwmname = pwm
     self.channel = toint(channel)
     self.pwm = None
     self.setPWMInstance()
     self.pwm.pwmWriteAngle(self.channel, 0)
Exemple #20
0
 def __init__(self, slave=0x48, vref=3.3):
     I2C.__init__(self, toint(slave))
     DAC.__init__(self, 5, 8, float(vref))
     self.daValue = 0
Exemple #21
0
 def __init__(self, slave=0x48):
     I2C.__init__(self, toint(slave))
Exemple #22
0
 def __init__(self, slave=0x60, vref=3.3):
     I2C.__init__(self, toint(slave))
     DAC.__init__(self, 1, 12, float(vref))
Exemple #23
0
 def __init__(self, adc, channel):
     self.adcname = adc
     self.channel = toint(channel)
     self.adc = None
     self.setADCInstance()
Exemple #24
0
 def __init__(self, slave=0x28):
     I2C.__init__(self, toint(slave))
     self.__startMeasuring__()