LIS3DH芯片集成了单击和双击的功能,这给很多应用提供了便利,例如在穿戴设备上,不但减少了布置按键给小巧的结构设计带来的挑战,对于用户来说,这种更大自由度的操作方式更是一种愉悦的享受。下面具体介绍下这个功能吧。
要了解这两个功能的设置,需先了解下相关的寄存器:
这里有一个阈值设置的寄存器,和三个时间的窗口设置的寄存器(timelimit , time latency, time window). 后面在介绍single click 和double click 时会讲到他们分别的作用。
一 Single click
如下图,sensor通过检查加速度的变化是否有超出预先定义的阈值,然后在规定的时间内(time limit)又是否小于此阈值来判断一个single click 的动作,阈值和时间(time limit)就定义了加速的的变化波形。下图中,a 同时满足了阈值和时间限制的条件,是一次成功的动作的识别,然后产生了中断。b只满足了大于阈值的条件,但在规定时间限制内没有降到阈值下,所以不满足识别的条件。
二 Double click
如下图,double click实际上是两个singleclick的识别,但是同时还要满足另外两个时间窗口的要求(timelatency , time window).当第一click识别后,在time latency 窗口内,sensor不会做任何识别,在time window 窗口内开始第二click的识别,判断此时的加速度值是否大于阈值,如果成功识别到第二次click,就会产生一个中断输出一个doubleclick 的事件。
实战技巧:
1)时间窗口的设置,寄存器每个最小的时间单位是LSB=1/ODR(output data rate) , 假设ODR是100 HZ,那最小的时间单位就是10ms,假设你要设的时间是t,那对应的寄存器就要设置为X=t/(1/100).
2)阈值的设定是与量程相关的,1LSB= FULL SCALE/128.
3)数据的采集,为了设置合理的时间窗口和阈值,要进行数据的收集,因为不同的应用,结构,材料可能不同,导致最终敲击的波形会有一些差异,建议收集数据时采用系统能支持的最大采样频率,这样采集的数据才能完整反映实际的波形。如下图是一个双击的波形图。可以看出波形比较尖锐,latency窗口比timelimit 窗口要明显的大。
4) 根据设计的要求合理评估识别率与误触发率,最终配置合理的参数。