gt911 --- ตัวควบคุมสัมผัส GT911 แบบ 5 จุด Capacitive¶
โมดูล gt911 จัดเตรียมไดรเวอร์สำหรับตัวควบคุมหน้าจอสัมผัสแบบ projected-capacitive Goodix GT911 ซึ่งเป็นคู่ที่พบบ่อยกับแผง LCD 800x480 ขนาด 4.3"--7" ตัวควบคุมติดตามจุดสัมผัสพร้อมกันสูงสุดห้าจุดและรายงานแต่ละจุดเป็น tuple (x, y, size, id) โดย id จะคงที่ข้ามการอ่านตราบเท่าที่นิ้วยังอยู่บนแผง
ไดรเวอร์สื่อสารกับชิปผ่าน I2C และใช้ GPIO เพิ่มเติมสองตัว:
สาย reset ที่ถูกดึงต่ำระหว่างการเปิดเครื่องและสลับพร้อมกับสาย IRQ เพื่อเลือกที่อยู่ I2C 7 บิตของ GT911 (
0x5Dเมื่อ IRQ ต่ำระหว่างรีเซ็ต0x14เมื่อ IRQ สูง)สาย interrupt ที่ตัวควบคุมยืนยันเมื่อเกิดเหตุการณ์สัมผัส
หลังจากสร้างแล้ว แอปพลิเคชันสามารถโพลล์หาการสัมผัสด้วย GT911.read_points() หรือระบุ touch_callback ที่จะถูกเรียกบน falling edge ของพิน IRQ
class GT911 -- ตัวควบคุมสัมผัส 5 จุด Capacitive¶
- class gt911.GT911(bus: machine.I2C, reset_pin: int | str, irq_pin: int | str, address: int = _DEFAULT_ADDR, width: int = 800, height: int = 480, touch_points: int = 1, reverse_x: bool = False, reverse_y: bool = False, reverse_axis: bool = True, sito: bool = True, refresh_rate: int = 240, touch_callback: Callable | None = None)¶
สร้างออบเจ็กต์ตัวควบคุมหน้าจอสัมผัส GT911
busคือออบเจ็กต์บัสmachine.I2Cที่ GT911 เชื่อมต่ออยู่reset_pinคือหมายเลขหรือชื่อพิน (ไม่ใช่ออบเจ็กต์Pin) ที่เชื่อมต่อกับสาย reset ของ GT911 ไดรเวอร์จำเป็นต้องเปลี่ยนทิศทางพินระหว่างการรีเซ็ตirq_pinคือหมายเลขหรือชื่อพิน (ไม่ใช่ออบเจ็กต์Pin) ที่เชื่อมต่อกับสาย interrupt ของ GT911 ไดรเวอร์จำเป็นต้องเปลี่ยนทิศทางพินระหว่างการรีเซ็ตaddressคือที่อยู่ I2C ของตัวควบคุม ค่าเริ่มต้นเป็นgt911._DEFAULT_ADDRwidthคือความละเอียดของแผงสัมผัสตามแกน X เป็นพิกเซลheightคือความละเอียดของแผงสัมผัสตามแกน Y เป็นพิกเซลtouch_pointsคือจำนวนสูงสุดของจุดสัมผัสพร้อมกันที่จะรายงาน (1 ถึง 5)reverse_xถ้าเป็น True จะพลิกแกน Xreverse_yถ้าเป็น True จะพลิกแกน Yreverse_axisถ้าเป็น True จะสลับแกน X และ Ysitoเปิดใช้งานโหมด Single-Input-Touch-Output ของตัวควบคุมเมื่อเป็น Truerefresh_rateคืออัตราการรายงานการสัมผัสเป็น Hztouch_callbackคือ callable ที่เป็นตัวเลือก ถูกเรียกบน falling edge ของพิน IRQ เมื่อเกิดเหตุการณ์สัมผัส ส่งNoneเพื่อใช้โหมดโพลล์- read_points() tuple¶
คืนค่า tuple
(n, points)โดยnคือจำนวนจุดสัมผัสที่ใช้งานอยู่ และpointsคือรายการ 5 รายการของarray("H", ...)แต่ละรายการมี[x, y, size, id]:xและyเป็นพิกัดหน้าจอsizeคือแรงกด และidเป็น ID ติดตามเฉพาะที่คงที่สำหรับนิ้วที่กำหนดข้ามการอ่านเฉพาะ
nรายการแรกของpointsเท่านั้นที่มีข้อมูลที่ถูกต้อง