gt911 — GT911 kapacitiv pekstyrenhet med 5 punkter

Modulen gt911 tillhandahåller en drivrutin för den projicerat-kapacitiva pekskärmsstyrenheten Goodix GT911, en vanlig kombination med 4,3”–7” 800x480 LCD-paneler. Styrenheten spårar upp till fem samtidiga beröringspunkter och rapporterar var och en som en tupel (x, y, size, id) där id är stabilt mellan läsningar så länge fingret förblir på panelen.

Drivrutinen kommunicerar med kretsen via I2C och använder två extra GPIO:er:

  • en reset-ledning, som hålls låg vid uppstart och växlas tillsammans med IRQ-ledningen för att välja GT911:s 7-bitars I2C-adress (0x5D när IRQ är låg under reset, 0x14 när IRQ är hög);

  • en interrupt-ledning, som aktiveras av styrenheten när en beröringshändelse inträffar.

Efter konstruktion kan applikationer söka efter beröringar med GT911.read_points() eller tillhandahålla ett touch_callback som anropas vid IRQ-stiftets fallande flank.

class GT911 – kapacitiv pekstyrenhet med 5 punkter

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)

Skapar ett objekt för en GT911-pekskärmsstyrenhet.

bus är det machine.I2C-bussobjekt som GT911 är ansluten till.

reset_pin är stiftnumret eller -namnet (inte ett Pin-objekt) som är anslutet till GT911:s reset-ledning. Drivrutinen behöver ändra stiftriktning under reset.

irq_pin är stiftnumret eller -namnet (inte ett Pin-objekt) som är anslutet till GT911:s interrupt-ledning. Drivrutinen behöver ändra stiftriktning under reset.

address är I2C-adressen för styrenheten. Standardvärdet är gt911._DEFAULT_ADDR.

width är pekpanelens upplösning längs X-axeln i pixlar.

height är pekpanelens upplösning längs Y-axeln i pixlar.

touch_points är det maximala antalet samtidiga beröringspunkter att rapportera (1 till 5).

reverse_x vänder X-axeln om True.

reverse_y vänder Y-axeln om True.

reverse_axis byter plats på X- och Y-axlarna om True.

sito aktiverar styrenhetens läge Single-Input-Touch-Output när True.

refresh_rate är beröringsrapporteringsfrekvensen i Hz.

touch_callback är ett valfritt anropsbart objekt som anropas vid IRQ-stiftets fallande flank när en beröringshändelse inträffar. Skicka None för att använda pollningsläge.

read_id() bytes

Returnerar 4 byte som innehåller GT911:s produkt-ID.

read_points() tuple

Returnerar en tupel (n, points) där n är antalet aktiva beröringspunkter och points är en lista med 5 array("H", ...)-poster. Varje post innehåller [x, y, size, id]: x och y är skärmkoordinaterna, size är beröringstrycket och id är ett unikt spårnings-ID som förblir stabilt för ett givet finger mellan läsningar.

Endast de första n posterna i points innehåller giltig data.

reset() None

Återställer GT911-styrenheten och återaktiverar IRQ-hanteraren om ett touch_callback angavs.

Konstanter

gt911._DEFAULT_ADDR: int

Standard-I2C-adress (0x5D) för GT911-styrenheten.