王俊程
(山東省臨沂市臨沭縣第一中學(xué),山東 臨沂276799)
人臉識別的門鎖、指紋識別的保險柜都已經(jīng)進入尋常百姓家,這些高科技的產(chǎn)品的原理是什么?怎么樣的技術(shù)才能實現(xiàn)?這些問題讓我思考,是否可以制作一個手勢識別的裝置,實現(xiàn)對剪刀石頭布、一二三四五手勢的識別,并實現(xiàn)對任意人員手勢信息的處理及識別。在科技老師的指導(dǎo)下,我設(shè)計的手勢識別系統(tǒng)主要由單片機控制模塊、FDC2214 傳感芯片、電源模塊等組成,下面分別論證這幾個模塊的選擇。
方案一:采用STC51 系列單片機
傳統(tǒng)的51 單片機為8 位機,價格便宜,控制簡單,但是運算速度慢,片內(nèi)資源少,存儲容量小,難以存儲大體積的程序和實現(xiàn)快速精準(zhǔn)的反應(yīng)控制。并且受時鐘限制,計時精度不高,外圍電路也增加了系統(tǒng)的不可靠性。
方案二:采用STM32F103ZET6 單片機
ARM Cortex-M3 內(nèi)核的STM32F103ZET6 控制芯片,擁有11 個定時器,3 個ADC,13 個通信接口,多達(dá)112 個快速I/0 口,計時精度高,反應(yīng)速度快,價格中等,功耗低,操作也較為簡單,開發(fā)環(huán)境非常容易搭建。
通過比較,我選擇方案二,采用ARM Cortex-M3 內(nèi)核的STM32F103ZET6 控制芯片。同時包含主控芯片在內(nèi)的控制系統(tǒng)包含了顯示、傳感器等模塊,能夠減少外圍電路的設(shè)計,降低系統(tǒng)設(shè)計的難度,非常適合本系統(tǒng)的設(shè)計。本作品使用ALIENTEK公司出品的精英開發(fā)板直接作為主控板。
方案:采用FDC2214。FDC2214 是一個噪聲多通道系列,抗EMI,高分辨率,高速電容數(shù)字轉(zhuǎn)換器,用于實現(xiàn)電容式傳感解決方案。采用了提供創(chuàng)新的基于窄帶的架構(gòu),可抑制噪聲和干擾,同時提供高速分辨率。器件支持寬激勵頻率范圍,為系統(tǒng)設(shè)計提供了靈活性。電容式傳感是一種低功耗,低成本,高分辨率的非接觸式傳感技術(shù),可應(yīng)用于各種應(yīng)用,范圍從接近檢測和手勢識別到遠(yuǎn)程液位傳感。電容式傳感系統(tǒng)中的傳感器是任何金屬或?qū)w,允許低成本和高度靈活的系統(tǒng)設(shè)計。本作品設(shè)計的FDC2214 模塊板。
基于FDC2214 實現(xiàn)手勢接近和判決的實驗中存在如下的特征:傳感平面的面積越大、手勢與傳感平面的距離越小,感應(yīng)的頻率變化越大,系統(tǒng)會越靈敏,但同時也可能引入越多的噪聲。
方案一:采用單金屬板進行信號采集。單金屬板信號采集雖然簡單,只需要使用FDC2214 芯片的一個通道,但對手掌這樣大小的金屬板來說,感應(yīng)頻率變化值大,系統(tǒng)過于靈敏,但采用單通道在使用時誤差較大,電容變化值過大,數(shù)據(jù)處理難度較大。
方案二:采用四個金屬板分布式進行信號采集。采集多傳感平面信號的原理是利用FDC2214 的多通道特性,每一個通道都有相同的外圍電路,所以每個通道的采樣特性是相同的。多傳感平面不僅有單傳感平面的所有優(yōu)點,而且能夠降低采集數(shù)據(jù)的誤差和干擾,數(shù)據(jù)處理難度降低。
FDC2214 是基于LC 諧振電路原理的一個電容檢測傳感器。其基本原理如圖1 所示,在芯片每個檢測通道的輸入端連接一個電感和電容,組成LC 電路,被測電容傳感端(圖1 中灰色標(biāo)識部分即為被測電容)與LC 電路相連接,將產(chǎn)生一個振蕩頻率,根據(jù)該頻率值可計算出被測電容值。利用FDC2214 的工作原理可實現(xiàn)手勢接近和識別的功能,如上圖所示,黃色部分稱為“FDC2214 的傳感平面”,該平面為導(dǎo)體材質(zhì),當(dāng)人手接近該導(dǎo)體傳感平面時,傳感端的電容發(fā)生了變化,這就會導(dǎo)致LC電路振蕩頻率的變化,從而反映出手勢接近,以及手勢的判定。
程序功能描述與設(shè)計思路:
2.2.1 程序功能描述
根據(jù)題目要求軟件部分主要實現(xiàn)手勢的識別和顯示:a.手勢識別:能將FDC2214 反饋的不同手勢的信號正確的表達(dá)出來。b.顯示部分:顯示不同的手勢,如:剪刀石頭布。
2.2.2 程序設(shè)計思路
使用迪文公司出品的工業(yè)串口屏(如右圖所示)作為顯示模塊,其特點是使用其專門的界面繪制工具進行界面編程,我將每個題目需求制作了若干張圖片,方便調(diào)試和演示。在MCU(STM32F103ZET6,以下簡稱MCU)的程序設(shè)計中,我將工業(yè)串口屏的串口接到了MCU 的串口三(TX:PB10,RX:PB11),在每個界面上的按鈕樣式處安置觸摸反饋,作用是觸摸該按鈕時串口屏?xí)l(fā)送一個指令到串口,使MCU 能夠識別到測試人員觸摸到了相關(guān)位置能信息。
圖1 顯示面板
我使用TI 公司出品的FDC2214 芯片作為該作品的傳感核心部件,使用FDC2214,可以檢測到測試人員與傳感平面的交互信息。MCU 將FDC2214 通過IIC 傳輸來的數(shù)據(jù)進行分析:
1 判決模式:a.我將MCU 通過FDC2214 得到的數(shù)據(jù)進行卡爾曼濾波,對噪聲進行有效抑制,得到data1。b.將data_1(濾波后的數(shù)據(jù))和data_0(通過訓(xùn)練或者默認(rèn)的數(shù)據(jù))進行比對,如果data_1 在data_0 的+/- 5%的范圍內(nèi),則認(rèn)定data_1 就是data_0所代表的手勢。c.將數(shù)據(jù)分析后的結(jié)果進行反饋(傳輸?shù)酱谄粒?,讓測試人員得知測試結(jié)果。
2 訓(xùn)練模式
a.首先MCU 檢測當(dāng)前訓(xùn)練模式:訓(xùn)練模式分為劃拳訓(xùn)練和猜拳訓(xùn)練,劃拳訓(xùn)練又分為1、2、3、4、5 五個手勢,猜拳訓(xùn)練則分為剪刀、石頭、布三個手勢。測試人員將欲要訓(xùn)練的手勢在串口屏上進行選擇,選擇后的數(shù)據(jù)串口屏?xí)ㄟ^串口傳輸?shù)組CU上。
b.具體訓(xùn)練步驟:MCU 得到訓(xùn)練模式后,告知FDC2214 進行工作,開始采樣,如果采樣數(shù)據(jù)過小,說明測試人員并沒有開始進行收拾訓(xùn)練。一般情況下,MCU 會對每個手勢進行三次采樣,每次采樣采100 個值(濾波后),在進行去平均數(shù)并進行存儲,每一次采樣成功后MCU 會使能蜂鳴器,提醒測試人員采樣成功,三次采樣成功后,MCU 會通過串口與串口屏進行通信,告知串口屏采樣完成,并進行顯示。
3.1.1 硬件測試
電路搭建,連接,焊接完成后,檢驗各元件,顯示器等的功能3.1.2 硬件軟件聯(lián)調(diào)
編寫軟件可以實現(xiàn)手勢的自動識別,能夠滿足題目的基本要求,驗證軟硬件的基本部分沒有問題,后續(xù)再進行算法的優(yōu)化,提升識別速度。
測試條件:檢查多次,仿真電路和硬件電路必須與系統(tǒng)原理圖完全相同,并且檢查無誤,硬件電路保證無虛焊。測試儀器:高精度的數(shù)字毫伏表,模擬示波器,數(shù)字示波器,數(shù)字萬用表,指針式萬用表。