psoc4的capsense总结

摘要:
一般原理是传感器获得外部电容值并减去内部参考值以获得差值。与设置的阈值相比,如果差值大于阈值,则认为手指被按压。基线官员给出了以下定义,即基线值的计算低于噪声阈值。这些噪声导致传感器读数不为零,即使没有单击键。2) 滞后意味着当外部电容增加时,外部电容和基线之间的差异将自然增加。当外部电容增加到设置的阈值时,它不会被视为立即接触。

psoc4的capsense算是个比较实用的东西,触摸按键,显得有点高大上,呵呵。今天试用了一下,对照着数据手册,现在总结一下。

1,先说原理,官方做文档的时候应该把原理讲一下,不要上来就讲怎么用,怎么配置,如果不知道原理的话那只能照葫芦画瓢了,大致原理就是传感器获得外部电容值的大小然后减去内部基准得到一个差值,这个差值与设定的阈值比较,如果大于阈值就认为有手指按动,否则判断为没有按动,就这么简单。内部基准psoc起了个名字叫基线。基线是通过一定的算法得到的。

2,模块用的是capsense_csd2.1,关于模块的配置因为用的是便宜的cy8ckit-049-42xx套件,没有所谓的slider,但是片子的io都通过引线引出来了,板子边上都是过孔,这就够了。但是需要注意的是需要调节的灵敏一点,否则检测不到。

3,下面是一些细节性的东西。

1),基线官方给了如下定义

psoc4的capsense总结第1张

基线值的计算是在噪声阈值下计算的,举个例子,假如我设置的噪声阈值是10,而现在环境中有噪声,这些噪声造成了即使在没有点击按键的情况下传感器的读数也不是0,而是大于0小于10的值,假设是5,那么此时基线就会变成5,但是如果噪声阈值仍然是10,但是噪声较大,是20,那么此时基线值是不会改变的,依然是0,而此时就会判断为有按动按键。

2)迟滞

psoc4的capsense总结第2张

迟滞其实就是当外部电容增大的时候减去基线的差值自然也是增大的,增大到设定的阈值的时候并不会立即认为有触摸,而是需要大于阈值加迟滞值。而当外部电容减小到阈值下的时候也不会立即认为没有触摸,而是需要小于阈值减去迟滞值,才会认为没有触摸。

3)官方推荐的各个值设置

psoc4的capsense总结第3张

我的设置

psoc4的capsense总结第4张

手指阈值是10,噪声阈值是5,迟滞是2,防抖动是1,也就是不防抖了,采用8位计数。

4)对于capsense的具体硬件部分的工作原理就不是很清楚了,只知道用到了idac,和一个外部电容cmod,至于是怎么工作的,找不到资料。

5)软件部分用到几个函数,但是需要先了解一些数据结构。

psoc4的capsense总结第5张

psoc4的capsense总结第6张

psoc4的capsense总结第7张

psoc4的capsense总结第8张

用到的几个函数

psoc4的capsense总结第9张

psoc4的capsense总结第10张

psoc4的capsense总结第11张

psoc4的capsense总结第12张

psoc4的capsense总结第13张

关于capsense_checkiswidgetactive()其实比较的两个对象分别是阈值和capsence_sensorsignal[];而非官方说的capsense_signal[].官方的说法让人不知所云,专门找了英文文档也是这么写的,看来不是翻译的问题。

那么整个软件的流程其实就可以用数据的变化来总结,先是是获取原始数据,获取基线值,之后就是差值获取,然后差值与阈值比较得到结果,所以每次要想获得结果需要三个函数1,updateenabledbaselines()会获得baseline的值,并且用sensorraw的值减去baseline的值获得sensorsignal的值。2,scanenabledwidgets()获得sensorraw的值。3,checkiswidgetactive 将sensorsignal的值与阈值比较得到结果。

免责声明:文章转载自《psoc4的capsense总结》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Kotlin入门(14)继承的那些事儿.NET 百万级 大数据插入、更新 ,支持多种数据库下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【Python】-NO.98.Note.3.Python -【Python3 解释器、运算符】

1.0.0 Summary Tittle:【Python】-NO.98.Note.3.Python -【Python3 解释器】 Style:Python Series:Python Since:2018-07-08 End:2018-07-08 Total Hours:30+ Degree Of Diffculty:5 Degree Of Mastery...

决策树算法总结

参考:《机器学习》Tom版 以及http://blog.csdn.net/v_july_v/article/details/7577684 一、简介 决策树是一个预测模型;他代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。决策树仅...

jq+layui 总结1

1、//获取当前时间*24小时制var myDate = new Date(); var createTime=myDate.toLocaleString('chinese', { hour12: false }); 2、//获取select中选中的值var temType = $("#temType option:selected").text(); 3...

jdk 8 的内存参数修改

jdk内存实际是jvm内存,jvm有一个运行时数据区,其实就是对这一部分的大小分配。运行时数据区通常包括这几个部分:程序计数器(Program Counter Register)、Java栈(VM Stack)、本地方法栈(Native Method Stack)、方法区(Method Area)、堆(Heap) Xss:每个线程的stack大小(栈)Xm...

原创-PromQL语法

匹配标签值时可以是等于,也可以使用正则表达式。总共有下面几种匹配操作符: =:完全相等 !=: 不相等 =~: 正则表达式匹配 !~: 正则表达式不匹配 Prometheus的4种数据类型如下。·瞬时向量(Instant vector):一组时间序列,每个时间序列包含单个样本,它们共享相同的时间戳。也就是说,表达式的返回值中只会包含该时间序列中最新的一...

java生成UUID通用唯一识别码

一、UUID概述 UUID含义是通用唯一识别码 (Universally Unique Identifier),这是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OSF) 的组织在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部份。 UUID 的目...