gt911 --- متحكم اللمس السعوي خماسي النقاط GT911

توفر وحدة gt911 مشغّلًا لمتحكم شاشة اللمس السعوية الإسقاطية Goodix GT911، وهو اقتران شائع مع لوحات LCD بقياس 4.3"--7" ودقة 800x480. يتتبع المتحكم ما يصل إلى خمس نقاط لمس متزامنة ويبلغ عن كل منها كرباعية (x, y, size, id) حيث يكون id ثابتًا عبر القراءات طالما بقي الإصبع على اللوحة.

يتواصل المشغّل مع الشريحة عبر I2C ويستخدم دبوسي GPIO إضافيين:

  • خط إعادة التعيين، يُبقى منخفضًا أثناء التشغيل ويُبدّل مع خط IRQ لاختيار عنوان I2C ذي السبعة بتات لـ GT911 (0x5D عندما يكون IRQ منخفضًا أثناء إعادة التعيين، و0x14 عندما يكون IRQ مرتفعًا)؛

  • خط المقاطعة، يؤكده المتحكم عند حدوث حدث لمس.

بعد الإنشاء، يمكن للتطبيقات استطلاع اللمسات باستخدام GT911.read_points() أو تزويد touch_callback ليتم استدعاؤها عند الحافة الهابطة لدبوس IRQ.

class GT911 -- متحكم اللمس السعوي خماسي النقاط

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) المتصل بخط إعادة تعيين GT911. يحتاج المشغّل إلى تغيير اتجاه الدبوس أثناء إعادة التعيين.

irq_pin هو رقم أو اسم الدبوس (وليس كائن Pin) المتصل بخط مقاطعة GT911. يحتاج المشغّل إلى تغيير اتجاه الدبوس أثناء إعادة التعيين.

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 هي دالة قابلة للاستدعاء اختيارية تُستدعى عند الحافة الهابطة لدبوس IRQ عند حدوث حدث لمس. مرّر None لاستخدام وضع الاستطلاع.

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.