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) où 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 (
0x5Dlorsque IRQ est bas pendant le reset,0x14lorsque 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.
busest l’objet busmachine.I2Cauquel le GT911 est connecté.reset_pinest le numéro ou le nom de broche (pas un objetPin) connecté à la ligne reset du GT911. Le pilote a besoin de changer le sens de la broche pendant le reset.irq_pinest le numéro ou le nom de broche (pas un objetPin) connecté à la ligne d’interruption du GT911. Le pilote a besoin de changer le sens de la broche pendant le reset.addressest l’adresse I2C du contrôleur. Vaut par défautgt911._DEFAULT_ADDR.widthest la résolution de la dalle tactile sur l’axe X en pixels.heightest la résolution de la dalle tactile sur l’axe Y en pixels.touch_pointsest le nombre maximal de points de contact simultanés à reporter (1 à 5).reverse_xsi True, inverse l’axe X.reverse_ysi True, inverse l’axe Y.reverse_axissi True, échange les axes X et Y.sitoactive le mode Single-Input-Touch-Output du contrôleur lorsqu’il vaut True.refresh_rateest la fréquence de report tactile en Hz.touch_callbackest un appelable optionnel invoqué sur le front descendant de la broche IRQ lorsqu’un événement tactile se produit. PassezNonepour utiliser le mode d’interrogation.- read_points() tuple¶
Renvoie un tuple
(n, points)oùnest le nombre de points de contact actifs etpointsune liste de 5 entréesarray("H", ...). Chaque entrée contient[x, y, size, id]:xetysont les coordonnées à l’écran,sizeest la pression de contact etidest un identifiant de suivi unique qui reste stable pour un doigt donné d’une lecture à l’autre.Seules les
npremières entrées depointscontiennent des données valides.