gt911 — בקר מגע קיבולי בעל 5 נקודות GT911

המודול gt911 מספק מנהל התקן לבקר מסך המגע הקיבולי-מוקרן Goodix GT911, שילוב נפוץ עם פאנלי LCD בגודל 4.3“–7“ ברזולוציה 800x480. הבקר עוקב אחר עד חמש נקודות מגע בו-זמנית ומדווח על כל אחת כרביעייה (x, y, size, id) כאשר id נשאר יציב לאורך קריאות כל עוד האצבע נשארת על הפאנל.

מנהל ההתקן מתקשר עם השבב דרך I2C ומשתמש בשני GPIO נוספים:

  • קו reset, המוחזק במצב נמוך במהלך ההפעלה ומשנה מצב יחד עם קו ה-IRQ כדי לבחור את כתובת ה-I2C בת 7 הביטים של ה-GT911 (0x5D כאשר IRQ נמוך במהלך ה-reset, 0x14 כאשר IRQ גבוה);

  • קו interrupt, המופעל על ידי הבקר כאשר מתרחש אירוע מגע.

לאחר הבנייה, יישומים יכולים לבדוק מגעים באמצעות GT911.read_points() או לספק touch_callback שיופעל בקצה היורד של פין ה-IRQ.

class GT911 – בקר מגע קיבולי בעל 5 נקודות

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)

יוצר אובייקט בקר מסך מגע GT911.

bus הוא אובייקט אפיק ה-machine.I2C שאליו מחובר ה-GT911.

reset_pin הוא מספר הפין או השם (לא אובייקט Pin) המחובר לקו ה-reset של ה-GT911. מנהל ההתקן צריך לשנות את כיוון הפין במהלך ה-reset.

irq_pin הוא מספר הפין או השם (לא אובייקט Pin) המחובר לקו ה-interrupt של ה-GT911. מנהל ההתקן צריך לשנות את כיוון הפין במהלך ה-reset.

address היא כתובת ה-I2C של הבקר. ברירת המחדל היא gt911._DEFAULT_ADDR.

width היא רזולוציית פאנל המגע לאורך ציר ה-X בפיקסלים.

height היא רזולוציית פאנל המגע לאורך ציר ה-Y בפיקסלים.

touch_points הוא המספר המרבי של נקודות מגע בו-זמניות לדיווח (1 עד 5).

reverse_x אם True הופך את ציר ה-X.

reverse_y אם True הופך את ציר ה-Y.

reverse_axis אם True מחליף בין צירי ה-X וה-Y.

sito מפעיל את מצב Single-Input-Touch-Output של הבקר כאשר True.

refresh_rate הוא קצב דיווח המגע ב-Hz.

touch_callback הוא callable אופציונלי המופעל בקצה היורד של פין ה-IRQ כאשר מתרחש אירוע מגע. העבירו None כדי להשתמש במצב polling.

read_id() bytes

מחזיר 4 בתים המכילים את מזהה המוצר של ה-GT911.

read_points() tuple

מחזיר רביעייה (n, points) כאשר n הוא מספר נקודות המגע הפעילות ו-points הוא רשימה של 5 ערכי array("H", ...). כל ערך מכיל [x, y, size, id]: x ו-y הם הקואורדינטות על המסך, size הוא לחץ המגע, ו-id הוא מזהה מעקב ייחודי שנשאר יציב עבור אצבע נתונה לאורך קריאות.

רק n הערכים הראשונים של points מכילים נתונים תקפים.

reset() None

מאפס את בקר ה-GT911 ומאתחל מחדש את מטפל ה-IRQ אם סופק touch_callback.

קבועים

gt911._DEFAULT_ADDR: int

כתובת ה-I2C כברירת מחדל (0x5D) של בקר ה-GT911.