相關簡介
題主於大二年級下學期參加了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顯示判別結果
作品快照
未完待更---