□鐘鳴川 湛慧苗
世界各國的相關(guān)研究機(jī)構(gòu)和企業(yè)都在致力于主動控制式膠囊內(nèi)窺鏡的研究[1],該技術(shù)方案有望應(yīng)用于消化道內(nèi)窺鏡臨床檢測領(lǐng)域,改變傳統(tǒng)推挽式內(nèi)窺鏡檢測過程痛苦和被動式膠囊內(nèi)窺鏡耗時低效的現(xiàn)狀[2],推進(jìn)主動控制式膠囊內(nèi)窺鏡檢測的市場化,服務(wù)于醫(yī)療機(jī)構(gòu)并造福于廣大患者[3]。通過比較各種驅(qū)動方式,采用外部磁場驅(qū)動膠囊內(nèi)窺鏡機(jī)器人的驅(qū)動源是較好驅(qū)動方式。
通過對外磁場驅(qū)動控制裝置的動力模型原理的分析可知[4],外部線圈的移動可以通過磁場來拖動體內(nèi)磁體膠囊的運(yùn)動,即膠囊的運(yùn)動可以反映在線圈的運(yùn)動上,所以只要所受控制的線圈按照既定的軌跡運(yùn)動即可。由于實(shí)驗(yàn)條件的限制,故采用軟件仿真。軟件系統(tǒng)分為四個模塊,其中包括按鍵控制模塊(五個控制鍵),控制處理模塊(AT89C51芯片),受控模塊(三個步進(jìn)電機(jī)),顯示模塊(AMPIRE128×64)。而其中的受控模塊步進(jìn)電機(jī)又分為電機(jī)正轉(zhuǎn)、電機(jī)反轉(zhuǎn)、電機(jī)加速,電機(jī)減速的幾部分組成,其主程序框圖如圖1所示。
當(dāng)控制程序選擇M1電機(jī)運(yùn)動時,這時有勵磁數(shù)字信號送入U2后(如圖2所示),通過控制對步進(jìn)電機(jī)的各相繞組按合適的時序通電,就能使步進(jìn)電機(jī)步進(jìn)轉(zhuǎn)動[5]。
圖1 主程序結(jié)構(gòu)框圖
圖2 步進(jìn)電機(jī)及其驅(qū)動芯片
各個電機(jī)勵磁信號如下:
uchar step_s[]={0x02,0x06,0x04,0x0c,0x08,0x09,0x01,0x03};//1相2相勵磁
uchar step_l[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};//順時針
uchar step3_s[]={0x1f,0x3f,0x2f,0x6f,0x4f,0xcf,0x8f,0x9f};//電機(jī)2,3的勵磁
uchar step3_l[]={0x9f,0x8f,0xcf,0x4f,0x6f,0x2f,0x3f,0x1f};
對于步進(jìn)電機(jī)的速度調(diào)節(jié)則采用了延時函數(shù),調(diào)節(jié)轉(zhuǎn)速只要調(diào)節(jié)x的值即可,液晶顯示上面則用了Display函數(shù),只要控制顯示的具體位置即可,具體控制如下:
void speed(uint x0,uint y0,uchar num0)
{switch(num0)
{case 0:x=50; Display(x0,0+2+2,y0*8,1); break;
case 1:x=100;Display(x0,0+2+2,y0*8,2);break;
case 2:x=200;Display(x0,0+2+2,y0*8,3);break;
case 3:x=500;Display(x0,0+2+2,y0*8,4);break;
……
}}
線圈和電機(jī)的總控制部分,利用AT89C51芯片的P2、P3口作為信號的輸入端,輸入信號由五個觸點(diǎn)開關(guān)控制。
整個控制裝置的組合構(gòu)成如下:線圈1和電機(jī)M1的開閉,當(dāng)線圈一閉合時,電機(jī)M1的運(yùn)動才是有效的;線圈2和電機(jī)M2的開閉,當(dāng)線圈二閉合時,電機(jī)M2的運(yùn)動才是有效的;線圈3和電機(jī)M3的開閉,當(dāng)線圈三閉合時,電機(jī)M3的運(yùn)動才是有效的。
由于三個電機(jī)的控制方式基本相同,唯一的不同就是在實(shí)際應(yīng)用中,他們控制線圈運(yùn)動的方向不一樣,步進(jìn)電機(jī)的控制按鍵如圖3所示。
圖3 總控制開關(guān)
步進(jìn)電機(jī)(M1為例說明)的觸發(fā)和按鍵顯示觸發(fā),主要是通過以圖3所示的五個開關(guān)來控制,當(dāng)開關(guān)斷開時則是key0==0,當(dāng)開關(guān)導(dǎo)通時則是key0==1,采用了if{ …… }的判斷語句。三個電機(jī)的控制語句大致一樣,采用了以下函數(shù)進(jìn)行選擇void stepmotor(){//ClearScreen(0);//清屏motor1();motor2();motor3();}電機(jī)M2、M3控制程序類似于電機(jī)M1的控制程序,只是觸發(fā)控制的按鍵不同??刂齐姍C(jī)M1按鍵KEY1的控制流程如圖4所示。
圖4 單一按鍵控制流程圖
控制電路的顯示部分,利用AT89C51芯片的P0口和P3口作為信號的輸入端,通過顯示屏來顯示開始/停止。當(dāng)有KEY1按鍵選擇步進(jìn)電機(jī)M1閉合時,顯示屏上面顯示“RUN:ON”,當(dāng)有KEY1按鍵斷開時,顯示屏上面顯示“RUN:OFF”,當(dāng)觸發(fā)點(diǎn)觸開關(guān)正轉(zhuǎn)/反轉(zhuǎn)時,顯示屏上面顯示“STA:Z”,再次點(diǎn)觸這個開關(guān)時,顯示屏上面顯示“STA:F”,當(dāng)觸發(fā)點(diǎn)觸開關(guān)加速/減速,顯示屏上面顯示“SPD:1”、“SPD:2”、“SPD:3”、“SPD:4”四個檔位的速度切換。通過對按鍵的控制,來控制電機(jī)的運(yùn)作,再在顯示屏上面顯示,直觀而有效。
電機(jī)M1的控制部分,利用AT89C51芯片的P1口中的P1.0、P1.1、P1.2、P1.3作為信號的輸入端,通過輸出的信號來控制電機(jī)的轉(zhuǎn)速和方向,如圖5所示。
圖5 電機(jī)控制圖
用已經(jīng)編寫好的C語言程序(見附錄程序A)在keil.uvision2仿真軟件里面建立新的工程,加載(.c)文件名到Keil仿真軟件里面打開,打開options for target選項(xiàng),點(diǎn)擊Output選項(xiàng)中的“create HEX File”生成(.hex)文件,點(diǎn)擊Target選項(xiàng),把其中的“Xtal(MHZ)”改成12.0,然后點(diǎn)擊Keil軟件里面的編譯,即可生成(.hex)文件,在PROTUES仿真軟件里面雙擊AT89C51芯片,即可彈出選項(xiàng),將生成的(.hex)文件寫入到芯片AT89C51里面,在PROTUES仿真軟件里面點(diǎn)擊開始,即可看見預(yù)想的結(jié)果。
在現(xiàn)今高速發(fā)展的社會實(shí)情下,人們對自身的健康日益關(guān)注,腸胃道健康問題已成為關(guān)注的焦點(diǎn)之一,膠囊內(nèi)窺鏡不僅涉及到許多新領(lǐng)域、新技術(shù)、新知識,而且將這些領(lǐng)域的科技成果應(yīng)用在膠囊內(nèi)窺鏡上,必將產(chǎn)生巨大的經(jīng)濟(jì)和社會效應(yīng)。本文提出了一種由外磁場驅(qū)動控制的裝置來控制膠囊在人體腸道中的運(yùn)動,通過實(shí)驗(yàn)仿真軟件的驗(yàn)證,證明此外磁場驅(qū)動控制裝置確實(shí)有效而可靠。