gt911 — Contrôleur tactile capacitif 5 points GT911

Le module gt911 fournit un pilote pour le contrôleur d’écran tactile capacitif projeté Goodix GT911, fréquemment associé aux dalles LCD 800x480 de 4,3 »–7 ». Le contrôleur suit jusqu’à cinq points de contact simultanés et reporte chacun sous forme de tuple (x, y, size, id)id reste stable d’une lecture à l’autre tant que le doigt demeure sur la dalle.

Le pilote communique avec la puce via I2C et utilise deux GPIO supplémentaires :

  • une ligne de reset, maintenue à l’état bas pendant la mise sous tension et basculée conjointement avec la ligne IRQ pour sélectionner l’adresse I2C 7 bits du GT911 (0x5D lorsque IRQ est bas pendant le reset, 0x14 lorsque IRQ est haut) ;

  • une ligne d”interruption, activée par le contrôleur lorsqu’un événement tactile se produit.

Après la construction, les applications peuvent interroger les contacts avec GT911.read_points() ou fournir une touch_callback à invoquer sur le front descendant de la broche IRQ.

class GT911 – Contrôleur tactile capacitif 5 points

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)

Crée un objet contrôleur d’écran tactile GT911.

bus est l’objet bus machine.I2C auquel le GT911 est connecté.

reset_pin est le numéro ou le nom de broche (pas un objet Pin) connecté à la ligne reset du GT911. Le pilote a besoin de changer le sens de la broche pendant le reset.

irq_pin est le numéro ou le nom de broche (pas un objet Pin) connecté à la ligne d’interruption du GT911. Le pilote a besoin de changer le sens de la broche pendant le reset.

address est l’adresse I2C du contrôleur. Vaut par défaut gt911._DEFAULT_ADDR.

width est la résolution de la dalle tactile sur l’axe X en pixels.

height est la résolution de la dalle tactile sur l’axe Y en pixels.

touch_points est le nombre maximal de points de contact simultanés à reporter (1 à 5).

reverse_x si True, inverse l’axe X.

reverse_y si True, inverse l’axe Y.

reverse_axis si True, échange les axes X et Y.

sito active le mode Single-Input-Touch-Output du contrôleur lorsqu’il vaut True.

refresh_rate est la fréquence de report tactile en Hz.

touch_callback est un appelable optionnel invoqué sur le front descendant de la broche IRQ lorsqu’un événement tactile se produit. Passez None pour utiliser le mode d’interrogation.

read_id() bytes

Renvoie 4 octets contenant l’identifiant produit du GT911.

read_points() tuple

Renvoie un tuple (n, points)n est le nombre de points de contact actifs et points une liste de 5 entrées array("H", ...). Chaque entrée contient [x, y, size, id] : x et y sont les coordonnées à l’écran, size est la pression de contact et id est un identifiant de suivi unique qui reste stable pour un doigt donné d’une lecture à l’autre.

Seules les n premières entrées de points contiennent des données valides.

reset() None

Réinitialise le contrôleur GT911 et réarme le gestionnaire d’IRQ si une touch_callback a été fournie.

Constantes

gt911._DEFAULT_ADDR: int

Adresse I2C par défaut (0x5D) du contrôleur GT911.