| 
 
 12| 4
 
 | 
[项目] 【花雕动手做】CanMV K230 AI视觉识别模块之使用触摸显示 | 
![]() 什么是 CanMV K230? CanMV K230是一款高性价比的RISC-V边缘AI平台,凭借低功耗、强视觉处理能力和开放的开发生态,成为嵌入式AI开发的理想选择,尤其适合需要快速部署视觉与AI功能的创客、中小企业及教育场景。CanMV 是一套 AI 视觉开发平台,K230 是其核心芯片。该模块结合了图像采集、AI推理、边缘计算等能力,适合嵌入式视觉应用开发。 CanMV:类似 OpenMV 的图像处理框架,支持 Python 编程,简化视觉识别开发流程。 K230 芯片:嘉楠科技推出的 AIoT SoC,采用 RISC-V 架构,内置第三代 KPU(AI加速单元),算力高达 6 TOPS,性能是 K210 的 13.7 倍。 ![]() ![]()  | 
| 
知识点 触摸显示是 “显示面板 + 触摸感应技术” 的结合体,能让用户通过手指或触控笔直接与屏幕交互(如点击、滑动、缩放),核心是在显示图像的同时,实时定位并识别触摸动作,实现 “所见即所控”。 1、核心组成:显示与触摸的结合 触摸显示的功能实现依赖两大核心模块,二者需协同工作: 显示模块:即常规的屏幕面板(如 LCD、OLED、Mini/Micro LED),负责输出图像,是触摸交互的 “视觉载体”。 触摸模块:集成在显示面板表面或内部的感应层,负责检测触摸位置和动作,是 “交互输入载体”。 2、主流触摸技术原理(按应用场景分) ![]() 3、关键技术指标(影响使用体验) 触控点数:支持同时识别的触摸位置数量,电容式普遍支持 10 点以上(如手机双手缩放),电阻式仅支持 1 点。 响应速度:触摸动作到屏幕反馈的时间,通常要求<50ms(游戏、绘画场景需更快,<10ms)。 触摸精度:定位触摸点的误差范围,手机 / 平板需<1mm,大尺寸会议屏允许<5mm。 环境适应性:包括防水(如手机 IP68 触控)、抗干扰(如避免电磁信号影响)、低温 / 高温稳定性(工业场景)。 4、典型应用场景 消费电子:手机、平板、笔记本触控板、智能手表(如 Apple Watch)。 办公 / 商用:会议大屏、自助终端(如银行 ATM、商场导购屏)、POS 收银机。 工业 / 医疗:工业控制面板(如生产线设备)、医疗诊断仪(需防菌触摸)。 家居 / 车载:智能中控屏(如冰箱、空调)、车载触控屏(需抗高温、防眩光)。 5、发展趋势 “屏内触摸”(In-Cell/On-Cell):将触摸感应层集成到显示面板内部(如 OLED 屏),减少屏幕厚度,提升透光率(如手机全面屏)。 柔性触摸:配合柔性 OLED 屏,实现可折叠 / 卷曲设备的触控(如折叠屏手机)。 触控反馈:结合振动马达(如手机 “线性马达”),触摸时提供物理反馈(如点击时震动),增强交互真实感。 ![]() ![]()  | 
| 
【花雕动手做】CanMV K230 AI视觉识别模块之使用触摸显示 用CanMV IDE打开例程代码,将K230用USB连接到电脑上 点击左下角运行按钮即可开始运行程序 初始界面是白色的 用手指在屏幕上移动,可以看到随着手指的移动,屏幕上绘制出黑色的线条。 项目测试实验代码 代码结构 1、基础设置: 导入必要模块 初始化触摸设备 定义显示常量 创建和初始化图像 初始化显示器和媒体管理器 2、主循环中: 检查是否需要退出 读取触摸数据 如果有触摸点: 检查触摸事件类型 如果有上一个坐标点,绘制连线 更新坐标 显示图像 短暂休眠 3、异常处理: 处理键盘中断 处理其他异常 4、清理工作: 销毁显示器 启用休眠模式 释放媒体缓冲区 TOUCH 相关资料 1. 概述 触摸模块基于 RTT 的触摸框架,支持单点和多点电容触摸屏及电阻触摸屏。 2. API 介绍 TOUCH 类位于 machine 模块下。 示例 构造函数 参数 index: TOUCH 设备号,为 0 时,表示使用系统自带的触摸,为 1 时,表示使用 CanMV 专有的触摸驱动 type: 触摸驱动类型,具体定义参考触摸类型 rotate: 面板输出坐标与屏幕坐标的旋转,取值范围为 [0-3],具体定义参考坐标旋转。 range_x: index=1 时有效,触摸输出坐标的宽度最大值 range_y: index=1 时有效,触摸输出坐标的高度最大值 i2c: index=1 时有效,触摸使用 I2C 总线对象 slave_addr: index=1 时有效,触摸芯片的从机地址,可选参数,不传入使用驱动默认值 rst: index=1 时有效,触摸复位引脚对象 int: index=1 时有效,触摸中断引脚对象,当前不支持 read 方法 获取触摸数据。 参数 count: 最多读取的触摸点数量,取值范围为 [0:10],默认为 0,表示读取所有触摸点。 返回值 返回触摸点数据,类型为元组 ([tp[, tp...]]),其中每个 tp 是一个 touch_info 类实例。 deinit 方法 释放 TOUCH 资源。 参数 无 返回值 无 3. TOUCH_INFO 类 TOUCH_INFO 类用于存储触摸点的信息,用户可通过相关只读属性访问。 event: 事件码,具体参考触摸事件。 track_id: 触点 ID,用于多点触摸。 width: 触点宽度。 x: 触点的 x 坐标。 y: 触点的 y 坐标。 timestamp: 触点时间戳。 4. 常量 4.1 触摸事件 EVENT_NONE: 无事件。 EVENT_UP: 触摸按下后抬起。 EVENT_DOWN: 触摸按下开始。 EVENT_MOVE: 触摸按下后移动。 4.2 坐标旋转 ROTATE_0: 坐标不旋转。 ROTATE_90: 坐标旋转 90 度。 ROTATE_180: 坐标旋转 180 度。 ROTATE_270: 坐标旋转 270 度。 4.3 触摸类型 TYPE_CST328: CanMV 专有触摸驱动 TYPE_CST226SE: CanMV 专有触摸驱动 TYPE_GT911: CanMV 专有触摸驱动  | 
 沪公网安备31011502402448© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed