基于电容式传感器的手势识别装置
2020-04-02王俊程
王俊程
(山东省临沂市临沭县第一中学,山东 临沂276799)
1 系统方案
人脸识别的门锁、指纹识别的保险柜都已经进入寻常百姓家,这些高科技的产品的原理是什么?怎么样的技术才能实现?这些问题让我思考,是否可以制作一个手势识别的装置,实现对剪刀石头布、一二三四五手势的识别,并实现对任意人员手势信息的处理及识别。在科技老师的指导下,我设计的手势识别系统主要由单片机控制模块、FDC2214 传感芯片、电源模块等组成,下面分别论证这几个模块的选择。
1.1 主控制器件的论证与选择
方案一:采用STC51 系列单片机
传统的51 单片机为8 位机,价格便宜,控制简单,但是运算速度慢,片内资源少,存储容量小,难以存储大体积的程序和实现快速精准的反应控制。并且受时钟限制,计时精度不高,外围电路也增加了系统的不可靠性。
方案二:采用STM32F103ZET6 单片机
ARM Cortex-M3 内核的STM32F103ZET6 控制芯片,拥有11 个定时器,3 个ADC,13 个通信接口,多达112 个快速I/0 口,计时精度高,反应速度快,价格中等,功耗低,操作也较为简单,开发环境非常容易搭建。
通过比较,我选择方案二,采用ARM Cortex-M3 内核的STM32F103ZET6 控制芯片。同时包含主控芯片在内的控制系统包含了显示、传感器等模块,能够减少外围电路的设计,降低系统设计的难度,非常适合本系统的设计。本作品使用ALIENTEK公司出品的精英开发板直接作为主控板。
1.2 传感器的选择
方案:采用FDC2214。FDC2214 是一个噪声多通道系列,抗EMI,高分辨率,高速电容数字转换器,用于实现电容式传感解决方案。采用了提供创新的基于窄带的架构,可抑制噪声和干扰,同时提供高速分辨率。器件支持宽激励频率范围,为系统设计提供了灵活性。电容式传感是一种低功耗,低成本,高分辨率的非接触式传感技术,可应用于各种应用,范围从接近检测和手势识别到远程液位传感。电容式传感系统中的传感器是任何金属或导体,允许低成本和高度灵活的系统设计。本作品设计的FDC2214 模块板。
1.3 控制系统的论证与选择
基于FDC2214 实现手势接近和判决的实验中存在如下的特征:传感平面的面积越大、手势与传感平面的距离越小,感应的频率变化越大,系统会越灵敏,但同时也可能引入越多的噪声。
方案一:采用单金属板进行信号采集。单金属板信号采集虽然简单,只需要使用FDC2214 芯片的一个通道,但对手掌这样大小的金属板来说,感应频率变化值大,系统过于灵敏,但采用单通道在使用时误差较大,电容变化值过大,数据处理难度较大。
方案二:采用四个金属板分布式进行信号采集。采集多传感平面信号的原理是利用FDC2214 的多通道特性,每一个通道都有相同的外围电路,所以每个通道的采样特性是相同的。多传感平面不仅有单传感平面的所有优点,而且能够降低采集数据的误差和干扰,数据处理难度降低。
2 系统理论分析与计算
2.1 FDC2214 电容值识别的分析
FDC2214 是基于LC 谐振电路原理的一个电容检测传感器。其基本原理如图1 所示,在芯片每个检测通道的输入端连接一个电感和电容,组成LC 电路,被测电容传感端(图1 中灰色标识部分即为被测电容)与LC 电路相连接,将产生一个振荡频率,根据该频率值可计算出被测电容值。利用FDC2214 的工作原理可实现手势接近和识别的功能,如上图所示,黄色部分称为“FDC2214 的传感平面”,该平面为导体材质,当人手接近该导体传感平面时,传感端的电容发生了变化,这就会导致LC电路振荡频率的变化,从而反映出手势接近,以及手势的判定。
2.2 程序的设计
程序功能描述与设计思路:
2.2.1 程序功能描述
根据题目要求软件部分主要实现手势的识别和显示:a.手势识别:能将FDC2214 反馈的不同手势的信号正确的表达出来。b.显示部分:显示不同的手势,如:剪刀石头布。
2.2.2 程序设计思路
使用迪文公司出品的工业串口屏(如右图所示)作为显示模块,其特点是使用其专门的界面绘制工具进行界面编程,我将每个题目需求制作了若干张图片,方便调试和演示。在MCU(STM32F103ZET6,以下简称MCU)的程序设计中,我将工业串口屏的串口接到了MCU 的串口三(TX:PB10,RX:PB11),在每个界面上的按钮样式处安置触摸反馈,作用是触摸该按钮时串口屏会发送一个指令到串口,使MCU 能够识别到测试人员触摸到了相关位置能信息。
图1 显示面板
我使用TI 公司出品的FDC2214 芯片作为该作品的传感核心部件,使用FDC2214,可以检测到测试人员与传感平面的交互信息。MCU 将FDC2214 通过IIC 传输来的数据进行分析:
1 判决模式:a.我将MCU 通过FDC2214 得到的数据进行卡尔曼滤波,对噪声进行有效抑制,得到data1。b.将data_1(滤波后的数据)和data_0(通过训练或者默认的数据)进行比对,如果data_1 在data_0 的+/- 5%的范围内,则认定data_1 就是data_0所代表的手势。c.将数据分析后的结果进行反馈(传输到串口屏),让测试人员得知测试结果。
2 训练模式
a.首先MCU 检测当前训练模式:训练模式分为划拳训练和猜拳训练,划拳训练又分为1、2、3、4、5 五个手势,猜拳训练则分为剪刀、石头、布三个手势。测试人员将欲要训练的手势在串口屏上进行选择,选择后的数据串口屏会通过串口传输到MCU上。
b.具体训练步骤:MCU 得到训练模式后,告知FDC2214 进行工作,开始采样,如果采样数据过小,说明测试人员并没有开始进行收拾训练。一般情况下,MCU 会对每个手势进行三次采样,每次采样采100 个值(滤波后),在进行去平均数并进行存储,每一次采样成功后MCU 会使能蜂鸣器,提醒测试人员采样成功,三次采样成功后,MCU 会通过串口与串口屏进行通信,告知串口屏采样完成,并进行显示。
3 测试方案与测试结果
3.1 测试方案
3.1.1 硬件测试
电路搭建,连接,焊接完成后,检验各元件,显示器等的功能3.1.2 硬件软件联调
编写软件可以实现手势的自动识别,能够满足题目的基本要求,验证软硬件的基本部分没有问题,后续再进行算法的优化,提升识别速度。
3.2 测试条件与仪器
测试条件:检查多次,仿真电路和硬件电路必须与系统原理图完全相同,并且检查无误,硬件电路保证无虚焊。测试仪器:高精度的数字毫伏表,模拟示波器,数字示波器,数字万用表,指针式万用表。