張楚炎
南京市第二醫(yī)院 (江蘇 南京 210000)
顯微鏡是一種精密光學儀器,被廣泛應用于各個領域,尤其是醫(yī)學診斷和科研領域[1]。顯微鏡的產(chǎn)品質(zhì)量主要取決于光學系統(tǒng)(包括照明系統(tǒng)、聚光鏡、物鏡和目鏡等)是否能產(chǎn)生高分辨率、低視覺疲勞感、立體感等優(yōu)良的視覺效果[2]。
目前,普通顯微鏡的光源主要分為LED 和鹵素燈泡兩大類[3]。其中鹵素燈泡光源顯微鏡的光源部分經(jīng)常發(fā)生故障[4],且燈泡燒壞率較高[5-6]。分析我院近3年的顯微鏡報修記錄發(fā)現(xiàn),光源故障占比69%。究其原因,一方面是燈絲老化所致,屬于自然損耗;而另一方面則是人為操作不規(guī)范造成的,如打開光源時未將亮度調(diào)節(jié)旋鈕置于最低擋,導致開啟瞬間電流過大,燈絲燒斷。另外,使用后忘記關閉電源,從而損害燈泡壽命的情況也時有發(fā)生[7-8]。
基于上述情況,除了加強相關使用人員的培訓外,本研究設計了一套顯微鏡光源智能控制系統(tǒng),可以實時判斷顯微鏡的使用狀態(tài)并且根據(jù)使用狀態(tài)自動調(diào)節(jié)光源的輸出電壓,從而降低因人為操作失誤所導致的鹵素燈泡異常損耗,也可在一定程度上節(jié)約能源。本研究的主要工作包括:(1)改進了光源供電電源的反饋回路,使其輸出電壓數(shù)控可調(diào)并預留控制接口;(2)設計了控制系統(tǒng),以單片機為核心配合數(shù)模轉(zhuǎn)換芯片,通過供電電源的控制接口對光源的輸出電壓進行數(shù)字化調(diào)節(jié);(3)采用光電傳感器和人體紅外傳感器,并編寫相應判斷算法,實現(xiàn)了對顯微鏡使用狀態(tài)(即使用或者閑置)的判斷,并根據(jù)此結(jié)果對顯微鏡光源供電電壓進行自動調(diào)節(jié)。
顯微鏡光源系統(tǒng)通過調(diào)節(jié)光源的供電電壓進而調(diào)節(jié)亮度[1],而市面上的鹵素燈泡大同小異,大多只有額定電壓與功率的區(qū)別,因此本研究以一款規(guī)格為“6 V、20 W”的鹵素燈泡為例進行了設計。
整個硬件系統(tǒng)分為電力系統(tǒng)和控制系統(tǒng)兩大部分,見圖1。電力系統(tǒng)是以單片式開關電源芯片TOP223為核心的開關電源[9],最大輸出功率為15 W,可將220 V 交流電變?yōu)橹绷麟娊o燈泡供電[10];同時,使用旋轉(zhuǎn)編碼器代替了傳統(tǒng)的電位器并修改了開關電源的反饋電路部分[11],以實現(xiàn)輸出電壓數(shù)控調(diào)節(jié)的功能[12-13];此外,預留了控制接口,為后續(xù)的自動化調(diào)節(jié)奠定了基礎。控制系統(tǒng)以單片機為核心配合多個傳感器構成,可以實現(xiàn)對顯微鏡使用狀態(tài)的判斷和對燈泡供電電壓的自動調(diào)節(jié)。
圖1 硬件系統(tǒng)結(jié)構框圖
系統(tǒng)總體運行流程見圖2。整個系統(tǒng)上電以后,首先進行初始化,然后進行外設和傳感器的初始化,完成后自動將燈泡電壓平緩提升至上次關機時的光源輸出電壓,之后進入循環(huán),在循環(huán)中通過讀取傳感器的值判斷顯微鏡的使用狀態(tài)并調(diào)節(jié)輸出電壓;通過讀取旋轉(zhuǎn)編碼器的輸出來手動調(diào)節(jié)光源的輸出電壓。
圖2 系統(tǒng)流程圖
選擇T OP223作為開關電源的主控芯片。TOP223芯片是美國PI公司出品的一款單片式開關電源芯片,該芯片內(nèi)部集成了MOS管,僅需較少的外圍元器件即可搭建一套完整的開關電源。芯片的AC-DC轉(zhuǎn)換效率高達90%,自帶限流和過溫保護功能,穩(wěn)定性高,應用廣泛。
電力系統(tǒng)設計原理見圖3,其輸出電壓在1.2~4.6 V 之間可調(diào),最大輸出功率為15 W。圖3中右側(cè)所示3個端口中,LIGHT 端口接燈泡正極,GND_A 端口接燈泡負極,ADJ 口接控制系統(tǒng)用于輸入控制電壓。具體電路原理在此不過多講解,本設計主要對電力系統(tǒng)的反饋回路做了改進,以實現(xiàn)輸出數(shù)控可調(diào)的目的。
圖3中的LM2904為雙運放芯片,運算放大器A 與電阻R23、R60、R63、R61和電容C59組成電壓比較器A,它的作用是輸出一個固定的電壓VA;運算放大器B 與電阻R64、R55、R56和電容C61組成電壓比較器B,用于接收控制信號,由于R55和R56分壓的作用并且兩者阻值相等,因此比較器B 負端的輸入電壓值為OUT 端口電壓值的一半,即電壓比較器B 輸出值VB 等于2倍的AD 端口輸入電壓值。VA 和VB 分別通過而兩個二極管共陰極接入反饋光耦芯片PC6,即該端反饋電壓由VB 控制但不得小于VA,這樣做的原因是由于開關電源的輸出不能為0。另一路光耦芯片PC7連接開關電源的輸出電壓,通過穩(wěn)壓管D54用于維持輸出電壓的穩(wěn)定[14-15]。
圖3 電力系統(tǒng)原理圖
控制系統(tǒng)結(jié)構見圖4??刂葡到y(tǒng)以單片機STM32F407VET6為主控芯片[16]。電源模塊通過AC/DC模塊和穩(wěn)壓模塊將市電轉(zhuǎn)化成3.3 V直流電壓,為單片機及硬件外設供電;2.5 V基準電壓為精準模擬電路供電;易失數(shù)據(jù)存儲模塊(EEPROM)作為掉電后數(shù)據(jù)不丟失的存儲芯片,記錄常用電壓值。DAC模塊通過IIC總線與MCU通信,將每次計算的數(shù)字電壓轉(zhuǎn)換成模擬電壓,用來控制開關電源的輸出電壓。旋轉(zhuǎn)編碼器用于用戶手動調(diào)節(jié)電源輸出電壓。光電傳感器和人體紅外傳感器用于判斷顯微鏡的使用狀態(tài),當判斷為空閑狀態(tài)時,發(fā)出報警并控制輸出電壓平緩步進降至最低;當判斷為在用狀態(tài)時,輸出電壓平緩步進至上次關機時的電壓值。顯示模塊、按鍵模塊、蜂鳴器和LED燈等用于用戶交互,顯示相關系統(tǒng)信息進行聲光報警。
圖4 控制系統(tǒng)結(jié)構框圖
主控模塊設計見圖5。主控模塊以意法半導體公司所生產(chǎn)的STM32F407VET6單片機為核心,該單片機支持最高為168 MHz 的時鐘頻率,片上存儲容量高達512 kB,共有144個I/O 口,支持IIC、SPI、USART 等通信協(xié)議,完全滿足本設計的要求。
圖5 主控模塊設計
電源模塊設計原理見圖6。電源模塊包含一個低壓差穩(wěn)壓芯片AMS1117和一個基準電壓芯片CJ431。AMS1117將輸入的5 V 直流電轉(zhuǎn)換成3.3 V給整個控制系統(tǒng)使用,CJ431用于提供一個精準的2.496 V 參考電壓給DAC 模塊使用[17]。
圖6 電源模塊設計原理圖
狀態(tài)判斷模塊設計原理見圖7。硬件部分由兩個紅外反射傳感器和一個人體信號感應傳感器構成。圖7左側(cè)標注光電傳感器的部分為其中一對紅外反射傳感器的原理圖。LM567是一款常見的編碼器芯片,IR333C-A 為發(fā)射管,PT333-3B 為接收管。當接收管接收到信號時,圖7左側(cè)的Infrared1口輸出低電平,否則輸出高電平;人體信號感應傳感器選用型號為AS312的紅外熱釋電傳感器,其結(jié)構較為簡單,檢測到確切人體信號后端口輸出高電平。
3個傳感器垂直于顯微鏡的后側(cè)面,分布見圖8。人體紅外傳感器負責感應周圍的人體信號,當人體紅外傳感器前面有遮擋物時,圖7中PT333-3B 接收到反射信號,輸出高電平。
圖7 狀態(tài)判斷模塊設計原理圖
圖8 傳感器分布示意圖
該模塊硬件部分由DAC 和旋轉(zhuǎn)編碼器構成,DAC用于調(diào)節(jié)控制系統(tǒng)向電力系統(tǒng)反饋端輸出的電壓值來控制電力系統(tǒng)輸出的電壓值[18];旋轉(zhuǎn)編碼器則可以在實現(xiàn)自動調(diào)節(jié)功能的同時保留手動調(diào)節(jié)功能。
3.5.1 DAC
DAC 選用MCP4725芯片。該芯片為單通道12位緩沖電壓輸出數(shù)模轉(zhuǎn)換器,可以通過IIC 接口命令將輸入和配制數(shù)據(jù)燒寫到片內(nèi)非易失性存儲器,使芯片在斷電期間仍能保持之前的輸入代碼,且芯片輸出在上電后立即可用。我們在非易失性存儲器中預先設置了最低電壓值,可使系統(tǒng)上電時直接輸出最低電壓。
MCP4725芯片的輸入代碼為無符號的二進制值,輸出電壓范圍為0 V 至VDD。如式(1)所示,只需要向器件寫入相應的二進制值即可實現(xiàn)輸出電壓的調(diào)節(jié)功能。以本設計所選用的VDD值2.5 V為例,可實現(xiàn)最高0.0006 V 的步進輸出。
其中,Dn為輸入的二進制值。
3.5.2 旋轉(zhuǎn)編碼器
旋轉(zhuǎn)編碼器型號為KY40,其共有3種操作:逆時針旋轉(zhuǎn)、順時針旋轉(zhuǎn)、向下按。本設計主要用到了其中的順時針和逆時針旋轉(zhuǎn),用于手動調(diào)節(jié)輸出電壓。使用旋轉(zhuǎn)編碼器代替電位器的優(yōu)點包括:(1)可以實現(xiàn)燈泡輸出電壓的無極調(diào)壓,調(diào)節(jié)精度和準確性更高;(2)擺脫了電位器物理調(diào)節(jié)方式的限制,方便后續(xù)控制系統(tǒng)進行自動調(diào)節(jié)。
易失數(shù)據(jù)存儲模塊采用BL24C256A 芯片,電路見圖9。該模塊用于記錄顯微鏡從在用狀態(tài)轉(zhuǎn)為空閑狀態(tài)時的輸出電壓值,當顯微鏡恢復在用狀態(tài)可以還原為此值。
圖9 EEPROM 電路連接圖
用戶交互部分由顯示模塊、按鍵、蜂鳴器、LED 燈組成,見圖10。顯示模塊選用1.14寸的TFT顯示屏,分辨率為135×240,主控芯片為ST7789,用來顯示燈泡輸出電壓、實際輸出電壓、顯微鏡狀態(tài)等信息。蜂鳴器選擇為3.3 V 有源蜂鳴器。LED選擇型號為MHP5050RGB 的三色LED,當系統(tǒng)處于在用狀態(tài)時, LED 發(fā)出綠光;當系統(tǒng)處于判斷狀態(tài)時,LED 發(fā)出藍光;當系統(tǒng)處于空閑狀態(tài)時,蜂鳴器短鳴一聲報警,LED 發(fā)出紅光。
圖10 用戶交互模塊
本設計軟件編寫所用開發(fā)環(huán)境為Keil μVision5,開發(fā)語言為C 語言,兩者應用廣泛,在此不再贅述。
傳感器的值與判斷結(jié)果的邏輯關系見表1,其中L 表示傳感器輸出邏輯低電平,H 為邏輯高電平,X 表示為任意狀態(tài)。從表1可以看出,只有當3個傳感器均為L 時,系統(tǒng)才判斷這個瞬間設備處于在用狀態(tài),否則均判斷為空閑狀態(tài)。
然而,僅使用上表的判斷方式會導致系統(tǒng)的不穩(wěn)定,因此本設計采用圖11所示的流程對兩種狀態(tài)進行判斷[19]。設置標志Flag 用于指示顯微鏡當前的運行模式,F(xiàn)lag 為0表示顯微鏡處于空閑模式,F(xiàn)lag 為1表示顯微鏡處于在用模式;設置N_Count 為空閑狀態(tài)計數(shù)標志,設置C_Count 為在用狀態(tài)計數(shù)標志;設置判斷標志C_Flag 用于指示根據(jù)表1判斷后所得到的顯微鏡即時狀態(tài)(注意區(qū)別于Flag),C_Flag 為1表示在用,C_Flag 為0表示空閑。每隔200 ms 讀取傳感器的值并根據(jù)表1判斷設備即時狀態(tài):若為空閑,空閑計數(shù)標志N_Count 計 數(shù)+1,C_Flag 和C_Count 歸 零; 當N_Count 大 于2 400(即2 min)時,F(xiàn)lag 置0,設 置顯微鏡當前模式為空閑模式;若判斷為在用,C_Flag 標志置為1,開始計數(shù)C_Count,當C_Count 大于10(即2 s)時,F(xiàn)lag 置1,設置顯微鏡當前模式為在用模式。
圖11 設備使用狀態(tài)判斷流程圖
表1 傳感器的值與判斷結(jié)果的邏輯關系
自動升壓流程設計見圖12。開機時,MCP4725芯片直接輸出最低電壓1 V,然后讀取24C256中保存的值,輸出電壓以每20毫秒步進一格的速度提升電壓至該值;同樣,當設備轉(zhuǎn)為空閑狀態(tài)時,輸出電壓以每20毫秒下降一格的速度降至1 V,實現(xiàn)了電壓的步進提升與降低。
圖12 自動升壓流程圖
手動亮度調(diào)節(jié)主要依靠旋轉(zhuǎn)編碼器和DAC,實現(xiàn)流程見圖13。設置計數(shù)標記Count 記錄旋轉(zhuǎn)方向,在定時器的中斷處理函數(shù)中判斷旋轉(zhuǎn)編碼器旋轉(zhuǎn)時的電平,判斷到旋轉(zhuǎn)時,順時針旋轉(zhuǎn)一格Count 值加1,逆時針旋轉(zhuǎn)一格Count 值減1。每格的步進值設置為0.04 V。為了保證輸出電壓不能超過最大輸出功率,當輸出電壓達到最高電壓時,輸出不再增大(本設計設置最大值為4.6 V);同時,由于開關電源的特性輸出電壓不能為0 V,當輸出電壓低于設置的最低電壓1 V 時,輸出1 V。
圖13 手動調(diào)壓流程圖
本設計使用中斷方式對旋轉(zhuǎn)編碼器進行計數(shù),手動亮度調(diào)節(jié)具有最高的優(yōu)先級,即系統(tǒng)一旦讀取到旋轉(zhuǎn)編碼器發(fā)生旋轉(zhuǎn)操作,系統(tǒng)立即將使用狀態(tài)變?yōu)樵谟?,其之前已?jīng)計數(shù)的空閑時間計數(shù)立刻清零,重新判斷。
需要注意的是,在最初的實驗過程中,旋轉(zhuǎn)過程中計數(shù)標志Count 偶爾計錯,經(jīng)調(diào)試發(fā)現(xiàn)是由中斷優(yōu)先級設置不當導致的,定時器中斷會影響旋轉(zhuǎn)編碼器計數(shù),將旋轉(zhuǎn)編碼器的中斷優(yōu)先級提高后,計數(shù)標志Count 穩(wěn)定不再計錯。
系統(tǒng)的電氣連接見圖14,實物連接見圖15(電力系統(tǒng)板安裝于顯微鏡底部,主控系統(tǒng)板安裝于顯微鏡后側(cè),使光電傳感器垂直于操作人員)。
圖14 系統(tǒng)電氣連接圖
圖15 實物連接圖
圖16為控制信號的輸出電壓與燈泡電壓監(jiān)測圖,曲線(1)為控制信號,曲線(2)為燈泡輸出電壓,使用了泰克TBS1102C 型示波器進行采樣。需要說明的是,由于開關電源輸出不能為0,空閑狀態(tài)燈泡輸出電壓將保持最低輸出1.2 V;本系統(tǒng)的最大輸出功率為15 W,因此最大輸出電壓為4.6 V。圖16中兩條左側(cè)的上升曲線為顯微鏡從空閑狀態(tài)轉(zhuǎn)為在用狀態(tài)時的控制電壓的上升圖,控制信號以每20毫秒步進一格(0.04 V)的速度提升2.5 V,輸出電壓以2倍的提升速度步進至4.54 V(這里的結(jié)果不為5 V 是由于需要去除二極管的壓降);右側(cè)曲線為顯微鏡從在用狀態(tài)轉(zhuǎn)為空閑狀態(tài)時的電壓下降圖。當顯微鏡處于空閑狀態(tài)時,由于燈泡從熱變冷無需太多時間,可以加快下降速度,控制信號以每20毫秒步進一格(0.1 V)的速度下降,同時燈泡輸出電壓以2倍的速度相應下降,結(jié)果符合本設計要求。
圖16 輸出電壓測試結(jié)果圖
極限距離測試結(jié)果見表2,表中所示的距離為操作人員與控制板光電傳感器的直線距離。本設計對表中所列出的每個距離分別測試了20 次,可以看出,在25 cm 以下系統(tǒng)可以完美識別;在25~30 cm 時,由于接近傳感器的極限距離,因此傳感器受到的干擾較大;而在大于35 cm 時,是否有遮擋物均不會對系統(tǒng)造成干擾。根據(jù)實際使用習慣,使用人員在操作顯微鏡時,與設備的距離不會超過20 cm;而且大于35 cm 時不進行判斷,也能在一定程度上排除其他遮擋物的干擾,因此該結(jié)果完全滿足本設計的要求。
表2 極限距離測試結(jié)果
本設計用旋轉(zhuǎn)編碼器代替?zhèn)鹘y(tǒng)的電位器,配合單片機和模數(shù)轉(zhuǎn)換芯片實現(xiàn)了對顯微鏡光源的數(shù)控調(diào)節(jié),獲得了更高的調(diào)節(jié)精度;并且在此基礎上結(jié)合光電傳感器和人體紅外傳感器初步實現(xiàn)了對顯微鏡使用狀態(tài)的判斷,比單純的光電傳感器判斷更加準確;最后,將兩者結(jié)合實現(xiàn)了根據(jù)使用狀態(tài)自動調(diào)節(jié)燈泡的亮度。本設計只是提出了一個初步的想法,目前市場上鮮有涉足設備使用狀態(tài)判斷的裝置,尤其是醫(yī)療設備領域。實現(xiàn)設備使用狀態(tài)的判斷并且智能化開關機不僅可以減少設備故障,延長設備使用壽命,還可以做到節(jié)能減排,符合國家綠色環(huán)保,可持續(xù)發(fā)展的理念。
本設計在使用狀態(tài)判斷方面雖有改進,但無論是硬件方案的選擇還是軟件算法的設計仍處于起步階段,存在一些不足(如何保證實時性,即使用人員如果很快來到設備面前,可能需要等待2 s 左右,亮度才能提升上來),均會影響使用體驗。本設計更多的作用是拋磚引玉,希望可以吸引更多專家學者不斷改進硬件和算法,例如未來可以配合AI 實現(xiàn)對使用人員行為的預測,使該系統(tǒng)更加智能。