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

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

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

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

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

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