陶陳逸 黃志成
摘 要:人類(lèi)的每一閃思維、每一種情緒、每一個(gè)想法,在大腦中都會(huì)產(chǎn)生特定的腦電圖信號(hào)(EEG信號(hào)),這種信號(hào)由千百萬(wàn)個(gè)神經(jīng)元共同產(chǎn)生,并在大腦內(nèi)傳播。將檢測(cè)到的EEG信號(hào)傳送給計(jì)算機(jī)或相關(guān)裝置,經(jīng)過(guò)有效的信號(hào)處理與模式識(shí)別后,計(jì)算機(jī)就能識(shí)別出使用者的思維狀態(tài)。通過(guò)采集與利用腦電,我們希望制作出腦力驅(qū)動(dòng)殘疾輪椅和腦電信號(hào)圖像軟件。
關(guān)鍵詞:腦電 殘疾輪椅 arduino平臺(tái) 圖像顯示
中圖分類(lèi)號(hào):TP273 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2015)10(a)-0128-02
人類(lèi)的每一閃思維、每一種情緒、每一個(gè)想法,在大腦中都會(huì)產(chǎn)生特定的腦電圖信號(hào)(EEG信號(hào)),這種信號(hào)由千百萬(wàn)個(gè)神經(jīng)元共同產(chǎn)生,并在大腦內(nèi)傳播。不同思維情況下產(chǎn)生的神經(jīng)電活動(dòng)信號(hào)表現(xiàn)出不同的時(shí)空變化模式會(huì)導(dǎo)致EEG信號(hào)的不同。將檢測(cè)到的EEG信號(hào)傳送給計(jì)算機(jī)或相關(guān)裝置,經(jīng)過(guò)有效的信號(hào)處理與模式識(shí)別后,計(jì)算機(jī)就能識(shí)別出使用者的思維狀態(tài)。通過(guò)采集與利用腦電,我們希望制作出腦力驅(qū)動(dòng)殘疾輪椅和腦電信號(hào)圖像軟件。
這部分研究的是如何用計(jì)算機(jī)語(yǔ)言使EEG在計(jì)算機(jī)上實(shí)現(xiàn)三維顯現(xiàn),并和腦力驅(qū)動(dòng)輪椅相連接,實(shí)現(xiàn)在輪椅驅(qū)動(dòng)的同時(shí)在顯示屏上顯示圖像。Arduino平臺(tái)使用的AVR中ATMEGA168或是328的芯片,雖然使用的只是八位芯片,但因?yàn)椴捎玫氖荝ISC指令,并且在基于單片機(jī)的基礎(chǔ)上采用了各種新型技術(shù),使得芯片得到很大提升。所以在基于Arduino平臺(tái)的基礎(chǔ)上,通過(guò)與腦電采集裝置的結(jié)合,進(jìn)行腦力驅(qū)動(dòng)輪椅的設(shè)計(jì)。
Mindwave腦電采集裝置是一種不依賴(lài)于外周神經(jīng)和肌肉等常規(guī)輸出通道的信息交流系統(tǒng)。它可為神經(jīng)肌肉障礙患者提供一條與外界溝通的途徑,并在虛擬現(xiàn)實(shí)、游戲娛樂(lè)和航空等領(lǐng)域具有潛在價(jià)值。目前,常用的腦電輸入信號(hào)包括P300、穩(wěn)態(tài)視覺(jué)誘發(fā)電位(SS-VEP)、皮層慢電位(SCP)以及μ或β節(jié)律等。其中,SCP、μ或β節(jié)律等自發(fā)腦電不依賴(lài)于額外刺激的輸入,不會(huì)產(chǎn)生視覺(jué)疲勞,沒(méi)有適應(yīng)性的問(wèn)題,且其神經(jīng)生理學(xué)基礎(chǔ)已獲得比較深入的研究,因而在Mindwave腦電采集裝置中得到了較多的應(yīng)用。但是,基于自發(fā)腦電的腦機(jī)接口也存在明顯的缺陷,如并非所有個(gè)體都適用基于μ節(jié)律的腦機(jī)接口,基于SCP的腦機(jī)接口要經(jīng)過(guò)長(zhǎng)時(shí)間的訓(xùn)練才能實(shí)現(xiàn)等。以此為基礎(chǔ)我們想要為手腳不便的殘疾人提供一個(gè)腦力驅(qū)動(dòng)的輪椅方便其出行,使用者無(wú)需自己用手轉(zhuǎn)動(dòng)輪子便可完成輪椅的前進(jìn)、轉(zhuǎn)向、停止等動(dòng)作。
1 腦電信號(hào)采集
頭戴式無(wú)線(xiàn)腦機(jī)接口系統(tǒng)設(shè)備[1]采用半導(dǎo)體微加工工藝制作的“干”電極作為采集腦電信號(hào)的電極。信號(hào)處理采用專(zhuān)用的集成電路,信號(hào)的采集和處理端與信號(hào)接收端采用射頻芯片收發(fā)數(shù)據(jù)。頭戴式無(wú)線(xiàn)腦機(jī)接口系統(tǒng)設(shè)備準(zhǔn)備采用一種基于硅材料的干電極,它采用的微針結(jié)構(gòu),通過(guò)熱氧化、光刻、腐蝕針尖、濺射金屬等過(guò)程,使用干濕法結(jié)合的加工方法和歐姆接觸層的正反連接結(jié)構(gòu),如果效果受限,將準(zhǔn)備直接購(gòu)買(mǎi)商用電極使用,簡(jiǎn)化工藝流程。腦電信號(hào)采集部分采用兩個(gè)干電極,一個(gè)為信號(hào)電極,一個(gè)為參考電極。安放的位置選擇在前額葉,這里沒(méi)有頭發(fā)的干擾,適合干電極的貼附。從前額葉可以記錄到腦電四個(gè)波段的腦電及其能譜分布。腦電信號(hào)的采集與處理采用NeuroSky公司的ThinkGear ASIC專(zhuān)用芯片來(lái)進(jìn)行,該芯片集成的腦電信號(hào)分析模塊可以輸出實(shí)驗(yàn)所需的“專(zhuān)注度”和“放松度”兩個(gè)參數(shù)。采用了射頻傳輸信號(hào)的方式,將采集腦電并處理后得到的控制信號(hào)通過(guò)射頻芯片無(wú)線(xiàn)傳輸?shù)绞芸囟恕DX電采集與信號(hào)發(fā)射端系統(tǒng)主控制器采用TI公司的MSP430 F2132,射頻芯片采用Chip.con公司的CC2500,它具有體積小、功耗低、高靈敏度等優(yōu)點(diǎn),可以滿(mǎn)足本系統(tǒng)的要求。在制作的腦電采集處理及射頻傳輸系統(tǒng)基礎(chǔ)上利用C/C++、c#和Java語(yǔ)言版本的API開(kāi)發(fā)設(shè)計(jì)出相應(yīng)的軟件系統(tǒng),便于更好的方便實(shí)驗(yàn),實(shí)現(xiàn)實(shí)驗(yàn)的功能。系統(tǒng)的發(fā)射端用于得到專(zhuān)注度和放松度的參數(shù)值,接收端負(fù)責(zé)接收發(fā)射端發(fā)送過(guò)來(lái)的包含專(zhuān)注度和放松度的數(shù)據(jù)包,并將數(shù)據(jù)包解碼得到專(zhuān)注度和放松度的參數(shù)值,并根據(jù)專(zhuān)注度和放松度的值來(lái)控制相應(yīng)外設(shè)的狀態(tài)。同樣也可以輸入到計(jì)算機(jī)中用于觀察所測(cè)腦電信號(hào)的相關(guān)信息。
2 腦控輪椅的設(shè)計(jì)
2.1 系統(tǒng)介紹
腦控智能輪椅的控制系統(tǒng)主要由腦電采集裝置、藍(lán)牙接收、運(yùn)行于電腦的基于C的信號(hào)分析軟件、arduino平臺(tái)、電機(jī)主控制板等部分組成。該文采用的腦控輪椅系統(tǒng)結(jié)構(gòu)如圖1所示,輪椅主控板采用的是雙通道輸入來(lái)控制水平方向的前進(jìn)、后退、左右轉(zhuǎn)向功能。
2.2 C語(yǔ)言軟件部分編寫(xiě)
通過(guò)藍(lán)牙采集到ASIC芯片上的腦電信號(hào)數(shù)據(jù)分為了集中度、放松度、眨眼信號(hào)等幾組不同數(shù)據(jù),我們挑選出其中的集中度和放松度來(lái)作為輪椅前進(jìn)或者停止的判別依據(jù)。首先設(shè)定出停止與前進(jìn)的閥值,然后在集中度達(dá)到前進(jìn)閥值且持續(xù)時(shí)間達(dá)到2 s后,輸出前進(jìn)信號(hào),同樣的,在放松度達(dá)到停止閥值持續(xù)1 s后,輸出停止信號(hào)。以9600波特率為基準(zhǔn)建立串口輸出模塊,通過(guò)USB的形式發(fā)送出去。
2.3 Arduino平臺(tái)
Arduino UNO是Arduino USB 接口系列的最新版本,作為Arduino平臺(tái)的參考標(biāo)準(zhǔn)模板。UNO的處理器核心是ATmega328,同時(shí)具有14 路數(shù)字輸入/輸出口(其中6路可作為PWM輸出),6路模擬輸入,一個(gè)16 MHz 晶體振蕩器,一個(gè)USB口,一個(gè)電源插座,一個(gè)ICSP header和一個(gè)復(fù)位按鈕。UNO已經(jīng)發(fā)布到第三版,與前兩版相比有以下新的特點(diǎn):在AREF處增加了兩個(gè)管腳SDA和SCL,支持I2C接口;增加IOREF和一個(gè)預(yù)留管腳,將來(lái)擴(kuò)展板將能兼容5V和3.3V核心板。這樣改進(jìn)了復(fù)位電路設(shè)計(jì),USB 接口芯片由ATmega16U2替代了ATmega8U2。
2.4 Arduino語(yǔ)言編寫(xiě)
通過(guò)USB與電腦連接后,以9600比特率接收信號(hào),若此時(shí)得到前進(jìn)信號(hào),將通過(guò)11號(hào)端口以5V電壓輸出,在接收到停止信號(hào)后,停止電壓輸出,Arduino平臺(tái)代碼如圖2。輸出的電壓直接提供給輪椅主控板,然后通過(guò)主控板最終驅(qū)動(dòng)輪椅移動(dòng)。
3 信號(hào)的圖像顯示
在考慮到前期問(wèn)題后,我們想借助現(xiàn)有知識(shí)解決編程問(wèn)題,由此提出了多語(yǔ)言混合編程[4]的可能。
所謂多語(yǔ)言混合編程,是指使用兩種或兩種以上的程序設(shè)計(jì)語(yǔ)言來(lái)開(kāi)發(fā)應(yīng)用程序的過(guò)程。我們知道,起始程序都是一樣的,最終都是機(jī)器碼,只是在編寫(xiě)時(shí)使用的語(yǔ)言不同(編程語(yǔ)言都是程序的抽象,為了編程方便,本身并不是可運(yùn)行的程序,最終必須編譯成機(jī)器碼才能運(yùn)行,不同語(yǔ)言只是不同人編的,用的語(yǔ)法不同)。個(gè)人寫(xiě)的源文件無(wú)論是任何語(yǔ)言寫(xiě)的,最終編譯的結(jié)果都是機(jī)器碼。函數(shù)調(diào)用在機(jī)器碼就是很簡(jiǎn)單的一步,將參數(shù)表要求的參數(shù)值放入堆棧,然后使用jmp指令跳轉(zhuǎn)到要調(diào)用的函數(shù)的函數(shù)地址即可,別的程序不管怎么實(shí)現(xiàn),只要告訴參數(shù)表和函數(shù)地址就能調(diào)用,所有程序最終都是機(jī)器碼,自然也符合這個(gè)規(guī)則。所以實(shí)現(xiàn)互調(diào),只要將對(duì)方的接口程序文件映射到自己的進(jìn)程中,然后預(yù)先知道他的參數(shù)表,得到他的接口函數(shù)地址,將參數(shù)放入堆棧,然后跳轉(zhuǎn)到函數(shù)地址,這樣就實(shí)現(xiàn)調(diào)用。我們提出通過(guò)C++語(yǔ)言與MATLAB語(yǔ)言混合編程[5]繪制,并成功通過(guò)編程讀取芯片輸出的相關(guān)數(shù)值,實(shí)現(xiàn)了簡(jiǎn)單的二維顯示(見(jiàn)圖3)。
MATLAB具有方便的數(shù)據(jù)可視化功能,以將向量和矩陣用圖形表現(xiàn)出來(lái),并且可以對(duì)圖形進(jìn)行標(biāo)注和打印。高層次的作圖包括二維和三維的可視化、圖象處理、動(dòng)畫(huà)和表達(dá)式作圖??捎糜诳茖W(xué)計(jì)算和工程繪圖。新版本的MATLAB對(duì)整個(gè)圖形處理功能作了很大的改進(jìn)和完善,使它不僅在一般數(shù)據(jù)可視化軟件都具有的功能(例如二維曲線(xiàn)和三維曲面的繪制和處理等)方面更加完善,而且對(duì)于一些其他軟件所沒(méi)有的功能(例如圖形的光照處理、色度處理以及四維數(shù)據(jù)的表現(xiàn)等),MATLAB同樣表現(xiàn)了出色的處理能力。同時(shí)對(duì)一些特殊的可視化要求,例如圖形對(duì)話(huà)等,MATLAB也有相應(yīng)的功能函數(shù),保證了用戶(hù)不同層次的要求。另外新版本的MATLAB還著重在圖形用戶(hù)界面(GUI)的制作上作了很大的改善,對(duì)這方面有特殊要求的用戶(hù)也可以得到滿(mǎn)足。
我們提出的解決方案是只以MATLAB為主,學(xué)習(xí)MATLAB相關(guān)的GUI設(shè)計(jì),最終成功實(shí)現(xiàn)腦波的三維實(shí)時(shí)顯示,實(shí)現(xiàn)各頻段腦波的三維圖像實(shí)時(shí)顯示(見(jiàn)圖4),并結(jié)合移動(dòng)端的顯示。
參考文獻(xiàn)
[1] 王三強(qiáng).腦電信號(hào)采集系統(tǒng)設(shè)計(jì)及在腦—機(jī)接口中的應(yīng)用研究[D].重慶:重慶大學(xué),2006.
[2] 張軍.ASIC技術(shù)的特點(diǎn)與應(yīng)用[J].黑龍江:信息技術(shù),2001(9):1-3.
[3] 程晨.Arduino開(kāi)發(fā)實(shí)戰(zhàn)指南[M].北京:機(jī)械工業(yè)出版社,2012.
[4] 左艷麗.C語(yǔ)言和匯編語(yǔ)言混合編程的方法和實(shí)現(xiàn)[J].湖南省婁底市:職教與經(jīng)濟(jì)研究,2008(3):60-62.
[5] 陳建平,羅先啟.MATLAB與C/C++、FORTRAN語(yǔ)言混合編程[J].湖北省宜昌市:三峽大學(xué)學(xué)報(bào):自然科學(xué)版,2004(6):547-551.
[6] 鄧昌瑞.基于MATLAB GUI的多功能計(jì)算系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)[D].南昌:南昌大學(xué),2012.