gt911 — Controlador Tátil Capacitivo GT911 de 5 Pontos¶
O módulo gt911 fornece um driver para o controlador de ecrã tátil capacitivo projetado Goodix GT911, uma combinação comum com painéis LCD 800x480 de 4,3»–7». O controlador acompanha até cinco pontos de toque simultâneos e reporta cada um como um tuplo (x, y, size, id) onde id é estável entre leituras enquanto o dedo permanecer no painel.
O driver comunica com o chip via I2C e utiliza dois GPIOs adicionais:
uma linha de reset, mantida em nível baixo durante o arranque e comutada em conjunto 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, ativada pelo controlador quando ocorre um evento de toque.
Após a construção, as aplicações podem verificar toques com GT911.read_points() ou fornecer um touch_callback para ser invocado no flanco descendente do pino IRQ.
classe GT911 – Controlador Tátil 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 ecrã tátil GT911.
busé o objeto de barramentomachine.I2Cao qual o GT911 está ligado.reset_piné o número ou nome do pino (não um objetoPin) ligado à linha de reset do GT911. O driver precisa de alterar a direção do pino durante o reset.irq_piné o número ou nome do pino (não um objetoPin) ligado à linha de interrupção do GT911. O driver precisa de alterar a direção do pino durante o reset.addressé o endereço I2C do controlador. Por omissão égt911._DEFAULT_ADDR.widthé a resolução do painel tátil ao longo do eixo X em pixels.heighté a resolução do painel tátil 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.sitoativa o modo Single-Input-Touch-Output do controlador quando True.refresh_rateé a taxa de reporte de toque em Hz.touch_callbacké um callable opcional invocado no flanco descendente do pino IRQ quando ocorre um evento de toque. PasseNonepara usar o modo de polling.- read_points() tuple¶
Devolve um tuplo
(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 no ecrã,sizeé a pressão do toque eidé um ID de rastreio único que permanece estável para um dado dedo entre leituras.Apenas as primeiras
nentradas depointscontêm dados válidos.