gt911 — GT911 5-pontos kapacitív érintésvezérlő

A gt911 modul meghajtót biztosít a Goodix GT911 projektált kapacitív érintőképernyő-vezérlőhöz, amely gyakran 4,3”–7” méretű 800x480-as LCD-panelekkel párosul. A vezérlő legfeljebb öt egyidejű érintési pontot követ nyomon, és mindegyiket (x, y, size, id) rendezett négyesként jelenti, ahol az id mindaddig stabil az egyes olvasások között, amíg az ujj a panelen marad.

A meghajtó I2C-n keresztül kommunikál a chippel, és két extra GPIO-t használ:

  • egy reset vonalat, amelyet bekapcsoláskor alacsony szinten tart, és az IRQ vonallal együtt kapcsolgat a GT911 7 bites I2C-címének kiválasztásához (0x5D, ha az IRQ alacsony a reset alatt, 0x14, ha az IRQ magas);

  • egy interrupt vonalat, amelyet a vezérlő érintési esemény bekövetkeztekor aktivál.

A létrehozás után az alkalmazások a GT911.read_points() segítségével lekérdezhetik az érintéseket, vagy megadhatnak egy touch_callback függvényt, amelyet az IRQ láb lefutó élén hív meg.

class GT911 – 5-pontos kapacitív érintésvezérlő

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)

Létrehoz egy GT911 érintőképernyő-vezérlő objektumot.

A bus az a machine.I2C busz-objektum, amelyhez a GT911 csatlakozik.

A reset_pin a GT911 reset vonalához csatlakoztatott láb száma vagy neve (nem Pin objektum). A meghajtónak meg kell változtatnia a láb irányát a reset során.

Az irq_pin a GT911 megszakítási vonalához csatlakoztatott láb száma vagy neve (nem Pin objektum). A meghajtónak meg kell változtatnia a láb irányát a reset során.

Az address a vezérlő I2C-címe. Alapértelmezés szerint a gt911._DEFAULT_ADDR.

A width az érintőpanel felbontása az X tengely mentén, képpontban.

A height az érintőpanel felbontása az Y tengely mentén, képpontban.

A touch_points a jelentendő egyidejű érintési pontok maximális száma (1-től 5-ig).

A reverse_x ha True, megfordítja az X tengelyt.

A reverse_y ha True, megfordítja az Y tengelyt.

A reverse_axis ha True, felcseréli az X és Y tengelyeket.

A sito engedélyezi a vezérlő Single-Input-Touch-Output módját, ha True.

A refresh_rate az érintésjelentési gyakoriság Hz-ben.

A touch_callback egy opcionális hívható objektum, amelyet az IRQ láb lefutó élén hív meg, amikor érintési esemény történik. Adja át a None értéket a lekérdezéses mód használatához.

read_id() bytes

Visszaad 4 bájtot, amely a GT911 termékazonosítóját tartalmazza.

read_points() tuple

Visszaad egy (n, points) rendezett párt, ahol az n az aktív érintési pontok száma, a points pedig 5 array("H", ...) bejegyzés listája. Minden bejegyzés a következőt tartalmazza: [x, y, size, id]: az x és y a képernyőkoordináták, a size az érintési nyomás, az id pedig egy egyedi nyomkövetési azonosító, amely egy adott ujjnál stabil marad az olvasások között.

A points csak az első n bejegyzése tartalmaz érvényes adatokat.

reset() None

Visszaállítja a GT911 vezérlőt, és újra élesíti az IRQ-kezelőt, ha meg lett adva touch_callback.

Konstansok

gt911._DEFAULT_ADDR: int

A GT911 vezérlő alapértelmezett I2C-címe (0x5D).