[D-手势识别装置] 河北省_石家庄学院_一等奖_赵世伟_梁硕_杨越

[复制链接]

1

主题

1

帖子

11

积分

一粒轻沙

Rank: 1

积分
11
楼主
查看: 4829回复: 3 发表于 2018-9-30 13:52:48   只看该作者
首先特别感谢TI能够为我们提供一个良好的比赛平台和这个比赛机会。
我们采用的STM32F103ZET6为单片机控制核心,用独立研发的PCB板并采用FDC2214作为电容检测模块,除此之外还用到了3D打印技术制作一些外壳。
同前几年相比,今年的控制类题目出的比较简单,主要用了fdc2214这款电容测量模块。在比赛之前,我们也同往届一样押了一些题目,比如循迹小车,液位测量等,为此我们也做了不少准备。结果赛题却是一个简单的手势识别。
首先fdc2214这款芯片一共有4个通道,也就是说可以接4个外设或者说可以接到某一外设的四个位置。本着测量简单的目的,我们用了ch0和ch1这两个通道。手势识别程序也充分利用了硬件设计的特点,将整个识别区分为两个区域正好对应了人手的上下两个部分,这就对识别的正确率有了很大的好处。
在软件编程之前我先用匿名的上位机观测了数据的变化,还测试了板子上的不同位置的电容变化,恰好发现数据变化十分平稳,也就是说只要覆铜板和手势放置版不发生形变,数据就会非常稳。这是一个重大的发现,说明了检测数据不需要做任何滤波处理甚至连均值都不用取就可以测量出准确的数据,只要第二次手的位置和手势都不变,测量值,依然不变。。。接下来就果断放弃了滤波的想法。其实在这个时刻,整个思路就已经顺下来了,接下来需要做的就是按照题目要求一步一步来写程序,当然写程序肯定会遇到各种bug,只要方案正确,认真分析就没问题,要相信,办法一定是比困难多的。

因为这次比赛中需要测量很多数据,需要有一个直观的显示,我们选用的是0.96寸的oled显示屏。写屏幕看似较简单其实很复杂,唯一头疼的是之前很少用小屏幕,而且用的是iic的,spi的屏幕更是少用,而且由于数据多要翻页,在屏幕上浪费了很多时间。但是只要处理好定时器中断,外部中断的关系就基本没问题。不过时间也是刚刚好,经过三天的不懈努力,最终完成了所有功能,还加了附加功能,稳定性非常好,试了许多朋友都没问题。
最后总结一下,今年的比赛题目比往届都要简单,但唯一不可否认,测试了我们的基础的硬件设计和软件编程能力。



程序.zip (337.11 KB, 下载次数: 41)
报告.zip (1.89 MB, 下载次数: 84)

摘要

我们采用了自己设计的基于stm32f103zet6以及0.96寸低功耗oled液晶显示屏制作而成基础控制系统板,以FDC2214芯片制作了电容检测传感器,使用覆铜板作为电极并使用亚克力板以及电路板制作了机械结构,使其更加稳定!按照大赛要求,我们并没有违反规定并超额完成任务,可以识别任意非同等电容值手势,当手势相同时,我们可以分通道录入,使其准确识别手势内容。
关键字:STM32F103ZET6、FDC2214、0.96OLED、电容极板、覆铜板、滤波、亚克力、电木、手势识别、电容测量、IIC、类面向对象操作、低功耗、简洁

第一章:系统方案1、技术路线主控芯片以及外设选择
方案一:使用TI官方EK-TM4C123GXL开发板,其中主控芯片为cortex-M4架构,控制zlg7290键盘芯片以及OLED屏幕反馈返回值,并使用FDC2214RGHR芯数据采集,其中采集数据并不需要如此大的频率以及硬件设施,属于大材小用,因此此方案舍去
方案二:使用STC公司生产的stc12c5a60s2,优点明显价格低廉,内部寄存器数量适中,但是在我们手中恰好没有相应pcb,因此这个方案也舍去
方案三:使用ST公司生产的STM32F103ZET6芯片,价格低廉,基于Cortex-M3内核的主控让这款芯片在成本和性能上有了非常完美的表现,我们于此前使用allegro设计出PCB,并赶制出成品,因此使用此芯片作为主控。

机械结构及其电容极板的选择
方案一:使用半圆柱面作为电容极板,考虑可以全方位接收手势信号,实践证明,思想虽然新颖,但是实际操作上却是辨识力非常低,因此排除此方案。
方案二:使用紫铜板作为电极板,性能优异,作为极板的首选方案,但是材料昂贵,性价比极低,不适合用此作为电容极板。
方案三:使用覆铜板作为电容极板,价格低廉,厚度适中,性能优异,经过实际测试为此次实验的上上之选。



综上所述,我们的基本运行流程如上图所示,使用ST【先科】公司的一款Cortex-M3内核的单片机作为主控芯片,由5V电源供电,并进行稳压,使用键盘和oled屏幕对该系统进行控制,使用两块电容极板进行数据采集,由TI公司提供的FDC2214RGHR进行数据采集和数据处理,对于信号突变我们进行了程序优化,使用非稳态系统进行程序调节并使用我们所能制作的最为稳定的系统进行参赛!

2、系统结构
方案一:单极板,优势很明显,测量简单易行,可以对大部分简单的,电容值差距较小的手势进行精准的识别,而且在板面的检测范围内几乎可以任意移动手势,但是,对于稍微复杂的手势,就不是那么容易检测出来了!
方案二:双极板,对于单极板的优点,双极板也是具备的,但是,对于剪刀和石头这种电容值非常相似的手势来说,双极板就有了绝对的优势。
方案三:官方要求范围内更多极板,多极板在相同位置的检测可谓是最为精确,但是手势范围也是十分“精确”才可以实现,对于手势的检测,如果使用多极板进行取巧,那么程序将十分简单,同样的,这样子会很局限,因此,同时将多极板和程序结合才能发挥多极板的优势!

综合三个极板方案,我们设计如下图所示,我们的机械结构化繁为简,却又不失稳定,大走简洁路线,使用较低的成本制作出非常稳定的系统,在板面的形变处理上做了较大文章,使其达到基本没有形变产生,为测得准确数据提供了机械硬件基础,我们使用电木板作为主板面,在最小的厚度和板面强度做出了最优的选择。

经过实际计算、测量电极电容,我们决定使用双电极板,优势是可以检测到单板电容差值过小而导致检测不准确的手势,也可以在板面上进行小幅度移动,是四个或更多电极板所不具备的!


3、方案执行
经过我们实际的操作,发现以上方案是我们现在可以使用的比较好的方案,实现简单,制作方便,器材形变极小电容值变化灵敏,使用漆包线作为导线,信号更好的传递,基本无失真,检测回来的数值通过后面所述的运算可以实现电容值的计算,运用双极板进行手势检测,数值更加准确。


第二章:硬件电路与程序1、电路设计与参数计算
使用团队内部硬件开发人员自行设计开发的临时套件,秉持简便、稳定和快捷的原则为本次比赛设计出了一系列PCB、机械硬件以及3D零件,将走线简化到几乎没有杂乱的杜邦线,正文结束后附件带有程序以及cadence原理图。

2、程序简单流程图

3、FDC2214初始化程序
我们拿到FDC2214之后,我们第一时间对他进行了IIC程序初始化,通过示波器测试IIC时序图,并且与官方datasheet进行比较测试,最终将FDC2214的返回值读为实际电容值,下图为部分初始化程


4、FDC采集后运算部分程序
详见附件

5、手势检测及其处理
我们对于电容见检测后,其中简单的手势使用单板范围式,用来直接将手势范围化,在范围内手势直接读取。

第三章:测试结果
1、测试方法及其数据
按照官方指定测试方法依次进行,每个实验进行25次,每5次取一次平均成功率


数据真实有效,共统计20余次,以五次为一次综合表现统计在这张表中,反映了大致的成功率以及题目效果。特别注明,实验内容比较苛刻,检测电容值相似手势依旧可以在成功率约为75%以上。

2、测试分析与结论
根据上述测试数据,由此可以得出以下结论:
1)该系统结构稳定,但是控制算法比较困难,实现起来相对单极板控制的手势识别系统更加复杂,但是比单板更加稳定。
2)识别简单手势基本能够达100%的成功率,稍微复杂的手势,通过双板结构加之算法可以实现比较稳定的识别。
3)双人猜拳模式作为我们的附加功能,虽然已经成型,但是精度还是有所差距,实际的效果有待提升。
综上所述,本设计已经达到大赛设计要求,并超额完成。

第四章:误差分析1、外界因素
1、板面产生形变,导致和电极板距离改变,导致实际检测的数值变大。
3、板子刚性较差,运动时会产生形变,导致最终的测量值产生了误差。
4、改变地域,改变接地端,都会改变介电常数以及对地等效电容。

2、人为因素
1、刻意对测试难度增加,录入状态和检测状态不同(手势表面看类似,但是实际力量、与板面接触面积刻意改变)
2、手掌用力时,假定板面没有形变,手掌会被挤压产生形变,导致测量值变大。


0

主题

6

帖子

410

积分

二氧化硅

Rank: 2

积分
410
沙发
发表于 2019-6-29 13:41:02   只看该作者

感谢分享:loveliness:

0

主题

2

帖子

57

积分

一粒轻沙

Rank: 1

积分
57
板凳
发表于 2019-8-9 09:28:24   只看该作者
谢谢分享

0

主题

1

帖子

65

积分

一粒轻沙

Rank: 1

积分
65
4#
发表于 2021-12-2 15:53:10   只看该作者
能说明一下oled与单片机的接线吗?
快速回复 返回顶部 返回列表