本發(fā)明涉及一種基于vc++和matlab混合編程的emotiv腦控?zé)o人機(jī)系統(tǒng)及方法。具體的說,包括emotiv腦電信號采集模塊(1),matlab腦電信號在線分析模塊(2)和無人機(jī)飛行控制模塊(3)三部分,能夠?qū)Σ杉哪X電信號顯示、保存、在線識別,控制無人機(jī)飛行并在matlab編寫的gui界面上顯示結(jié)果。具有可移植性強(qiáng)、操作簡單且功能全面等特點(diǎn)。
背景技術(shù):
腦機(jī)接口是指通過電極從頭皮或顱內(nèi)獲得含有控制意圖的腦電信號,經(jīng)過預(yù)處理、特征提取與分類,識別出不同的用戶意圖,并將之轉(zhuǎn)化為能夠控制外部設(shè)備的命令。它包含腦電信號檢測和腦電信號識別兩方面,其中腦電信號的識別最為重要,主要完成腦電信號的預(yù)處理、特征提取與分類。
現(xiàn)有的腦機(jī)接口領(lǐng)域的研究大多還是在實(shí)驗(yàn)室階段,實(shí)際應(yīng)用少之又少。其中一個主要因素在于腦機(jī)接口系統(tǒng)中關(guān)鍵在于腦電信號識別環(huán)節(jié),而采集腦電信號的好壞直接影響了識別結(jié)果的正確性。由于工藝和技術(shù)的限制,制作腦電采集設(shè)備的難度較大,造成應(yīng)用于腦機(jī)接口中腦電采集設(shè)備價格非常昂貴,不便于推廣。其次腦電采集設(shè)備所使用的放大器體積較大,通道連接線多,不夠便攜。再者,進(jìn)行腦機(jī)接口實(shí)驗(yàn)時需要涂上導(dǎo)電膏增強(qiáng)腦電信號,過程較為繁瑣,這都不便于應(yīng)用的實(shí)際使用和推廣。近幾年市場上也陸續(xù)出現(xiàn)了很多無線的腦電采集設(shè)備,無線設(shè)備價格相對傳統(tǒng)設(shè)備低很多,體積小,便攜,使用也簡便,便于實(shí)際應(yīng)用和推廣。但是普遍存在導(dǎo)聯(lián)數(shù)少,采樣頻率低等缺點(diǎn),使得采集到的腦電信號信息缺失過于嚴(yán)重,無法準(zhǔn)確還原信息,對分析處理造成了很大的干擾。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是考慮到目前在腦機(jī)接口領(lǐng)域的實(shí)際使用少,推廣難的現(xiàn)狀,設(shè)計(jì)一種實(shí)時高效便攜的基于vc++和matlab混合編程的emotiv腦控?zé)o人機(jī)系統(tǒng)及方法。
為了實(shí)現(xiàn)上述目的,本發(fā)明的構(gòu)思是:
腦機(jī)接口系統(tǒng)包含信號采集,信號分析處理和控制器三個部分。本文采用emotivepoc作為腦電采集設(shè)備作為研究的一個基本出發(fā)點(diǎn),采用matlab自編預(yù)處理、特征提取和分類函數(shù)處理腦電信號,采用無人機(jī)作為控制器,構(gòu)成了一個完整便攜的腦機(jī)接口系統(tǒng)。emotivepoc是近幾年才推出的一個較新無線腦電采集設(shè)備,有14個通道可以采集腦電信號,采樣頻率128hz,emotiv的這些設(shè)備特點(diǎn)讓其具有推廣優(yōu)勢同時,其采集的腦電信號的信息還原度也很高,降低了信號分析處理的難度。
根據(jù)上述發(fā)明構(gòu)思,本發(fā)明采用下述技術(shù)方案:
基于vc++和matlab混合編程的emotiv腦控?zé)o人機(jī)系統(tǒng)及方法,其特征在于:由emotiv腦電信號采集模塊(1)經(jīng)matlab腦電信號在線分析模塊(2)連接無人機(jī)飛行控制模塊(3)構(gòu)成,其中,emotiv腦電信號采集模塊(1)使用emotivepoc設(shè)備采集受試者控制無人機(jī)飛行時的腦信號,腦信號通過無線方式傳輸給電腦上的vc++采集軟件,采集軟件采用tcp/ip協(xié)議傳輸給所述matlab腦電信號在線分析模塊(2);matlab腦電信號在線分析模塊(2)接收到腦信號之后,對其顯示,保存,進(jìn)行預(yù)處理、特征提取和分類識別,最終分析出腦信號中的有效成分并將其轉(zhuǎn)換成控制指令通過無線串口方式傳輸給所述無人機(jī)飛行控制模塊(3);無人機(jī)飛行控制模塊(3)包括通信協(xié)議的調(diào)試和控制協(xié)議的設(shè)計(jì),最終無人機(jī)飛行控制模塊(3)接收到控制指令控制無人機(jī)執(zhí)行起飛,降落,左飛,右飛一系列飛行操作。
一種基于vc++和matlab混合編程的emotiv腦控?zé)o人機(jī)方法,采用上述系統(tǒng)進(jìn)行操作,其特征在于:(一)所述emotiv腦電信號采集模塊(1)采用vc++軟件編寫,并使用多線程編程以及tcp/ip通信協(xié)議技術(shù);matlab腦電信號在線分析模塊(2)采用matlab編程實(shí)現(xiàn),識別函數(shù)采用matlab編寫;具體實(shí)現(xiàn)步驟為:
1-1)參數(shù)設(shè)置:需要設(shè)置的信息包括采樣通道的名稱、采樣通道數(shù)、tcp/ip傳輸協(xié)議的ip地址及端口號、串口傳輸?shù)亩丝谔柤安ㄌ芈?、文件保存時間,在matlabgui界面中通過對相應(yīng)控件編程實(shí)現(xiàn);
1-2)由emotiv腦電信號采集模塊(1)實(shí)現(xiàn)腦電信號的實(shí)時采集、顯示、停止、保存,采用vc++編寫:
(1-2-1)采集:一個線程接收emotivepoc設(shè)備采集的腦電數(shù)據(jù),另外一個線程通過tcp/ip通信協(xié)議將采集的數(shù)據(jù)傳輸給matlab編寫的腦電信號在線分析模塊(2);
(1-2-2)顯示:當(dāng)采集的數(shù)據(jù)達(dá)到預(yù)定點(diǎn)數(shù)時,在matlabgui界面的顯示控件中顯示數(shù)據(jù);
(1-2-3)停止:判斷采集的數(shù)據(jù)是否達(dá)到設(shè)定點(diǎn)數(shù),到所需點(diǎn)數(shù)時,停止采集數(shù)據(jù);
(1-2-4)保存:將采集到的數(shù)據(jù)以文本形式存儲,同時可以清除顯示控件中的波形;
1-3)matlab腦電信號在線分析模塊(2)對實(shí)時采集到的腦電信號進(jìn)行在線識別,在matlab環(huán)境中調(diào)用自編預(yù)處理、特征提取以及分類函數(shù)實(shí)現(xiàn);
(1-3-1)調(diào)用matlab預(yù)處理函數(shù):在matlab編譯環(huán)境下,自編預(yù)處理函數(shù)ica.m,,對應(yīng)獨(dú)立成分分析方法;
(1-3-2)濾除噪聲:通過獨(dú)立成分分析方法,濾除掉眼電、肌電偽跡,同時獲取受試者的眨眼狀態(tài),用作后續(xù)的無人機(jī)飛行控制模塊(3)的一種控制信號。
(1-3-3)調(diào)用matlab特征提取函數(shù):在matlab編譯環(huán)境下,自編特征提取函數(shù)ar.m,對應(yīng)自回歸模型參數(shù)特征提取方法;
(1-3-4)獲得初始特征數(shù)組:根據(jù)選定的特征提取函數(shù)提取信號特征,構(gòu)建初始特征數(shù)組:ar.m特征提取函數(shù)對信號時域波形提取4階ar模型系數(shù),組成初始特征數(shù)組;
(1-3-5)調(diào)用matlab模式分類函數(shù):在matlab編譯環(huán)境下,自編分類識別函數(shù)svm.m對應(yīng)支持向量機(jī)分類方法;
(1-3-6)獲得識別結(jié)果:將初始特征數(shù)組送入分類器分析識別,得到識別結(jié)果:svm.m分類函數(shù)將初始特征數(shù)組作為svm分類器的輸入,進(jìn)行模式分類,輸出識別結(jié)果,識別結(jié)果分為想象左手運(yùn)動和想象右手運(yùn)動;
(1-3-7)將反映受試思維狀態(tài)的識別結(jié)果回顯到matlabgui界面的顯示控件中,同時將識別結(jié)果通過無線串口的方式傳輸給無人機(jī)飛行控制模塊(3)。
(二)所述無人機(jī)飛行控制模塊(3)采用c51編程實(shí)現(xiàn);具體實(shí)現(xiàn)步驟為:
2-1)控制協(xié)議制定:通過眨眼來控制無人機(jī)的起飛和降落;想象左手運(yùn)動控制無人機(jī)左飛,想象右手運(yùn)動控制無人機(jī)右飛;
2-2)無人機(jī)飛行控制:通過c51編程接收matlab腦電信號在線分析模塊(2)通過無線串口發(fā)送的控制指令,同時將控制指令轉(zhuǎn)換為單片機(jī)pwm數(shù)字信號口的信號,控制無人機(jī)上電機(jī)按照預(yù)定的速度旋轉(zhuǎn),實(shí)現(xiàn)起飛、降落、左飛和右飛;
本發(fā)明與現(xiàn)有技術(shù)相比,具有以下實(shí)質(zhì)性特點(diǎn)和顯著優(yōu)點(diǎn):界面友好,操作靈活,便攜易推廣;能夠?qū)崿F(xiàn)腦電數(shù)據(jù)的實(shí)時識別,是腦機(jī)接口技術(shù)在在實(shí)際應(yīng)用領(lǐng)域的一次嘗試。
附圖說明
圖1是本發(fā)明的總體結(jié)構(gòu)框圖。
圖2是本發(fā)明的總體流程圖。
圖3是本發(fā)明具體實(shí)施例emotiv腦控?zé)o人機(jī)系統(tǒng)matlab主程序界面圖。
具體實(shí)施方式
本發(fā)明的優(yōu)選實(shí)施例結(jié)合附圖詳述如下:
實(shí)施例一:
參見圖1,本基于vc++和matlab混合編程的emotiv腦控?zé)o人機(jī)系統(tǒng),由emotiv腦電信號采集模塊(1)經(jīng)matlab腦電信號在線分析模塊(2)連接無人機(jī)飛行控制模塊(3)構(gòu)成。emotiv腦電信號采集模塊(1)采用vc++軟件編寫,并使用多線程編程以及tcp/ip通信協(xié)議技術(shù);matlab腦電信號在線分析模塊(2)采用matlab編程實(shí)現(xiàn),具體識別函數(shù)采用matlab編寫;無人機(jī)飛行控制模塊(3)采用了c51編程實(shí)現(xiàn)。
實(shí)施例二:
參見圖2,基于vc++和matlab混合編程的emotiv腦控?zé)o人機(jī)方法,完成參數(shù)設(shè)置之后,vc++采集軟件開始采集腦信號,然后采用tcp/ip協(xié)議傳輸給matlab腦電信號在線分析模塊(2);matlab腦電信號在線分析模塊(2)接收到腦信號之后,對其顯示,保存,然后調(diào)用matlab自編預(yù)處理函數(shù)ica.m濾除眼電和肌電偽跡、調(diào)用matlab自編特征提取函數(shù)ar.m獲取初始特征數(shù)組、調(diào)用matlab自編分類函數(shù)svm.m對已獲取的特征數(shù)組進(jìn)行分類,最終分析出腦信號中的有效成分并將其轉(zhuǎn)換成控制指令,傳輸給無人機(jī)飛行控制模塊(3)控制無人機(jī)執(zhí)行起飛,降落,左飛,右飛一系列飛行操作。
參見圖3,基于vc++和matlab混合編程的emotiv腦控?zé)o人機(jī)系統(tǒng)matlab主程序界面圖,實(shí)現(xiàn)參數(shù)設(shè)置、接收vc++軟件傳輸?shù)哪X電信號、腦電信號顯示及保存,腦電信號分析處理及通過串口給無人機(jī)飛行控制模塊(3)發(fā)送控制指令的功能。具體操作步驟如下:
1)參數(shù)設(shè)置:包括信號采集ip設(shè)置和端口設(shè)置,無人機(jī)連接端口號設(shè)置和波特率設(shè)置以及通道選擇設(shè)置。在‘信號采集面板’設(shè)置tcp/ip傳輸ip地址以及端口號;在‘無人機(jī)連接’面板設(shè)置無線wifi模塊設(shè)備的端口號及波特率;在‘通道選擇’面板設(shè)置采樣通道。
2)信號采集、顯示及保存:點(diǎn)擊‘信號采集面板’的‘開始采集’按鈕,vc++編寫的采集軟件開始從emotivepoc設(shè)備采集腦電數(shù)據(jù);點(diǎn)擊‘連接’按鈕,‘連接狀態(tài)’控件將顯示‘已連接’,數(shù)據(jù)將傳輸?shù)絤atlab編寫的主程序中,同時顯示在‘信號顯示’控件當(dāng)中。點(diǎn)擊‘停止’按鈕,數(shù)據(jù)停止采集;點(diǎn)擊‘保存’按鈕,將之前采集的腦電數(shù)據(jù)以.txt或者.mat的格式存儲。
3)信號在線分析及控制無人機(jī)飛行:點(diǎn)擊‘無人機(jī)連接’面板的‘連接’按鈕,‘連接狀態(tài)’控件將顯示‘已連接’;點(diǎn)擊‘開始’按鈕,將調(diào)用自編預(yù)處理、特征提取及分類函數(shù)對采集的腦電數(shù)據(jù)進(jìn)行實(shí)時的在線分析,同時將分析結(jié)果轉(zhuǎn)換為控制指令通過無線串口的方式傳輸給無人機(jī)的飛行控制模塊控制無人機(jī)飛行。其中2s內(nèi)連續(xù)眨眼2次控制無人機(jī)的起飛,連續(xù)4s閉眼控制無人機(jī)降落,想象左手運(yùn)動控制無人機(jī)左飛,想象右手運(yùn)動控制無人機(jī)右飛。點(diǎn)擊‘停止’按鈕,結(jié)束數(shù)據(jù)在線分析和信號采集。
實(shí)施例三:
參見圖2,本基于vc++和matlab混合編程的emotiv腦控?zé)o人機(jī)方法,采用上述系統(tǒng)進(jìn)行操作,其特征在于:(一)所述emotiv腦電信號采集模塊(1)采用vc++軟件編寫,并使用多線程編程以及tcp/ip通信協(xié)議技術(shù);matlab腦電信號在線分析模塊(2)采用matlab編程實(shí)現(xiàn),識別函數(shù)采用matlab編寫;具體實(shí)現(xiàn)步驟為:
1-1)參數(shù)設(shè)置:需要設(shè)置的信息包括采樣通道的名稱、采樣通道數(shù)、tcp/ip傳輸協(xié)議的ip地址及端口號、串口傳輸?shù)亩丝谔柤安ㄌ芈?、文件保存時間,在matlabgui界面中通過對相應(yīng)控件編程實(shí)現(xiàn);
1-2)由emotiv腦電信號采集模塊(1)實(shí)現(xiàn)腦電信號的實(shí)時采集、顯示、停止、保存,采用vc++編寫:
(1-2-1)采集:一個線程接收emotivepoc設(shè)備采集的腦電數(shù)據(jù),另外一個線程通過tcp/ip通信協(xié)議將采集的數(shù)據(jù)傳輸給matlab編寫的腦電信號在線分析模塊(2);
(1-2-2)顯示:當(dāng)采集的數(shù)據(jù)達(dá)到預(yù)定點(diǎn)數(shù)時,在matlabgui界面的顯示控件中顯示數(shù)據(jù);
(1-2-3)停止:判斷采集的數(shù)據(jù)是否達(dá)到設(shè)定點(diǎn)數(shù),到所需點(diǎn)數(shù)時,停止采集數(shù)據(jù);
(1-2-4)保存:將采集到的數(shù)據(jù)以文本形式存儲,同時可以清除顯示控件中的波形;
1-3)matlab腦電信號在線分析模塊(2)對實(shí)時采集到的腦電信號進(jìn)行在線識別,在matlab環(huán)境中調(diào)用自編預(yù)處理、特征提取以及分類函數(shù)實(shí)現(xiàn);
(1-3-1)調(diào)用matlab預(yù)處理函數(shù):在matlab編譯環(huán)境下,自編預(yù)處理函數(shù)ica.m,,對應(yīng)獨(dú)立成分分析方法;
(1-3-2)濾除噪聲:通過獨(dú)立成分分析方法,濾除掉眼電、肌電偽跡,同時獲取受試者的眨眼狀態(tài),用作后續(xù)的無人機(jī)飛行控制模塊(3)的一種控制信號。
(1-3-3)調(diào)用matlab特征提取函數(shù):在matlab編譯環(huán)境下,自編特征提取函數(shù)ar.m,對應(yīng)自回歸模型參數(shù)特征提取方法;
(1-3-4)獲得初始特征數(shù)組:根據(jù)選定的特征提取函數(shù)提取信號特征,構(gòu)建初始特征數(shù)組:ar.m特征提取函數(shù)對信號時域波形提取4階ar模型系數(shù),組成初始特征數(shù)組;
(1-3-5)調(diào)用matlab模式分類函數(shù):在matlab編譯環(huán)境下,自編分類識別函數(shù)svm.m對應(yīng)支持向量機(jī)分類方法;
(1-3-6)獲得識別結(jié)果:將初始特征數(shù)組送入分類器分析識別,得到識別結(jié)果:svm.m分類函數(shù)將初始特征數(shù)組作為svm分類器的輸入,進(jìn)行模式分類,輸出識別結(jié)果,識別結(jié)果分為想象左手運(yùn)動和想象右手運(yùn)動;
(1-3-7)將反映受試思維狀態(tài)的識別結(jié)果回顯到matlabgui界面的顯示控件中,同時將識別結(jié)果通過無線串口的方式傳輸給無人機(jī)飛行控制模塊(3)。
(二)所述無人機(jī)飛行控制模塊(3)采用c51編程實(shí)現(xiàn);具體實(shí)現(xiàn)步驟為:
2-1)控制協(xié)議制定:通過眨眼來控制無人機(jī)的起飛和降落;想象左手運(yùn)動控制無人機(jī)左飛,想象右手運(yùn)動控制無人機(jī)右飛;
2-2)無人機(jī)飛行控制:通過c51編程接收matlab腦電信號在線分析模塊(2)通過無線串口發(fā)送的控制指令,同時將控制指令轉(zhuǎn)換為單片機(jī)pwm數(shù)字信號口的信號,控制無人機(jī)上電機(jī)按照預(yù)定的速度旋轉(zhuǎn),實(shí)現(xiàn)起飛、降落、左飛和右飛。