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üksekken0x14);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ğumachine.I2Cveri yolu nesnesidir.reset_pin, GT911 reset hattına bağlı pin numarası veya adıdır (birPinnesnesi 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 (birPinnesnesi 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 olarakgt911._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_xTrue ise X eksenini çevirir.reverse_yTrue ise Y eksenini çevirir.reverse_axisTrue ise X ve Y eksenlerini değiştirir.sitoTrue olduğunda denetleyicinin Single-Input-Touch-Output modunu etkinleştirir.refresh_rateHz 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çinNonegeçin.- read_points() tuple¶
n‘nin etkin dokunma noktası sayısı vepoints‘in 5array("H", ...)girdisinden oluşan bir liste olduğu bir(n, points)demeti döndürür. Her girdi[x, y, size, id]içerir:xveyekran koordinatlarıdır,sizedokunma basıncıdır veidbelirli bir parmak için okumalar boyunca kararlı kalan benzersiz bir izleme kimliğidir.pointsöğesinin yalnızca ilkngirdisi geçerli veri içerir.