拿了省賽2等獎(jiǎng)
2018年大學(xué)生電子實(shí)驗(yàn)競賽
手勢識(shí)別裝置(D題)
手勢識(shí)別裝置 摘 要
隨著時(shí)代的發(fā)展與科學(xué)技術(shù)的廣泛應(yīng)用,現(xiàn)代化科技化的生活理念也越來越多的被人們所接受,高科技為人們帶來了很多方便,利用科技手段解決生活生產(chǎn)中的實(shí)際問題也就成了當(dāng)今科技開發(fā)者們的共同話題。 本項(xiàng)目利用傳感芯片 FDC2214 設(shè)計(jì)制作一個(gè)手勢識(shí)別裝置, 實(shí)現(xiàn)對猜拳游 戲和劃拳游戲的判決, 裝置具有訓(xùn)練和判決兩種工作模式。在判決模式下實(shí)驗(yàn)裝置能對指定人員進(jìn)行猜拳游戲和劃拳游戲的判決,主要是對手勢比劃“石頭”、 “剪刀”和“布”的判定,劃拳游戲的判定是指手勢比劃“1”、“2”、“3”、“4”和“5”的判定;而在訓(xùn)練模式下能對任意人員進(jìn)行猜拳游戲和劃拳游戲的手勢訓(xùn)練,經(jīng)過有限次訓(xùn)練后,能進(jìn)行正確的猜拳游戲和劃拳游戲的手勢判決。 目 錄 - 系統(tǒng)方案.....................................................3
1.1 系統(tǒng)總體構(gòu)成...................................................3 1.2 系統(tǒng)總體實(shí)現(xiàn)方案...............................................3 1.3具體實(shí)現(xiàn)方案...................................................3 - 電路與程序設(shè)計(jì)...............................................5
2.1 硬件實(shí)現(xiàn)原理...................................................5 2.1.1 整體原理.....................................................5 2.1.2 2214芯片.....................................................6 2.1.3 15單片機(jī).....................................................7 2.2 軟件設(shè)計(jì)流程圖.................................................8 - 測試方法及結(jié)果...............................................8
3.1 題目一的系統(tǒng)測試...............................................8 3.2 題目二的系統(tǒng)測試...............................................8 附錄 文章組成程序................................,.................9 參考文獻(xiàn)..........................................................17
第一章 系統(tǒng)方案 1.1 系統(tǒng)總體構(gòu)成 本實(shí)驗(yàn)主要由傳感芯片 FDC2214,最小系統(tǒng)版,降壓模塊,OLED,銅板組成。系統(tǒng)總體構(gòu)成如圖1-1所示。 

圖1-1 系統(tǒng)總體構(gòu)成圖 1.2 系統(tǒng)總體實(shí)現(xiàn)方案 以銅板作為導(dǎo)體材質(zhì),由于DC2214 是基于 LC 諧振電路原理的一個(gè)電容檢測傳感器,所以利用 FDC2214 的工作原理可實(shí)現(xiàn)手勢接近和識(shí)別的功能。當(dāng)人手接近該導(dǎo)體傳感平面時(shí),傳感端的電容發(fā)生了變化,這就會(huì)導(dǎo)致 LC 電路振蕩頻率的變化,從而反映出手勢接近,以及手勢的判定。 1.3具體實(shí)現(xiàn)方案 針對于主控芯片:可以實(shí)現(xiàn)數(shù)據(jù)檢測的單片機(jī)有多種,比如STM32,TI公司的MSP5229以及STC公司系列。結(jié)合數(shù)據(jù)處理情況以及芯片使用難度,我們選擇STC15F2K60S2芯片,其性能符合要求且編程簡單。 從手勢識(shí)別方面講:關(guān)于手勢動(dòng)作捕捉主要是通過光學(xué)和傳感器兩種方式來實(shí)現(xiàn)。手勢識(shí)別推測的算法,包括模板匹配技術(shù)(二維手勢識(shí)別技術(shù)使用的)、通過統(tǒng)計(jì)樣本特征以及深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)。而常見的紅外識(shí)別解析度低,易受干擾,成本高,維護(hù)困難,而2214可以在任意環(huán)境下實(shí)現(xiàn)接近度感測,成本低,在波動(dòng)的條件下,可以穩(wěn)定的顯示預(yù)期效果。故而我們選擇使用2214芯片。 從數(shù)據(jù)通信方面來講:芯片間的通信只能使用I2C協(xié)議,可以采用有限傳輸和無線傳輸兩種方式?紤]到FDC2214芯片靈敏度極高,無線協(xié)議會(huì)產(chǎn)生較大干擾使結(jié)果不準(zhǔn)確,因此采用有線傳輸?shù)腎2C協(xié)議傳輸。 最后,通過修改試驗(yàn)程序進(jìn)一步對實(shí)驗(yàn)數(shù)據(jù)進(jìn)行調(diào)試,從而達(dá)到完美的數(shù)據(jù)范圍結(jié)果,完成訓(xùn)練部分。再通過最初將手的大致輪廓畫在銅板上,再將寫好的程序下載到指定位置,通過比出的手勢在對數(shù)據(jù)進(jìn)一步精準(zhǔn)化,進(jìn)而完成實(shí)驗(yàn)。
第二章電路與程序設(shè)計(jì) 2.1 硬件實(shí)現(xiàn)原理 2.1.1 整體原理 手勢識(shí)別裝置采用15單片機(jī)做為主控制器,其整體原理圖如圖2-1所示。PCB圖如圖如圖2-2 。 
圖2-1 整體原理圖 
圖2-2 PCB圖 2.1.2 2214芯片 FDC2214 是基于 LC 諧振電路原理的一個(gè)電容檢測傳感器。在芯片每個(gè)檢測通道的輸入端連接一個(gè)電感和電容,組成LC電路,被測電容傳感端與 LC 電路相連接,將產(chǎn)生一個(gè)振蕩頻率,根據(jù)該頻率值可計(jì)算出被測電容值。 
圖2-3 2.1.3 15單片機(jī) 主控采用STC15系列單片機(jī)最小系統(tǒng),原理圖如3-1所示.

圖 3-1 2.2軟件設(shè)計(jì)流程圖

第三章 系統(tǒng)測試 裝置工作在判決模式下,能對參賽者指定人員進(jìn)行猜拳判決,給出手勢“石頭”、“剪刀”和“布”的準(zhǔn)確判決,要求每一次判決的時(shí)間不大于 1 秒。測試結(jié)果見表3-1。 | | | | | | | | | | [11-14] [1-2] [1-2] [5-8] | |
表3-1 測試結(jié)果表 3.2 題目二的系統(tǒng)測試 裝置工作在判決模式下,能對參賽者指定人員進(jìn)行劃拳判決,給出手勢“1”、“2”、“3”、“4”和“5”的準(zhǔn)確判決,要求每一次判決的時(shí)間不大于 1秒。測試結(jié)果見表3-2。 | | | | [10-11] [0-1] [0-1] [1-2] | | | [7-9] [-1-1] [-1-1] [2-3] | | | | | | | | | [11-14] [1-2] [1-2] [6-8] | |
表3-2 測試結(jié)果表 附錄 該實(shí)驗(yàn)所涉及的主要程序 - #include<FDC2214.C>
- #include<oled7.c>
- unsigned char str1[1];
- unsigned char q[9]="0 ",k=0,w=0,l=0;
- float te0,te1;
- float xdata shitou1,shitou2,shitou3,shitou4,shitou5,shitou6,shitou7,shitou8;
- float xdata jian1,jian2,jian3,jian4,jian5,jian6,jian7,jian8;
- float xdata bu1,bu2,bu3,bu4,bu5,bu6,bu7,bu8;
- float xdata one1,one2,one3,one4,one5,one6,one7,one8,one9,one10,one11,one12;
- float xdata tw1,tw2,tw3,tw4,tw5,tw6,tw7,tw8,tw9,tw10,tw11,tw12;
- float xdata th1,th2,th3,th4,th5,th6,th7,th8,th9,th10,th11,th12;
- float xdata fo1,fo2,fo3,fo4,fo5,fo6,fo7,fo8,fo9,fo10,fo11,fo12;
- float xdata fi1,fi2,fi3,fi4,fi5,fi6,fi7,fi8,fi9,fi10,fi11,fi12;
- void dushu()
- {
- temp1 = ReadRegfdc2214(0x00);
- temp2 = ReadRegfdc2214(0x02);
- temp3 = ReadRegfdc2214(0x04);
- temp4 = ReadRegfdc2214(0x06);
- DelayMS(100);
- temp1= (aemp1-temp1);
- temp2= (aemp2-temp2);
- temp3= (aemp3-temp3);
- temp4= (aemp4-temp4);
- }
- void keyscan()
- {
- if(P20==0)
- {
- DelayMS(2);
- if(P20==0)
- {
- k+=1;
- if(k>=3)
- {k=0;}
- while(P20==0);
- }
- }
- if(k==3)
- {
- if(P24==0)
- {
- DelayMS(2);
- if(P24==0)
- {
- w+=1;
- if(w>=4)
- {w=0;}
- while(P24==0);
- }
- }
- }
- if(P26==0)
- { DelayMS(2);
- if(P26==0)
- {l=1;}
- }
- }
- void main()
- {
- P4M0=0X00;
- P4M1=0X00;
- P1M0=0X00;
- P1M1=0X00;
- P5M0=0X00;
- P5M1=0X00;
- P2M0=0X00;
- P2M1=0X00;
- LCD_CS= 0;
- LCD_Init();
- LCD_Fill(0xff);
- DelayMS(100);
- LCD_Fill(0x00);
- DelayMS(100);
- LCD_CLS();
- delay_ms(500);
- InitMultifdc2214();
- delay_ms(150);
- aemp1= ReadRegfdc2214(0x00);
- aemp2= ReadRegfdc2214(0x02);
- aemp3= ReadRegfdc2214(0x04);
- aemp4= ReadRegfdc2214(0x06);
- while(1)
- {
- dushu();
- lcd_printf(buf1, (int)temp1);
- lcd_printf(buf2, (int)temp2);
- lcd_printf(buf3, (int)temp3);
- lcd_printf(buf4, (int)temp4);
- /* LCD_P6x8Str(6,1,"CH1:");
- LCD_P6x8Str(40,1,buf1);
- LCD_P6x8Str(6,2,"CH2:");
- LCD_P6x8Str(40,2,buf2);
- LCD_P6x8Str(6,3,"CH3:");
- LCD_P6x8Str(40,3,buf3);
- LCD_P6x8Str(6,4,"CH4:");
- LCD_P6x8Str(40,4,buf4);*/
- delay_ms(100);
- q[0]=k+0x30;//q[2]=w+0x30;
- keyscan();
- if(l==1)
- {LCD_Fill(0x00);
- DelayMS(100);
- l=0;}
- if(k==0)
- {LCD_P6x8Str(6,0,"Please start!");
- LCD_P6x8Str(6,1,"CH1:");
- LCD_P6x8Str(40,1,buf1);
- LCD_P6x8Str(6,2,"CH2:");
- LCD_P6x8Str(40,2,buf2);
- LCD_P6x8Str(6,3,"CH3:");
- LCD_P6x8Str(40,3,buf3);
- LCD_P6x8Str(6,4,"CH4:");
- LCD_P6x8Str(40,4,buf4);}
- //else
- /* {LCD_P6x8Str(6,1," ");
- LCD_P6x8Str(40,1," " );
- LCD_P6x8Str(6,2," ");
- LCD_P6x8Str(40,2," ");
- LCD_P6x8Str(6,3," ");
- LCD_P6x8Str(40,3," ");
- LCD_P6x8Str(6,4," ");
- LCD_P6x8Str(40,4," ");
- LCD_P6x8Str(6,0,"Type: ");//6,4
- LCD_P6x8Str(40,0,q);//40,4
- }*/
- keyscan();
- if(l==1)
- {LCD_Fill(0x00);
- DelayMS(100);
- l=0;}
- if(k==1)
- {
- LCD_P14x16Ch(0,0,6);
- LCD_P14x16Ch(18,0,7);
- if((temp1)>=10&&(temp1)<=14&&(temp2)>=1&&(temp2)<=2&&(temp3)>=1&&(temp3)<=2&&(temp4)>=5&&(temp4)<=8)
- {
- //LCD_P8x16Str(6,5,"bu ");
- LCD_P14x16Ch(6,5,0);
- LCD_P14x16Ch(24,5,5);
- LCD_P14x16Ch(24,12,5);
- }
- if((temp1)>=9&&(temp1)<=12&&(temp2)>=0&&(temp2)<=1&&(temp3)>=0&&(temp3)<=1&&(temp4)>=0&&(temp4)<=1)
- {
- //LCD_P8x16Str(6,5,"shitou ");
- LCD_P14x16Ch(6,5,1);
- LCD_P14x16Ch(25,5,2);
- }
- if((temp1)>=7&&(temp1)<=11&&(temp2)>=0&&(temp2)<=1&&(temp3)>=0&&(temp3)<=2&&(temp4)>=2&&(temp4)<=3)
- {
- //LCD_P8x16Str(6,5,"jiandao");
- LCD_P14x16Ch(6,5,3);
- LCD_P14x16Ch(25,5,4);
- }
- if((temp1)>=-1&&(temp1)<=1&&(temp2)>=-1&&(temp2)<=1&&(temp3)>=-1&&(temp3)<=1&&(temp4)>=-1&&(temp4)<=1)
- {
- LCD_P8x16Str(6,5," ");
- }
- }
- //********************************************************
- keyscan();
- if(l==1)
- {LCD_Fill(0x00);
- DelayMS(100);
- l=0;}
- if(k==2)
- {
- LCD_P14x16Ch(0,0,8);
- LCD_P14x16Ch(18,0,7);
- if((temp1)>=11&&(temp1)<=14&&(temp2)>=1&&(temp2)<=2&&(temp3)>=1&&(temp3)<=2&&(temp4)>=6&&(temp4)<=8)
- {
- LCD_P8x16Str(13,6,"5");
- }
- if((temp1)>=9&&(temp1)<=11&&(temp2)>=0&&(temp2)<=1&&(temp3)>=1&&(temp3)<=2&&(temp4)>=5&&(temp4)<=6)
- {
- LCD_P8x16Str(13,6,"4");
- }
- if((temp1)>=8&&(temp1)<=9&&(temp2)>=0&&(temp2)<=1&&(temp3)>=1&&(temp3)<=2&&(temp4)>=3&&(temp4)<=4)
- {
- LCD_P8x16Str(13,6,"3");
- }
- if((temp1)>=7&&(temp1)<=9&&(temp2)>=-1&&(temp2)<=1&&(temp3)>=-1&&(temp3)<=1&&(temp4)>=2&&(temp4)<=3)
- {
- LCD_P8x16Str(13,6,"2");
- }
- if((temp1)>=10&&(temp1)<=11&&(temp2)>=0&&(temp2)<=1&&(temp3)>=0&&(temp3)<=1&&(temp4)>=1&&(temp4)<=2)
- {
- LCD_P8x16Str(13,6,"1");
- }
- if((temp1)>=-1&&(temp1)<=1&&(temp2)>=-1&&(temp2)<=1&&(temp3)>=-1&&(temp3)<=1&&(temp4)>=-1&&(temp4)<=1)
- {
- LCD_P8x16Str(6,5," ");
- }
- }
- }
- }
復(fù)制代碼
參考文獻(xiàn) [1]黃智偉,全國大學(xué)生電子設(shè)計(jì)競賽訓(xùn)練教程【M】,北京:電子工業(yè)出版社,2010。 [2]王成智,鄒旭東,許赟,等.采用改進(jìn)重復(fù)控制的大功率電力電子負(fù)載.中國電機(jī)工程學(xué)報(bào),2009,29(12):1~9
[3]Madawala U K,Thrimawithana D J,Nihal K.An ICPT-supercapacitor Eletronics,2007,54(6):3287~3297
[4]戴忠達(dá).自動(dòng)控制理論基礎(chǔ)[M].北京:清華大學(xué)出版社,2001
[5]劉豹.現(xiàn)代控制理論[M].北京:機(jī)械工業(yè)出版社,1992
[6]李建林,王立喬,李彩霞,等.基于現(xiàn)場可編程門陣列的多路PWM波形發(fā)生器.中國電機(jī)工程學(xué)報(bào),2005,25(10):55~59
[7]馬彧.數(shù)字電路與系統(tǒng)實(shí)驗(yàn)教程[M].北京:北京郵電大學(xué)出版社,2008 [8]楊光祥,梁華,朱軍. STM32單片機(jī)原理與工程實(shí)踐[M].武漢:武漢理工大學(xué)出版社,2013
完整的Word格式文檔51黑下載地址:
CIDUT--09.doc
(14.79 MB, 下載次數(shù): 213)
2018-8-2 11:56 上傳
點(diǎn)擊文件名下載附件
CIDUT--05.doc
(3.29 MB, 下載次數(shù): 122)
2018-8-2 11:55 上傳
點(diǎn)擊文件名下載附件
|