仿生機(jī)器魚實驗平臺屬于教育部和北京郵電大學(xué)共同出資支持的一項“國家級大學(xué)生創(chuàng)新性實驗計劃”項目,是一個集光、機(jī)、電、流體、智能于一體的實驗平臺,研究內(nèi)容包括:仿生機(jī)器魚機(jī)械結(jié)構(gòu)的研究,推薦效率的研究以及控制性能的研究。
1 仿生機(jī)器魚平臺簡介:
設(shè)計制作的機(jī)器魚模仿鲹科魚類的外形,頭部采用剛性結(jié)構(gòu)的塑料材料。其形狀采用流線型,模仿真魚魚頭的形狀和大小比例。在魚頭的內(nèi)部空間里安裝電源及控制電路,并在魚頭兩側(cè)魚眼處及在頭前部的偏下側(cè)安裝了3 個紅外傳感器,構(gòu)成了一個探測左、前、右三個方向的傳感器網(wǎng)絡(luò),讓魚具有自助避障的功能。
使用鋁合金制作的魚骨架把三個舵機(jī)串聯(lián)起來,魚骨架支撐起套于舵機(jī)外面的橡膠魚皮,便構(gòu)成了了機(jī)器魚的魚身這個三關(guān)節(jié)的驅(qū)動系統(tǒng)。使用鋁合金制作的連接件將魚身通過螺紋連接的方式固定在在剛性魚頭上,魚身的橡膠魚皮使用熱熔膠粘在魚頭上,這樣便構(gòu)成了機(jī)器魚的整體結(jié)果。具體如圖1 所示。實驗證明,這種方法簡單易行,且方便拆卸和組裝。
機(jī)器魚技術(shù)指標(biāo):巡游速度:1.2~1.5m./s;全電量巡游距離:4.5~5.5 千米;轉(zhuǎn)彎半徑:15~20cm。
2.系統(tǒng)組成及工作原理:
從功能上看,整個魚體的系統(tǒng)可以分成三大塊,分別是:感知區(qū),決策區(qū),行為區(qū)。感知區(qū)對應(yīng)著多紅外傳感器網(wǎng)絡(luò)和無限傳輸模塊,而決策區(qū)指的是主控芯片(MCU),動作區(qū)對應(yīng)著舵機(jī)串聯(lián)組成的三關(guān)節(jié)驅(qū)動系統(tǒng)。具體如圖2所示。本系統(tǒng)的最重要的工作集中在對多舵機(jī)的協(xié)調(diào)控制,因此主要圍繞舵機(jī)的控制工作進(jìn)行細(xì)致詳盡的介紹。
3 舵機(jī)的控制
3.1 舵機(jī)的工作原理:
舵機(jī)主要由以下幾個部分組成:舵盤、減速齒輪組、比例電位器(位置反饋電位計)、直流電機(jī)(馬達(dá))、控制電路板等。其工作原理:控制電路板接受來自信號線的控制信號,控制直流電機(jī)轉(zhuǎn)動,直流電機(jī)帶動一系列齒輪組,其齒輪組的輸出軸與一個線性的比例電位器相連,該電位器把輸出軸轉(zhuǎn)過的角度θ 轉(zhuǎn)換成比例的電壓反饋給控制電路,控制電路將其與輸入的控制脈沖信號比較,產(chǎn)生糾偏脈沖,并驅(qū)動馬達(dá)正向或反向地轉(zhuǎn)動,使齒輪組的輸出位置與期望值相符,令糾正脈沖趨于為0,從而達(dá)到使舵機(jī)精確定位的目的。舵機(jī)是一個典型閉環(huán)反饋系統(tǒng),其工作原理由圖3 所示。
舵機(jī)的輸入線共有三條,紅色中間,是電源線,一邊黑色的是地線,這兩根線給舵機(jī)提供最基本的能源保證,主要是電機(jī)的轉(zhuǎn)動消耗。電源有兩種規(guī)格,一是4.8V,一是6.0V,分別對應(yīng)不同的轉(zhuǎn)矩標(biāo)準(zhǔn),另外一根線是控制信號線,一般為白色。
3.2 單舵機(jī)和多舵機(jī)的角度控制
3.2.1 單舵機(jī)的角度控制:
由舵機(jī)的工作原理可知,給舵機(jī)輸入一個周期在20ms 左右,脈沖寬度在0.5ms 至2.5ms 之間的周期性脈沖信號,驅(qū)動舵機(jī)輸出軸達(dá)到-90°到90° 之間的轉(zhuǎn)角,呈線性變化。并且無論外界轉(zhuǎn)矩怎樣改變,舵機(jī)的輸出軸都會保持在一個相對應(yīng)的角度上,直到給它提供一個另外寬度的脈沖信號,才會改變輸出角度到新的對應(yīng)的位置上。通過編程,借助單片機(jī)的輸出端口得到需要的周期性脈沖信號。
程序示例:(晶振為:4MHZ,脈沖從PORTDbits.RD0 輸出)
從上面的程序可知,通過改變delay 函數(shù)的形參j,可以根據(jù)需要,得到具有相應(yīng)脈沖寬度和周期的脈沖信號。例如,改變以上程序段的1 至4 行為:
得到輸出脈沖寬度為1ms,周期為20ms 的脈沖信號,然后借助for 循環(huán),將能得到所需要的周期性脈沖信號,驅(qū)動舵機(jī)輸出軸達(dá)到-90°到90° 之間的轉(zhuǎn)角。
3.2.2 多舵機(jī)不同角度的控制:
通過多舵機(jī)不同角度的控制,可以控制幾個舵機(jī)同時向不同角度扭轉(zhuǎn),以達(dá)到預(yù)期的控制目的。
具體的實現(xiàn)方法是:在定時器延時函數(shù)中設(shè)定一個計時值t(在程序中t 在初始化時值為0),使t 在每次定時器計時完畢時加1。例如,定時器一周期的定時時間為0.25ms,則t值每加1 就相當(dāng)于0.25ms。當(dāng)t 的代表值達(dá)到20ms 也就是當(dāng)t 等于80 時清零,這樣就可以將脈沖周期控制在20ms,再通過使用if 語句查詢方式,可以調(diào)節(jié)同一周期脈沖的脈沖寬度,即能使多舵機(jī)同時向不同角度旋轉(zhuǎn)。
程序示例:(晶振為:4MHZ,脈沖從PORTDbits.RD0,PORTDbits.RD1,PORTDbits.RD2三個端口中輸出)
通過以上程序再配合for 循環(huán),便能在PORTDbits.RD0,PORTDbits.RD1,PORTDbits.RD2三個端口得到脈沖寬度分別為1ms,1.5ms,2ms,周期同為20ms 的三種周期脈沖信號,從而達(dá)到對三個舵機(jī)同時進(jìn)行不同控制的要求。當(dāng)然利用以上的方法,可以很輕松地對3 個以上的多個舵機(jī)同時進(jìn)行控制。
3.3 舵機(jī)的速度控制
通過舵機(jī)的特性可以了解到舵機(jī)的瞬時運(yùn)動速度是由其內(nèi)部的直流電動機(jī)和變速齒輪組的配合來決定的,在恒定的電壓驅(qū)動下,其數(shù)值是恒定的。但舵機(jī)的平均運(yùn)動速度可通過分段停頓的控制方式來改變,例如,把動作幅度為90°的轉(zhuǎn)動細(xì)分為128 個停頓點(diǎn),通過控制每個停頓點(diǎn)的時間長短來實現(xiàn)0°到90°變化的平均速度。也就是說,將90 度的連貫一步轉(zhuǎn)動變?yōu)?28 個停頓的步進(jìn)轉(zhuǎn)動,通過每步之間的短暫停頓可實現(xiàn)減速的目的,因為停頓時間非常短因此可看做是90°的連貫轉(zhuǎn)動,由于篇幅的限制,這里不再給出相應(yīng)的程序?qū)嵗?,感興趣的讀者可以自己參考上面的程序?qū)嵗M(jìn)行編寫。
4.結(jié)束語
本文介紹的這種方法產(chǎn)生的PWM 波形精度高,能夠很好的完成舵機(jī)的控制工作,舵機(jī)工作穩(wěn)定,我們設(shè)計制作的機(jī)器魚成功地實現(xiàn)了魚類的一些基本運(yùn)動動作,如前游,加速,停止,前進(jìn)中轉(zhuǎn)彎等,這也驗證了所采用的多關(guān)節(jié)驅(qū)動方式和對多舵機(jī)的控制方法是行之有效的。本文通過以仿生機(jī)器魚為載體進(jìn)行撰文,意在拋磚引玉,希望對其它的舵機(jī)控制應(yīng)用起到幫助。
本文作者創(chuàng)新點(diǎn):
文中以仿生機(jī)器魚為運(yùn)用背景,采用PIC18F452 單片機(jī)作為舵機(jī)的控制單元,運(yùn)用單片機(jī)的定時器從單片機(jī)的端口產(chǎn)生周期性脈沖信號。
參考文獻(xiàn)(Reference):
[1] 劉和平. PIC 18Fxxx 單片機(jī)原理及接口程序設(shè)計.北京:北京航空航天大學(xué)出版社,2004
[2] 李學(xué)海. PIC 單片機(jī)實用教程-提高篇(第2 版).北京:北京航空航天大學(xué)出版社,2007
[3] 王志良,周卓,靳松,趙積春. 競賽機(jī)器人制作技術(shù).北京:機(jī)械工業(yè)出版社,2007
[4] 周志強(qiáng),王志良,張雪元,黃海歡. 仿生機(jī)器魚的設(shè)計及其運(yùn)動控制研究. 微計算機(jī)信息, 2006 年 第22 卷 第17 期