gt911 — GT911 5bodový kapacitní dotykový řadič

Modul gt911 poskytuje ovladač pro projekčně-kapacitní dotykový řadič Goodix GT911, běžně používaný společně s LCD panely 4,3“–7“ s rozlišením 800x480. Řadič sleduje až pět současných dotykových bodů a každý hlásí jako 4-tici (x, y, size, id), kde id zůstává stabilní napříč čteními, dokud prst zůstává na panelu.

Ovladač komunikuje s čipem přes I2C a používá dva další GPIO:

  • linku reset, držená nízko během zapnutí a přepínaná spolu s linkou IRQ pro výběr 7bitové I2C adresy GT911 (0x5D, když je IRQ nízko během resetu, 0x14, když je IRQ vysoko);

  • linku interrupt (přerušení), kterou řadič aktivuje při výskytu dotykové události.

Po vytvoření mohou aplikace zjišťovat dotyky pomocí GT911.read_points() nebo poskytnout touch_callback, který se vyvolá na sestupné hraně IRQ pinu.

class GT911 – 5bodový kapacitní dotykový řadič

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)

Vytvoří objekt řadiče dotykové obrazovky GT911.

bus je objekt sběrnice machine.I2C, ke které je GT911 připojen.

reset_pin je číslo nebo název pinu (nikoli objekt Pin) připojeného k reset lince GT911. Ovladač potřebuje během resetu měnit směr pinu.

irq_pin je číslo nebo název pinu (nikoli objekt Pin) připojeného k interrupt lince GT911. Ovladač potřebuje během resetu měnit směr pinu.

address je I2C adresa řadiče. Výchozí hodnotou je gt911._DEFAULT_ADDR.

width je rozlišení dotykového panelu podél osy X v pixelech.

height je rozlišení dotykového panelu podél osy Y v pixelech.

touch_points je maximální počet současných dotykových bodů k hlášení (1 až 5).

reverse_x pokud je True, překlopí osu X.

reverse_y pokud je True, překlopí osu Y.

reverse_axis pokud je True, prohodí osy X a Y.

sito pokud je True, povolí režim Single-Input-Touch-Output řadiče.

refresh_rate je frekvence hlášení dotyků v Hz.

touch_callback je volitelný objekt typu callable vyvolaný na sestupné hraně IRQ pinu při výskytu dotykové události. Předáním None použijete režim dotazování (polling).

read_id() bytes

Vrací 4 bajty obsahující produktové ID GT911.

read_points() tuple

Vrací 2-tici (n, points), kde n je počet aktivních dotykových bodů a points je seznam 5 položek array("H", ...). Každá položka obsahuje [x, y, size, id]: x a y jsou souřadnice na obrazovce, size je tlak dotyku a id je jedinečné sledovací ID, které zůstává stabilní pro daný prst napříč čteními.

Pouze prvních n položek points obsahuje platná data.

reset() None

Resetuje řadič GT911 a znovu aktivuje obslužnou rutinu IRQ, pokud byl poskytnut touch_callback.

Konstanty

gt911._DEFAULT_ADDR: int

Výchozí I2C adresa (0x5D) řadiče GT911.