gt911 — Controller di tocco capacitivo a 5 punti GT911¶
Il modulo gt911 fornisce un driver per il controller di touchscreen capacitivo proiettato Goodix GT911, un abbinamento comune con pannelli LCD 800x480 da 4,3»–7». Il controller traccia fino a cinque punti di tocco simultanei e riporta ciascuno come una tupla (x, y, size, id) dove id rimane stabile attraverso le letture finché il dito rimane sul pannello.
Il driver comunica con il chip tramite I2C e usa due GPIO aggiuntivi:
una linea di reset, tenuta bassa durante l’accensione e commutata insieme alla linea IRQ per selezionare l’indirizzo I2C a 7 bit del GT911 (
0x5Dquando IRQ è basso durante il reset,0x14quando IRQ è alto);una linea di interrupt, asserita dal controller quando si verifica un evento di tocco.
Dopo la costruzione, le applicazioni possono effettuare il polling dei tocchi con GT911.read_points() oppure fornire una touch_callback da invocare sul fronte di discesa del pin IRQ.
class GT911 – Controller di tocco capacitivo a 5 punti¶
- 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)¶
Crea un oggetto controller del touch screen GT911.
busè l’oggetto busmachine.I2Ca cui è collegato il GT911.reset_pinè il numero o il nome del pin (non un oggettoPin) collegato alla linea di reset del GT911. Il driver deve cambiare la direzione del pin durante il reset.irq_pinè il numero o il nome del pin (non un oggettoPin) collegato alla linea di interrupt del GT911. Il driver deve cambiare la direzione del pin durante il reset.addressè l’indirizzo I2C del controller. Per impostazione predefinita ègt911._DEFAULT_ADDR.widthè la risoluzione del pannello tattile lungo l’asse X in pixel.heightè la risoluzione del pannello tattile lungo l’asse Y in pixel.touch_pointsè il numero massimo di punti di tocco simultanei da riportare (da 1 a 5).reverse_xse True inverte l’asse X.reverse_yse True inverte l’asse Y.reverse_axisse True scambia gli assi X e Y.sitoabilita la modalità Single-Input-Touch-Output del controller quando è True.refresh_rateè la frequenza di report dei tocchi in Hz.touch_callbackè un callable opzionale invocato sul fronte di discesa del pin IRQ quando si verifica un evento di tocco. PassaNoneper usare la modalità polling.- read_points() tuple¶
Restituisce una tupla
(n, points)dovenè il numero di punti di tocco attivi epointsè una lista di 5 vociarray("H", ...). Ciascuna voce contiene[x, y, size, id]:xeysono le coordinate sullo schermo,sizeè la pressione del tocco eidè un ID di tracciamento univoco che rimane stabile per un dato dito attraverso le letture.Solo le prime
nvoci dipointscontengono dati validi.