趙劍, 畢京曉, 史麗娟*, 匡哲君, 王柳, 彭雄
( 1.長(zhǎng)春大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院, 長(zhǎng)春 133000; 2.長(zhǎng)春大學(xué) 電子信息工程學(xué)院, 長(zhǎng)春 133000;3.吉林省人體健康狀態(tài)辨識(shí)與機(jī)能增強(qiáng)重點(diǎn)實(shí)驗(yàn)室, 長(zhǎng)春 130000 )
為了提高舌機(jī)接口系統(tǒng)的穩(wěn)定性,進(jìn)一步改善失能患者的生活質(zhì)量,近年來舌頭-計(jì)算機(jī)交互領(lǐng)域?qū)?shù)據(jù)采集精度的要求越來越高.舌機(jī)接口技術(shù)是一種由舌頭操控的輔助技術(shù),由該技術(shù)建立的舌控智能輔助系統(tǒng)可以為中重度失能患者(特別是因脊柱神經(jīng)損傷造成上肢或手部失能的患者)在失能早期能夠自主康復(fù)和失能后能夠恢復(fù)生活自理提供有效的治療手段.精確采集舌部運(yùn)動(dòng)特征信號(hào)是研究舌機(jī)接口技術(shù)的關(guān)鍵問題之一.在舌機(jī)接口技術(shù)中,目前記錄舌部運(yùn)動(dòng)生理數(shù)據(jù)的方法主要有電磁記錄儀(EMA)、核磁共振成像技術(shù)(MRI)、超聲儀(ultrasound)以及X光技術(shù)(X-ray)等,但這些技術(shù)存在攜帶不便以及有害人體等問題[1-4];因此,這些方法目前仍然無法滿足現(xiàn)代舌機(jī)接口技術(shù)的發(fā)展需求.鑒于此,本文采用STM32H743作為控制器,結(jié)合由美國(guó)NI公司研制的LabVIEW(laboratory virtual instrument engineering workbench)進(jìn)行編程[5],設(shè)計(jì)了一種對(duì)舌機(jī)接口系統(tǒng)進(jìn)行信號(hào)采集的裝置,并對(duì)其可行性進(jìn)行了驗(yàn)證.
本文所采集的舌控信號(hào)是基于人口腔內(nèi)部生理結(jié)構(gòu)所制作的人造假腭.采集信號(hào)時(shí),舌部需觸碰嵌入人造上腭的16個(gè)微小電極傳感器.信號(hào)經(jīng)過校正、放大和采樣后用于閾值設(shè)定.設(shè)定閾值的目的是決定是否選擇該電極.當(dāng)某一電極的電壓超過設(shè)定的閾值時(shí),表示該電極產(chǎn)生觸碰電極信號(hào),用“1”表示;當(dāng)電極電壓低于設(shè)定的閾值時(shí),表示該電極未產(chǎn)生觸碰電極信號(hào),用“0”表示.該裝置所采集的舌控智能輔助系統(tǒng)的指令數(shù)據(jù)通過模數(shù)轉(zhuǎn)換后輸出.
本文設(shè)置的通信裝置系統(tǒng)主要由電極傳感器、信號(hào)處理模塊、電源模塊組成,如圖1所示.由圖1可以看出,電極傳感器的輸入信號(hào)經(jīng)由信號(hào)采集模塊調(diào)整處理后發(fā)送給A/D轉(zhuǎn)換模塊(將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)),信號(hào)經(jīng)A/D轉(zhuǎn)換后再通過信號(hào)傳輸模塊傳輸給計(jì)算機(jī)并實(shí)時(shí)保存.16個(gè)電極傳感器的觸發(fā)情況由LabVIEW顯示.
圖1 系統(tǒng)結(jié)構(gòu)圖
圖2為通信裝置系統(tǒng)的信息采集與獲取過程.該系統(tǒng)采用單片機(jī)控制系統(tǒng)檢測(cè)電極傳感器信號(hào)(單片機(jī)內(nèi)部由恒壓源串接電阻作為開關(guān)激勵(lì)信號(hào)[6]);采用比較器比較反饋的開關(guān)信號(hào)與預(yù)設(shè)的電阻值等效電壓信號(hào)[7](由此得到各引腳的電平狀態(tài));利用AD轉(zhuǎn)換模塊將模擬信號(hào)轉(zhuǎn)化為數(shù)字信號(hào);利用LabVIEW中的VISA庫(kù)函數(shù)實(shí)時(shí)檢測(cè)單片機(jī)信號(hào),以此實(shí)現(xiàn)計(jì)算機(jī)與單片機(jī)的通訊并最終獲取舌控?cái)?shù)據(jù).由上述可看出,該通信裝置能夠?qū)崿F(xiàn)信號(hào)的采集、數(shù)據(jù)傳輸與存儲(chǔ).
圖2 通信裝置的信息采集與獲取過程
為了消除由人為因素和外部環(huán)境對(duì)系統(tǒng)造成的輕微擦碰、抖動(dòng)等不良觸碰,本文采取以下措施:上電復(fù)位后初始化串行口,并設(shè)定內(nèi)部定時(shí)器每隔20 ms檢測(cè)一次電平.如果每次測(cè)得的電平狀態(tài)與上次所測(cè)的相同,則認(rèn)為是人為且穩(wěn)定的信號(hào);如果某一次測(cè)得的電平狀態(tài)與上次所測(cè)的電平狀態(tài)不同,則觀察下一次檢測(cè)的狀態(tài),若與本次相同,說明信號(hào)發(fā)生了改變.測(cè)得的數(shù)據(jù)信號(hào)由串口傳輸給上位機(jī)[8],由此實(shí)現(xiàn)數(shù)據(jù)的獲取.計(jì)算機(jī)與單片機(jī)通信過程中,單片機(jī)串口與上位機(jī)USB口之間采用CH340芯片進(jìn)行串口連接[9].考慮到主控性價(jià)比和穩(wěn)定性,本文選用STM32H743單片機(jī)作為核心控制器,其供電電源為一個(gè)9~24 V正負(fù)電源[10].
系統(tǒng)的軟件設(shè)計(jì)流程為: 開始 → 初始化 → 端口配置 → 串口通信設(shè)置 → 接收數(shù)據(jù) → 結(jié)束.
LabVIEW程序由數(shù)據(jù)流驅(qū)動(dòng)[11],其數(shù)據(jù)接收端通過虛擬儀器軟件結(jié)構(gòu)(virtual instrument software architecture,VISA)來判斷是否有新數(shù)據(jù)接收[12],并對(duì)新接收的數(shù)據(jù)進(jìn)行處理.LabVIEW的VISA庫(kù)包含有串口配置、數(shù)據(jù)寫入、數(shù)據(jù)讀取等一系列子VI[13],這些VI用于搭建串口通信的通道,以此實(shí)現(xiàn)計(jì)算機(jī)和設(shè)備之間的雙向通信.為了實(shí)現(xiàn)LabVIEW與單片機(jī)的快速通信,本文采用同步調(diào)用來傳輸數(shù)據(jù)(數(shù)據(jù)為數(shù)組形式).
由于數(shù)據(jù)傳輸過程中會(huì)遇到誤碼的情況,因此為了保證接收數(shù)據(jù)的正確性,本文在通信協(xié)議中嚴(yán)格定義了數(shù)據(jù)起始碼、結(jié)束碼以及數(shù)據(jù)位的長(zhǎng)度(數(shù)據(jù)位的值介于5和8之間,默認(rèn)值為8).接收端接收數(shù)據(jù)時(shí),若發(fā)現(xiàn)數(shù)據(jù)有誤則自動(dòng)舍棄當(dāng)前所接收的數(shù)據(jù),并重新開始下一幀數(shù)據(jù)的接收.通信協(xié)議如下: ①傳輸數(shù)據(jù)為每秒50條.②數(shù)據(jù)段由起始位(FFAA)、數(shù)據(jù)位和結(jié)束位(FF55)組成.③傳輸數(shù)據(jù)的波特率為9 600.
上位機(jī)軟件的整體設(shè)計(jì)思路如圖3所示,其具體實(shí)現(xiàn)步驟為:
圖3 上位機(jī)整體設(shè)計(jì)圖
1)配置串口,設(shè)置波特率、字節(jié)數(shù)、停止位[14].
2)繪制直觀圖,觀察舌部執(zhí)行某一指令時(shí)觸到的極點(diǎn)數(shù)和各指令的極點(diǎn)接觸范圍.
3)將測(cè)得的舌控信息保存為文本格式(為方便后續(xù)進(jìn)行數(shù)據(jù)處理).
4)設(shè)置數(shù)據(jù)回放(為在實(shí)驗(yàn)時(shí)便于查看歷史數(shù)據(jù)).查詢歷史數(shù)據(jù)時(shí),需首先確定讀取數(shù)據(jù)的路線和參數(shù).
上位機(jī)將采集的舌觸信息、時(shí)間以及采集次數(shù)等參數(shù)自動(dòng)保存到所選擇的文件中.保存的具體方法為:首先在存儲(chǔ)單元的最外層使用楨順序結(jié)構(gòu)函數(shù)來實(shí)現(xiàn)文件路徑的數(shù)據(jù)流傳遞,用以控制節(jié)點(diǎn)的執(zhí)行順序;然后將最先執(zhí)行的代碼放在楨0邊框內(nèi)執(zhí)行,然后依次執(zhí)行其他幀中的程序即可完成參數(shù)的保存.軟件程序的結(jié)構(gòu)和循環(huán)由帶寄存器的While和Case結(jié)構(gòu)來完成,部分軟件程序如圖4所示.
圖4 上位機(jī)的部分?jǐn)?shù)據(jù)采集程序
系統(tǒng)應(yīng)用程序由虛擬儀器LabVIEW平臺(tái)開發(fā),該程序可實(shí)時(shí)讀取16個(gè)電極傳感器產(chǎn)生的信號(hào).當(dāng)啟動(dòng)系統(tǒng)數(shù)據(jù)接收程序后,系統(tǒng)將接收到的串口數(shù)據(jù)(舌觸信息)以界面的形式實(shí)時(shí)顯示,并將數(shù)據(jù)保存于Excel中.
為了驗(yàn)證系統(tǒng)的性能及可靠性,本文對(duì)系統(tǒng)進(jìn)行了硬件測(cè)試.硬件測(cè)試裝置如圖5所示.該測(cè)試裝置主要包括舌控智能輔助系統(tǒng)采集裝置、STM32核心處理器及其他硬件模塊.
圖5 硬件測(cè)試裝置圖
測(cè)試裝置在測(cè)試過程中執(zhí)行有目的的指令控制,系統(tǒng)篩選過濾非人為觸碰信號(hào),并將處理后的數(shù)組傳輸給上位機(jī).圖6為測(cè)試裝置執(zhí)行10次控制指令(包括前后左右)的觸碰電極顯示情況.由圖6可以看出,各指令的接觸電極基本在同一區(qū)域,這表明該通信裝置能夠準(zhǔn)確地采集舌控智能輔助系統(tǒng)的控制信號(hào).
(a) 前指令觸碰電極情況
(b) 后指令觸碰電極情況
(c) 左指令觸碰電極情況
(d) 右指令觸碰電極情況圖6 電極觸發(fā)顯示情況
研究表明,本文設(shè)計(jì)的舌控智能輔助系統(tǒng)的通信裝置能夠快速、準(zhǔn)確地獲取STM32測(cè)得的電極傳感器信號(hào),并具有實(shí)時(shí)顯示、自動(dòng)保存和查詢歷史數(shù)據(jù)等功能.另外,該通信裝置還具有應(yīng)用方便、穩(wěn)定性高、功耗低等優(yōu)點(diǎn).因此,該通信裝置可為舌控智能輔助系統(tǒng)的信號(hào)采集提供有效幫助.