舵機工作原理_第1頁
舵機工作原理_第2頁
舵機工作原理_第3頁
舵機工作原理_第4頁
舵機工作原理_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、舵機工作原理 標準的舵機有3條導線,分別是:電源線、地線、控制線,如圖2所示。以日本FUTABA-S3003型舵機為例,圖1是FUFABA-S3003型舵機的內部電路。3003舵機的工作原理是:PWM信號由接收通道進入信號解調電路BA6688的12腳進行解調,獲得一個直流偏置電壓。該直流偏置電壓與電位器的電壓比較,獲得電壓差由BA6688的3腳輸出。該輸出送入電機驅動集成電路BAL6686,以驅動電機正反轉。當電機轉動時,通過級聯減速齒輪帶動電位器Rw1旋轉,直到電壓差為O,電機停止轉動。舵機的控制信號是PWM信號,利用占空比的變化,改變舵機的位置。有個很有趣的技術話題可以稍微提一下,就是BA

2、6688是有EMF控制的,主要用途是控制在高速時候電機最大轉速。原理是這樣的: 收到1個脈沖以后,BA6688內部也產生1個以5K電位器實際電壓為基準的脈沖,2個脈沖比較以后展寬,輸出給驅動使用。當輸出足夠時候,馬達就開始加速,馬達就能產生EMF,這個和轉速成正比的。因為取的是中心電壓,所以正常不能檢測到的,但是運行以后就電平發(fā)生傾斜,就能檢測出來。超過EMF判斷電壓時候就減小展寬,甚至關閉,讓馬達減速或者停車。這樣的好處是可以避免過沖現象(就是到了定位點還繼續(xù)走,然后回頭,再靠近) 一些國產便宜舵機用的便宜的芯片,就沒有EMF控制,馬達、齒輪的機械慣性就容易發(fā)生過沖現象,產生抖舵電源線和地線

3、用于提供舵機內部的直流電機和控制線路所需的能源電壓通常介于46V,一般取5V。注意,給舵機供電電源應能提供足夠的功率。控制線的輸入是一個寬度可調的周期性方波脈沖信號,方波脈沖信號的周期為20 ms(即頻率為50 Hz)。當方波的脈沖寬度改變時,舵機轉軸的角度發(fā)生改變,角度變化與脈沖寬度的變化成正比。某型舵機的輸出軸轉角與輸入信號的脈沖寬度之間的關系可用圖3來表示。可變脈寬輸出試驗(舵機控制)原創(chuàng):xidongs 整理:armok / 2004-12-05 / www.OurAVR.com 內容簡介:舵機:英文叫Servo,臺灣及香港中文稱伺服機。在航模及自動控制中,舵機擔當著重要的作用。舵機由

4、無核心馬達所構成,可依據接收機發(fā)出的指令,轉動至定點的位置,是各個舵面的動力來源。伺服機的規(guī)格主要是扭力與速度,扭力的單位是/,意指擺臂長度1公分處所能吊起的物重。速度的單位是秒/60°,意指轉動60°所需要的秒數。本實驗中控制舵機的 PWM 由 M16 的 PB.0 輸出,8M 晶體,vcc:5v,僅使用一個八位定時器 timer2,波形比較準確,用示波器和實測都已經通過。 分辨率為20微秒。伺服馬達的控制:標準的微型伺服馬達有三條控制線,分別為:電源、地及控制。電源線與地線用于提供內部的直流馬達及控制線路所需的能源,電壓通常介于4V-6V之間,該 電源應盡可能與處理系統

5、的電源隔離(因為伺服馬達會產生噪音)。甚至小伺服馬達在重負載時也會拉低放大器的電壓,所以整個系統的電源供應的比例必須合理??刂凭€輸入一個周期性的正向脈沖信號,這個周期性脈沖信號的高電平時間通常在1ms-2ms之間。而低電平時間應在5ms到20ms間,并不很嚴格。下表表示出一個典型的20ms周期性脈沖的正脈沖寬度與微型伺服馬達的輸出臂位置的關系:以下是形象的示意圖:電路圖: 舵機工作原理1、概述 舵機最早出現在航模運動中。在航空模型中,飛行機的飛行姿態(tài)是通過調節(jié)發(fā)動機和各個控制舵面來實現的。舉個簡單的四通飛機來說,飛機上有以下幾個地方需要控制: 1.發(fā)動機進氣量,來控制發(fā)動機的拉力(或

6、推力); 2.副翼舵面(安裝在飛機機翼后緣),用來控制飛機的橫滾運動; 3.水平尾舵面,用來控制飛機的俯仰角; 4.垂直尾舵面,用來控制飛機的偏航角; 遙控器有四個通道,分別對應四個舵機,而舵機又通過連桿等傳動元件帶動舵面的轉動,從而改變飛機的運動狀態(tài)。舵機因此得名:控制舵面的伺服電機。 不僅在航模飛機中,在其他的模型運動中都可以看到它的應用:船模上用來控制尾舵,車模中用來轉向等等。由此可見,凡是需要操作性動作時都可以用舵機來實現。2、結構和控制 一般來講,舵機主要由以下幾個部分組成, 舵盤、減速齒輪組、位置反饋電位計5k、直流電機、控制電路板等。 工作原理:控制電路板接受來自信號線的控制信號

7、(具體信號待會再講),控制電機轉動,電機帶動一系列齒輪組,減速后傳動至輸出舵盤。舵機的輸出軸和位置反饋電位計是相連的,舵盤轉動的同時,帶動位置反饋電位計,電位計將輸出一個電壓信號到控制電路板,進行反饋,然后控制電路板根據所在位置決定電機的轉動方向和速度,從而達到目標停止。 舵機的基本結構是這樣,但實現起來有很多種。例如電機就有有刷和無刷之分,齒輪有塑料和金屬之分,輸出軸有滑動和滾動之分,殼體有塑料和鋁合金之分,速度有快速和慢速之分,體積有大中小三種之分等等,組合不同,價格也千差萬別。例如,其中小舵機一般稱作微舵,同種材料的條件下是中型的一倍多,金屬齒輪是塑料齒輪的一倍多。需要根據需要選用不同類

8、型。 舵機的輸入線共有三條,紅色中間,是電源線,一邊黑色的是地線,這輛根線給舵機提供最基本的能源保證,主要是電機的轉動消耗。電源有兩種規(guī)格,一是4.8V,一是6.0V,分別對應不同的轉矩標準,即輸出力矩不同,6.0V對應的要大一些,具體看應用條件;另外一根線是控制信號線,Futaba的一般為白色,JR的一般為桔黃色。另外要注意一點,SANWA的某些型號的舵機引線電源線在邊上而不是中間,需要辨認。但記住紅色為電源,黑色為地線,一般不會搞錯。 舵機的控制信號為周期是20ms的脈寬調制(PWM)信號,其中脈沖寬度從0.5ms-2.5ms,相對應舵盤的位置為0180度,呈線性變化。也就是說,給它提供一

9、定的脈寬,它的輸出軸就會保持在一個相對應的角度上,無論外界轉矩怎樣改變,直到給它提供一個另外寬度的脈沖信號,它才會改變輸出角度到新的對應的位置上。舵機內部有一個基準電路,產生周期20ms,寬度1.5ms的基準信號,有一個比較器,將外加信號與基準信號相比較,判斷出方向和大小,從而產生電機的轉動信號。由此可見,舵機是一種位置伺服的驅動器,轉動范圍不能超過180度,適用于那些需要角度不斷變化并可以保持的驅動當中。比方說機器人的關節(jié)、飛機的舵面等。 常見的舵機廠家有:日本的Futaba、JR、SANWA等,國產的有北京的新幻想、吉林的振華等?,F舉Futaba S3003來介紹相關參數,以供大家設計時選

10、用。之所以用3003是因為這個型號是市場上最常見的,也是價格相對較便宜的一種(以下數據摘自Futaba產品手冊)。 尺 寸(Dimensions): 40.4×19.8×36.0 mm 重 量(Weight): 37.2 g 工作速度(Operating speed):0.23 sec/60°(4.8V) 0.19 sec/60°(6.0V) 輸出力矩(Output torque): 3.2 kg.cm (4.8V) 4.1 kg.cm (6.0V)由此可見,舵機具有以下一些特點: >體積緊湊,便于安裝; >輸出力矩大,穩(wěn)定性好; >控

11、制簡單,便于和數字系統接口; 正是因為舵機有很多優(yōu)點,所以,現在不僅僅應用在航模運動中,已經擴展到各種機電產品中來,在機器人控制中應用也越來越廣泛。3、用單片機來控制 正是舵機的控制信號是一個脈寬調制信號,所以很方便和數字系統進行接口。只要能產生標準的控制信號的數字設備都可以用來控制舵機,比方PLC、單片機等。這里介紹利用51系列單片機產生舵機的控制信號來進行控制的方法,編程語言為C51。之所以介紹這種方法只是因為筆者用2051實現過,本著負責的態(tài)度,所以敢在這里寫出來。程序用的是我的四足步行機器人,有刪改。單片機并不是控制舵機的最好的方法,希望在此能起到拋磚引玉的作用。 2051有兩個16位

12、的內部計數器,我們就用它來產生周期20 ms的脈沖信號,根據需要,改變輸出脈寬?;舅悸啡缦拢ㄕ垖φ障旅娴某绦颍?我用的晶振頻率為12M,2051一個時鐘周期為12個晶振周期,正好是1/1000 ms,計數器每隔1/1000 ms計一次數。以計數器1為例,先設定脈寬的初始值,程序中初始為1.5ms,在for循環(huán)中可以隨時通過改變a值來改變,然后設定計數器計數初始值為a,并置輸出p12為高位。當計數結束時,觸發(fā)計數器溢出中斷函數,就是void timer0(void) interrupt 1 using1 ,在子函數中,改變輸出p12為反相(此時跳為低位),在用20000(代表20ms周期)減

13、去高位用的時間a,就是本周期中低位的時間,c=20000-a,并設定此時的計數器初值為c,直到定時器再次產生溢出中斷,重復上一過程。# include <reg51.h> #define uchar unsigned char #define uint unsigned intuint a,b,c,d; /*a為舵機1的脈沖寬度,b為舵機2的脈沖寬度,單位1/1000 ms */ /*c、d為中間變量*/*以下定義輸出管腳*/ sbit p12=P12; sbit p13=p13; sbit p37=P37;/*以下兩個函數為定時器中斷函數*/*定時器1,控制舵機1,輸出引腳為P1

14、2,可自定義*/ void timer0(void) interrupt 1 using 1 p12=!p12; /*輸出取反*/ c=20000-c; /*20000代表20 ms,為一個周期的時間*/ TH0=-(c/256); TL0=-(c%256); /*重新定義計數初值*/ if(c>=500&&c<=2500)c=a; else c="20000-a" /*判斷脈寬是否在正常范圍之內*/ /*定時器2,控制舵機2,輸出引腳為P13,可自定義*/ void timer1(void) interrupt 3 using 1 p13=!p

15、13; d=20000-d; TH1=-(d/256); TL1=-(d%256); if(d>=500&&d<=2500)d=b; else d="20000-b" /*主程序*/ void main(void) TMOD=0x11; /*設初值*/ p12=1; p13=1; a=1500; b=1500; /*數值1500即對應1.5ms,為舵機的中間90度的位置*/ c=a;d=b; TH0=-(a/256); TL0=-(a%256); TH1=-(b/256); TL1=-(b%256); /*設定定時器初始計數值*/ EA=1; E

16、T0=1; TR0=1;EX0=1;EX1=1; ET1=1; TR1=1; PX0=0;PX1=0;PT1=1;PT0=1;/*設定中斷優(yōu)先級*/ for(;) /*在這個for循環(huán)中,可以根據程序需要 在任何時間改變a、b值來改變脈寬的輸 出時間,從而控制舵機*/ 因為在脈沖信號的輸出是靠定時器的溢出中斷函數來處理,時間很短,因此在精度要求不高的場合可以忽略。因此如果忽略中斷時間,從另一個角度來講就是主程序和脈沖輸出是并行的,因此,只需要在主程序中按你的要求改變a值,例如讓a從500變化到2500,就可以讓舵機從0度變化到180度。另外要記住一點,舵機的轉動需要時間的,因此,程序中a值的變化不能太快,不然舵機跟不上程序。根據需要,選擇合適的延時,用一個a遞增循環(huán),可以讓舵機很流暢的轉動,而不會產生像步進電機一樣的脈動。這些還需要實踐中具體體會。舵機的速度決定于你給它的信號脈寬的變化速度。舉個例子,t0試,脈寬為0.5ms,t1s時,脈寬為1.0ms,那么,舵機就會從0.5ms對應的位置轉到1.0ms對應的位置,那么轉動速度如何呢?一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論