Beispiel #1
0
 def __init__(self, drvsel, ps=True, als=True, address=DEFAULT_I2C_ADDR, clk=100000):
     self.port = i2c.I2C(drvsel, address, clk)
     self.port.start()
     if ps:
         self.configure_proximity_sensor(DEFAULT_PS_CONF1, DEFAULT_PS_CONF2, DEFAULT_PS_CONF3)
     if als:
         self.configure_ambient_light_sensor(DEFAULT_ALS_CONF)
    def __init__(self, address):
        self.address = address
        self.lcd = i2c.I2C(address)
        time.sleep(.2)
        
        self.set_iocon(0x20)			# turn of sequential increment on MCP23008
        self.set_io(0x00)				# set pins on MCP23008 to output
        

        self.lcd_command(0x03)			# start initialization of lcd as described in datasheet
        time.sleep(0.005)

        self.lcd_command(0x03)
        time.sleep(0.0002)

        self.lcd_command(0x03)
        time.sleep(0.0002)

        self.lcd_command(0x02)
        time.sleep(.05)

        self.lcd_command(0x28)  		# set 4 bit, 2 lines
        self.lcd_command(0x08)  		# no shift, hide cursor
        self.lcd_command(0x01)  		# clear display
        self.lcd_command(0x06)  		# cursor increment - right
        self.lcd_command(0x0F)  		# turn on display - no cursor
        self.lcd_command(0x80)  		# DDRAM address
Beispiel #3
0
    def _init_MPU9250(self, drvname, addr, clk):

        if (addr != 0x68 and addr != 0x69):
            raise ValueError

        self.lockI2C.acquire()

        self.mpu9250 = i2c.I2C(drvname, addr, clk)
        try:
            self.mpu9250.start()
        except PeripheralError as e:
            print(e)

        # Check MPU9250 Who Am I Register
        if (self.mpu9250.write_read(MPU9250_WHO_AM_I, n=1)[0] !=
                MPU9250_WHOAMI):
            raise ValueError
        self.lockI2C.release()

        # Set Clock source
        self.set_clock_source(1)
        # Set scales
        self.set_accel_fullscale(2)
        self.set_gyro_fullscale(2000)
        # Set dlpf mode
        self.set_dlpf_mode(0)
        # Disable Sleep Mode
        self.set_sleep_mode(False)
        # Enable config magnetometer
        self.lockI2C.acquire()
        self.mpu9250.write_bytes(INT_PIN_CFG, 0x02)
        self.lockI2C.release()
Beispiel #4
0
    def _init_AK8963(self, drvname, addr, clk):
        if (addr != 0x0C):
            raise ValueError

        self.lockI2C.acquire()

        self.ak8963 = i2c.I2C(drvname, addr, clk)
        try:
            self.ak8963.start()
        except PeripheralError as e:
            print(e)

        # Check AK8963 Who Am I Register
        if (self.ak8963.write_read(AK8963_WHO_AM_I, n=1)[0] != AK8963_WHOAMI):
            raise ValueError

        # set power down mode
        self.ak8963.write_bytes(AK8963_CNTL1, 0x00)

        # set read FuseROM mode
        self.ak8963.write_bytes(AK8963_CNTL1, 0x0F)

        # read coef data
        data = self.ak8963.write_read(AK8963_ASAX, n=3)

        self.magXcoef = (data[0] - 128) / 256.0 + 1.0
        self.magYcoef = (data[1] - 128) / 256.0 + 1.0
        self.magZcoef = (data[2] - 128) / 256.0 + 1.0

        self.lockI2C.release()

        self.set_magneto_config()
Beispiel #5
0
    def __init__(self, drvname, addr):

        self.port = i2c.I2C(drvname, addr)

        self.addr = addr
        try:
            self.port.start()
        except PeripheralError as e:
            print(e)
Beispiel #6
0
 def __init__(self, addr=MPU6050_I2CADDR, clk=400000):
     self.portI2C = i2c.I2C(
         I2C0, addr
     )  #Declared port i2c ex. I2C0 on the board connected with 0x68, the i2c address of the sensor SDA on D25 n SCL on D26,
     try:
         self.portI2C.start()
         print('initialized')
     except Exception as e:
         print(e)
     self.setup()
Beispiel #7
0
def mpu6050Init(i2cPort=I2C0):
    mpuPort = i2c.I2C(i2cPort, 0x68)
    try:
        mpuPort.start()
        print("Mpu initialized")
        mpuPort.write([0x6B, 0x80])  #dev reset
        print("Mpu resetted")
        mpuPort.write([0x6B, 0x00])  #wakes up mpu
        print("Mpu init done")
        return mpuPort
    except PeripheralError as e:
        print(e)
Beispiel #8
0
def init():
    global portI2C
    portI2C = i2c.I2C(
        I2C0, 0x68
    )  #Declared port I2C0 on the board connected with 0x68, the i2c address of the sensor SDA on D25 n SCL on D26,
    try:
        portI2C.start()
        print('initialized')
        portI2C.write([0x6B, 0b10000000])  #dev reset
        print('dev reset')
        portI2C.write([0x6B, 0x00])  #Wake up MPU
        print('done!')

    except PeripheralError as e:
        print(e)
Beispiel #9
0
    def __init__(self, filename=None, debug_enable=False):
        # check input filename
        if filename == None:
            self._assert('Incorrect filename!')
        self.filename = filename
        self.debug_enable = debug_enable

        # create an empty dictionary
        self.memtable = {}

        if self.debug_enable:
            self.logname = r"~test.log"
            self.log = file(self.logname, 'w')

        # load I2C Library
        self.i2c = i2c.I2C()

        # open Internal MemoryMap
        self._open()
Beispiel #10
0
    def __init__(self, nysa, urn, debug=False):
        super(SFCamera, self).__init__(nysa, urn, debug)
        #print "Camera URN : %s" % urn
        i2c_urn = self.get_integration_references(self.urn)[0]
        #print "i2c: URN: %s" % i2c_urn
        self.i2c = i2c.I2C(nysa, i2c_urn, debug=debug)
        self.i2c.enable_i2c(True)
        self.i2c.enable_interrupt(True)
        self.i2c.get_status()
        self.i2c.set_speed_to_100khz()
        self.reset_camera()
        self.set_rgb_mode()
        self.reset_counts()
        time.sleep(.4)
        row_count = self.read_row_count()
        pixel_count = self.read_pixel_count()
        size = row_count * pixel_count
        self.width = pixel_count / 2
        self.height = row_count

        self.status = 0
        try:
            self.dma_reader = DMAReadController(
                device=self,
                mem_base0=0x00000000,
                mem_base1=0x00100000,
                size=size / 4,
                reg_status=STATUS,
                reg_base0=MEM_0_BASE,
                reg_size0=MEM_0_SIZE,
                reg_base1=MEM_1_BASE,
                reg_size1=MEM_1_SIZE,
                timeout=3,
                finished0=STATUS_MEMORY_0_FINISHED,
                finished1=STATUS_MEMORY_1_FINISHED,
                empty0=STATUS_MEMORY_0_EMPTY,
                empty1=STATUS_MEMORY_1_EMPTY)
        except NysaDMAException as ex:
            raise SFCameraError("Error initializing the DMA Reader: %s" %
                                str(ex))
Beispiel #11
0
    def __init__(self, drvsel, address=0x48, clk=400000):
        self.port             = i2c.I2C(drvsel, address, clk)
        self.odr              = ODR_AVAILABLE["ODR_125mHz"]
        self.resolution       = STTS751_RES_12
        self.low_th           = 1
        self.high_th          = 50
        self.int_enable       = False
        self.therm_limit      = 0
        self.therm_hyst_limit = 0
        self.timeout          = False

        try:
            self.port.start()
        except PeripheralError as e:
            print(e)

        self.enable(self.odr, self.resolution)
        self.set_low_temp_threshold(self.low_th)
        self.set_high_temp_threshold(self.high_th)
        self.set_event_interrupt(True)
        self.set_timeout(False)
        self.therm_limit = self._read(REG_THERM, 1)[0]
        self.therm_hyst_limit = self._read(REG_THERM_HYSTERESIS, 1)[0]
Beispiel #12
0
    def __init__(self, drvsel, int_pin, address=0x5F, clk=400000):
        self.port = i2c.I2C(drvsel, address, clk)
        self.H0_T0_OUT   = 0
        self.H1_T0_OUT   = 0
        self.T0_OUT      = 0
        self.T1_OUT      = 0
        self.T0_DegC_cal = 0.0
        self.T1_DegC_cal = 0.0
        self.H0_RH_cal   = 0.0
        self.H1_RH_cal   = 0.0
        self.int_pin     = int_pin

        try:
            self.port.start()
        except PeripheralError as e:
            print(e)

        pinMode(int_pin, INPUT)

        self._write(0x10, 0x1B)
        self._write(0x20, 0x85)
        self._write(0x21, 0x00)
        self._write(0x22, 0x00)
        self._calibrate()
Beispiel #13
0
    def __init__(self,
                 angle_fr=-135,
                 angle_to=135,
                 step=5,
                 outer=240,
                 inner=200,
                 min_t=15,
                 max_t=35,
                 shader=None,
                 camera=None):

        self.angle_fr = angle_fr
        self.angle_to = angle_to
        self.step = step
        self.outer = outer
        self.inner = inner
        self.mid = (outer + inner) / 2
        self.min_t = min_t
        self.max_t = max_t

        gpio.setmode(gpio.BCM)
        gpio.setwarnings(False)
        gpio.setup(26, gpio.IN, pull_up_down=gpio.PUD_DOWN)

        self.bus = i2c.I2C(2)

        try:
            self.bus.read(1, 0x5c)
            self.bus.write([0x6e, 0b00001110], 0x5c)
            self.bus.write([0x70, 0b00000000], 0x5c)
        except:
            print('Error: no touchscreen found')

        tick_verts = []
        dial_verts = []
        # first make tick vertices
        for x in range(self.angle_fr, self.angle_to, self.step):
            (s, c) = (sin(radians(x)), cos(radians(x))
                      )  # re-use for brevity below
            tick_verts.extend([(self.inner * s, self.inner * c, 0.1),
                               (self.outer * s, self.outer * c, 0.1)])
            dial_verts.append((self.mid * s, self.mid * c, 2.0))

        if shader is None:
            shader = pi3d.Shader('mat_flat')
        if camera is None:
            camera = pi3d.Camera(is_3d=False)
        uv_shader = pi3d.Shader('uv_flat')

        tex = pi3d.Texture('color_gradient.jpg')

        self.ticks = pi3d.PolygonLines(camera=camera,
                                       vertices=tick_verts,
                                       strip=False,
                                       line_width=5)

        self.ticks.set_shader(shader)
        self.ticks.set_alpha(0.8)

        self.sensorticks = pi3d.PolygonLines(camera=camera,
                                             vertices=tick_verts,
                                             line_width=5,
                                             strip=False)
        self.sensorticks.set_shader(shader)

        self.bline = pi3d.PolygonLines(camera=camera,
                                       vertices=dial_verts,
                                       line_width=40)
        self.bline.set_textures([tex])
        self.bline.set_alpha(0.8)
        self.bline.set_shader(uv_shader)
        self.bline.set_material((0.5, 0.5, 0.5))

        self.dial = pi3d.PolygonLines(camera=camera,
                                      vertices=dial_verts,
                                      line_width=8)
        self.dial.set_alpha(0.2)
        self.dial.set_shader(shader)

        font = pi3d.Font('opensans.ttf',
                         codepoints='0123456789.-°',
                         grid_size=5)
        self.actval = pi3d.PointText(font,
                                     camera,
                                     max_chars=10,
                                     point_size=100)
        self.temp_block = pi3d.TextBlock(0,
                                         0,
                                         0.1,
                                         0.0,
                                         6,
                                         justify=0.5,
                                         text_format="0°",
                                         size=0.79,
                                         spacing="F",
                                         space=0.02,
                                         colour=(1.0, 1.0, 1.0, 1.0))
        self.actval.add_text_block(self.temp_block)

        self.dot2 = pi3d.Disk(radius=20, sides=20, z=0.1, rx=90, camera=camera)
        self.dot2.set_shader(shader)
        self.dot2.set_material((1, 1, 1))
        self.dot2_alpha = 1.0

        self.value = 25.0
        self.sensorvalue = 18.0
        degree = (self.angle_fr + (self.angle_to - self.angle_fr) *
                  (self.value - self.min_t) / (self.max_t - self.min_t))
        self.x1 = self.mid * sin(radians(degree))
        self.y1 = self.mid * cos(radians(degree))
Beispiel #14
0
 def __init__(self, dev, base):
     self.dac = i2c.I2C(dev, base + self.i2c_map['DAC'], 0x60)
     self.ioexpander = i2c.I2C(dev, base + self.i2c_map['DAC'], 0x20)
     '''
     12 RFP circuits on 4 i2c buses. Slave address set by ADDR pin connection:
     GND: 1001000
     VDD: 1001001
     SDA: 1001010 (not used)
     SCL: 1001011 
     '''
     self.rfp = []
     self.rfp.append(i2c.I2C(dev, base + self.i2c_map['RFP_0'], 0x49))
     self.rfp.append(i2c.I2C(dev, base + self.i2c_map['RFP_0'], 0x48))
     self.rfp.append(i2c.I2C(dev, base + self.i2c_map['RFP_0'], 0x4B))
     self.rfp.append(i2c.I2C(dev, base + self.i2c_map['RFP_1'], 0x49))
     self.rfp.append(i2c.I2C(dev, base + self.i2c_map['RFP_1'], 0x48))
     self.rfp.append(i2c.I2C(dev, base + self.i2c_map['RFP_1'], 0x4B))
     self.rfp.append(i2c.I2C(dev, base + self.i2c_map['RFP_2'], 0x49))
     self.rfp.append(i2c.I2C(dev, base + self.i2c_map['RFP_2'], 0x48))
     self.rfp.append(i2c.I2C(dev, base + self.i2c_map['RFP_2'], 0x4B))
     self.rfp.append(i2c.I2C(dev, base + self.i2c_map['RFP_3'], 0x49))
     self.rfp.append(i2c.I2C(dev, base + self.i2c_map['RFP_3'], 0x48))
     self.rfp.append(i2c.I2C(dev, base + self.i2c_map['RFP_3'], 0x4B))
Beispiel #15
0
def range_check(value):
	if value > 100:
		value = 100
	elif value < 0:
		value = 0
	return value


screen = curses.initscr()
screen.refresh()
curses.cbreak()
screen.keypad(True)
value = 1

i2c = i2c.I2C()
pwm = controller.PWM()
v_min = v_max = 0

try:
	screen.addstr('press any key to start')
	key = 0

	while (key != 27): #Escape key
		key = screen.getch()
		voltage = i2c.getVoltage()

		if key == curses.KEY_UP:
			value = value + 1
		elif key == curses.KEY_RIGHT:
			value = value + 10
Beispiel #16
0
 def __init__(self, address):
     """
     Sets the bus number and stores the address
     """
     self.i2cfile = i2c.I2C(bus=I2C_BUS_NUM)
     self.address = address
Beispiel #17
0
def my_init():
    global port
    port = i2c.I2C(I2C0, 0x40)  #0x40 default address of htu21/sht21/si7021
    port.start()
    print('I2C PORT STARTED')
Beispiel #18
0
 def setUp(self):
     self.i2cdevice = i2c.I2C(1)
Beispiel #19
0
        self.fr = None;

    def write(self, bytes):
        wasOpen = self._isOpen
        if (not wasOpen):
            self.open()
        self.fw.write(bytes)
        if (not wasOpen):
            self.close()

    def read(self, bytes):
        wasOpen = self._isOpen
        if (not wasOpen):
            self.open()
        string = self.fr.read(bytes)
        if (not wasOpen):
            self.close()
        bytes = bytearray(string)
        return bytes
            

if __name__ == "__main__":
    import i2c
    dev = i2c.I2C(0x49, 1)
    dev.open()
    dev.close()
    data = dev.read(10)

    print(data)
    print(''.join('{:02x}'.format(x) for x in data))