随着时代的发展与科学技术的广泛应用,现代化科技化生活理念也越来越越多的被人们所接受,高科技为人们带来了很多方便,利用科技手段解决生活生产中的实际问题也就成了当今科技开发者们的共同话题。
本次设计实现手势识别装置,通过人手接近传感端引起电容的变化来判决手势代表含义。该项目基于FDC2214芯片以及KEIL5开发平台,利用18μH电感、22PF电容构成LC谐振电路,设计开发一套手势识别装置,该手势识别装置可实现的模式有:训练和判决。判决模式分别对划拳游戏、猜拳游戏的准确判决;训练模式下根据检测员在有限次的训练后能有效的在判决模式下指出相应手势。该项目灵活的运用电容检测传感器和 LC 谐振电路对频率的控制,为智能化的识别系统提供了全新的设计理念。
第一章:系统方案
1.1 系统总体构成
本次手势识别装置设计主要由IAP15W4K58S4最小系统板、FDC2214模块、OLED显示屏、测试所需极板组成系统总体构成实物图如图1-1
图1-1 系统总体构成实物图
1.2 系统总体实现方案
手势识别装置可实现两种模式:判决模式和训练模式。判决模式下分为划拳游戏和猜拳游戏极,划拳游戏根据极板检测到不同的手势,然后由电容检测传感器和LC谐振电路产生相应的频率值,根据频率值计算出各个手势对应的电容值,最后在OLED显示屏上显示相应的比划“1”,“2”,“3”,“4”,“5”,同理在猜拳游戏下,根据不同的电容幅值判定出“石头”,“剪刀”,“布”三种结果。训练模式同样分为划拳训练和猜拳训练两种测试,在任意一种模式下进行不大于三次的训练后,切换到判决模式对刚才训练的结果进行判定,此上为本次设计总体设计方案。
1.3 方案理论分析与计算
根据电容和频率的有着密切的曲线关系,在LC谐振电路中当在谐振点之前
电容回随着频率的增加而减少,在谐振点之后电容回随着频率的增加而增加,根
Z=(ESR+jwL-j/wC) (1-1)
据公式(1-1)计算各个手势所对应的容抗,相应的一些干扰是不能避免的由电容计算公式 C=εS/4πkd 得出电容不只是受外界磁场的干扰,而且受极板的面积、直径、极板间的电阻、电感同时受引线中的电阻等等一系列不可避免的干扰,在此我们忽略这些干扰利用公式(1-2),因为利用FDC2214四个通道同时进行测值,可以减少误差达到目标预期效果,进行的计算实现判决、训练和输赢模式。
F=1/C (1-2)
第二章:系统硬件设计
2.1 总体硬件框图
设计硬件主要由测试者在测试版上测试不同手势,经FDC2214模块检测传送给主控芯片IAP15W4K58S4单片机,最后通信给OLED显示结果,以此重复测试,框图如2-1
图2-1 总体框图
2.2 硬件设计
手势识别系统主要采用 IAP15W4K58S4 单片机为主控芯片,其原理图如图2-2、PCB图如图2-3
图2-2 原理图
图2-3 PCB图
2.3 电容检测模块硬件设计
FDC2214 是基于 LC谐振电路原理的一个电容检测传感器。其基本原理如图2-4 所示,在芯片每个检测通道的输入端连接一个电感和电容,组成 LC电路, 被测电容传感端与 LC 电路相连接,将产生一个振荡频率,根据该频率值可计算出被测电容值。
图2-4 FDC2214模块电路图
2.4 单片机模块硬件设计
方案一:AT89S52单片机。AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash存储器。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。但是架构太简单,片上外设少,不适合本次使用。
方案二:STM32单片机。STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。STM32单片机程序都是模块化的,接口相对简单些,有一定的不足,比如串口中断标志位缺陷。
方案三:IAP15W4K58S4单片机(图2-5)。IAP15W4K58S4系列基于专为要求高性能、高速A/D转换、低成本、低功耗、片内有高达4KB的RAM数据存储空间、采用了增强型8051内核,比传统的8051速度快5~12倍。IAP15W4K58S4单片机程序都是模块化的,几乎包含了数据采集和控制中所需的所有单元模块,适合本次设计所需。
总结:综合比较上述几种方案,发现IAP15W4K58S4的性能最符合我们的题目控制要求,并且我们对IAP15W4K58S4单片机使用的经验,故决定采用方案三。
图2-5 IAP15W4K58S4单片机
系统软件设计
3.1 软件总体设计
本次设计从大的角度观看分为两种模式:①判决模式、②训练模式;在电路接通后初始化成功,开始模式选择,对模式进行判决,假如选择一模式,进行判决模式,随机进入判决模式下的子模式:划拳和猜拳模式,在猜拳模式下判决“石头”、“剪刀”、“布”三种情况判决,在划拳模式下进行“1”、“2”、“3”、“4”、“5”五种情况判决,以上是选择模式一的环节;接下来选择模式二对系统进行训练,在训练模式下对其进行猜拳训练和划拳训练,对于猜拳训练不超过三次训练后进入判决模式下的猜拳验证,同理在划拳训练下对其进行不超过三次的训练,后回到模式一的划拳判别。以上就是本次手势识别装置总流程,具体流程图如图3-1
图3-1 流程图
3.2 电容检测模块软件设计
利用 FDC2214 的工作原理可实现手势接近和识别的功能,当人手接近该导体传感平面时,传感端的电容发生了变化,这就会导致 LC电路振荡频率的变化,从而反映出手势接近,以及手势的判定。如图3-2FDC2214核心程序
图3-2 FDC2214模块核心程序
3.3 单片机模块软件设计
IAP15W4K58S4单片机包含中央处理器、程序存储器、数据存储器、定时器I/O口、高速A/D转换、看门狗、超高速通信口1、2,1组高速同步串行口片内高精度R/C时钟和高可靠复位,拥有数据采集和控制中所需模块,在本次设计中运用此单片机再好不过。
第四章:测试方案与测试结果
4.1测试方案
本次设计共实现四种功能猜拳判决、划拳判决、猜拳训练、划拳训练,在训练模式下对其进行不大于三次的手势训练,后跳入判决模式,进行对训练结果的检测。
对模式输出结果的判决,我们运用了 FDC2214 芯片四个通道,根据每种手势面积大小的不同,在 OLED 显示屏上将显示出面积换算后的值,进行多次实验测试(取不同大小的手掌和握拳方式)后取最大值、最小值的平均值,然后对每个通道取得的数值进行汇总,此时所得到一定的区间范围,这个范围代表一个手势的数值,测试时运用这个范围值对照测试员在 FDC2214 芯片四通道下输出的结果值来判断手势,由此可以准确测出测试人所展现的手势。
4.2 测试结果
4.2.1 题目一的系统测试结果
装置选择模式一工作在判决模式下,能对实验人员进行猜拳判决,给出不同的手势“石头”、“剪刀”和“布”检测出相应的频率值,计算出对应的电容范围对其进行准确的判别,对此每一次判决时间不超过 1 秒。测试结果如表4-1
表4-1 测试结果表
4.2.2 题目二的系统测试结果
在题目一的测试结束后,需要将电路复位,重新选择装置模式一工作在判决模式下,对实验人员进行划拳判决,划拳包括“1”、“2”、“3”、“4”和“5”五种手势,每一次判决时间不超过1秒。测试结果如表4-2
表4-2 测试结果表
4.2.3 题目三的系统测试结果
经过模式一的测试,接下来装置选择模式二对其进行训练模式,在训练模式下首先选择猜拳训练,对任意测试者进行猜拳的手势训练,每种动作训练次数不大于 3 次,总的训练时间不大于 1 分钟;然后切换工作模式到模式一判决模式的猜拳游戏,对被训练的人员进行猜拳判决,要求每一次判决的时间不大于 1 秒。测试结果如表4-3
表4-3 测试结果表
4.2.4 题目四的系统测试结果
装置继续工作在模式二训练模式下,对任意测试者进行划拳的手势训练,每种动作训练次数同样不大于 3 次,总的训练时间不大于 2分钟;然后切换工作模式到模式一判决模式的划拳游戏,对被训练的人员进行划拳判决,要求每一次判决的时间不大于 1 秒。测试结果如表4-4
表4-4 测试结果表
4.2.5 输赢模式
在实现赛方指定要求功能后,我们外扩了一个输赢模式,在系统随机生成的一种手势与测试者的手势进行比较,比较结果有平局、赢、输三种结果。如表4-5
表4-5测试结果表
第五章:设计总结
在学校里我们学习到的知识和简单的动手实践,要转化成为社会的生产力还需要一个平台。全国大学生电子设计竞赛给我们提供了一个培养创新、协作和钻研精神的平台,是大学生展现自己、积累经验的舞台。
培训到竞赛是一个漫长的过程,期间心态很重要,会遇到很多问题,比如:做训练时不懂的知识,硬件、软件调不出来,队员之间的矛盾,外界压力等,都需要我们去克服。队员多交流!交流不仅能促进队员们的学习,还能及时发现问题处理问题,利用一切可以提高自己能力的资源。
对我们而言,知识上的收获重要,精神上的丰收更加可喜。挫折是一份财富,经历是一份拥有。这次电子设计大赛必将成为人生旅途上一个非常美好的回忆!
手势识别FDC2214的单片机源程序:
#ifndef __stc15f2k60s2_H__
#define __stc15f2k60s2_H__
#endif
#ifndef uint8
#define uint8 unsigned char
#endif
#ifndef uint16
#define uint16 unsigned int
#endif
#include #include #include #include #include sbit SCL=P1^3; sbit SDA=P1^4; float xdata temp1,temp2,temp3,temp4,aemp1,aemp2,aemp3,aemp4; unsigned char xdata buf1[2]="00"; unsigned char xdata buf2[2]="00"; unsigned char xdata buf3[2]="00"; unsigned char xdata buf4[2]="00"; uint8 dis[6]; void Delay5us(void) { _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); } void delay_ms(unsigned int ms) { unsigned int a; while(ms) { a=1800; while(a--); ms--; } return; } void lcd_printf(uint8 *s,int temp_data) { if(temp_data<0) { temp_data=-temp_data; *s='-'; } else *s=' '; *++s =temp_data/10+0x30; temp_data=temp_data%10; *++s =temp_data+0x30; } void I2C_Start() { SDA = 1; SCL = 1; Delay5us(); SDA = 0; Delay5us(); SCL = 0; } void I2C_Stop() { SDA = 0; SCL = 0; Delay5us(); SCL = 1; Delay5us(); SDA = 1; //Delay5us(); } void I2C_SendACK(bit ack) { SDA = ack; SCL = 1; Delay5us(); SCL = 0; Delay5us(); } bit I2C_RecvACK() { SCL = 1; Delay5us(); CY = SDA; SCL = 0; Delay5us(); return CY; } void I2C_SendByte(uint8 dat) { uint8 i;
上一篇:51单片机+hx711电子秤
下一篇:单片机四组按键控制LED的不同状态
推荐阅读
史海拾趣
随着产品线的不断丰富和技术实力的提升,博通集成开始积极拓展市场。公司凭借优质的产品和服务,赢得了众多客户的信赖和支持。同时,公司注重品牌建设,通过参加行业展会、举办技术研讨会等方式,提升品牌知名度和影响力。如今,博通集成已成为无线连接芯片设计领域的知名品牌。
面对竞争激烈的电子市场,EMMICRO公司制定了精准的市场拓展策略。公司根据市场需求和客户需求,不断调整产品结构和市场定位,积极开拓新的销售渠道和合作伙伴。同时,公司还加大了对新兴市场的投入和布局,通过差异化竞争策略,成功打开了多个新的市场领域。
随着技术的不断发展,Corex Intervest Inc公司意识到要想在竞争激烈的电子行业中脱颖而出,必须不断进行技术创新和产品升级。因此,公司加大了研发投入,引进了一批高端人才,积极研发新型电子产品。经过多年的努力,公司成功开发出了一系列具有创新性和市场竞争力的产品,如智能传感器、高性能电源模块等,为公司的发展奠定了坚实的基础。
Corex Intervest Inc公司在电子行业的发展历程中,始终保持着稳健的步伐和进取的精神。公司不断适应市场变化和技术更新,不断调整战略方向和发展重点。在未来,公司将继续加大研发投入,拓展新的应用领域和市场空间,为电子行业的发展贡献更多的力量。
这五个故事展示了Corex Intervest Inc公司在电子行业中的发展历程和取得的成就。从创立初期的艰难起步到技术创新、市场拓展、战略合作和持续发展的不断推进,Corex Intervest Inc公司始终保持着积极进取的精神和不断创新的态度,在电子行业中取得了显著的成绩。
随着数字化和智能化技术的不断发展,EasySync公司也加快了数字化转型的步伐。公司引入先进的生产管理系统和智能制造设备,实现了生产过程的自动化和智能化。同时,公司还加强了对大数据和人工智能技术的研发和应用,为客户提供更加智能化、个性化的同步解决方案。
随着平板市场的逐渐饱和,全志科技开始寻求新的增长点。公司在保持原有产品线优势的同时,积极拓展多品类产品线,实施了营销端BU化,并提出了未来大方向的MANS战略。这一转型不仅增强了公司的市场竞争力,也为公司的长期发展打开了新的局面。
原文作者:chenxkj 文章来源于:DSP交流网 中断向量表的编写 .ref _bad_trap ; 这个标号外部没有定义,为什么还用.ref,而不是用..global? .ref&nb ...… 查看全部问答∨ |
|
1.长相不令人讨厌,如果长得不好,就让自己有才气;如果才气也没有,那就总是微笑。 2.气质是关键。如果时尚学不好,宁愿纯朴。 3.与人握手时,可多握一会儿。真诚是宝。 4.不必什么都用“我”做主语。 5.不要向朋友借钱。 6.不要“逼” ...… 查看全部问答∨ |
|
TI给出的DSP BIOS例程里面有一个 mbxtest 程序,大概是教一下邮箱的用法,该程序有三个写任务和一个读任务,,优先级相同。彼此靠MBX来激发。我新建了一个工程,除了cpu工作时钟和swwsr的设置不同外,以下全部相同,可是在我的实验箱上的编译连接以 ...… 查看全部问答∨ |
请教shuiyan专家,以及各位同行前辈高手: 最近在调三星的6410处理器,遇到一个非常怪异的问题,一个星期了仍无一个完整的结果 我们先后打了两次板,第一次算是个开发板吧,只为验证功能; 第二次打的是生产板。 两个板的SD卡电路完全相同,641 ...… 查看全部问答∨ |
我的硬件是PXA270 通过16位数据总线连接到64MBYTE的FLASH P33,地址总线是26位 p33是由两块32M的flash组成的,在程序中不能同时访问上下两块FLASH的地址 而是需要有一个地址总线,即最高位的A25作为内部片选,选择当前访问的是BOTTOM 还是top flas ...… 查看全部问答∨ |
|
驱动三星的flash,型号是K5E1G13ACA。 为什么我读数据的时候读出来的数据是错位的呢?比如,我把0xFF号页面全部写0x11,然后读出来,结果是(我是把读的结果保存到一个unsigned int的数组里面的): 0x30303030 0x30303030 .... 0x30303030 0x11 ...… 查看全部问答∨ |