gt911 --- GT911 五點電容式觸控控制器¶
gt911 模組提供 Goodix GT911 投射式電容觸控螢幕控制器的驅動程式,常與 4.3"--7" 800x480 LCD 面板搭配使用。該控制器可追蹤多達五個同時觸控點,並將每個觸控點回報為 (x, y, size, id) tuple,其中只要手指仍停留在面板上,id 在多次讀取之間都會保持穩定。
驅動程式透過 I2C 與晶片通訊,並使用兩個額外的 GPIO:
一條 reset 線,在開機期間維持低電位,並與 IRQ 線一起切換以選擇 GT911 的 7 位元 I2C 位址(重置期間 IRQ 為低時為
0x5D,IRQ 為高時為0x14);一條 interrupt 線,在發生觸控事件時由控制器拉起。
建構之後,應用程式可使用 GT911.read_points() 輪詢觸控,或提供 touch_callback 以便在 IRQ 接腳的下降邊緣時被呼叫。
class GT911 -- 五點電容式觸控控制器¶
- 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是 GT911 所連接的machine.I2C匯流排物件。reset_pin是連接到 GT911 reset 線的接腳編號或名稱(而非Pin物件)。驅動程式需要在重置期間改變接腳方向。irq_pin是連接到 GT911 interrupt 線的接腳編號或名稱(而非Pin物件)。驅動程式需要在重置期間改變接腳方向。address是控制器的 I2C 位址。預設為gt911._DEFAULT_ADDR。width是觸控面板沿 X 軸的解析度,以像素為單位。height是觸控面板沿 Y 軸的解析度,以像素為單位。touch_points是要回報的最大同時觸控點數量 (1 到 5)。reverse_x若為 True,則翻轉 X 軸。reverse_y若為 True,則翻轉 Y 軸。reverse_axis若為 True,則交換 X 與 Y 軸。sito為 True 時啟用控制器的單輸入觸控輸出 (Single-Input-Touch-Output) 模式。refresh_rate是觸控回報率,單位為 Hz。touch_callback是一個選用的可呼叫物件,會在發生觸控事件時於 IRQ 接腳的下降邊緣被呼叫。傳入None即可使用輪詢模式。