人若无名 便可潜心练剑.|

hazy1k

园龄:7个月粉丝:14关注:0

2025-02-25 09:55阅读: 5评论: 0推荐: 0

第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)

参数

  • indexTOUCH 设备号,目前只支持参数为0.
  • rotate: 面板输出坐标与屏幕坐标的旋转,取值范围为 [0-3]。
    • 0:ROTATE_0: 坐标不旋转。
    • 1:ROTATE_90: 坐标旋转 90 度。
    • 2:ROTATE_180: 坐标旋转 180 度。
    • 3:ROTATE_270: 坐标旋转 270 度。

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 中国大陆许可协议进行许可。

posted @   hazy1k  阅读(5)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起