英飞凌 PSoC6 评估板 CAPSENSE 触摸滑条应用示例

news2024/9/20 18:47:39

PSoC™ 62 with CAPSENSE™ evaluation kit 开发板(以下简称 PSoC 6 RTT 开发板)是英飞凌(Infineon)联合 RT-Thread 发布一款面向物联网开发者的 32 位双核 MCU 开发套件,其默认内置 RT-Thread 物联网操作系统。本文主要介绍 CAPSENSE™ 技术原理,并通过 RT-Thread Studio 快速开发触摸滑条应用程序。

CAPSENSE 基本原理

在物联网时代,无论是家庭电器还是可穿戴式设备等众多消费类产品,触摸控制已经司空见惯了。由于不再需要传统机械按钮和开关中的活动零件,触摸传感器系统实现了高度可靠性,不太可能因磨损而发生故障。同时,触摸传感器系统可完全封装在保护材料中,因此能够在严苛环境中工作。当然,除了可靠性之外,触摸传感器可轻松满足不同的形状要求,满足客户对产品的美观精巧设计需求。

英飞凌的 CAPSENSE™ 技术就是业界领先的具有防水性能和接近感应功能的触摸感应解决方案。该方案提供完整的器件(PSoC 有专有 CapSense 功能,其中包括一个用于处理电容触摸传感器的完整信号链)、中间件和设计参考,帮助用户设计外观优雅、可靠且易于使用的电容触摸感应功能。同时,CAPSENSE 还带来了行业领先的低功耗运行,平均电流消耗为22 μA,并带来了业内最宽的电压范围(1.71-5.5 V)。并且集成了包括 Capacitive Sigma Delta(CSD)感应算法和自动调谐算法等核心算法,确保在嘈杂的环境下也可以精准触控,适应复杂的外部环境。

从技术原理来看,电容触摸传感器就是充分利用了手指或手接近专门构建的触摸表面时电容将发生变化的特征。触摸传感器使用自电容和互电容两种不同的方法来检测此类变化,并通过放大、滤波等信号处理的手段将其准确捕获。

在这里插入图片描述

用户使用英飞凌 CAPSENSE 电容式触摸传感器界面时,手指在界面上形成与嵌入式传感器的电气连接。传感器与 PSoC 器件一起工作,将有关手指位置的数据转换为各种系统控制功能。一个 PSoC 器件可以用简单的触敏控制取代几十个机械开关和控件。基于 CAPSENSE 的“按键”和滑块控件不像机械按键和开关那样容易受环境磨损影响,因此比传统按键控制更可靠。

在触摸传感器设计方面,电容式传感器板由多层板上的印制线构建而成。对于基本的自电容按钮,最简单的设计是将传感器板印制线放在板子上方,印制线四周环绕着网状接地平面。传感器板连接到控制器(通常连接在板子下方)的输入引脚,还可提供接地平面。最后,顶层覆盖着不导电保护性化合物,形成了传感器覆面。对于小键盘,工程师通过将各个传感器板加入可寻址按钮阵列来扩展此项基本设计。

PSoC6 CAPSENSE 特性

PSoC 6 RTT 开发板配备了一个触摸滑条,方便用户评估 CapSense 功能。你可以基于 CapSense 的强大功能,做一些有趣的项目。

具体来说,PSoC6 中的 CapSense 具有以下特性:

  • 支持自电容和互电容触摸感应;
  • 功能强大的 CapSense Sigma Delta(CSD)和 CapSense Crosspoint(CSX)感应技术,能够为基于自电容和互电容的触摸感应提供一流的信噪比;
  • 在覆盖材料和厚度不同的条件下仍能提供高性能感应(请参考 CapSense 基本原理、覆盖层材料和覆盖层厚度);
  • SmartSense™ 自动调试技术;
  • 接近感应的范围较大(接近感应距离可达 30 cm)。

CAPSENSE 应用示例

RT-Thread 提供了一个简单的触摸滑条应用示例,只需要在 RT-Thread Studio 勾选配置即可快速体验。

双击工程中的 RT-Thread Settings ,打开项目配置页面。在“硬件”选项卡中,找到 Board extended module Drivers,勾选 Enable Slider 和 Enable Slider Demo。此时会自动勾选 Slider Demo 的相关依赖,例如 PWM 功能。

在这里插入图片描述

按 Ctrl + S 保持配置,会更新当前工程。然后重新编译工程,将固件下载到 PSoC 6 RTT 开发板。

在 RT-Thread Studio 打开终端,按 Tab 键可以可以看到当前系统支持的命令,如下所示。

 \ | /
- RT -     Thread Operating System
 / | \     5.0.1 build Sep 20 2024 16:17:44
 2006 - 2022 Copyright by RT-Thread team
msh >
RT-Thread shell commands:
clear            - clear the terminal screen
version          - show RT-Thread version information
list             - list objects
help             - RT-Thread shell help.
ps               - List threads in the system.
free             - Show the memory usage in the system.
pin              - pin [option]
pwm              - pwm [option]
reboot           - Reboot System
pwm_sample       - <pwm0> channel7 sample
Slider_ctrl_samp - Slider sample to ctrl led

其中 Slider_ctrl_samp 就是触摸滑条的 Demo 程序,该程序代码位于 board/ports/slider_sample.c 文件。其功能是通过触摸滑条控制 PWM 波形,从而控制 LED 灯的亮度。

为了方便查看触摸滑条对应的亮度值,我在 update_led_state() 函数中增加了一个打印。

void update_led_state(led_data_t *ledData)
{
    if (ledData->brightness >= 0)
    {
        uint32_t brightness = (ledData->brightness < LED_MIN_BRIGHTNESS) ? LED_MIN_BRIGHTNESS : ledData->brightness;

        /* Drive the LED with brightness */
        rt_pwm_set(pwm_dev, PWM_DEV_CHANNEL, 1 * 1000 * 1000, GET_DUTY_CYCLE(brightness));
        rt_kprintf("brightness = %u\n", brightness);
    }
}

重新编译并下载到开发板,在终端执行 Slider_ctrl_samp 命令启动示例程序,此时用手指触摸滑条,可以看到如下打印。

brightness = 0
brightness = 2
brightness = 13
brightness = 30
brightness = 49
brightness = 71
brightness = 97
brightness = 100

滑条的一侧对应亮度值为 0,另一侧对应亮度值为 100。

资源链接

  • CAPSENSE™ 控制器 - Infineon Technologies
  • 使用 Cypress CY8CKIT 来简化电容触摸传感器的设计
  • PSoC 4 and PSoC 6 MCU CapSense Design Guide

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2149724.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

EasyExcel的基本使用——Java导入Excel数据

使用EasyExcel导入Excel数据有两种方式 无论哪种方式我们都需要建立Excel表格和Java对象的绑定 首先我们需要根据Excel表头定义一个对应的类 excel表示例&#xff1a; 对应的类&#xff1a; 使用ExcelProperty将excel列名和字段名绑定&#xff0c;括号里面填列名 package co…

【Node.js Vue】还在为选什么乐器发愁?乐器推荐系统帮你解决难题,基于用户行为分析的智能推荐,让你不再为音乐器材烦恼

&#x1f34a;作者&#xff1a;计算机毕设匠心工作室 &#x1f34a;简介&#xff1a;毕业后就一直专业从事计算机软件程序开发&#xff0c;至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长&#xff1a;按照需求定制化开发项目…

家庭聚餐:用白酒传递亲情与温暖

在这个快节奏的社会里&#xff0c;家庭聚餐成为了一种难得的团聚时光。在这样的场合&#xff0c;一杯豪迈白酒&#xff08;HOMANLISM&#xff09;往往能够成为亲情的纽带&#xff0c;传递着温暖与爱意。今天&#xff0c;我们就来谈谈在家庭聚餐中&#xff0c;如何通过豪迈白酒来…

docker部署mybatis在线生成(网页版)

使用docker下载镜像 docker pull tanghc2020/gen启动命令 docker run --name gen --restartalways -p 6969:6969 -d tanghc2020/gen启动后页面 请求地址 http://localhost:6969/#/dashboard sql 脚本 CREATE DATABASE IF NOT EXISTS gen DEFAULT CHARACTER SET utf8 D…

TPDO触发条件如何满足?

在上一期中&#xff0c;我们了解到TPDO&#xff08;传输过程数据对象&#xff09;的传输类型有很多种&#xff1a;同步周期性传输、RTR&#xff08;远程传输请求&#xff09;以及异步制造商特定事件等。这些类型的触发条件主要分为三种&#xff1a;同步&#xff08;SYNC&#x…

PCL 读取txt格式点云并可视化

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接&#xff1a; PCL点云算法与项目实战案例汇总&#xff08;长期更新&#xff09; 一、概述 1.1原理 TXT格式的点云文…

高德地图JS API AMap.MouseTool绘制

fang &#x1f916; 作者简介&#xff1a;水煮白菜王 &#xff0c;一位资深前端劝退师 &#x1f47b; &#x1f440; 文章专栏&#xff1a; 高德AMap专栏 &#xff0c;记录一下平时在博客写作中&#xff0c;总结出的一些开发技巧✍。 感谢支持&#x1f495;&#x1f495;&#…

基于SpringBoot的校园二手商品交易平台的设计与实现

文未可获取一份本项目的java源码和数据库参考。 一、课题研究背景意义及现状 1.课题背景 随着社会的发展&#xff0c;低碳经济生活已成为当今世界发展的主题&#xff0c;物品循环利用、回收再造成为了社会关注的焦点。调查发现&#xff0c;随着大学生购买力的增强&#xff0…

李宏毅结构化学习 02

文章目录 一、上篇博文复习二、Separable Case三、Non-separable Case四、Considering Errors五、Regularization六、Structured SVM七、Cutting Plane Algorithm for Structured SVM八、Multi-class and binary SVM九、Beyond Structured SVM 一、上篇博文复习 图中x表示输入的…

CSS 复合选择器简单学习

目录 1. Emmet 语法 1.1 快速生成 HTML 结构语法 1.2 快速生成 CSS 样式 1.3 格式化工具 2. 调试 2.1 打开调试工具 2.2 使用调试工具 3. 复合选择器 3.1 后代选择器 3.2 子选择器 3.3 并集选择器 3.4 伪类选择器 3.3.1 链接伪类选择器 3.3.2 :focus 伪类选择器 …

C++入门 之 类和对象(下)

目录 一、初始化列表 二、隐式类型转换与explict 三、静态成员——static 四、友元 五、内部类 六、匿名对象 七.对象拷贝时的编译器优化 一、初始化列表 之前我们实现构造函数时&#xff0c;初始化成员变量主要使用函数体内赋值&#xff0c;构造函数初始化还有一种方式&…

【重学 MySQL】三十、数值类型的函数

【重学 MySQL】三十、数值类型的函数 基本函数角度与弧度互换函数三角函数指数与对数进制间的转换示例 基本函数 MySQL提供了一系列基本的数值函数&#xff0c;用于处理数学运算和数值转换。以下是一些常用的基本函数及其用法&#xff1a; 函数用法ABS(x)返回x的绝对值。SIGN…

Java 23、JDK 23正式发布!

9月18日消息&#xff0c;Java 23目前已经正式推出&#xff0c;这是继Java 22之后的又一个非长期支持&#xff08;LTS&#xff09;版本&#xff0c;Oracle 对此版本仅提供六个月的支持。 Java 23包含12个新的JEP&#xff08;JDK增强提案&#xff09;&#xff0c;其中包括其中包…

consul服务注册发现与配置中心

目录 1 consul安装与运行 1.1 下载方式 1.2 安装 1.3 启动 1.4 访问方式 2 consul 实现服务注册与发现 2.1 引入 2.2 服务注册 2.3 服务发现 3 consul配置中心 3.1 基础配置 Eureka已经停止更新了&#xff0c;consul是独立且和微服务功能解耦的注册中心&#xff0c;…

黎巴嫩通信设备爆炸初步分析

这两天比较轰动的事&#xff0c;当属中东地区发生的一系列通信设备爆炸事件。下面分析下怎么炸的 1、为什么要用传呼机 传呼机是上世纪八九十年代流行的通信装备&#xff0c;在中国大陆已经基本绝迹&#xff0c;但在世界范围内依然广泛使用&#xff0c;因此它的产业链还活着。…

如何快速修改CSDN代码块或者主题的字体颜色

第一步登录你的CSDN账号然后点击你的头像 第二步点击下拉框中的“内容管理” 第三步&#xff0c;点击“博客设置” 第四步&#xff0c;点击“等级”选择喜欢的主题和颜色 第五步&#xff0c;选择代码块的主题和颜色 最后保存刷新就可以了。

Mybatis Plus分页查询返回total为0问题

Mybatis Plus分页查询返回total为0问题 一日&#xff0c;乌云密布&#xff0c;本人看着mybatis plus的官方文档&#xff0c;随手写了个分页查询&#xff0c;如下 Page<Question> questionPage questionService.page(new Page<>(current, size),questionService.g…

一体化平台数据中心安全建设方案(Word完整原件)

第 一 章 信息安全保障系统 1.1 系统概述 1.2 安全标准 1.3 系统架构 1.4 系统详细设计 1.4.1 计算环境安全 1.4.2 区域边界安全 1.4.3 通信网络安全 1.4.4 管理中心安全 1.5 安全设备及系统 1.5.1 VPN加密系统 1.5.2 入侵防御系统 1.5.3 防火墙系统 1.5.4 安全审计系统 1.5.5 …

基于 ROS 的Terraform托管服务轻松部署ChatGLM2-6B

介绍 ChatGLM2-6B是开源中英双语对话模型ChatGLM-6B的第二代版本&#xff0c;在保留了初代模型对话流畅、部署门槛较低等众多优秀特性的基础上&#xff0c;ChatGLM2-6B具有更强大的性能、更长的上下文、更高效的推理等特性。 资源编排服务&#xff08;Resource Orchestration…

谈对象第二弹: C++类和对象(中)

文章目录 一、类的默认成员函数二、构造函数三、析构函数四、拷贝构造函数五、运算符重载5.1运算符重载5.2赋值运算符重载5.3实现日期类<<、>>重载检查、获取天数关系运算符重载算数、赋值运算符重载Date.hDate.cpp 六、取地址运算符重载6.1const成员函数6.2取地址…