周雄健
瑞萨电子(中国)有限公司 北京 100191
3D手势识别在家电、汽车以及工业设备上应用得越来越广泛。以家电产品为例,在很多场合下,人们更希望采用非接触式的控制。例如,在使用吸油烟机时,通常用户的手是潮湿或粘有油污的,使用3D手势控制可以避免手直接接触吸油烟机,在一定距离外进行控制。同样,在智能马桶、智能水龙头、智能冰箱等智能家居应用中,3D手势识别也具有更加便捷、卫生、高效等优势。本文基于瑞萨电子的静电电容式触摸检测技术,介绍静电电容式3D手势识别的基本原理以及抗干扰技术等。
静电电容式触摸检测通过捕捉人体与电极之间静电电容(1pF以下)的微弱变化,判断开关的ON/OFF状态。瑞萨电子开发的静电电容式触摸检测方法,利用开关电容滤波器(SCF)将静电电容量转换为电流量,对该信号进行放大和数字化处理后,不仅可以判定开关的ON/OFF状态,还能判断人体相对于电极的3D空间坐标。根据人体在3D空间中的坐标变化,可以识别出手势类型,从而实现非接触式的3D手势控制。
静电电容式3D坐标计算是基于互容式的静电电容式触摸检测,发生的机理如图1所示。互电容方式基本结构包含接收电极、发送电极及脉冲发生器。发送电极输出脉冲时,和接收电极间产生电磁场耦合(Field Coupling)。此时,如果人体接近,一部分电磁场将耦合到人体,导致电极间的电磁场耦合减少。通过测量接收电极上电磁场耦合的减少,可以判断人体的接近。
静电电容式3D坐标计算使用互容式电极面板来计算空间坐标。电极面板由4个发送电极和1个接收电极组成,如图2左侧所示;手的3D坐标定义如图2右侧所示。
上、下、左、右4对电极的电容计数值(简称:计数值)在没有任何物体接近的状态下,是一个稳定的计数值,称为参考值。当手接近或离开电极面板时,电极的计数值会产生变化,如图3所示。利用计数值相对于参考值的差异程度可以计算3D坐标位置。
如2.1节所述,利用电极计数值和参考值的差异可以计算X/Y/Z三轴坐标。电极计数值和参考值的差值为Δcount。由于4个电极在水平和垂直方向上对称分布,如果Z轴位置相同,则4个电极的Δcount的平均值Δaverage大致相同。手越接近电极面板,Δaverage越大,如图4左侧所示。Z轴坐标和Δaverage是分段近似线性关系,如图4右侧所示。事先测量好不同的特定Z轴坐标点下的Δaverage参数作为基准,根据Δaverage的值就可以计算出当前的Z轴坐标。
图1 互容式静电电容的发生机理
图2 互容式电极面板结构
图3 电极计数值变化
图4 Δaverage和Z轴坐标关系
例如,在(0,0,100)坐标点下,Δaverage=500。在(0,0,150)坐标点下,Δaverage=250。如果当前的Δaverage是325,那么当前Z轴坐标的计算方法如下:
z=100+((500-325)/((500-250)/(150-100)))
=100+(175/5)
=135
当前Z轴坐标确定后,计算当前X坐标。相同Z轴坐标下,沿X轴方向移动手,左电极和右电极的Δcount会产生很大的差异,这个差异被定义为Δhorizontal。手沿X轴移动时,Δcount和Δhorizontal的变化如图5所示。手的X轴坐标为0时,左电极和右电极的Δcount大致相同,手越接近左电极或右电极,Δcount的差异越大。Δhorizontal在特定的Z轴坐标下,是近似线性的,Z轴坐标越小,Δhorizontal的斜率越大。
在特定Z轴坐标点下的Δhorizontal的斜率为Δx_slope_REF,这是事先测定的参数。首先,计算当前Z轴坐标下的Δhorizontal的斜率Δx_slope。然后,根据当前的Δx_slope和Δhorizontal计算X轴坐标。Z轴坐标和Δx_slope是分段近似线性关系,如图6所示。
图5 手沿X轴移动时的Δcount和Δhorizontal
图6 Δx_slope和Z轴坐标关系
图7 软件流程图
例如,在Z轴坐标为100mm时,Δx_slope=8。在Z轴坐标为150mm时,Δx_slope=3。如果,当前的Z轴坐标为135mm。那么Z轴坐标135mm下的Δx_slope计算如下:
Δx_slope=3+((150-135)*((8-3)/(150-100))=4.5
当前的Δhorizontal是180时,X轴坐标的计算方法如下:
x=180/4.5=40
这样就可以根据4个电极计数值和参考值的差值Δcount,计算出Z轴坐标为135mm,X轴坐标为40mm。因为4个电极是左、右、上、下的对称分布,因此Y轴坐标的计算过程和X轴坐标是相同的。
瑞萨电子提供的静电电容式触摸检测解决方案,不仅在电容触摸传感单元(简称:CTSU)中内置了多种噪声抑制电路,同时还提供了用于抑制噪声的软件滤波器。但即使这样,因为3D坐标计算具有高敏感度,极易受到干扰影响,因此仍然需要额外的噪声环境判断和处理。在软件中,如果判断出噪声超出了设定阈值,那么会马上停止3D坐标计算,直到判断出噪声在正常范围内后,才会再次恢复3D坐标计算。
3D坐标计算软件的流程图如图7所示,其中包含了多个抗干扰处理措施。
瑞萨电子提供2种3D手势识别参考方案。一种是以RX231为控制MCU的16×16cm尺寸电极参考方案,Z轴的识别距离为20cm。另一种是以RX130为控制MCU的8×8cm尺寸电极参考方案,Z轴的识别距离为10cm。X/Y/Z轴最小识别精度可以达到1mm。2种3D手势识别参考方案,如图8所示。瑞萨电子官方网站上提供了完整的原理图、元器件表和PCB参考尺寸。
瑞萨电子提供了代码公开的X/Y/Z坐标计算软件,上、下、左、右、下压、顺时针旋转和逆时针旋转等手势识别代码以软件库的形式提供。此外,还提供了上位机监控软件“3D Monitor”,如图9所示。
图8 瑞萨电子3D手势识别Demo
图9 瑞萨电子3D手势识别上位机监控软件
利用静电电容式触摸检测技术,可以实现非接触式的3D手势识别。相对于红外、超声波或视频手势识别,基于静电电容式触摸检测的3D手势识别具有低成本,不受光线影响,不怕遮挡等优势。电极面板上可以覆盖玻璃、亚克力、塑料、木材、石头等多种非导体材料,具有良好的应用前景。