肖迪 章文韜
摘要:腦電波信號(hào)現(xiàn)今已被研究作為一個(gè)生物信號(hào)輸入用于人機(jī)交互。它可以用來(lái)開(kāi)發(fā)用于提升注意力的游戲,也可以被應(yīng)用在殘疾人治療上。TGAM模塊利用一個(gè)干式電極就可以從人腦中檢測(cè)到微弱的腦電信號(hào)。該文對(duì)TGAM模塊的研究和實(shí)驗(yàn),控制專注度和放松度等數(shù)值?;贛DT開(kāi)發(fā)包進(jìn)行軟件開(kāi)發(fā),研究腦電波信號(hào)的統(tǒng)一性與特殊性,將TGAM模塊應(yīng)用于播放器,通過(guò)應(yīng)用程序接口,建立通訊,進(jìn)行數(shù)據(jù)分析處理,實(shí)現(xiàn)了比較好的調(diào)控效果。
關(guān)鍵詞: 腦電波信號(hào);TGAM模塊;專注度;放松度;音響音量
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)09-0249-03
Abstract: Electroencephalogram(EEG) signal now has been studied as a biological signal input for human-computer interaction. It can be used for games of lifting the attention, can also be used in the treatment of the disabled. TGAM module uses a dry-type electrode to detect the weak EEG signal from human brain. This paper studies the TGAM module, controlling the degree of focus and relaxation degree values. Software development bases on MDT-based, researching the unity and particularity of brainwave signals. Apply the TGAM module on the player, through the application interface, establishing communication, carrying out data analysis and process, to achieve better control effect.
Key words: Electroencephalogram(EEG) Signal; TGAM Module; Focus and Relaxation degree; the Sound Volume
1概述
我們的大腦無(wú)時(shí)無(wú)刻不在產(chǎn)生腦電波。這些自發(fā)的生物電信號(hào)的頻率變動(dòng)范圍通常在0.1Hz-50Hz之間,根據(jù)其頻率不同可劃分為Delta波、Theta波、Alpha波、Beta波、Gamma波等多種類型。本文即研究通過(guò)對(duì)腦電波信號(hào)的采集、處理、分析,將腦電波信號(hào)轉(zhuǎn)換成對(duì)耳機(jī)進(jìn)行直接控制的電路信號(hào),從而實(shí)現(xiàn)人腦“意念”對(duì)耳機(jī)的直接控制。
腦電波信號(hào)現(xiàn)今已被研究作為一個(gè)生物信號(hào)輸入用于人機(jī)交互。在醫(yī)學(xué)上,腦電波信號(hào)的人機(jī)交互可以幫助殘疾人與使用腦電波的機(jī)器進(jìn)行通信。[1]如今腦電波也被廣泛的用于智力游戲的開(kāi)發(fā),幫助人們提高注意力。Neurosky神念科技公司開(kāi)發(fā)的ThinkGear AM模塊(簡(jiǎn)稱TGAM)是一款世界上非常受歡迎的腦電技術(shù)應(yīng)用模塊,它利用一個(gè)干式電極就可以從人腦中檢測(cè)到微弱的腦電信號(hào)。本文將TGAM模塊應(yīng)用于音響音量的控制上,實(shí)現(xiàn)了比較好的調(diào)控效果。
TGAM中的ASIC芯片實(shí)際上是一個(gè)芯片系統(tǒng),它集成了腦電信號(hào)采集、濾波、放大、A/D轉(zhuǎn)化、數(shù)據(jù)處理及分析等功能。TGAM模塊可直接與干電極相連接,通過(guò)單個(gè)腦電波信號(hào)(EEG)和參考電極以及地線制作腦電波采集儀。并且它可以檢測(cè)到512Hz的原始腦電信號(hào),可以濾掉噪音,抗干擾。
2 系統(tǒng)構(gòu)成
整個(gè)系統(tǒng)由TGAM模塊、藍(lán)牙模塊、干電極、耳夾、電源和基于I3HGP的embedded主板、音響等部分組成。如圖1所示。TGAM模塊、藍(lán)牙模塊、干電極、耳夾和電源構(gòu)成的部分完成腦電波的采集和特性的提取,嵌入式主板完成音量控制的編程和實(shí)現(xiàn)。
如圖2所示,將TGAM模塊與藍(lán)牙模塊、干電極以及耳夾(接地電路)、電源的連接,制成簡(jiǎn)易的腦電采集儀。圖3中發(fā)光二極管亮表示該腦電采集儀通電可正常工作,通過(guò)藍(lán)牙適配器連接電腦,可將采集到的腦電波以及由其生成的專注度、放松度在軟件中顯示出來(lái)。
在基于I3HGP的embedded主板上(見(jiàn)圖4)利用VC++平臺(tái)進(jìn)行軟件編程,動(dòng)態(tài)調(diào)用專注度和眨眼數(shù)值,實(shí)現(xiàn)數(shù)據(jù)的提取,再將提取好的數(shù)據(jù)導(dǎo)入混音器中,在滿足條件的情況下實(shí)現(xiàn)音量控制。
3 腦電波的采集與分析
在TGAM模塊的處理下,已經(jīng)可以將繁雜的腦電波轉(zhuǎn)化為放松度、專注度兩個(gè)數(shù)值,其大小用1~100表示,數(shù)值越大表示進(jìn)入相應(yīng)程度越深。為了確定音量增減的起始值,我們多次對(duì)腦電波進(jìn)行采集(取其中10次),每次采集5分鐘。觀察專注度數(shù)值,除卻開(kāi)始和最后的1分鐘,保留中間最有效3分鐘。如圖5所示,當(dāng)我們保持專注時(shí),專注度數(shù)值占60以上的比例為60%。圖6中,當(dāng)我們放松時(shí),專注度數(shù)值基本在40以下,其中在20以下的占29%。而正常狀態(tài)下(圖7),腦電波專注度數(shù)值呈現(xiàn)的范圍在20到60之間,占據(jù)最多的部分是40~49,占到36%,50~59和20~29分別占28%和20%。
因此設(shè)置音量放大、減小的閾值,確定音量控制程序思路:專注度>60時(shí),音量增加,專注度<20時(shí),音量減小。(如圖8)音量改變開(kāi)關(guān),由眨眼值控制:當(dāng)持續(xù)幾秒鐘能讀取到眨眼數(shù)據(jù)情況下,開(kāi)關(guān)開(kāi)啟。
4 音量控制軟件
4.1 MindWare后臺(tái)數(shù)據(jù)開(kāi)發(fā)
4.1.1靜態(tài)調(diào)控
靜態(tài)調(diào)控是指對(duì)于Mind Development Tool(MDT)軟件已生成的包含專注度、放松度等數(shù)值的后臺(tái)excel表格的調(diào)用。具體調(diào)用方法如下:
在實(shí)現(xiàn)腦電波靜態(tài)控制音量的基礎(chǔ)上,預(yù)想上通過(guò)設(shè)置clock時(shí)鐘刷新讀取實(shí)時(shí)的數(shù)據(jù),具體方法是,在MIC部分的micSendString的代碼部分加入刷新模塊,由于后臺(tái)excel表中的關(guān)于腦電波數(shù)據(jù)實(shí)時(shí)變化,設(shè)置刷新時(shí)間為每1s(如果有需要,可以設(shè)置更為小的時(shí)間間隔,這里暫設(shè)置為1s即可滿足需求)刷新一次,從而可以讀取新的數(shù)據(jù)。
4.1.2進(jìn)程與刷新的設(shè)置
除此之外,通過(guò)使用進(jìn)程,設(shè)置線程為后臺(tái)線程,那樣進(jìn)程里就不會(huì)有未關(guān)閉的程序,避免讀取數(shù)據(jù)和播放音樂(lè)之間的互相干擾問(wèn)題,通過(guò)定義線程Thread LogThread = new Thread(new ThreadStart(DoService))相關(guān)代碼實(shí)現(xiàn)。
通過(guò)getTime()讀取當(dāng)前windows時(shí)鐘Clock的值,獲得當(dāng)前時(shí)間,實(shí)現(xiàn)每隔1s的重新執(zhí)行。但是會(huì)造成讀取excel表的數(shù)據(jù)重復(fù)讀取,音量控制上無(wú)法形成連貫性,其結(jié)果是形成無(wú)數(shù)次的重復(fù)獲取數(shù)據(jù),每次刷新后從開(kāi)始播放。試圖通過(guò)設(shè)置標(biāo)記跟隨時(shí)間變化來(lái)解決,使讀取函數(shù)從標(biāo)記的時(shí)間點(diǎn)開(kāi)始讀,保留之前讀取過(guò)的數(shù)據(jù),實(shí)際操作時(shí)卻由于形成不斷的迭代,無(wú)法執(zhí)行。
4.2 MDT開(kāi)發(fā)
4.2.1 MDT開(kāi)發(fā)的可行性分析
主要思路為通過(guò)利用開(kāi)源的神念傳感器連接程序(TGC)與ThinkGear通信驅(qū)動(dòng)程序(TGCD),可以直接從ThinkGear芯片中獲取sSense數(shù)據(jù)(包括集中度和放松度),即直接從接口中獲取數(shù)據(jù),避免了從動(dòng)態(tài)excel表中讀取數(shù)據(jù)。
其中,神念傳感器連接程序(TGC)在后臺(tái)持續(xù)運(yùn)行,并在本地用戶的電腦上顯示有一個(gè)打開(kāi)的插口,允許應(yīng)用程序與其連接,并接受已連接好的ThinkGear設(shè)備發(fā)送的信息,這意味著從插口出打開(kāi)并讀取的任何語(yǔ)言的任何程序都能夠與MindSet耳機(jī)相連并從其接收數(shù)據(jù),并且連接程序的平臺(tái)包括windows。因此,此連接程序的支持PC機(jī)上的程序連接接口,讓從接口獲取數(shù)據(jù)成為可能。
另外,ThinkGear通信驅(qū)動(dòng)(TGCD)包括一個(gè)簡(jiǎn)單的API(位于驅(qū)動(dòng)程序安裝文件中),是此方法主要的編程手段。通過(guò)在開(kāi)發(fā)環(huán)境中加入開(kāi)發(fā)文件:thinkgear.h和thinkgear.lib,利用自己的編程語(yǔ)言,使用TFCD API中的重要函數(shù)調(diào)用,可以方便快捷的直接讀取接口中的數(shù)據(jù)。
4.2.2 MDT具體開(kāi)發(fā)手段
MDT(mind develop tool)開(kāi)發(fā)包與MRT(mind research tool)包的專注于研究不同,主要用于開(kāi)發(fā),其中的工具包括:ThinkGear Connector、ThinkGear Communications Driver、ThinkGear Communications Protocol三種,各自的用途如下:
ThinkGear Connector:提供了一個(gè)連接軟件,獲取數(shù)據(jù)的話,只需要通過(guò)socket來(lái)獲取就可以了。可以把連接和控制分離,但是需要開(kāi)發(fā)者自己獲取socket數(shù)據(jù)并且解析。
ThinkGear Communications Driver:提供各種API,方便開(kāi)發(fā)者使用。
ThinkGear Communications Protocol:屬于最底層的通信協(xié)議,一般不會(huì)用到。
第一種方法:ThinkGear Connector,以TGC作為基礎(chǔ),也就是一個(gè)服務(wù)器,執(zhí)行ThinkGear socket協(xié)議,負(fù)責(zé)在其他設(shè)備中響應(yīng)授權(quán)請(qǐng)求與傳播耳機(jī)數(shù)據(jù)。Think Gear socket協(xié)議是基于JSON的,在協(xié)議連接的使用期主要經(jīng)過(guò)以下幾個(gè)階段:套接字的創(chuàng)建、一次性的授權(quán)、服務(wù)器的配置、耳機(jī)數(shù)據(jù)的收取、套接字服務(wù)的終止。而相比于第一種方法,第二種方法ThinkGear Communications Drive,利用提供的API建立連接獲取數(shù)據(jù)流,易于使用的通信程序接口,缺點(diǎn)是不能模擬發(fā)送信號(hào)。適合普通的PC機(jī)上的開(kāi)發(fā)。因此,我們選擇第二種方法進(jìn)行開(kāi)發(fā)。
C語(yǔ)言版本使用方法:
1)新建工程,將ThinkGear.h、ThinkGear.lib、thinkgear_testapp.cpp放入工程;
2)根據(jù)開(kāi)發(fā)者自己的需求進(jìn)行編譯,然后將thinkgear.dll文件放入exe所在的文件夾;
3)將自己焊制的耳機(jī)與接收器連接,啟動(dòng)程序,指示燈由紅變藍(lán);
主程序中主要代碼部分功能:1)獲取連接句柄;2)COM名與電腦的連接想對(duì)應(yīng);3)讀取數(shù)據(jù)包、讀取attention數(shù)據(jù);4)釋放句柄。
主要API的大概說(shuō)明:
TG_GetNewConnectionId():獲取一個(gè)連接句柄,在之后的程序中都會(huì)用到;
TG_FreeConnection():釋放句柄;
TG_Connect():連接
TG_Disconnect():取消連接,但是注意調(diào)用后一些依賴函數(shù)不可使用
TG_ReadPackets():讀取若干個(gè)packet,保證讀取的數(shù)據(jù)實(shí)時(shí)性
TG_GetValueStatus():判斷數(shù)據(jù)是否更新
TG_GetValue():讀取數(shù)據(jù),為主要功能
TG_EnableAutoRead():開(kāi)啟一個(gè)后臺(tái)線程,每隔1ms刷新一次
TG_EnableBlinkDetection():控制是夠開(kāi)啟眨眼功能
參考文獻(xiàn):
[1] Jangwoo Park , Il Woo and Shinsuk Park, Application of EEG for Multimodal Human-Machine Interface, 2012 12th International Conference on Control, Automation and Systems, Oct. 17-21, 2012 in ICC, Jeju Island, Korea.
[2] TGAM1 Spec Sheet , Neurosky, January 27, 2011.
[3] Developer Tools 2.1 Development Guide, Neurosky, June 21, 2010.