陶陳逸1, 蘇振新2, 丁佳偉2, 黃志成1, 陸文娟2
1. 南京郵電大學 地理與生物信息學院,江蘇 南京 210023; 2. 南京郵電大學 通信與信息工程學院,江蘇 南京 210003
摘要:結合嵌入式系統和腦機接口技術,構建腦力驅動殘疾人輪椅系統。首先利用腦電信號(EEG信號)的采集芯片裝置TGAM對腦電信號進行采集;其次通過藍牙模塊將TGAM和計算機相連接,將采集到的腦波原始數據傳輸到計算機上,利用eSense算法將腦電數據進行量化;然后再通過藍牙無線連接到Arduino輪椅控制平臺,通過I/O控制口實現腦力對輪椅的控制;最后提出采用多語言混合編程的方法實現腦電信號的圖像顯示,相比單一語言編程的圖像顯示,多語言混合編程法更好地顯示了腦電信號的三維圖像。
關鍵詞:腦電信號;eSense算法;Arduino輪椅控制平臺;圖像顯示
0引言
人類的每一閃思維、每一種情緒、每一個想法,在大腦中都會產生特定的腦電信號,腦電信號反映出大腦皮層不同區域的活動狀態,通過對腦電信號的分析和處理,可以有效地從腦電信號中提取可靠的特征參量來反映腦的功能狀態[1]。不同思維情況下產生的神經元放電活動信號表現出不同的時空變化模式并導致EEG信號的不同。
隨著全球各國生活水平以及醫療水平的提高,人口老齡化逐漸成為大部分國家需要認真考慮的問題,贍養老人也成為下一代很嚴重的壓力問題。因此智能生活的需求十分迫切,身體的不健全導致的一些生活的不便利可以通過大腦活動來彌補。智能輪椅的發明為現代人們提供了一種新的思路。
對于嚴重神經或肌肉傷殘的人來說,可以利用大腦的信息與計算機或其他設備進行通信,因此在腦電信號的提取方面有一定的研究必要。
腦機接口(Brain Computer Interface,BCI)是在人腦和計算機或其他電子設備之間建立一種不依賴于常規大腦輸出通路(外周神經和肌肉組織)的直接信息交流和控制通道,是一種全新的人機交互系統[2]。對于遭受嚴重神經或肌肉傷殘的人來說,可以利用腦機接口技術實現腦電信號與計算機或其他電子設備進行通信。
Mindwave腦電采集裝置是一種不依賴于外周神經和肌肉等常規輸出通道的信息交流系統。它可為神經肌肉障礙患者提供一條與外界溝通的途徑,并在虛擬現實、游戲娛樂和航空等領域具有潛在價值。目前,常用的腦電輸入信號包括P300、穩態視覺誘發電位(SSVEP)、皮層慢電位(SCP)以及μ或β節律等。其中,SCP、μ或β節律等自發腦電不依賴于額外刺激的輸入,不會產生視覺疲勞,沒有適應性的問題,且其神經生理學基礎已獲得比較深入的研究,因而在Mindwave腦電采集裝置中得到了較多的應用。但是,基于自發腦電的腦機接口也存在明顯的缺陷,如并非所有個體都適用基于μ節律的腦機接口,基于SCP的腦機接口要經過長時間的訓練才能實現等。
本文以此為基礎,設計出一種能為手腳不便的殘疾人提供一個腦力驅動的輪椅系統,使用者無需手動操作操縱桿便可完成輪椅的前進、轉向、停止等動作。本文利用多語言混合編程方法,設計軟件編程對腦電信號的三維圖像進行顯示設計。
1系統結構
本文的研究步驟是按照腦電信號的數據采集和分析數據處理數據輸出回饋框架,將腦電信號一路傳輸到控制端實現輪椅的移動,一路傳輸到計算機顯示端實現腦電信號的圖像顯示。使用TGAM芯片進行腦電數據的采集和分析,利用藍牙模塊把采集、分析的數據傳輸到計算機上,計算機進行數據的處理,通過藍牙模塊把處理后的數據傳輸到Arduino平臺,經由數據算法轉換成控制信號,對殘疾人輪椅進行控制。輪椅的移動狀態能夠通過人的眼睛器官回饋給大腦,并在控制輪椅移動的同時在計算機上顯示腦電信號的三維圖像。
腦力驅動殘疾人輪椅和圖像顯示的系統框架圖如圖1所示。
2系統硬件設計
2.1數據采集模塊
頭戴式無線腦機接口系統設備[3]采用半導體微加工工藝制作的“干”電極作為采集腦電信號的電極,通過干態電極傳感器采集生物電信號,將采集的信號傳入到ThinkGear芯片中。
ThinkGear ASIC芯片是一種SoC(Systerm on Chip)。NeuroSky公司的ThinkGear ASIC專用芯片[4]集成了腦電信號的采集、濾波、放大、A/D轉換、數據處理及分析等功能,并通過UART標準接口對外輸出以下4種參數:
(1)數字化的原始腦電波數據,輸出頻率512 Hz(每秒512個數據包)。
(2)8個δ、θ、α、β、γ波EEG參數,輸出頻率1 Hz;δ:1~3 Hz;θ:4~7 Hz;α1:8~9 Hz;α2:10~12 Hz;β1:13~17 Hz;β2:18~30 Hz;γ1:31~40 Hz;γ2:41~50 Hz。
(3)“專注度”、“放松度”兩個eSense參數,輸出頻率1 Hz。
(4)傳感器與皮膚的接觸良好程度參數,輸出頻率1 Hz。
該芯片集成的腦電信號分析模塊可以輸出實驗所需的“專注度”和“放松度”兩個參數。
2.2Arduino平臺
Arduino UNO是Arduino USB 接口系列的最新版本,作為Arduino 平臺的參考標準模板。UNO的處理器核心是ATmega328,同時具有14 路數字輸入/輸出口(其中6 路可作為PWM輸出),6 路模擬輸入,一個16 MHz 晶體振蕩器,一個USB 口,一個電源插座,一個ICSP header 和一個復位按鈕。UNO已經發布到第三版,與前兩版相比第三版有以下新的特點:在AREF 處增加了兩個管腳SDA 和SCL,支持I2C 接口;增加IOREF 和一個預留管腳,將來擴展板將能兼容5 V和3.3 V核心板。這樣改進了復位電路設計,USB 接口芯片由ATmega16U2替代了ATmega8U2[5]。
2.3受控模塊:電動殘疾人輪椅
輪椅的操縱桿控制電路如圖2所示,其與機械操縱桿(如圖3)連接可對輪椅進行方向控制。輪椅的操縱桿有五個端口,分別為:控制輪椅前進后退的A端口、基準參考電壓GND、控制輪椅左右轉向的B端口、電源電壓VCC(5 V)、反饋調節電壓Vref。
輪椅方向的控制需要A端口和B端口的共同作用。由于采用了模糊控制方法,在A端口,電壓在2.25 V~2.75 V之間時,輪椅在前進方向是停止的;當電壓低于2.25 V時,輪椅會后退,由于電路內部的保護機制,后退速度是固定且緩慢的;當電壓高于2.75 V時,輪椅的轉速會隨著電壓的變大而變大。
同樣在B端口,電壓在2.25 V~2.75 V之間時,輪椅不進行左右轉向;當電壓大于2.75 V時,輪椅通過右電機轉速大于左電機轉速的方式實現左轉,且左轉的幅度大小隨B端口輸出電壓的上升而上升;當電壓小于2.25 V時,輪椅通過左電機轉速大于右電機轉速的方式實現右轉,且右轉的幅度大小隨B端口輸出電壓的降低而降低。可以通過控制電壓的大小來實現移動的前進、后退、轉向和停止。
3系統軟件設計
3.1腦電信號的采集與分析
腦電信號的采集與分析采用NeuroSky公司的ThinkGear ASIC芯片,腦電信息是非平穩隨機連續的信息,以512 Hz的采樣率采集腦電信號[6]。腦電信號采集頻段在0~100 Hz之間。
腦電數據分析是由eSenseTM算法來完成,eSenseTM是NeuroSky用于以數字化參數方式對人的當前精神狀態進行度量的專利算法[7]。首先對采集的原始腦電信號進行放大,并消除噪聲和肌電信號的干擾,然后利用eSenseTM算法對去除干擾的信號進行計算,得到量化的eSense參數值。
eSense算法主要是先對原始腦波數據進行FTT變換[8],然后進行頻率濾波,得到α波和β波,并進行功率譜分析,選定基本參考值,進行歸一化。
3.2Arduino平臺輪椅控制系統實現
TGAM無線腦電采集設備可以采集多個值,如poorsignal、attention、meditation以及Blink信號。
poorsignal主要反應的是傳感器芯片上生物信號的強弱,值為0時表示生物傳感器接收到的信號很好,沒有任何明顯的問題;值在1~199區間時,值越高說明生物傳感器檢測到的問題越多;值為200時說明傳感器可能沒有接觸到導電體。一般在poorsignal參數值保持為0時,采集到的其他參數值才具有時效價值。
腦電采集裝置采集到的原始腦電信號,經過計算機的處理后可以得到所需的“專注度”與“放松度”兩個數值。這兩個數值在0~99之間。正常人平時的“專注度”數值在30~60之間,當人在高度集中時,“專注度”數值會大于60。同樣地,正常人的“放松度”在30~60之間,當人在閉眼放松或放松全身肌肉時,“放松度”會高于60[9]。
選用“專注度”作為控制輪椅前進、停止的信號,此時給定B端口固定為2.5 V電壓值,系統將收到的相關參數值轉換為控制輪椅移動的對應電壓值,attention值小于60時,A端口電壓值固定為2.5 V,保持停止狀態;attention值在60~70之間時,A端口電壓值固定為3 V,輪椅前進;attention值在70~80之間時,A端口電壓值固定為3.5 V,輪椅前進;attention值在80~90之間時,A端口電壓值固定為4 V,輪椅前進;attention值在90~100之間時,A端口電壓值固定為4.5 V,輪椅前進。
Blink信號是肌電信號,用來控制輪椅的轉向,眨眼信號是由rawdata原始數據計算得出,此時給定A端口固定為2.5 V電壓值,系統檢測到右側眨眼信號時,B端口給定電壓1.5 V,實現右轉向;當檢測到左側眨眼信號時,B端口給定電壓3.5 V,實現左轉向。
3.3腦電信號的圖像顯示
在圖像顯示方面,綜合考慮多種問題因素,提出采用多語言混合編程[10]的方法。所謂多語言混合編程,是指使用兩種或兩種以上的程序設計語言來開發應用程序的過程。源文件無論使用何種語言編寫,最終編譯的結果都是機器碼。函數調用在機器碼中是很簡單的一步,按照參數表的要求把參數值放入堆棧,然后使用jmp指令跳轉到要調用的函數的函數地址即可,程序不管如何實現,只要知道參數表和函數地址就能調用,所有程序最終都是機器碼,自然也符合這個規則。所以實現互調,只要將對方的接口程序文件映射到自己的進程中,預先知道它的參數表,得到它的接口函數地址,將參數放入堆棧,然后跳轉到函數地址,就能實現調用。
本文提出通過C++語言與MATLAB語言混合編程[11]的方法實現腦電信號的圖像顯示,并成功通過編程讀取腦電采集芯片輸出的相關數值,實現了簡單的信號二維圖形顯示,如圖4所示。
在腦電信號的三維圖像顯示上采用的解決方案是以MATLAB語言為主,C++語言輔助,通過MATLAB相關的GUI設計[12],并結合移動端的顯示,實現各頻段腦電波的三維圖像實時顯示,如圖5所示。
4結論
本文利用腦電信號的“專注度”參數,通過Arduino平臺的轉換操作,得到有效控制命令電壓值,完成了輪椅的前進和停止控制,但在輪椅的后退控制上還未解決。輪椅的左右轉向是通過眨眼信號來控制完成的,但是由于多種噪聲的干擾,導致轉向的精確度不高,提高精確度的方法是盡可能濾除噪聲影響。通過采用MATLAB語言和C++語言混合編程的方法,成功地實現了腦電波的三維圖像顯示。
參考文獻
[1] VELUVOLU K C, WANG Y, KAVURI S S. Adaptive estimation of EEG rhythms for optima band indentification in BCI[J]. Journal of Neuroscience Methods,2012,203(1):163-172.
[2] WOLPAW J R, BIRBAUMER N, HEETDERKS W J, et al.Braincomputer interface technology: a review of the first internationl meeting [J]. IEEE Trans Rehabil Eng, 2000, 8(2):222-225.
[3] 王三強.腦電信號采集系統設計及在腦—機接口中的應用研究[D].重慶:重慶大學,2006.
[4] 張軍.ASIC技術的特點與應用[J].信息技術,2001(9):1-3.
[5] 程晨.Arduino 開發實戰指南[M].北京:機械工業出版社,2012.
[6] 楊幫華,顏國正,丁國清,等.腦接口關鍵技術研究[J].北京生物醫學工程,2005(4):308-310.
[7] NeuroSky.Mindset Instruction Manua[Z].神念科技有限公司,2009.
[8] 胡廣書.數字信號處理(第2版)[M].北京:清華大學出版社,2011.
[9] 史小華,王洪波,王建軍.電動輪椅控制器的設計與實現[J].電子測量技術,2013(1):65-69.
[10] 左艷麗.C語言和匯編語言混合編程的方法和實現[J].職教與經濟研究:婁底職業技術學院學報,2008(3):60-62.
[11] 陳建平, 羅先啟.MATLAB與C/C++、FORTRAN語言混合編程[J].三峽大學學報(自然科學版),2005,26(6):547-551.
[12] 鄧昌瑞.基于MATLAB GUI的多功能計算系統設計及實現[D].南昌:南昌大學,2012.