相关简介
题主于大二年级下学期参加了2018年TI杯电子设计大赛(辽宁省),选题为D题《手势识别》,最终为省二等奖,在此将比赛过程及代码进行分享,欢迎前来交流,不足之处还望指正。
硬件模块
模块
数量
功能
FDC2214
2
手势数据采集
kinetis k60
2
手势数据训练与判别
oled
1
手势判别结果显示
DCDC
1
对MCU供电
覆铜板
1
构成极板
亚克力板
6
作品外壳
方案选择
优点:对测试者手势的摆放要求低,有较好的适应性
缺点:同一手势不同测试者之间数值差异较大
优点:手势判别难度降低,准确率提高
缺点:对测试者手势摆放有明确要求,适应性差
程序思路
针对单极方案,我们首先尝试应用lib-svm(支持向量机)算法,以实现对于手势的判别,但鉴于比赛时间和个人水平的限制,对于lib-svm的理解不足,暂不采用该方案。
然后我们尝试在训练模式下,一段时间内,收集测试者做各个手势时,fdc2214所读取的最小数值作为阈值;在判别模式下以各个阈值作为手势的判别依据,经测试准确率在百分之60左右。
最后,为保证手势判别的准确率,我们采取多极板方式,即一个手指对于一个极板,而每块fdc2214有4个通道,所以我们使用了2块fdc2214;多出的3通道,我们选取了其中2个,连接了小块极板作为电容按键,进行菜单选择和模式切换。
程序流程:
- fdc2214采集5块极板空载数据(即:无放手数据),待数据稳定后进行记录,标记为开关阈值
- 当前极板的放手数据与开关阈值进行比较,有手指为1,否则为0
- 根据5块极板的0/1数据对手指进行判别
- 电容开关选择模式,猜拳模式或猜数字模式
- oled显示判别结果
作品快照
未完待更---