gt911 --- Pengontrol Sentuh Kapasitif 5-Titik GT911

Modul gt911 menyediakan driver untuk pengontrol layar sentuh kapasitif proyeksi Goodix GT911, yang umum dipasangkan dengan panel LCD 800x480 berukuran 4.3"--7". Pengontrol ini melacak hingga lima titik sentuh simultan dan melaporkan masing-masing sebagai tuple (x, y, size, id) di mana id stabil antar pembacaan selama jari tetap berada di panel.

Driver berkomunikasi dengan chip melalui I2C dan menggunakan dua GPIO tambahan:

  • sebuah baris reset, dipertahankan rendah selama power-up dan dialihkan bersama dengan baris IRQ untuk memilih alamat I2C 7-bit GT911 (0x5D saat IRQ rendah selama reset, 0x14 saat IRQ tinggi);

  • sebuah baris interupsi, dinyatakan oleh pengontrol ketika event sentuh terjadi.

Setelah konstruksi, aplikasi dapat melakukan polling untuk sentuhan dengan GT911.read_points() atau menyediakan touch_callback untuk dipanggil pada tepi turun pin IRQ.

kelas GT911 -- Pengontrol Sentuh Kapasitif 5-Titik

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)

Membuat objek pengontrol layar sentuh GT911.

bus adalah objek bus machine.I2C tempat GT911 terpasang.

reset_pin adalah nomor atau nama pin (bukan objek Pin) yang terhubung ke baris reset GT911. Driver perlu mengubah arah pin selama reset.

irq_pin adalah nomor atau nama pin (bukan objek Pin) yang terhubung ke baris interupsi GT911. Driver perlu mengubah arah pin selama reset.

address adalah alamat I2C dari pengontrol. Default ke gt911._DEFAULT_ADDR.

width adalah resolusi panel sentuh sepanjang sumbu X dalam piksel.

height adalah resolusi panel sentuh sepanjang sumbu Y dalam piksel.

touch_points adalah jumlah maksimum titik sentuh simultan yang dilaporkan (1 hingga 5).

reverse_x jika True membalik sumbu X.

reverse_y jika True membalik sumbu Y.

reverse_axis jika True menukar sumbu X dan Y.

sito mengaktifkan mode Single-Input-Touch-Output pengontrol ketika True.

refresh_rate adalah laju laporan sentuh dalam Hz.

touch_callback adalah callable opsional yang dipanggil pada tepi turun pin IRQ ketika event sentuh terjadi. Lewatkan None untuk menggunakan mode polling.

read_id() bytes

Mengembalikan 4 byte yang berisi ID produk GT911.

read_points() tuple

Mengembalikan tuple (n, points) di mana n adalah jumlah titik sentuh aktif dan points adalah daftar 5 entri array("H", ...). Setiap entri berisi [x, y, size, id]: x dan y adalah koordinat layar, size adalah tekanan sentuhan, dan id adalah ID pelacakan unik yang tetap stabil untuk jari tertentu antar pembacaan.

Hanya n entri pertama dari points yang berisi data valid.

reset() None

Mereset pengontrol GT911 dan mengaktifkan kembali handler IRQ jika touch_callback telah disediakan.

Konstanta

gt911._DEFAULT_ADDR: int

Alamat I2C default (0x5D) dari pengontrol GT911.