gt911 — Controlador de Toque Capacitivo de 5 Pontos GT911¶
O módulo gt911 fornece um driver para o controlador de tela de toque capacitiva projetada Goodix GT911, um par comum com painéis LCD 800x480 de 4,3”–7”. O controlador rastreia até cinco pontos de toque simultâneos e reporta cada um como uma tupla (x, y, size, id) onde id permanece estável entre leituras enquanto o dedo permanecer no painel.
O driver se comunica com o chip via I2C e usa dois GPIOs extras:
uma linha de reset, mantida em nível baixo durante a inicialização e alternada junto com a linha IRQ para selecionar o endereço I2C de 7 bits do GT911 (
0x5Dquando IRQ está em nível baixo durante o reset,0x14quando IRQ está em nível alto);uma linha de interrupção, acionada pelo controlador quando ocorre um evento de toque.
Após a construção, as aplicações podem consultar toques com GT911.read_points() ou fornecer um touch_callback para ser invocado na borda de descida do pino IRQ.
class GT911 – Controlador de Toque Capacitivo de 5 Pontos¶
- 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)¶
Cria um objeto controlador de tela de toque GT911.
busé o objeto de barramentomachine.I2Cao qual o GT911 está conectado.reset_piné o número ou nome do pino (não um objetoPin) conectado à linha de reset do GT911. O driver precisa alterar a direção do pino durante o reset.irq_piné o número ou nome do pino (não um objetoPin) conectado à linha de interrupção do GT911. O driver precisa alterar a direção do pino durante o reset.addressé o endereço I2C do controlador. O padrão égt911._DEFAULT_ADDR.widthé a resolução do painel de toque ao longo do eixo X em pixels.heighté a resolução do painel de toque ao longo do eixo Y em pixels.touch_pointsé o número máximo de pontos de toque simultâneos a reportar (1 a 5).reverse_xse True inverte o eixo X.reverse_yse True inverte o eixo Y.reverse_axisse True troca os eixos X e Y.sitohabilita o modo Single-Input-Touch-Output do controlador quando True.refresh_rateé a taxa de reporte de toques em Hz.touch_callbacké um callable opcional invocado na borda de descida do pino IRQ quando ocorre um evento de toque. PasseNonepara usar o modo de polling.- read_points() tuple¶
Retorna uma tupla
(n, points)ondené o número de pontos de toque ativos epointsé uma lista de 5 entradasarray("H", ...). Cada entrada contém[x, y, size, id]:xeysão as coordenadas de tela,sizeé a pressão do toque eidé um ID de rastreamento único que permanece estável para um dado dedo entre leituras.Apenas as primeiras
nentradas depointscontêm dados válidos.