第22章 获取触摸坐标
第二十二章 获取触摸坐标
1. TOUCH模块
TOUCH 类位于 machine 模块下。
from machine import TOUCH
# 实例化 TOUCH 设备 0
tp = TOUCH(0)
# 获取 TOUCH 数据
p = tp.read()
print(p)
# 打印触摸点坐标
# print(p[0].x)
# print(p[0].y)
# print(p[0].event)
1.1 构造函数
# when index is 0
touch = TOUCH(index, rotate = -1)
参数
index:TOUCH设备号,目前只支持参数为0.rotate: 面板输出坐标与屏幕坐标的旋转,取值范围为 [0-3]。- 0:
ROTATE_0: 坐标不旋转。 - 1:
ROTATE_90: 坐标旋转 90 度。 - 2:
ROTATE_180: 坐标旋转 180 度。 - 3:
ROTATE_270: 坐标旋转 270 度。
- 0:
1.2 read方法
TOUCH.read([count])
1.2.1 参数
count: 最多读取的触摸点数量,取值范围为 [0:10],【默认为 1,只读取一个点】。
1.2.2 返回值
返回触摸点数据,类型为元组 ([tp[, tp...]]),其中每个 tp 是一个 touch_info 类实例。
1.3 deinit方法
TOUCH.deinit()
当触摸屏不再使用时,可以调用 deinit 方法释放 TOUCH 资源。
1.4 touch_info类
TOUCH_INFO 类用于存储触摸点的信息,用户可通过相关只读属性访问。
event: 事件码。【目前还不支持,其内部使用的是k230自行维护的一套】track_id: 触点 ID,用于多点触摸。【目前还不支持】width: 触点宽度。【目前等效于track_id,当前我们3.1寸屏幕使用的触摸芯片是不支持获取这个触点宽度的】x: 触点的 x 坐标。y: 触点的 y 坐标。timestamp: 触点时间戳。
2. 基础示例
2.1 获取触摸点坐标
import time
from machine import TOUCH
tp = TOUCH(0)
while True:
# 获取最多 5 个触摸点数据,默认为1.
p = tp.read(5)
# 如果返回的 p 为空元组,表示没有触摸
if p != ():
print("触摸数据:")
for idx, point in enumerate(p, start=1): # 对触摸点进行编号,从 1 开始
print(f"触摸点 {idx}: X = {point.x}, Y = {point.y}")
time.sleep(0.01)

浙公网安备 33010602011771号