??? 摘 要: 為了滿足多操作機排牙機器人實現(xiàn)人類全口義齒排牙對實時性" title="實時性">實時性和準(zhǔn)確性的需要以及解決對大批量步進電機" title="步進電機">步進電機進行控制的難題,提出采用主從式單片機控制方案,開發(fā)了基于MSP430單片機的多操作機排牙機器人下位機" title="下位機">下位機控制系統(tǒng)" title="控制系統(tǒng)">控制系統(tǒng)。詳細(xì)介紹了多操作機排牙機器人的結(jié)構(gòu)及工作過程、多操作機排牙機器人下位機控制系統(tǒng)的硬件實現(xiàn)和軟件系統(tǒng)。實驗結(jié)果表明,該控制系統(tǒng)設(shè)計合理,具有控制精確、開放性好、可靠性高等優(yōu)點。
??? 關(guān)鍵詞: 多操作機? 全口義齒? 步進電機? MSP430
?
??? 長期以來,口腔修復(fù)醫(yī)學(xué)都是以視覺效果的評價和手工操作為基礎(chǔ),以經(jīng)驗積累和歸納總結(jié)為主要發(fā)展方式,以形象思維和形式邏輯為主要思維方式的形象科學(xué)[1]。正是由于這種原因?qū)е略谂R床醫(yī)療過程中存在很大的隨機性和局限性,同時也極大地阻礙了口腔修復(fù)醫(yī)學(xué)的發(fā)展,并使口腔修復(fù)醫(yī)學(xué)的發(fā)展水平遠(yuǎn)遠(yuǎn)落后于世界科學(xué)技術(shù)的發(fā)展水平。為此,本文提出利用多操作機機器人來輔助設(shè)計制作全口義齒人工牙列,這不但可以實現(xiàn)比高級口腔修復(fù)醫(yī)療專家更精確的重復(fù)動作操作,同時還能避免專家因疲勞、疾病、情緒、疏忽等原因造成的失誤。這將徹底改變靠醫(yī)生個人經(jīng)驗設(shè)計和手工制作全口義齒的落后方式,使全口義齒的設(shè)計與制作進入到既能滿足無牙頜患者個體生理功能及美觀的要求,又能達(dá)到規(guī)范化、標(biāo)準(zhǔn)化、自動化、工業(yè)化的水平[2]。同時又解決了目前單操作機排牙機器人難以實現(xiàn)復(fù)雜人工牙的精確抓取和定位問題[3],極大地提高了制作效率和質(zhì)量。
??? 為了實現(xiàn)多操作機排牙機器人的高可靠性、高精度的特點,以及滿足患者對全口義齒生理功能和美觀的要求,排牙機器人控制系統(tǒng)整體性能的實現(xiàn)起著關(guān)鍵作用。因此,開發(fā)價格相對低廉并具備高精度特性的排牙機器人控制系統(tǒng)將擁有良好的應(yīng)用前景。為了實現(xiàn)上述功能并基于性價比考慮,本文提出由TI公司的MSP430F149單片機構(gòu)成主從式單片機控制單元,并與PC機構(gòu)成主從式控制系統(tǒng)的系統(tǒng)實現(xiàn)方案。為了實現(xiàn)多任務(wù)的處理,軟件部分采用時間片輪轉(zhuǎn)技術(shù),并利用IAR 嵌入式工作平臺Embedded Workbench對排牙機器人下位機控制軟件進行編制。
1 多操作機排牙機器人的工作過程
??? 多操作機排牙機器人的結(jié)構(gòu)圖如圖1所示。具體的工作原理:通過鋼絲軟軸進行傳動以適應(yīng)傳動過程中可動件與不動件的連接,同時用一個彈性可變形材料作為牙弓曲線發(fā)生器,通過電機驅(qū)動形成牙弓曲線,將14個操作機安裝在彈性材料上,操作機可以在上面進行滑動,以適應(yīng)不同人的牙弓長度;利用Matlab進行擬合并進行誤差分析;利用5個點來擬合牙弓曲線可以得到較好的效果,由于其中位于對稱線上的點是固定的,所以最終只需要通過滑臺機構(gòu)的運動改變彈性材料上4個點的位置就可以改變曲線形狀,使其逼近真正的牙弓曲線;同時下電機控制牙齒唇舌向的轉(zhuǎn)動和上下移動,上電機控制牙齒近遠(yuǎn)中向的轉(zhuǎn)動,進而實現(xiàn)多操作機排牙的目的。
?

2 控制系統(tǒng)總體設(shè)計
??? 多操作機排牙機器人控制系統(tǒng)總體組成框圖如圖2所示。為保證控制的實時性及準(zhǔn)確性, 機器人輔助全口義齒系統(tǒng)采用PC機與基于MSP430F149單片機構(gòu)成的控制單元相結(jié)合的主從式控制結(jié)構(gòu)。根據(jù)全口義齒排牙機器人實際的運行特點,實際的排牙過程對電機速度沒有過多的要求,所以該控制系統(tǒng)只需要實現(xiàn)步進電機的位置控制和方向控制即可。在該系統(tǒng)中,PC機運行三維交互式全口義齒排牙軟件,三維交互式全口義齒排牙軟件根據(jù)人的牙弓參數(shù)和頜弓參數(shù)實現(xiàn)預(yù)排牙,再根據(jù)預(yù)排牙的結(jié)果進行單顆牙齒位置和姿態(tài)的調(diào)整,并將根據(jù)最終每顆牙齒的位置和姿態(tài)參數(shù)進行機構(gòu)的軌跡規(guī)劃和逆運算得出每個時刻電機運行的脈沖數(shù)目,傳遞給由MSP430F149構(gòu)成的下位機控制器,驅(qū)動各步進電機以一定的方向、速度、次序運動,同時對驅(qū)動電源過流報警信號和電機運動中的限位等輸入信號進行處理。
?

3 下位機控制系統(tǒng)硬件設(shè)計及實現(xiàn)
??? 在該控制系統(tǒng)中,各功能模塊主要有:核心微控制器MSP430F149、存儲器擴展單元、PC機與主單片機的通信模塊、主從單片機通信模塊、MSP430F149復(fù)位電路和晶振電路,MSP430F149的JTAG接口模塊以及光電隔離模塊。為了更好地實現(xiàn)人機交互,該控制器還有鍵盤模塊和液晶顯示模塊" title="液晶顯示模塊">液晶顯示模塊。
3.1 核心微控制器模塊
??? 核心微控制器模塊所用單片機為TI公司的MSP430系列, 其具有體積小、運行速度快、工作穩(wěn)定、處理能力強、片內(nèi)外設(shè)豐富、功耗低、開發(fā)環(huán)境方便高效以及品種繁多等優(yōu)點。
??? MSP430F149單片機構(gòu)成的控制單元采用了主、從單片機控制方案[4-5]。其中主單片機主要負(fù)責(zé)與PC機和五個從單片機進行通信。主單片機實時接收來自于PC機以及鍵盤發(fā)出的控制指令并進行指令解釋,以判斷對某個從單片機進行電機參數(shù)和命令參數(shù)的傳遞,以及處理從從單片機反饋回來的限位和報警等信號。從單片機單元主要是對主單片機傳輸過來的指令進行具體的操作,每個從單片機負(fù)責(zé)10個步進電機的控制;從單片機單元完成對50個步進電機方向及位置的控制并記錄當(dāng)前位置信息。
3.2 存儲器單元
??? 采用美國Atmel公司的E2PROM存儲芯片AT24C16作為存儲單元。AT24C16具有2KB存儲容量,并且它的數(shù)據(jù)接口符合I2C總線標(biāo)準(zhǔn),進行讀寫操作非常方便。I2C總線是一種由飛利浦公司開發(fā)的串行總線,傳輸速率可達(dá)100Kb/s。由于MSP430F149本身不具備I2C總線接口,故采用由兩個普通I/O模擬I2C總線來進行存儲器的讀寫操作。
3.3 人機交互模塊
??? 人機交互模塊分為鍵盤模塊和液晶顯示模塊。鍵盤模塊采用3×3鍵盤,采用程序掃描方式來實現(xiàn)。其中基于應(yīng)急考慮,為了在使用過程中一步到位,設(shè)定每個按鍵對應(yīng)一個命令。液晶顯示模塊采用128×64點陣式的LM12864。液晶顯示模塊主要功能有:電機狀態(tài)的顯示,可以在液晶屏幕上顯示當(dāng)前每個電機的狀態(tài);電機位置的顯示,可以在液晶屏幕上顯示當(dāng)前每個電機的位置參數(shù),包括電機的轉(zhuǎn)角和脈沖數(shù)。
4 下位機控制系統(tǒng)軟件設(shè)計
??? 控制系統(tǒng)軟件包括三維交互式全口義齒排牙軟件和單片機軟件,單片機軟件即是下位機軟件。下位機軟件主要由主單片機軟件與從單片機軟件兩部分組成??紤]到軟件開發(fā)效率及可維護性,下位機軟件設(shè)計采用模塊化結(jié)構(gòu),用C語言編寫程序代碼,開發(fā)工具使用IAR Systems公司的IAR Embedded Workbench。
??? 主單片機軟件由如下功能模塊組成:鍵盤模塊、與從單片機通信的模塊、數(shù)據(jù)存儲模塊、液晶顯示模塊、與上位機通信的模塊。圖3是主單片機程序流程圖。
?

??? 從單片機軟件由如下功能模塊組成:與主單片機通信的模塊、步進電機控制模塊和位置監(jiān)控模塊。圖4為從單片機程序流程圖。其中步進電機控制模塊脈沖信號的產(chǎn)生主要靠定時器定時地響應(yīng)中斷對I/O口取反而產(chǎn)生的,并在中斷服務(wù)程序中實現(xiàn)對步進電機步數(shù)的精確計數(shù),達(dá)到系統(tǒng)所要達(dá)到的精度要求;轉(zhuǎn)速的控制可以通過改變定時器中斷的時間長短的方法來實現(xiàn)。通過串口或鍵盤向CCRX寫入新的計數(shù)值,以獲得新的脈沖信號周期。該方式可以實現(xiàn)步進電機脈沖周期的精確控制,從而實現(xiàn)對步進電機速度的精確控制;通過設(shè)置通用I/O口的狀態(tài)可以實現(xiàn)對步進電機方向的控制。
?

4.1 批量步進電機控制的并發(fā)實現(xiàn)
??? 計算機控制的設(shè)計思想有兩種:以程序員為中心,面向過程的單任務(wù)編程;以事件為中心,面向?qū)ο蟮亩嗳蝿?wù)編程[6]。在傳統(tǒng)的單任務(wù)機制下,各功能模塊按特定的順序形成一個單一的任務(wù),通過循環(huán)結(jié)構(gòu)往復(fù)運行。程序一經(jīng)建立,各模塊的執(zhí)行順序就隨之固定;模塊間的耦合也比較強,程序控制流程和系統(tǒng)功能的可擴展性比較差。時間片輪轉(zhuǎn)技術(shù)在單片機多任務(wù)編程中的應(yīng)用,可以將單片機控制系統(tǒng)分解成多個相對獨立的模塊,并將各個模塊理解為一個個單一的任務(wù),每個任務(wù)在任務(wù)調(diào)度程序的管理下獨立地占用一定數(shù)量的CPU時間片,就可以實現(xiàn)多任務(wù)并發(fā)處理機制。在這種嶄新的程序結(jié)構(gòu)下,各個模塊間耦合度低,并且彼此處于相同的地位,通過任務(wù)調(diào)度程序輪流交替執(zhí)行各模塊[7]。
??? 由于每個從單片機需要協(xié)調(diào)控制10個步進電機,在此采用時間片輪轉(zhuǎn)技術(shù)配合多任務(wù)機制來實現(xiàn)。為此,設(shè)計了一個可用于實時控制系統(tǒng)的簡潔高效的調(diào)度算法,其核心是采用單片機的內(nèi)部定時器中斷服務(wù)程序作為調(diào)度主程序,以產(chǎn)生精確的單位時間片;同時在定時器中斷服務(wù)程序中設(shè)置一個軟件計數(shù)器,由計數(shù)器的現(xiàn)行值作為各個模塊入口的閾值。每個子單片機由10個任務(wù)構(gòu)成,每個任務(wù)對應(yīng)一個步進電機控制模塊。軟件計數(shù)器采用一個8位的存儲單元作為軟件計數(shù)器的計數(shù)單元。假定控制系統(tǒng)由k個任務(wù)構(gòu)成,每個任務(wù)對應(yīng)一個電機驅(qū)動模塊,第i個任務(wù)的優(yōu)先級用ni(i=1~5)表示,優(yōu)先級最高的任務(wù)規(guī)定ni=1。優(yōu)先級最高的任務(wù)ni越小,在單位時間內(nèi)執(zhí)行的次數(shù)就越多,從而實現(xiàn)了多任務(wù)多優(yōu)先級的并發(fā)實現(xiàn),也就實現(xiàn)了批量步進電機的控制。為了使機器人各部分協(xié)調(diào)地運動以及本身機構(gòu)的對稱性,不同的任務(wù),優(yōu)先級可能相同。為了防止計數(shù)單元的溢出,任務(wù)調(diào)度程序的入口判斷條件設(shè)置為i=0。系統(tǒng)功能的增加和刪除只需要修改子任務(wù)和任務(wù)調(diào)度程序的入口閾值即可,所以具有良好的可擴展性。具體的任務(wù)調(diào)度算法如圖5所示。
?

4.2 主從單片機的多機通信
??? 主單片機一方面需和鍵盤通信,另一方面還需要和五個從單片機進行通信,這使得主單片機必須具備六個串行通信接口。而MSP430F149本身只含兩個UART,因此,就需要對MSP430F149的串口進行擴展。經(jīng)綜合考慮,主單片機的UART1單獨用于和鍵盤進行通信,UART2采用多機通信方式,分別與從單片機串口相連實行串口分時復(fù)用。在此,采用地址位方式實現(xiàn)主機對多從機的尋址,從機以總線方式與主機連接。
??? 主單片機向從單片機發(fā)送的數(shù)據(jù)幀格式中,其中數(shù)據(jù)塊的第一個字符是一個帶有置位功能的地址位,用以表明該字符是一個地址,地址幀的取值范圍為1~5,即主機可以呼叫五個從機之一。當(dāng)實現(xiàn)主機向多個從機發(fā)送字符串的功能時,主機以從機地址呼叫,只有地址相符的從機能識別呼叫并做出響應(yīng),接著數(shù)據(jù)幀的第1~第8位發(fā)送字符串,最后發(fā)送幀尾0結(jié)束。從機識別呼叫地址,發(fā)現(xiàn)相符時接收后續(xù)數(shù)據(jù),接收到幀尾為0時結(jié)束。
??? 當(dāng)實現(xiàn)主機接收從機數(shù)據(jù)的功能時,在采用上面的幀格式形式的同時,補充修改了以上的通信協(xié)議,增加了下面一些功能:(1)主機以特定字符串請求從機發(fā)送數(shù)據(jù),在幀發(fā)送完一定時間內(nèi)等待從機響應(yīng)。(2)如果主機在請求從機發(fā)送后規(guī)定的時間內(nèi)未收到響應(yīng),即認(rèn)為超時出錯,結(jié)束等待。(3)從機在收到請求發(fā)送字符串后,發(fā)送數(shù)據(jù)幀響應(yīng)。
??? 本文針對多操作機機器人排牙對實時性和準(zhǔn)確性的要求,開發(fā)了基于MSP430的多操作機排牙機器人下位機控制系統(tǒng)。實驗結(jié)果表明:該控制系統(tǒng)由于采用主從式單片機結(jié)構(gòu)進行系統(tǒng)設(shè)計,大大提高了系統(tǒng)的實時性,降低了軟件開發(fā)的復(fù)雜度,同時配合采用高性能細(xì)分驅(qū)動器SH-2H042Ma,使得最終設(shè)計出的多操作機排牙機器人控制系統(tǒng)能夠?qū)崿F(xiàn)定量排牙、確保義齒質(zhì)量,提高工作效率等功能,并具有高精度、成本低及可靠性高等優(yōu)點。
??? 該系統(tǒng)還存在一些問題,需要進一步加以解決:(1)在通信方式上采用RS-232實現(xiàn)PC機與下位機控制系統(tǒng)的通信,由于RS-232傳輸速度的限制,影響了PC機與下位機控制系統(tǒng)通信的實時性,有必要開發(fā)基于USB總線的運動控制器。(2)由于需要對大批量微型步進電機進行控制,所以還難以實現(xiàn)多操作機排牙機器人所有關(guān)節(jié)的同時聯(lián)動。在今后的工作中, 將針對這些問題開展深入的研究。
參考文獻(xiàn)
[1] ZHANG Yong De, ZHAO Zhang Fang. Tooth arrangement for the manufacture of a complete denture using a robot[J].Industrial Robot: An International Journal,2001,28(5): 420-425.
[2] ?張永德,趙占芳.機器人在全口義齒制作中的應(yīng)用研究[J].機器人,2001,23(2):156-160.
[3] ?呂培軍,王勇.機器人輔助全口義齒排牙系統(tǒng)的初步研究[J]. 中華口腔醫(yī)學(xué)雜志,2001,36(2):139-144.
[4] ?BRUNNERT R. Multiprocessing with microcontrollers[J]. Elektronik, 2002,26(4):44-48.
[5] ?吳益飛,李勝.基于MSP430單片機的云臺控制系統(tǒng)設(shè)計與實現(xiàn)[J].微計算機信息,2004,22(4):90-93.
[6] ?崔賀峰,古志民.基于能力的動態(tài)任務(wù)委派機制[J].微機發(fā)展,2005,15 (10):82-87.
[7] ?吳益飛,李勝.基于完成時間的任務(wù)分配方案與性能分析[J]. 計算機研究與發(fā)展,2004,42(8):1397-1402.
