标题: 2018电赛-FDC2214手势识别装置(D题)研究与讨论 [打印本页]
作者: 51黑电赛专员 时间: 2018-7-21 04:43
标题: 2018电赛-FDC2214手势识别装置(D题)研究与讨论
2018年TI杯大学生电子设计竞赛
D题:手势识别装置
1.任务
基于TI公司传感芯片FDC2214设计制作一个手势识别装置,实现对猜拳游戏和划拳游戏的判决。该装置也可以直接使用FDC2214 EVM板,要求所使用的FDC2214芯片或者EVM板不得超过2块。
装置具有训练和判决两种工作模式。在判决模式下实验装置能对指定人员进行猜拳游戏和划拳游戏的判决。这里猜拳游戏的判决是指对手势比划“石头”、“剪刀”和“布”的判定,划拳游戏的判定是指手势比划“1”、“2”、“3”、“4”和“5”的判定。在训练模式下能对任意人员进行猜拳游戏和划拳游戏的手势训练,经过有限次训练后,能进行正确的猜拳游戏和划拳游戏的手势判决。
2.要求
(1)装置工作在判决模式下,能对参赛者指定人员进行猜拳判决,给出手势“石头”、“剪刀”和“布”的准确判决,要求每一次判决的时间不大于1秒。
(18分)
(2)装置工作在判决模式下,能对参赛者指定人员进行划拳判决,给出手势“1”、“2”、“3”、“4”和“5”的准确判决,要求每一次判决的时间不大于1秒。
(28分)
(3)装置工作在训练模式下,对任意测试者进行猜拳的手势训练,每种动作训练次数不大于3次,总的训练时间不大于1分钟;然后切换工作模式到判决模式,对被训练的人员进行猜拳判决,要求每一次判决的时间不大于1秒。(21分)
(4)装置工作在训练模式下,对任意测试者进行划拳的手势训练,每种动作训练次数不大于3次,总的训练时间不大于2分钟;然后切换工作模式到判决模式,对被训练的人员进行划拳判决,要求每一次判决的时间不大于1秒。
(29分)
(5)其他。 ( 4分)
(6)设计报告。 (20分)
项 目 | 主要内容 | 分数
|
系统方案
| 比较与选择,方案系统描述,方案理论分析与计算
| 6
|
电路与程序设计
| 系统原理图和各个部分原理图;系统软件流程图
| 4 |
测试方案与测试结果
| 测试方案合理;测试结果完整;测试结果分析;基本测试仪器
| 6 |
设计报告结构及规范性
| 摘要;正文结果规范;图表的完整性与准确性。
| 4 |
总分 | 20 |
3. 说明
(1)题目中“指定人员”是参赛队学生自己指定的人员,“任意测试者”是由评审老师临时选择的人员。
(2)FDC2214是基于LC谐振电路原理的一个电容检测传感器。其基本原理如图1所示,在芯片每个检测通道的输入端连接一个电感和电容,组成LC电路,被测电容传感端(图1中灰色标识部分即为被测电容)与LC电路相连接,将产生一个振荡频率,根据该频率值可计算出被测电容值。
图1 FDC2214传感器基本原理
利用FDC2214的工作原理可实现手势接近和识别的功能,如图2所示,黄色部分称为“FDC2214的传感平面”,该平面为导体材质,当人手接近该导体传感平面时,传感端的电容发生了变化,这就会导致LC电路振荡频率的变化,从而反映出手势接近,以及手势的判定。
(2)基于FDC2214实现手势接近和判决的实验中存在如下的特征:传感平面的面积越大、手势与传感平面的距离越小,感应的频率变化越大,系统会越灵敏,但同时也可能引入越多的噪声。所以在设计该传感平面时,要根据实际情况综合考虑。进一步设计文档可参考如下连接:www.ti. com/lit/an/snoa940a/snoa940a.pdf
图2 手势感应示意
为了便于进行训练和判决测试,建议学生作品可以对测试区进行指定,如图3所示。在测试或者训练时要求测试者的手势紧贴在测试板上,建议测试者手势与作品的FDC2214传感器距离不小于1厘米。
图3 手势识别装置的测试示意图
作者: incipin 时间: 2018-7-21 06:28
楼主你做出来了吗?
arduino方案:http://www.51hei.com/bbs/dpj-129920-1.html
作者: nikola 时间: 2018-7-21 08:04
我想说,手头有现成的evm板就好办。可是我这种没板子只有芯片的就爽了……
作者: liuzongyi 时间: 2018-7-21 08:50
楼主给个方案分享啊
作者: lq1425988716 时间: 2018-7-21 10:16
我们已经有很多人都做出来了
作者: qhf19951008 时间: 2018-7-21 11:02
牛啊!
作者: Jeese 时间: 2018-7-21 11:12
大佬求帮助
作者: choose.@ 时间: 2018-7-21 11:16
你好,我也是做手势识别的,可是程序运行之后检测不到数据,你知道怎么回事吗
作者: 啦啦啦579 时间: 2018-7-21 11:23
楼主做出来了明确
作者: 黑黑黑电子 时间: 2018-7-21 11:47
我们也在做
作者: angmall 时间: 2018-7-21 12:09
关键在于手放上去电容的变化是什么样的
应该是特征识别吧, 传感端的电容对手势发生了变化
- //
- // FDC2x1x hardware configuration:
- // Component value as in default circuit form datasheet. (18uH inductor and 33pF cap)
- //
- // SD and ADDR pins tied to GND
- // INTB pin not used
- //
- // ARDUINO <--> FDC
- // A4 <-------> SDA
- // A5 <-------> SCL
- //
- // !!!!!! Arduinos are mostly 5V. FDC chips are 3.3V, so either use 3.3V version of Arduino, like pro mini, or use level shifter on I2C bus.
- //
- // ### FDC
- #include <Wire.h>
- #include "FDC2214.h"
- FDC2214 capsense(FDC2214_I2C_ADDR_0); // Use FDC2214_I2C_ADDR_1
- // ###
- void setup() {
-
- // ### Start I2C
- Wire.begin();
- // Wire.setClock(400000L);
-
- // ### Start serial
- Serial.begin(115200);
- Serial.println("\nFDC2x1x test");
-
- // ### Start FDC
- // Start FDC2212 with 2 channels init
- bool capOk = capsense.begin(0x3, 0x4, 0x5); //setup first two channels, autoscan with 2 channels, deglitch at 10MHz
- // Start FDC2214 with 4 channels init
- //bool capOk = capsense.begin(0xF, 0x4, 0x5); //setup all four channels, autoscan with 2 channels, deglitch at 10MHz
- if (capOk) Serial.println("Sensor OK");
- else Serial.println("Sensor Fail");
- }
- // ### Tell aplication how many chanels will be smapled in main loop
- #define CHAN_COUNT 2
- // ###
- void loop() {
- unsigned long capa[CHAN_COUNT]; // variable to store data from FDC
- for (int i = 0; i < CHAN_COUNT; i++){ // for each channel
- // ### read 28bit data
- capa[i]= capsense.getReading28(i);//
- // ### Transmit data to serial in simple format readable by SerialPlot application.
- Serial.print(capa[i]);
- if (i < CHAN_COUNT-1) Serial.print(", ");
- else Serial.println("");
- }
- // No point in sleeping
- //delay(100);
- }
复制代码
作者: angmall 时间: 2018-7-21 12:39
- #include "delay.h"
- #include "sys.h"
- #include "stdio.h"
- #include "usart.h"
- #include "timer.h"
- #include "FDC2214.h"
- void FDC2214_GetData(void);
- u32 ch0,ch1,ch2,ch3;
- int main(void)
- {
- delay_init();//延时函数初始化
- uart_init(921600);//串口初始化
- TIM1_36Mhz_Init();//stm32定时器1输出一个36mhz方波,作为fdc2214的时钟。如果板载了40mhz的晶振,这个就不需要了。
-
- IIC_Init();
- FDC2214_Init();
- while(1)
- {
- FDC2214_GetData();
- printf("\r\nCH0~3(%d , %d , %d , %d)",ch0,ch1,ch2,ch3);
- delay_ms(500); //延时300ms
- }
- }
-
-
- void FDC2214_GetData(void)
- {
- FDC2214_GetChannelData(FDC2214_Channel_0, &ch0);
- FDC2214_GetChannelData(FDC2214_Channel_1, &ch1);
- FDC2214_GetChannelData(FDC2214_Channel_2, &ch2);
- FDC2214_GetChannelData(FDC2214_Channel_3, &ch3);
- }
复制代码
内含清晰图片和源码与pcb
-
-
FDC2214.rar
7.36 MB, 下载次数: 681
作者: Gide 时间: 2018-7-21 13:32
大佬们,求分享
作者: qingxiu 时间: 2018-7-21 13:57
可以问问程序里面是怎么设定判别模式的吗
作者: 锋羽无阻 时间: 2018-7-21 14:58
1cm怎么识别的?
作者: 1311638554 时间: 2018-7-21 17:45
有没有做出来的?
作者: ivtxiechenzhi 时间: 2018-7-21 18:10
做出来了吗
作者: qingxiu 时间: 2018-7-21 20:51
有了这种板你有程序吗
作者: 1604094308 时间: 2018-7-21 20:56
做出来了吗
作者: zhaosong5566 时间: 2018-7-21 22:12
这个好难啊,一直做不出来
作者: xiedong77777 时间: 2018-7-22 00:13
我已做好四个问。q137712826
作者: 迪迪mylove99 时间: 2018-7-22 10:55
都做完了,又要资料,代码(全套)的加Q845852652
作者: fyigqhrg 时间: 2018-7-22 13:47
-
-
51黑论坛_FDC2214-1.1原理图.pdf
11.01 KB, 下载次数: 203
作者: HXXXX 时间: 2018-7-22 14:08
有人可以分享一下资源吗
作者: cyk11 时间: 2018-7-22 15:19
兄弟你怎么做出来的。。。
作者: 18389461426 时间: 2018-7-22 15:31
做出来了吗
作者: 梦镜谷雨 时间: 2018-7-22 15:43
楼主给个方案分享啊
作者: maqic 时间: 2018-7-22 16:05
有没有人遇到FDC返回值一直是0xffff的情况?有的话请问是怎么解决的?
作者: 蒙漂亮啦@ 时间: 2018-7-22 19:11
求分享报告资料
作者: deng123deng 时间: 2018-7-22 19:56
模式选择 只用按键 不用中断可以实现吗
作者: fjl10204 时间: 2018-7-23 10:11
求分享
作者: hushixp1 时间: 2018-7-23 21:22
做不出来
作者: LJ旗飞飞 时间: 2018-7-24 02:34
就设置几个阈值进行判断
作者: q472292914 时间: 2019-5-26 14:49
表示是这个,哪位大佬可以帮着修改一下么

作者: Aan. 时间: 2020-8-14 10:19
这个可以用51单片机做吗?
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |