gt911 --- Bộ Điều Khiển Cảm Ứng Điện Dung 5 Điểm GT911

Mô-đun gt911 cung cấp trình điều khiển cho bộ điều khiển màn hình cảm ứng điện dung Goodix GT911, một sự kết hợp phổ biến với các bảng LCD 800x480 kích thước 4.3"--7". Bộ điều khiển theo dõi tối đa năm điểm chạm đồng thời và báo cáo mỗi điểm dưới dạng tuple (x, y, size, id) trong đó id ổn định qua các lần đọc miễn là ngón tay vẫn còn trên bảng.

Trình điều khiển giao tiếp với chip qua I2C và sử dụng hai GPIO bổ sung:

  • một đường reset, giữ ở mức thấp trong quá trình khởi động và được kích hoạt cùng với đường IRQ để chọn địa chỉ I2C 7-bit của GT911 (0x5D khi IRQ ở mức thấp trong quá trình reset, 0x14 khi IRQ ở mức cao);

  • một đường ngắt, được bộ điều khiển kích hoạt khi có sự kiện chạm.

Sau khi khởi tạo, các ứng dụng có thể thăm dò các lần chạm bằng GT911.read_points() hoặc cung cấp touch_callback để được gọi tại cạnh xuống của chân IRQ.

class GT911 -- Bộ Điều Khiển Cảm Ứng Điện Dung 5 Điểm

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)

Tạo một đối tượng bộ điều khiển màn hình cảm ứng GT911.

bus là đối tượng bus machine.I2C mà GT911 được kết nối vào.

reset_pin là số hoặc tên chân (không phải đối tượng Pin) được kết nối với đường reset của GT911. Trình điều khiển cần thay đổi hướng chân trong quá trình reset.

irq_pin là số hoặc tên chân (không phải đối tượng Pin) được kết nối với đường ngắt của GT911. Trình điều khiển cần thay đổi hướng chân trong quá trình reset.

address là địa chỉ I2C của bộ điều khiển. Mặc định là gt911._DEFAULT_ADDR.

width là độ phân giải bảng cảm ứng dọc theo trục X tính bằng điểm ảnh.

height là độ phân giải bảng cảm ứng dọc theo trục Y tính bằng điểm ảnh.

touch_points là số điểm chạm đồng thời tối đa để báo cáo (1 đến 5).

reverse_x nếu là True thì lật trục X.

reverse_y nếu là True thì lật trục Y.

reverse_axis nếu là True thì hoán đổi trục X và Y.

sito bật chế độ Single-Input-Touch-Output của bộ điều khiển khi là True.

refresh_rate là tốc độ báo cáo chạm tính bằng Hz.

touch_callback là một hàm có thể gọi tùy chọn được gọi tại cạnh xuống của chân IRQ khi có sự kiện chạm. Truyền None để dùng chế độ thăm dò.

read_id() bytes

Trả về 4 byte chứa ID sản phẩm của GT911.

read_points() tuple

Trả về một tuple (n, points) trong đó n là số điểm chạm đang hoạt động và points là danh sách 5 mục array("H", ...) . Mỗi mục chứa [x, y, size, id]: xy là tọa độ màn hình, size là áp lực chạm, và id là ID theo dõi duy nhất ổn định cho một ngón tay qua các lần đọc.

Chỉ n mục đầu tiên của points chứa dữ liệu hợp lệ.

reset() None

Đặt lại bộ điều khiển GT911 và tái vũ trang trình xử lý IRQ nếu có touch_callback được cung cấp.

Hằng số

gt911._DEFAULT_ADDR: int

Địa chỉ I2C mặc định (0x5D) của bộ điều khiển GT911.