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

3 下位機(jī)控制系統(tǒng)硬件設(shè)計(jì)及實(shí)現(xiàn)
??? 在該控制系統(tǒng)中,各功能模塊主要有:核心微控制器MSP430F149、存儲(chǔ)器擴(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è)豐富、功耗低、開(kāi)發(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í)接收來(lái)自于PC機(jī)以及鍵盤發(fā)出的控制指令并進(jìn)行指令解釋,以判斷對(duì)某個(gè)從單片機(jī)進(jìn)行電機(jī)參數(shù)和命令參數(shù)的傳遞,以及處理從從單片機(jī)反饋回來(lái)的限位和報(bào)警等信號(hào)。從單片機(jī)單元主要是對(duì)主單片機(jī)傳輸過(guò)來(lái)的指令進(jìn)行具體的操作,每個(gè)從單片機(jī)負(fù)責(zé)10個(gè)步進(jìn)電機(jī)的控制;從單片機(jī)單元完成對(duì)50個(gè)步進(jìn)電機(jī)方向及位置的控制并記錄當(dāng)前位置信息。
3.2 存儲(chǔ)器單元
??? 采用美國(guó)Atmel公司的E2PROM存儲(chǔ)芯片AT24C16作為存儲(chǔ)單元。AT24C16具有2KB存儲(chǔ)容量,并且它的數(shù)據(jù)接口符合I2C總線標(biāo)準(zhǔn),進(jìn)行讀寫(xiě)操作非常方便。I2C總線是一種由飛利浦公司開(kāi)發(fā)的串行總線,傳輸速率可達(dá)100Kb/s。由于MSP430F149本身不具備I2C總線接口,故采用由兩個(gè)普通I/O模擬I2C總線來(lái)進(jìn)行存儲(chǔ)器的讀寫(xiě)操作。
3.3 人機(jī)交互模塊
??? 人機(jī)交互模塊分為鍵盤模塊和液晶顯示模塊。鍵盤模塊采用3×3鍵盤,采用程序掃描方式來(lái)實(shí)現(xiàn)。其中基于應(yīng)急考慮,為了在使用過(guò)程中一步到位,設(shè)定每個(gè)按鍵對(duì)應(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ī)軟件兩部分組成??紤]到軟件開(kāi)發(fā)效率及可維護(hù)性,下位機(jī)軟件設(shè)計(jì)采用模塊化結(jié)構(gòu),用C語(yǔ)言編寫(xiě)程序代碼,開(kāi)發(fā)工具使用IAR Systems公司的IAR Embedded Workbench。
??? 主單片機(jī)軟件由如下功能模塊組成:鍵盤模塊、與從單片機(jī)通信的模塊、數(shù)據(jù)存儲(chǔ)模塊、液晶顯示模塊、與上位機(jī)通信的模塊。圖3是主單片機(jī)程序流程圖。
?

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

4.1 批量步進(jìn)電機(jī)控制的并發(fā)實(shí)現(xiàn)
??? 計(jì)算機(jī)控制的設(shè)計(jì)思想有兩種:以程序員為中心,面向過(guò)程的單任務(wù)編程;以事件為中心,面向?qū)ο蟮亩嗳蝿?wù)編程[6]。在傳統(tǒng)的單任務(wù)機(jī)制下,各功能模塊按特定的順序形成一個(gè)單一的任務(wù),通過(guò)循環(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è)相對(duì)獨(dú)立的模塊,并將各個(gè)模塊理解為一個(gè)個(gè)單一的任務(wù),每個(gè)任務(wù)在任務(wù)調(diào)度程序的管理下獨(dú)立地占用一定數(shù)量的CPU時(shí)間片,就可以實(shí)現(xiàn)多任務(wù)并發(fā)處理機(jī)制。在這種嶄新的程序結(jié)構(gòu)下,各個(gè)模塊間耦合度低,并且彼此處于相同的地位,通過(guò)任務(wù)調(diào)度程序輪流交替執(zhí)行各模塊[7]。
??? 由于每個(gè)從單片機(jī)需要協(xié)調(diào)控制10個(gè)步進(jìn)電機(jī),在此采用時(shí)間片輪轉(zhuǎn)技術(shù)配合多任務(wù)機(jī)制來(lái)實(shí)現(xiàn)。為此,設(shè)計(jì)了一個(gè)可用于實(shí)時(shí)控制系統(tǒng)的簡(jiǎn)潔高效的調(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ù)對(duì)應(yīng)一個(gè)步進(jìn)電機(jī)控制模塊。軟件計(jì)數(shù)器采用一個(gè)8位的存儲(chǔ)單元作為軟件計(jì)數(shù)器的計(jì)數(shù)單元。假定控制系統(tǒng)由k個(gè)任務(wù)構(gòu)成,每個(gè)任務(wù)對(duì)應(yīng)一個(gè)電機(jī)驅(qū)動(dòng)模塊,第i個(gè)任務(wù)的優(yōu)先級(jí)用ni(i=1~5)表示,優(yōu)先級(jí)最高的任務(wù)規(guī)定ni=1。優(yōu)先級(jí)最高的任務(wù)ni越小,在單位時(shí)間內(nèi)執(zhí)行的次數(shù)就越多,從而實(shí)現(xiàn)了多任務(wù)多優(yōu)先級(jí)的并發(fā)實(shí)現(xiàn),也就實(shí)現(xiàn)了批量步進(jìn)電機(jī)的控制。為了使機(jī)器人各部分協(xié)調(diào)地運(yùn)動(dòng)以及本身機(jī)構(gòu)的對(duì)稱性,不同的任務(wù),優(yōu)先級(jí)可能相同。為了防止計(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,因此,就需要對(duì)MSP430F149的串口進(jìn)行擴(kuò)展。經(jīng)綜合考慮,主單片機(jī)的UART1單獨(dú)用于和鍵盤進(jìn)行通信,UART2采用多機(jī)通信方式,分別與從單片機(jī)串口相連實(shí)行串口分時(shí)復(fù)用。在此,采用地址位方式實(shí)現(xiàn)主機(jī)對(duì)多從機(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ī)能識(shí)別呼叫并做出響應(yīng),接著數(shù)據(jù)幀的第1~第8位發(fā)送字符串,最后發(fā)送幀尾0結(jié)束。從機(jī)識(shí)別呼叫地址,發(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ī)以特定字符串請(qǐng)求從機(jī)發(fā)送數(shù)據(jù),在幀發(fā)送完一定時(shí)間內(nèi)等待從機(jī)響應(yīng)。(2)如果主機(jī)在請(qǐng)求從機(jī)發(fā)送后規(guī)定的時(shí)間內(nèi)未收到響應(yīng),即認(rèn)為超時(shí)出錯(cuò),結(jié)束等待。(3)從機(jī)在收到請(qǐng)求發(fā)送字符串后,發(fā)送數(shù)據(jù)幀響應(yīng)。
??? 本文針對(duì)多操作機(jī)機(jī)器人排牙對(duì)實(shí)時(shí)性和準(zhǔn)確性的要求,開(kāi)發(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í)性,降低了軟件開(kāi)發(fā)的復(fù)雜度,同時(shí)配合采用高性能細(xì)分驅(qū)動(dòng)器SH-2H042Ma,使得最終設(shè)計(jì)出的多操作機(jī)排牙機(jī)器人控制系統(tǒng)能夠?qū)崿F(xiàn)定量排牙、確保義齒質(zhì)量,提高工作效率等功能,并具有高精度、成本低及可靠性高等優(yōu)點(diǎn)。
??? 該系統(tǒng)還存在一些問(wèn)題,需要進(jìn)一步加以解決:(1)在通信方式上采用RS-232實(shí)現(xiàn)PC機(jī)與下位機(jī)控制系統(tǒng)的通信,由于RS-232傳輸速度的限制,影響了PC機(jī)與下位機(jī)控制系統(tǒng)通信的實(shí)時(shí)性,有必要開(kāi)發(fā)基于USB總線的運(yùn)動(dòng)控制器。(2)由于需要對(duì)大批量微型步進(jìn)電機(jī)進(jìn)行控制,所以還難以實(shí)現(xiàn)多操作機(jī)排牙機(jī)器人所有關(guān)節(jié)的同時(shí)聯(lián)動(dòng)。在今后的工作中, 將針對(duì)這些問(wèn)題開(kāi)展深入的研究。
參考文獻(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ái)控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2004,22(4):90-93.
[6] ?崔賀峰,古志民.基于能力的動(dòng)態(tài)任務(wù)委派機(jī)制[J].微機(jī)發(fā)展,2005,15 (10):82-87.
[7] ?吳益飛,李勝.基于完成時(shí)間的任務(wù)分配方案與性能分析[J]. 計(jì)算機(jī)研究與發(fā)展,2004,42(8):1397-1402.
