gt911 — 5-punktowy pojemnościowy kontroler dotyku GT911¶
Moduł gt911 udostępnia sterownik dla projekcyjno-pojemnościowego kontrolera ekranu dotykowego Goodix GT911, często łączonego z panelami LCD 4.3”–7” o rozdzielczości 800x480. Kontroler śledzi do pięciu jednoczesnych punktów dotyku i raportuje każdy jako krotkę (x, y, size, id), gdzie id jest stabilne pomiędzy odczytami tak długo, jak palec pozostaje na panelu.
Sterownik komunikuje się z układem przez I2C i wykorzystuje dwa dodatkowe GPIO:
linię reset, utrzymywaną w stanie niskim podczas włączania zasilania i przełączaną razem z linią IRQ w celu wyboru 7-bitowego adresu I2C układu GT911 (
0x5D, gdy IRQ jest niskie podczas resetu,0x14, gdy IRQ jest wysokie);linię przerwania, ustawianą przez kontroler, gdy wystąpi zdarzenie dotyku.
Po utworzeniu obiektu aplikacje mogą odpytywać o dotyki za pomocą GT911.read_points() lub dostarczyć touch_callback wywoływane na opadającym zboczu pinu IRQ.
class GT911 – 5-punktowy pojemnościowy kontroler dotyku¶
- 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)¶
Tworzy obiekt kontrolera ekranu dotykowego GT911.
busto obiekt magistralimachine.I2C, do której podłączony jest GT911.reset_pinto numer lub nazwa pinu (nie obiektPin) podłączonego do linii reset GT911. Sterownik musi zmieniać kierunek pinu podczas resetu.irq_pinto numer lub nazwa pinu (nie obiektPin) podłączonego do linii przerwania GT911. Sterownik musi zmieniać kierunek pinu podczas resetu.addressto adres I2C kontrolera. Domyślniegt911._DEFAULT_ADDR.widthto rozdzielczość panelu dotykowego wzdłuż osi X w pikselach.heightto rozdzielczość panelu dotykowego wzdłuż osi Y w pikselach.touch_pointsto maksymalna liczba jednoczesnych punktów dotyku do raportowania (od 1 do 5).reverse_xjeśli True, odwraca oś X.reverse_yjeśli True, odwraca oś Y.reverse_axisjeśli True, zamienia osie X i Y.sitowłącza tryb Single-Input-Touch-Output kontrolera, gdy True.refresh_rateto częstotliwość raportowania dotyku w Hz.touch_callbackto opcjonalny obiekt wywoływalny uruchamiany na opadającym zboczu pinu IRQ, gdy wystąpi zdarzenie dotyku. PrzekażNone, aby użyć trybu odpytywania.- read_points() tuple¶
Zwraca krotkę
(n, points), gdziento liczba aktywnych punktów dotyku, apointsto lista 5 wpisówarray("H", ...). Każdy wpis zawiera[x, y, size, id]:xiyto współrzędne ekranowe,sizeto nacisk dotyku, aidto unikalny identyfikator śledzenia, który pozostaje stabilny dla danego palca pomiędzy odczytami.Tylko pierwsze
nwpisówpointszawiera prawidłowe dane.