本系统设计了一个手势识别装置。装置由单片机控制模块、FDC2214传感器模块、液晶显示模块、语音识别以及按键模块组成。装置实现判决和训练两种工作模式,在判决模式下,通过FDC2214传感器芯片来实现手势接近判决;在训练模式下,通过FDC2214传感器芯片来实现手势接近以及任意人员手势信息的录入。FDC2214传感器模块配合递归平均滤波算法调节,将手势信息数据反馈给单片机,从而实现手势识别装置的各个功能。本设计采用的核心微控制器为STM32F103ZET6、FDC2214芯片为传感器进行检测。除此之外,用按键模块来选择工作模式和游戏类型、将测试结果通过OLED显示出来并进行语音输出。
关键词:STM32F103ZET6;递归平均滤波算法;FDC2214
1.1总体方案的设计
手势识别装置包括微控制器模块、传感器检测模块、按键选择模块OLED显示模块以及语音输出模块。总体控制系统框图如图1-1所示。
图 1-1 总体控制系统框图
设计采用FDC2214传感器模块,进行判决模式下手势的接近和识别,同时在训练模式下将任意人员的指纹信息进行采集录入,然后将采集的数据反馈给单片机。除此之外,由于FDC2214传感器的功能特性,在进行手势接近和识别时,会产生一些干扰而产生很多系统误差,为了消除误差,我们又引入递归平均滤波算法,从而使系统具有良好性能,能很好地实现题目中要求的功能,在进行检测时更加准确稳定。
1.2 机械部分方案的设计
根据任务要求,因为手势识别装置对系统稳定性、准确性和抗干扰性有很高要求,为使FDC2214能准确进行手势识别和指纹信息录入,自制了亚克力板和PCB板结合的感应测试区域。机械结构实物如图1-2所示。
图1-2 机械结构实物图
1.3 微处理器的选择与论证
方案一:采用STC89C52单片机为主控芯片,STC89C52是STC89C51单片机的增强版,是STC公司生产的一种低功耗、高性能8位微处理器,具有8K可编程Flash存储器,总共有32位I/O口线,3个16位定时器/计数器,4个外部中断,全双工串行口等资源。但主频低,编程繁琐,外设资源少。
方案二:采用STM32F103ZET6为主控芯片,STM32系列单片机是基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。它具有512K片内Flash,64K片内ARM,片内Flash支持在线编程(IAP),多达80个IO(大部分兼容5V逻辑),4个通用定时器,2个高级定时器,2个基本定时器,3路SPI接口,2路I2S接口,2路I2C接口,5路USART等丰富资源,但该芯片开发周期长,编程复杂,对底层库函数使用和外设要求高,可以满足本设计的需求。
方案三:采用MSP430F5529单片机为主控芯片,MSP430系列单片机是美国德州仪器公司推向市场的一种16位超低耗能,具有精简指令集的混合信号处理器。它将多个不同功能的模拟电路,数字电路模块和微处理器集成在一个芯片上,处理能力强大,运算速度快,片内资源丰富以及其功耗超低,并具有独立液晶驱动电路的硬件接口。
综合考虑,STM32F103ZET6控制器能够满足设计要求,故选择方案二。
1.4 显示模块的选择与论证
方案一:使用OLED显示测试结果。OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。LCD都需要背光,而OLED是自发光,所以显示效果更好一些,分辨率也可以做到很高。
方案二:使用LCD1602显示测试结果。LCD1602能够能够同时显示32个字符,价格便宜,编程简单而且稳定可靠。LCD1602液晶屏是一种图形点阵显示器,显示原理简单易懂,都是液晶屏内部的液晶材料变化而显示不同的字符。
方案三:使用12864显示测试结果。12864是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集,利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字.,也可完成图形显示,低电压低功耗是其又一显著特点。
综合考虑,在手势识别装置中我们为使显示效果更好,而OLED分辨率更高,故选择方案一。
2.1 手势识别系统分析
基于TI公司传感芯片FDC2214设计制作的手势识别装置,实现对猜拳游戏和划拳游戏的判决。该装置具有训练和判决两种工作模式,在判决模式下实验装置能对指定人员进行猜拳游戏和划拳游戏的判决。在训练模式下能对任意人员进行猜拳游戏和划拳游戏的手势训练,经过训练后,能进行正确的猜拳游戏和划拳游戏的手势判决。经过系统分析,我们决定用按键控制手势识别装置的两种工作模式,在判决模式下,对指定人员进行猜拳游戏和划拳游戏的判决;在训练模式下,将任意人员的手势信息录入系统,然后再进入判决模式下进行游戏判决。
2.2 递推平均滤波算法理论分析
FDC2214传感器模块实现手势接近和判决的实验中存很多问题,传感平面的面积越大、手势与传感平面的距离越小,感应的频率变化越大,系统会越灵敏,但同时也可能引入越多的噪声。为解决这些问题,我们采用了递推平均滤波算法。
递推平均滤波算法采用环型队列结构可以方便地实现这种数据存放方式,队列的长度固定为N。如果取N个采样值求平均,存储区中必须开辟N个数据的暂存区。每新采集一个数据便存入暂存区中,同时去掉一个最老数据,保存这N个数据始终是最新更新的数据。推滤波算法对周期性干扰有良好的抑制作用,平滑度高,适用于高频振荡的系统。为此,我们能够很好地解决手势识别系统中存在的干扰问题。滤波器输出表达式(2.1):
式(1)中y(t)是滤波器的输出,f(x)是滤波器的输入,T是滑动滤波长度,滤波器的输出信号的幅值响应表达式(2.2):
相频响应表达式(2.3):
3.1硬件设计的实现
系统以STM32F103ZET6单片机为控制器,FDC2214传感器模块进行手势识别和手势信息的输入,按键模块来选择装置的工作模式,OLED显示测试结果,语音模块ISD1700输出判决结果。
3.1.1 微处理器电路
基于STM32F103单片机的主控电路,STM32F103是ST旗下的一款常用的增强型系列微控制器,STM32F103增强型微控制器系列使用高性能的ARM/Cortex-M3/32位的RISC内核,具有处理能力强,功耗低,执行能力强,中断源多等优点。图3-1为STM32F103ZET6单片机引脚图。
图3-1 STM32F103ZET6单片机引脚图
在整个系统中由STM32F103ZET6单片机控制实现整个功能,通过FDC2214传感器模块进行手势的识别和手势信息的输入、滤波算法以及液晶显示等功能。系统采用C语言进行编程,C语言生成目标代码质量高,程序执行效率高,更易控制系统。
3.1.2 FDC2214检测模块
FDC2214是基于LC谐振电路原理的一个电容检测传感器。在芯片每个检测通道的输入端连接一个电感和电容,组成LC电路,被测电容传感端与LC电路相连接,将产生一个振荡频率,根据该频率值可计算出被测电容值。我们利用FDC2214的工作原理可实现手势接近和识别的功能,当人手接近导体传感平面时,传感端的电容发生了变化,这就会导致LC电路振荡频率的变化,从而反映出手势接近,以及手势的判定。FDC2214电路图如图3-2所示。
图3-2 FDC2214模块原理图
3.1.3 按键模块
系统中按键模块主要用来选择判决模式和训练模式,判决和训练模式下又分别有猜拳游戏和划拳游戏。按键易控制且占用I/O较少。只需测此时I/O口的高低电平,有键按下时I/O测出低电平,系统进入中断,执行所需功能。按键电路如图3-3所示。
图3-3 按键模块电路
3.1.4 显示模块
显示的实现主要靠OLED,通过串行数据使OLED显示手势识别装置的测试结果,这样节省单片机I/O端口,提高单片机工作效率,OLED显示电路如图3-4所示。
图3-4 显示模块
3.1.5 语音模块
系统语音输出采用的ISD1700模块具有音质好、简单易用、外围电路简单等特点,兼容SPI控制和独立按键控制。RS232通信接口,支持在线录入,预留SP+/SP-输出接口,可直接驱动4到8欧姆、1到5W的喇叭录音采样率可选择不同声音的采样率使用28脚紧缩座,预留4个用户自定义功能按键,支持USB供电和外接电源操作容易直观。语音输出电路如图3-5所示。
图3-5语音输出电路
3.2软件设计的实现
3.2.1软件的语言和开发环境
系统以STM32F103ZET6单片机为控制器,采用C语言对单片机进行编程,Keil为软件开发环境。系统各种功能主要通过调用具体子程序来实现,主要负责数据的采集、处理以及显示等功能。在Keil软件中利用C语言编程,编写完成之后直接下载调试。调试界面如图3-5所示。
图3-5 软件调试界面
3.2.2 程序设计
系统基于STM32F103ZET6微控制器,采用C语言编程。程序主要起导向和决策的作用,它控制整个系统稳定协调的运作。在系统中,对各个模块进行分步调试,确定各个模块独立工作的完整性,然后再对整个系统所有模块进行整合,使其完成系统的所有功能。
单片机通过控制FDC2214传感器模块来实现手势接近和识别的功能,用按键进行手势识别装置工作模式的选择,同时通过OLED显示出整个系统的测试结果并进行语音输出。系统主流程图如图3-5所示。
图3-5 系统主流程图
在判决模式下,通过按键选择游戏类型并开始检测手势。检测时,装置将检测数据与设定值进行比较后在OLED上显示判决结果,并用语音输出。判决模式流程图如图3-6所示。
图3-6 判决模式流程图
2.训练模式设计
在训练模式下,通过按键选择游戏类型并开始按顺序输入任意人员的手势信息进行训练。训练完成时,开始进行手势判决。检测时,装置将检测数据与设定值进行比较后在OLED上显示判决结果,并用语音输出。训练模式流程图如图3-6所示。
图3-7 训练模式流程图
4.1测试仪器
测试中所用的主要仪器如表4-1所示:
表4-1 测试仪器
编号 |
名称 |
型号 |
1 |
数字万用表 |
UT39A |
2 |
数字示波器 |
TDS1002 |
3 |
稳压电源 |
MPD330 |
4 |
秒表 |
AMP-ZSD-013 |
4.2 测试结果及分析
测试结果所如表4-2所示:
表4-2 测试结果
题目要求 |
测试数据 |
完成情况 |
||||
测试次数 |
平均测试时间 |
语音输出效果 |
||||
判决模式
|
猜拳游戏 |
石头 |
3 |
0.78 |
准确 |
完成 |
剪刀 |
3 |
0.81 |
准确 |
完成 |
||
布 |
3 |
0.77 |
准确 |
完成 |
||
划拳游戏 |
1 |
3 |
0.87 |
准确 |
完成 |
|
2 |
3 |
0.83 |
准确 |
完成 |
||
3 |
3 |
0.93 |
准确 |
完成 |
||
4 |
3 |
0.85 |
准确 |
完成 |
||
5 |
3 |
0.89 |
准确 |
完成 |
||
训练模式
|
猜拳游戏 |
石头 |
2 |
0.74 |
准确 |
完成 |
剪刀 |
2 |
0.72 |
准确 |
完成 |
||
布 |
2 |
0.75 |
准确 |
完成 |
||
划拳游戏 |
1 |
2 |
1.75 |
准确 |
完成 |
|
2 |
2 |
1.77 |
准确 |
完成 |
||
3 |
2 |
1.72 |
准确 |
完成 |
题目要求 |
测试数据 |
完成情况 |
||||
测试次数 |
平均测试时间 |
语音输出 |
||||
训练模式
|
划拳模式 |
4 |
2 |
1.78 |
准确 |
完成 |
5 |
2 |
1.69 |
准确 |
完成 |
手势识别系统准确完整地完成了题目要求的所有功能:在判决模式下,猜拳游戏和划拳游戏能够快速准确判决,并且每次的判决时间不大于1秒;在训练模式下,猜拳游戏的训练时间控制在1分钟之内,划拳游戏的训练时间控制在2分钟以内,并且进入判决模式后,每次的判决时间都在1秒之内。在系统设计过程中,力求硬件线路简单,充分发挥软件编程方便灵活的特点,从而满足系统设计要求。
从测试结果来看,在采取多项误差校正措施的情况下,系统的控制误差明显减小,系统控制精度达到毫秒级,响应时间也符合任务要求。
本装置由STM32F103ZET6单片机、FDC2214传感器芯片、OLED液晶显示、语音输出以及按键选择模块组成实现对手势的识别。装置分为两种模式,在判决模式下,对参赛者指定人员进行猜拳判决,给出手势“石头”、“剪刀”、“布”和“1”、“2”、“3”、“4”、“5”的准确判决,并且每一次判决的时间不大于1秒;在训练模式下,对任意测试者进行猜拳游戏和划拳游戏的手势训练,两种游戏动作训练次数不大于3次,并且猜拳游戏的训练时间均在1分钟以内,划拳游戏的训练时间均在2分钟以内。训练结束后切换到判决模式,对被训练的人员进行猜拳和划拳判决,并且每次判决的时间均在1秒之内。在OLED上显示测试结果并进行语音输出。除此之外,还增加了猜拳游戏和划拳游戏的输赢判决模式。测试者可以选定游戏输赢判决模式,之后系统开始进入训练模式,将任意两个参赛人员的指纹信息录入系统,训练模式完毕,进入输赢判决模式,系统将参赛双方的输赢结果通过OLED显示,同时准确出语音输比赛结果。
[1]周兴鹏.《传感器应用电路》[M].北京:清华大学出版社,2010
[2]张洋,刘军,严汉宇.《原子教你玩STM32(库函数版)》[M].北京:北京航空航天大学出版社,2013
[3]蒙博宇.《STM32自学笔记》(第二版)[M].北京:北京航空航天大学出版社,2014
[4]童诗白.《模拟电子技术基础》[M].北京航空航天大学出版社,2001
[5]阎石.《数字电子技术基础》(第四版)[M].北京:高等教育出版社,2006
[6]康华光,陈大钦.《电子技术基础》[M].武汉:高等教育出版社,2005
[7]谭浩强.《C程序设计》(第四版)[M].北京:清华大学出版社, 2003
[8]廖义奎.《ARM Cortex-M4嵌入式实战开发精解——基于STM32F4》[M].北京:北京航空航天大学出版社,2013
[9]胡寿松.《自动控制原理基础教程》(第三版)[M].北京:科学出版社,2013
[10]王超.《自动控制原理》(第二版)[M].安徽:安徽科学技术出版社,2008
[11]姚文祥(英).《Cortex-M3权威指南》[M].北京:北京航空航天大学出版社,2009
[12]杜春雷.《ARM体系结构与编程》[M].北京:清华大学出版社,2003
[13]刘迎春,叶湘滨.《传感器原理、设计与应用》(第五版)[M].北京:国防科技大学出版社,2004
系统总原理图