This code is from project: Interface I2C touch screen with Bus Pirate and Python.
touchscreenBusPirate.py
#!/usr/bin/python from pyBusPirateLite.I2Chigh import * import time class TS: def __init__(self): print "init!" self.i2c = I2Chigh("/dev/ttyUSB0", 115200, 1) self.i2c.BBmode() self.i2c.enter_I2C() self.i2c.cfg_pins(I2CPins.POWER) self.i2c.set_speed(I2CSpeed._400KHZ) def __del__(self): print "cleanup!" self.i2c.resetBP() def read(self): self.i2c.send_start_bit() self.i2c.bulk_trans(2, [0x82, 0x10]) self.i2c.send_stop_bit() out = [] self.i2c.send_start_bit() self.i2c.bulk_trans(1, [0x83]) data_len = 9 while(data_len): out.append(ord(self.i2c.read_byte())) if data_len > 1: self.i2c.send_ack() data_len-=1 self.i2c.send_nack() self.i2c.send_stop_bit() d_out = { 'fingers' : out[0], 'f1_x' : out[1] | (out[2] << 8), 'f1_y' : out[3] | (out[4] << 8), 'f2_x' : out[5] | (out[6] << 8), 'f2_y' : out[7] | (out[8] << 8) } return d_out def get(self): print self.read() ts = TS() try: while(1): ts.get() time.sleep(0.1) except KeyboardInterrupt: print "exit"
No comments:
Post a Comment