gt911 — Controlador táctil capacitivo de 5 puntos GT911¶
El módulo gt911 proporciona un controlador para el controlador de pantalla táctil capacitiva proyectada Goodix GT911, un emparejamiento común con paneles LCD de 800x480 de 4,3»–7». El controlador rastrea hasta cinco puntos de contacto simultáneos y reporta cada uno como una tupla (x, y, size, id) donde id es estable entre lecturas mientras el dedo permanezca sobre el panel.
El controlador se comunica con el chip mediante I2C y usa dos GPIO adicionales:
una línea de reset, mantenida en bajo durante el encendido y conmutada junto con la línea IRQ para seleccionar la dirección I2C de 7 bits del GT911 (
0x5Dcuando IRQ está en bajo durante el reset,0x14cuando IRQ está en alto);una línea de interrupción, activada por el controlador cuando ocurre un evento táctil.
Tras la construcción, las aplicaciones pueden sondear los toques con GT911.read_points() o proporcionar una touch_callback para que se invoque en el flanco de bajada del pin IRQ.
class GT911 – Controlador táctil capacitivo de 5 puntos¶
- 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 objeto controlador de pantalla táctil GT911.
buses el objeto de busmachine.I2Cal que está conectado el GT911.reset_pines el número o nombre del pin (no un objetoPin) conectado a la línea de reset del GT911. El controlador necesita cambiar la dirección del pin durante el reset.irq_pines el número o nombre del pin (no un objetoPin) conectado a la línea de interrupción del GT911. El controlador necesita cambiar la dirección del pin durante el reset.addresses la dirección I2C del controlador. De forma predeterminada esgt911._DEFAULT_ADDR.widthes la resolución del panel táctil a lo largo del eje X en píxeles.heightes la resolución del panel táctil a lo largo del eje Y en píxeles.touch_pointses el número máximo de puntos de contacto simultáneos a reportar (1 a 5).reverse_xsi es True voltea el eje X.reverse_ysi es True voltea el eje Y.reverse_axissi es True intercambia los ejes X e Y.sitohabilita el modo Single-Input-Touch-Output del controlador cuando es True.refresh_ratees la tasa de reporte táctil en Hz.touch_callbackes un invocable opcional que se ejecuta en el flanco de bajada del pin IRQ cuando ocurre un evento táctil. PaseNonepara usar el modo de sondeo.- read_points() tuple¶
Devuelve una tupla
(n, points)dondenes el número de puntos de contacto activos ypointses una lista de 5 entradasarray("H", ...). Cada entrada contiene[x, y, size, id]:xeyson las coordenadas de pantalla,sizees la presión del toque eides un ID de seguimiento único que permanece estable para un dedo dado entre lecturas.Solo las primeras
nentradas depointscontienen datos válidos.