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_points() tuple¶
تعيد رباعية
(n, points)حيث يكونnعدد نقاط اللمس النشطة وpointsقائمة من 5 مدخلات من نوعarray("H", ...). يحتوي كل مدخل على[x, y, size, id]: حيثxوyهما إحداثيات الشاشة، وsizeهو ضغط اللمس، وidهو معرّف تتبع فريد يبقى ثابتًا لإصبع معين عبر القراءات.المدخلات الأولى
nفقط منpointsتحتوي على بيانات صالحة.