gt911 — GT911 5 Noktalı Kapasitif Dokunmatik Denetleyici

gt911 modülü, 4.3”–7” 800x480 LCD panellerle yaygın bir eşleşme olan Goodix GT911 yansıtmalı kapasitif dokunmatik ekran denetleyicisi için bir sürücü sağlar. Denetleyici aynı anda en fazla beş dokunma noktasını izler ve her birini, parmak panelde kaldığı sürece okumalar boyunca kararlı kalan id ile birlikte bir (x, y, size, id) demeti olarak bildirir.

Sürücü, çip ile I2C üzerinden iletişim kurar ve iki ek GPIO kullanır:

  • güç açılışı sırasında düşük tutulan ve GT911’in 7 bitlik I2C adresini seçmek için IRQ hattıyla birlikte değiştirilen bir reset hattı (reset sırasında IRQ düşükken 0x5D, IRQ yüksekken 0x14);

  • bir dokunma olayı meydana geldiğinde denetleyici tarafından etkinleştirilen bir interrupt hattı.

Oluşturulduktan sonra, uygulamalar GT911.read_points() ile dokunmaları yoklayabilir veya IRQ pininin düşen kenarında çağrılmak üzere bir touch_callback sağlayabilir.

class GT911 – 5 Noktalı Kapasitif Dokunmatik Denetleyici

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)

Bir GT911 dokunmatik ekran denetleyici nesnesi oluşturur.

bus, GT911’in bağlı olduğu machine.I2C veri yolu nesnesidir.

reset_pin, GT911 reset hattına bağlı pin numarası veya adıdır (bir Pin nesnesi değil). Sürücünün reset sırasında pin yönünü değiştirmesi gerekir.

irq_pin, GT911 interrupt hattına bağlı pin numarası veya adıdır (bir Pin nesnesi değil). Sürücünün reset sırasında pin yönünü değiştirmesi gerekir.

address, denetleyicinin I2C adresidir. Varsayılan olarak gt911._DEFAULT_ADDR.

width, X ekseni boyunca dokunmatik panel çözünürlüğüdür (piksel cinsinden).

height, Y ekseni boyunca dokunmatik panel çözünürlüğüdür (piksel cinsinden).

touch_points, bildirilecek maksimum eşzamanlı dokunma noktası sayısıdır (1 ile 5 arası).

reverse_x True ise X eksenini çevirir.

reverse_y True ise Y eksenini çevirir.

reverse_axis True ise X ve Y eksenlerini değiştirir.

sito True olduğunda denetleyicinin Single-Input-Touch-Output modunu etkinleştirir.

refresh_rate Hz cinsinden dokunma bildirim hızıdır.

touch_callback, bir dokunma olayı meydana geldiğinde IRQ pininin düşen kenarında çağrılan isteğe bağlı bir çağrılabilir nesnedir. Yoklama modunu kullanmak için None geçin.

read_id() bytes

GT911 ürün kimliğini içeren 4 bayt döndürür.

read_points() tuple

n‘nin etkin dokunma noktası sayısı ve points‘in 5 array("H", ...) girdisinden oluşan bir liste olduğu bir (n, points) demeti döndürür. Her girdi [x, y, size, id] içerir: x ve y ekran koordinatlarıdır, size dokunma basıncıdır ve id belirli bir parmak için okumalar boyunca kararlı kalan benzersiz bir izleme kimliğidir.

points öğesinin yalnızca ilk n girdisi geçerli veri içerir.

reset() None

GT911 denetleyicisini sıfırlar ve bir touch_callback sağlanmışsa IRQ işleyicisini yeniden hazırlar.

Sabitler

gt911._DEFAULT_ADDR: int

GT911 denetleyicisinin varsayılan I2C adresi (0x5D).