崔宏偉,劉虎
安徽省蚌埠市蚌埠醫(yī)學(xué)院第一附屬醫(yī)院 (安徽 蚌埠 233000)
手術(shù)室作為進(jìn)行外科手術(shù)及搶救的場景,需避免細(xì)菌滋生進(jìn)而防止患者感染至關(guān)重要,雖然手術(shù)室內(nèi)的消毒機(jī)制及層流設(shè)計杜絕了大部分細(xì)菌的附著和滋生,但傳統(tǒng)的腳控、手控區(qū)域都是不規(guī)則且不易消毒的區(qū)域,且由于工作人員頻繁出入手術(shù)室,傳統(tǒng)開門方式會將細(xì)菌帶到患者身旁,給顱腦、心臟、臟器移植等手術(shù)患者帶來很大的感染風(fēng)險。在此背景下,本研究設(shè)計了一種非接觸性控制手術(shù)室門開關(guān),旨在將可能存在的感染風(fēng)險降到最低,進(jìn)而降低患者在手術(shù)過程中的感染率。
非接觸性控制手術(shù)室門開關(guān)可以通過手勢識別、人臉識別、溫度感應(yīng)等技術(shù)控制。而結(jié)合手術(shù)室具體情況,手勢識別是一種可行且易實(shí)現(xiàn)的方式。
本研究設(shè)計的非接觸性控制手術(shù)室門開關(guān)采用手勢識別技術(shù)控制,分為手勢識別模塊、MCU 控制模塊、信號傳輸模塊,其中,手勢識別模塊對手勢的變化進(jìn)行識別處理并將其轉(zhuǎn)化為電信號傳輸?shù)組CU控制模塊;MCU 控制模塊將接收到的電信號轉(zhuǎn)換為控制信號;信號傳輸模塊控制手術(shù)室門開關(guān),見圖1。
1.1.1 手勢識別模塊
ATK-PAJ7620U2是一款高性能手勢識別傳感器,具有體積小、靈敏度高、使用方便等特點(diǎn),外觀見圖2。ATK-PAJ7620U2內(nèi)部的LED 驅(qū)動器使紅外LED 向外發(fā)射紅外線,傳感器陣列檢測到目標(biāo)手勢后提取目標(biāo)信息并將其存放到寄存器中,同時手勢識別模塊對提取的目標(biāo)信息進(jìn)行識別處理,并將處理的結(jié)果存放到寄存器中,使用者可以使用IIC 接口對寄存器中的目標(biāo)信息和處理結(jié)果進(jìn)行讀取,見圖3。ATK-PAJ7620U2采用原相科技公司的PAJ7620U2芯片,PAJ7620U2芯片內(nèi)部集成了光學(xué)數(shù)組式傳感器,內(nèi)置光源和環(huán)境光抑制濾波器集成的LED,鏡頭和手勢傳感器在1個小的立方體模組[1],能在黑暗或低光環(huán)境下工作。ATKPAJ7620U2手勢識別模塊可以識別9種手勢,且支持接近檢測等,電路見圖4。
1.1.2 MCU 控制模塊
MCU 控制模塊采用意法半導(dǎo)體集團(tuán)生產(chǎn)的STM32F407ZGT6芯片,其內(nèi)核是ARM32位的Cortex-M3[2],擁有的資源包括集成FPU 和DSP 指令、192 kB SRAM、1 024 kB FLASH、12個16位定時器、2個32位定時器等,并具有SPI、IIC、UART/USART 等通信功能和FSMC、SDIO、MAC 等豐富的IO 接口;以STM32F407芯片為核心[3],在其外圍增加復(fù)位電路、時鐘電路等形成MCU 最小系統(tǒng)板(圖5),并配有標(biāo)準(zhǔn)的20針JTAG/SWD 接口,方便快速下載和調(diào)試代碼。
1.1.3 信號傳輸模塊
信號傳輸模塊支持有線和無線傳輸,其中有線信號傳輸包括USART/UART、IIC 傳輸?shù)?,無線信號傳輸包括藍(lán)牙、WIFI、2.4 G 傳輸?shù)?,本研究設(shè)計的非接觸性控制手術(shù)室開關(guān)采用IIC 作為手勢識別模塊與MCU 控制模塊相互通信的媒介。
IIC 即兩線式串行總線,由PHILIPS 公司開發(fā),由數(shù)據(jù)線SDA 和時鐘SCL 構(gòu)成(圖6),用于連接微控制器及其外圍設(shè)備,可發(fā)送和接收數(shù)據(jù),在CPU 與被控IC 之間、IC 與IC 之間進(jìn)行雙向傳送[4],但由于STM32F407芯片的IIC 通信不是很穩(wěn)定,所以我們通過代碼實(shí)現(xiàn)IO 口模擬IIC 進(jìn)行通信。
1.2.1 手勢識別軟件
ATK-PAJ7620U2內(nèi)部共有上百個寄存器,通過對不同寄存器發(fā)送指令可以實(shí)現(xiàn)不同的功能,現(xiàn)主要介紹BANK0和BANK1兩個重要的寄存器區(qū)域,見表1。
表1 BANK0和BANK1的指令控制
由表1可知,訪問BANK0區(qū)域需要向傳感器0xEF 地址寫入0x00數(shù)值,訪問BANK1區(qū)域需要向傳感器0xEF 地址寫入0x01數(shù)值。
代碼如下:
該配置數(shù)組表示上電時初始化,每個數(shù)組的第一個字節(jié)表示寄存器地址,第二個字節(jié)表示要設(shè)置的值,如{0xEF,0x00}就表示在0xEF 地址中寫入0x00這個值。
該函數(shù)實(shí)現(xiàn)選擇BANK 區(qū)域,通過BANK 的入口參數(shù)選擇要進(jìn)入BANK 的區(qū)域,進(jìn)而進(jìn)入其不同的控制寄存器,即BANK1下的PAJ7620U2使能工作寄存器(圖7)和BANK0下的手勢檢測輸出中斷使能寄存器1(圖8)。
BANK1下的PAJ7620U2使能工作寄存器的作用是使PAJ7620U2進(jìn)入和關(guān)閉工作狀態(tài),當(dāng)BIT0位設(shè)置為1時,PAJ7620U2進(jìn)入工作狀態(tài),當(dāng)BIT0位設(shè)置為0時,PAJ7620U2關(guān)閉工作狀態(tài),#define PAJ_OPERATION_ENABLE //設(shè)置PAJ7620U2使能寄存器。
BANK0下的手勢檢測輸出中斷使能寄存器1(工作流程見圖9)的作用是手勢識別,BIT0-BIT7位用于使能不同手勢識別結(jié)果的中斷輸出上、下、左、右、順時針旋轉(zhuǎn)、逆時針旋轉(zhuǎn),通過對應(yīng)的設(shè)置,1是使能,0是關(guān)閉,進(jìn)而輸出對應(yīng)的手勢識別結(jié)果中斷,#define PAJ_SET_INT_FLAG1 //設(shè)置手勢檢測中斷寄存器,具體如下:
#define GES_UP BIT(0) //向上
#define GES_DOWM BIT(1) //向下
#define GES_LEFT BIT(2) //向左
#define GES_RIGHT BIT(3) //向右
#define GES_FORWARD BIT(4) //向前
#define GES_BACKWARD BIT(5) //向后
#define GES_CLOCKWISE BIT(6) //順時針
#define GES_COUNT_CLOCKWISE BIT(7) //逆時針
1.2.2 IIC 軟件
選擇STM32上的PF8和PF9端口作為時鐘線和數(shù)據(jù)線,IIC 協(xié)議有空閑狀態(tài)、開始信號、停止信號、數(shù)據(jù)傳輸?shù)?,通過這些協(xié)議的有效配合保證了設(shè)備間數(shù)據(jù)安全、完整地傳輸。
空閑狀態(tài):數(shù)據(jù)線SDA 和時鐘線SCL 同時處于高電平規(guī)定為空閑狀態(tài)。
代碼如下:
開始信號和停止信號:時鐘線SCL 為高期間,數(shù)據(jù)線SDA 由高變低規(guī)定為開始信號;時鐘線SCL 為高期間,數(shù)據(jù)線SDA 由低變高規(guī)定為停止信號,時序圖見圖10。
代碼如下:
數(shù)據(jù)傳輸:在IIC 總線上每傳輸一位數(shù)據(jù)都有一個時鐘脈沖相對應(yīng),即在SCL 時鐘信號的配合下,數(shù)據(jù)線SDA 逐位地串行傳輸每一位數(shù)據(jù)。
代碼如下:
在由數(shù)據(jù)線SDA 和時鐘SCL 構(gòu)成的串行總線中,通過調(diào)用上述IIC 協(xié)議,實(shí)現(xiàn)CPU 與被控外圍設(shè)備之間的數(shù)據(jù)雙向傳送。
在整個系統(tǒng)中增加兩個繼電器控制手術(shù)室門開關(guān)閉合的外圍電路,用兩個LED 模擬兩個電機(jī)的動作,并用一個LCD 液晶顯示屏顯示模擬動作,當(dāng)傳感器探測到手勢向左揮動時,綠燈亮、紅燈滅,表示開門,見圖11;當(dāng)傳感器探測到手勢向右揮動時,紅燈亮、綠燈滅,表示關(guān)門,見圖12。
在測試過程中,手術(shù)室門開關(guān)偶爾出現(xiàn)外圍電路繼電器不吸合的現(xiàn)象,輕輕觸碰才吸合。經(jīng)分析發(fā)現(xiàn),外圍電路和系統(tǒng)控制電路共用1路電源,電流過小,后將外圍電路重新連接1路電源,該現(xiàn)象不再出現(xiàn)。
本研究基于ATK-PAJ7620U2手勢識別模塊和STM32F407芯片設(shè)計了1種非接觸性控制手術(shù)室門開關(guān),其能夠準(zhǔn)確識別給出的手勢動作,靈敏度高、反應(yīng)速度快,可以滿足非接觸人機(jī)交互控制需求,且價格低、穩(wěn)定可靠,具有一定的使用價值。