gt911 — GT911 5-točkovni kapacitivni kontroler dodira

Modul gt911 pruža upravljački program za Goodix GT911 projicirano-kapacitivni kontroler zaslona osjetljivog na dodir, čest u kombinaciji s 4.3”–7” 800x480 LCD panelima. Kontroler prati do pet istovremenih dodirnih točaka i izvještava svaku kao (x, y, size, id) torku gdje je id stabilan kroz čitanja sve dok prst ostaje na panelu.

Upravljački program komunicira s čipom preko I2C i koristi dva dodatna GPIO-a:

  • reset liniju, držanu na niskoj razini tijekom uključivanja i prebacivanu zajedno s IRQ linijom za odabir GT911-ove 7-bitne I2C adrese (0x5D kada je IRQ na niskoj razini tijekom resetiranja, 0x14 kada je IRQ na visokoj razini);

  • interrupt liniju, koju kontroler postavlja kada se dogodi događaj dodira.

Nakon konstrukcije, aplikacije mogu provjeravati dodire pomoću GT911.read_points() ili dostaviti touch_callback koji se poziva na silaznom bridu IRQ pina.

class GT911 – 5-točkovni kapacitivni kontroler dodira

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)

Stvara objekt GT911 kontrolera zaslona osjetljivog na dodir.

bus je objekt machine.I2C sabirnice na koju je GT911 priključen.

reset_pin je broj ili naziv pina (ne Pin objekt) povezan s GT911 reset linijom. Upravljački program treba mijenjati smjer pina tijekom resetiranja.

irq_pin je broj ili naziv pina (ne Pin objekt) povezan s GT911 interrupt linijom. Upravljački program treba mijenjati smjer pina tijekom resetiranja.

address je I2C adresa kontrolera. Zadano je gt911._DEFAULT_ADDR.

width je razlučivost dodirnog panela duž X osi u pikselima.

height je razlučivost dodirnog panela duž Y osi u pikselima.

touch_points je maksimalni broj istovremenih dodirnih točaka za izvještavanje (1 do 5).

reverse_x ako je True, preokreće X os.

reverse_y ako je True, preokreće Y os.

reverse_axis ako je True, zamjenjuje X i Y osi.

sito omogućuje kontrolerov Single-Input-Touch-Output način kada je True.

refresh_rate je brzina izvještavanja o dodiru u Hz.

touch_callback je opcionalna pozivna funkcija koja se poziva na silaznom bridu IRQ pina kada se dogodi događaj dodira. Proslijedite None za korištenje načina provjeravanja (polling).

read_id() bytes

Vraća 4 bajta koja sadrže GT911 ID proizvoda.

read_points() tuple

Vraća torku (n, points) gdje je n broj aktivnih dodirnih točaka, a points lista od 5 array("H", ...) unosa. Svaki unos sadrži [x, y, size, id]: x i y su koordinate zaslona, size je pritisak dodira, a id je jedinstveni ID za praćenje koji ostaje stabilan za dani prst kroz čitanja.

Samo prvih n unosa u points sadrži valjane podatke.

reset() None

Resetira GT911 kontroler i ponovno aktivira IRQ rukovatelj ako je dostavljen touch_callback.

Konstante

gt911._DEFAULT_ADDR: int

Zadana I2C adresa (0x5D) GT911 kontrolera.