第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)
2.2 简易画板
本文作者:hazy1k
本文链接:https://www.cnblogs.com/hazy1k/p/18735576
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步