首页 > 其他分享 >英飞凌 PSoC6 评估板 CAPSENSE 触摸滑条应用示例

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

时间:2024-09-21 09:23:28浏览次数:11  
标签:PSoC6 RT Thread brightness 英飞凌 示例 触摸 CAPSENSE 传感器

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。

资源链接

标签:PSoC6,RT,Thread,brightness,英飞凌,示例,触摸,CAPSENSE,传感器
From: https://blog.csdn.net/luckydarcy/article/details/142392056

相关文章

  • 元学习的简单示例
    代码功能模型结构:SimpleModel是一个简单的两层全连接神经网络。元学习过程:在maml_train函数中,每个任务由支持集和查询集组成。模型先在支持集上进行训练,然后在查询集上进行评估,更新元模型参数。任务生成:通过create_task_data函数生成随机任务数据,用于模拟不同的学习任务......
  • Javascript 中的展开和休息运算符及其示例
    剩余和扩展运算符是javascript中强大的功能,允许您更有效地处理数组、对象和函数参数。它们都使用相同的语法(...),但用途不同。休息操作员(...)剩余运算符用于将所有剩余元素收集到数组中。它通常用在函数参数中来处理可变数量的参数。休息运算符示例:functionsum(......
  • CompletableFuture使用示例
    CompletableFuture是Java8中引入的一个功能强大的类,它实现了Future和CompletionStage两个接口,主要用于异步编程。通过它,开发者可以以一种非阻塞的方式编写异步代码,从而提高程序的响应速度和资源利用率。异步执行:CompletableFuture支持在后台线程中异步执行计算或操作,避免阻塞主线......
  • JavaScript For 循环示例
    标准for循环for(leti=0;i<h2>for...of循环(遍历数组)</h2><preclass="brush:php;toolbar:false">constfruits=['apple','banana','orange'];for(constfruitoffruits){console.log(fruit);登录后复制......
  • Javascript Slice 方法及其示例
    什么是javascript数组切片?array.prototype.slice是一个jsarray方法,用于从现有数组中提取连续的子数组或“切片”。javascript切片可以接受两个参数:切片的开始和结束指示符——两者都是可选的。也可以在没有任何参数的情况下调用它。因此,它具有以下调用签名://slice();slice......
  • GEN 自动生成 GORM 模型结构体文件及使用示例
    后端-GEN自动生成GORM模型结构体文件及使用示例-个人文章-SegmentFault思否背景GEN是一个基于GORM的安全ORM框架,由字节跳动无恒实验室与GORM作者联合研发,主要功能说白了就是帮助生成数据表对应的模型文件和更安全方便地执行SQL。直接使用GORM与GEN工具......
  • JavaScript For 循环示例
     零食故事:假设您有一篮子零食:constsnacks=['apple','banana','chocolate'];现在,您想与您的朋友分享这些零食。但你不是把整个篮子都给他们,而是把每件零食都拿出来,一一递给他们:console.log(...snacks);//output:applebananachocolate...(摊开)操作符就像是把......
  • MyFlash使用示例——美团点评的开源MySQL闪回工具安装及使用示例
    下载及安装我已经将二进制安装包上传至网盘,点击如下链接进行下载——链接:https://pan.baidu.com/s/1RzuHv6nDiAVMP7yk03bdNg?pwd=jtua提取码:jtua将如下两个二进制文件拷贝至Linux系统PATH路径下将mysqlbinlong20160408重命名为mysqlbinlog1.Howtousecdbinary......
  • 《华为三台交换机堆叠的详细命令行配置示例》
    华为三台交换机堆叠的详细命令行配置示例目录目录华为三台交换机堆叠的详细命令行配置示例 在Switch1(作为主交换机)上的配置: 1. 进入系统视图2. 开启堆叠功能并设置堆叠域编号(假设为10)3. 设置堆叠优先级(假设为200,数值越大越优先成为主交换机)4. 配置堆叠端口 ......
  • 华为AC+AP/AP有线口配置有线无线用户统一接入示例
    华为AC+AP/AP有线口配置有线无线用户统一接入示例文章目录华为AC+AP/AP有线口配置有线无线用户统一接入示例前言一、网络拓扑和网段划分二、实验配置1.SW1配置:2.SW2配置:3.AC配置:验证前言在实际的使用场景中,有线网络和无线网络环境通常是共同存在的。例如在办公区......