什么是舵機
舵機(英文叫Servo):它由直流電機、減速齒輪組、傳感器和控制電路組成伺服電機與普通電機的區(qū)別的一套自動控制系統(tǒng)。通過發(fā)送信號伺服電機與普通電機的區(qū)別,指定輸出軸旋轉(zhuǎn)角度。舵機一般而言都有最大旋轉(zhuǎn)角度(比如180度。)與普通直流電機的區(qū)別主要在,直流電機是一圈圈轉(zhuǎn)動的,舵機只能在一定角度內(nèi)轉(zhuǎn)動,不能一圈圈轉(zhuǎn)(數(shù)字舵機可以在舵機模式和電機模式中切換,沒有這個問題)。普通直流電機無法反饋轉(zhuǎn)動的角度信息,而舵機可以。用途也不同,普通直流電機一般是整圈轉(zhuǎn)動做動力用,舵機是控制某物體轉(zhuǎn)動一定角度用(比如機器人的關(guān)節(jié))。
舵機的結(jié)構(gòu)
舵機簡單的說就是集成伺服電機與普通電機的區(qū)別了直流電機、電機控制器和減速器等,并封裝在一個便于安裝的外殼里的伺服單元。能夠利用簡單的輸入信號比較精確的轉(zhuǎn)動給定角度的電機系統(tǒng)。
舵機安裝了一個電位器(或其它角度傳感器)檢測輸出軸轉(zhuǎn)動角度,控制板根據(jù)電位器的信息能比較精確的控制和保持輸出軸的角度。這樣的直流電機控制方式叫閉環(huán)控制,所以舵機更準確的說是伺服馬達,英文Servo。
舵機的主體結(jié)構(gòu)如下圖所示,主要有幾個部分:外殼、減速齒輪組、電機、電位器、控制電路。簡單的工作原理是控制電路接收信號源的控制信號,并驅(qū)動電機轉(zhuǎn)動;齒輪組將電機的速度成大倍數(shù)縮小,并將電機的輸出扭矩放大響應倍數(shù),然后輸出;電位器和齒輪組的末級一起轉(zhuǎn)動,測量舵機軸轉(zhuǎn)動角度;電路板檢測并根據(jù)電位器判斷舵機轉(zhuǎn)動角度,然后控制舵機轉(zhuǎn)動到目標角度或保持在目標角度。
舵機的外殼一般是塑料的,特殊的舵機可能會有金屬鋁合金外殼。金屬外殼能夠提供更好的散熱,可以讓舵機內(nèi)的電機運行在更高功率下,以提供更高的扭矩輸出。金屬外殼也可以提供更牢固的固定位置。
齒輪箱有塑料齒輪、混合齒輪、金屬齒輪的差別。塑料齒輪成本底,噪音小,但強度較低;金屬齒輪強度高,但成本高,在裝配精度一般的情況下會有很大的噪音。小扭矩舵機、微舵、扭矩大但功率密度小的舵機一般都用塑料齒輪,如Futaba 3003,輝盛的9g微舵。金屬齒輪一般用于功率密度較高的舵機上,比如輝盛的995舵機,在和3003一樣體積的情況下卻能提供13KG的扭矩。Hitec甚至用鈦合金作為齒輪材料,其高強度能保證3003大小的舵機能提供20幾公斤的扭矩?;旌淆X輪在金屬齒輪和塑料齒輪間做了折中,在電機輸出齒輪上扭矩一般不大,用塑料齒輪。
舵機的原理及控制
1
模擬舵機及其控制原理
舵機是一個微型的伺服控制系統(tǒng),具體的控制原理可以用下圖表示:
工作原理是控制電路接收信號源的控制脈沖,并驅(qū)動電機轉(zhuǎn)動;齒輪組將電機的速度成大倍數(shù)縮小,并將電機的輸出扭矩放大響應倍數(shù),然后輸出;電位器和齒輪組的末級一起轉(zhuǎn)動,測量舵機軸轉(zhuǎn)動角度;電路板檢測并根據(jù)電位器判斷舵機轉(zhuǎn)動角度,然后控制舵機轉(zhuǎn)動到目標角度或保持在目標角度。
模擬舵機需要一個外部控制器(遙控器的接收機)產(chǎn)生脈寬調(diào)制信號來告訴舵機轉(zhuǎn)動角度,脈沖寬度是舵機控制器所需的編碼信息。舵機的控制脈沖周期20ms,脈寬從0.5ms-2.5ms,分別對應-90度到+90度的位置。如下圖所示:
2
數(shù)字舵機及其控制原理
數(shù)字舵機從根本上顛覆了舵機的控制系統(tǒng)設(shè)計。數(shù)字和模擬舵機相比在兩個方面有明顯的優(yōu)點。1、防抖。2、響應速度快。
模擬舵機由于使用模擬器件搭建的控制電路,電路的反饋和位置伺服是基于電位器的比例調(diào)節(jié)方式。電位器由于線性度的影響,精度的影響,個體差異性的問題,會導致控制匹配不了比例電壓,比如我期望得到2.5V的電壓位置,但第一次得到的是2.3V,經(jīng)過1個調(diào)節(jié)周期后,電位器轉(zhuǎn)過的位置已經(jīng)是2.6V了,這樣控制電路就會給電機一個方向脈沖調(diào)節(jié),電機往回轉(zhuǎn),又轉(zhuǎn)過頭,然后有向前調(diào)節(jié),以至于出現(xiàn)不停的震蕩,這就是我們所看到的抖舵現(xiàn)象。我們購買一批舵機會發(fā)現(xiàn)有的很好用,有的在空載的時候也會在抖動,有的是在加一定的負載后就開始抖動。
我們不用裝出機器人就可以預期一個事實,不停抖動的舵機裝出來的仿人機器人是不可能走的很好的,用不停抖動的舵機裝出來的機械臂是不可能寫字的??上У氖?,現(xiàn)在的數(shù)字舵機還是很貴的,更別提用伺服直流電機+伺服驅(qū)動器+運動控制卡搭建的機器人系統(tǒng)了。
模擬舵機的調(diào)節(jié)周期是20ms(看看模塊卡的舵機程序),也就是它的反應時間是20ms。根據(jù)舵機的不同,假設(shè)我們估計舵機的速度是0.2s/60°,那么20ms舵機最快的時候轉(zhuǎn)過0.6度才會進行調(diào)節(jié),這就是關(guān)節(jié)在突然出現(xiàn)大負載的情況下,會被扭矩擺動0.6度,然后才糾正回來,我們的直觀感覺就是這個舵機不“硬”我們掰動舵盤,可以掰動一個位置。
數(shù)字舵機可以以很高的頻率進行調(diào)節(jié),這個周期和角度會變得非常小,并且有PID調(diào)節(jié)方式的存在,能夠在以很適當?shù)腜ID參數(shù)進行調(diào)節(jié),能夠讓舵機有很高的響應速度,不會出現(xiàn)超調(diào)。
3
總線伺服舵機
總線伺服舵機實際上可以理解為舵機的衍生品,數(shù)字舵機相比與模擬舵機而言是設(shè)計上的顛覆,而總線伺服單元對于舵機而言則是在功能和運用上的顛覆。舵機實際上只能發(fā)揮出總線伺服舵機非常微小的部分。
那么什么是總線伺服舵機。我們先來看一下我們現(xiàn)在使用舵機和數(shù)字舵機時遇見的問題。
1、我們利用舵機(不論數(shù)字還是模擬)搭建一個仿人機器人,用了20個自由度,用了20個舵機。每根舵機都要接到控制卡上,有的線還需要延長,所有的線加起來有超過30根,像團海草一樣把機器人整個身體纏了個遍,機器人在走動的時候突然發(fā)現(xiàn)舵機線被拉松了,機器人一個趔趄把脖子都摔斷了。控制卡上需要做出20個PWM信號接口(我們一直在為這個技術(shù)問題發(fā)愁,現(xiàn)在或許好一點),那可是長長的一排插針啊。健忘的我還很容易忘記哪個插針對應哪個舵機,好不容易接上后,一通電,機器人腿轉(zhuǎn)到背后去了,一排查發(fā)現(xiàn)腿關(guān)節(jié)接到肩關(guān)節(jié)了。當我們需要給機器人加些傳感器時候,突然發(fā)現(xiàn),IO口都被用掉了,定時器不夠用了,天啊,真是噩夢。
2、舵機的每一個舵機的參數(shù)不一定一樣,不時還會出現(xiàn)中位偏差比較大的,好不容易裝出機器人來后發(fā)現(xiàn)舵機的中位不一致,和理論計算得出來的機器人步態(tài)不相匹配。這回麻煩大了,需要對每一個舵機設(shè)置中位,在發(fā)送舵機控制信號的時候還需要對每一個舵機都單獨加入這個修正值,而不能統(tǒng)一調(diào)用某一個通用的PWM產(chǎn)生函數(shù),天啊,一個步態(tài)就是20行代碼啊。當然,程序員都是勤勞和嚴謹?shù)?,并不覺得這是辛苦的事情。而有些人會買可以通過編程器調(diào)節(jié)和設(shè)置中位的舵機,當然,可能會很貴。
3、機器人步態(tài)的編寫是件非常麻煩的事,我們在編寫步態(tài)的時候給舵機的初始值基本上都是有偏差的,比如我想肩關(guān)節(jié)轉(zhuǎn)到180度位置,我給的是255的控制值,但由于舵機個體差異的問題,這個值已經(jīng)讓舵機處于堵轉(zhuǎn)狀態(tài)。過一會之后,我們發(fā)現(xiàn)機器人一只胳膊不能用了,可憐的機器人啊,還不知道到底發(fā)生了什么事。時候檢查發(fā)現(xiàn)機器人肩關(guān)節(jié)堵轉(zhuǎn)時間過久,導致電機過熱,讓舵機外殼融化,然后導致減速齒輪箱錯位,舵機就失效了,機器人的一只胳膊就殘廢了。
第一點的原因我們可以理解為,現(xiàn)在的舵機都是并聯(lián)控制的,線都是需要接到控制板上,我們可以幻想,如果舵機可以串聯(lián)就好了。腳腕關(guān)鍵的舵機串到膝關(guān)節(jié),一直串到髖關(guān)節(jié),最后一根線直接接到控制卡上,甚至可以把所有的舵機都串進去。我們可以驚喜的發(fā)現(xiàn),原來只需要999元就可以買到稱心如意的鑲鉆手表哦,不好意思,離題了,我們同樣可以驚喜的發(fā)現(xiàn),只需要1根線,最多4根線就可以搞定20個舵機了,哎,世界真奇妙啊。
第二點的原因是舵機自己不能存儲中位修正值,修正值需要我們發(fā)控制脈沖的時候補進去。我們可以想象,如果我告訴舵機:你好,放松,我要修正你的頭的位置,它有點歪了。然后舵機就放松下來,我們把它的頭擺正,然后告訴它:這是你頭部的正確方向,你以后需要以這位置為正前方,然后舵機就把這個位置記下來了,并且我告訴它轉(zhuǎn)60度它就以這為初始位置轉(zhuǎn)60多,不多不少。我是不是在YY伺服電機與普通電機的區(qū)別?
第三點原因是機器人沒有神經(jīng)系統(tǒng),根本不知道疼痛。如果我們能給控制卡提供每一個關(guān)節(jié)的力矩、電流、電壓、溫度、轉(zhuǎn)角,那么機器人缺胳膊少腿的問題都可以解決。呵呵,好像有點神奇了。
其實一點不神奇,因為自從總線伺服單元出現(xiàn)后,這些幻想都可以瞬間變成現(xiàn)實??偩€伺服舵機簡單的說就是可以串聯(lián),并且接受數(shù)據(jù)信號,能夠提供關(guān)節(jié)的力矩、電流、溫度、角度等信息,能準確控制位置的運動單元,外形可以和舵機一模一樣。我們用一個帶串口給總線發(fā)送一條指令:舵機1,轉(zhuǎn)20度;舵機2轉(zhuǎn)30度,舵機3休息……直到理論上最后一個舵機。然后所有的舵機就會執(zhí)行這條指令。
舵機的種類
舵機的形狀和大小多的讓人眼花繚亂,大致可以分為下面這幾種(如圖所示):
最右邊的是常見的標準舵機,中間兩個小的是微型舵機,左邊魁梧的那個是大扭力舵機。圖上這幾種舵機都是三線控制。
制作機器人常用的舵機有下面幾種,而且每種的固定方式也不同,如果從一個型號換成一個型號,整個機械結(jié)構(gòu)都需要重新設(shè)計。
第一種是MG995,優(yōu)點是價格便宜,金屬齒輪,耐用度也不錯。缺點是扭力比較小,所以負載不能太大,如果做雙足機器人之類的這款舵機不是很合適,因為腿部受力太大。做做普通的六足,或者機械手還是不錯的。
第二種是SR 403,這款舵機是網(wǎng)友xqi2因MG995做雙足機器人抖動太厲害,摸索找到的,經(jīng)過測試。制作雙足機器人不錯~~~至少不抖了。優(yōu)點是扭力大,全金屬齒輪,價格也還算便宜。缺點嘛。。。做工很山寨。。。其他缺點等待反饋。
第三種就是傳說中的數(shù)字舵機AX12+,這個是久經(jīng)考驗的機器人專用舵機。除了價格高,使用RS485串口通信(控制板就得換數(shù)字舵機專用控制板),其他都是優(yōu)點。
下圖是一個普通模擬舵機的分解圖,其組成部分主要有齒輪組、電機、電位器、電機控制板、殼體這幾大部分。
電機控制板主要是用來驅(qū)動電機和接受電位器反饋回來的信息。電機嘛,動力的來源了,這個不用太多解釋。電位器這里的作用主要是通過其旋轉(zhuǎn)后產(chǎn)生的電阻的變化,把信號發(fā)送回電機控制板,使其判斷輸出軸角度是否輸出正確。齒輪組的作用主要是力量的放大,使小功率電機產(chǎn)生大扭矩。
舵機底殼拆開后就可以看到,主要是電機與控制板
控制板拿起來后下方是與控制板連接的電位器
從頂部來看電機與電位器,與電機齒輪直接相連的為第一級放大齒輪。
經(jīng)過一級齒輪放大后,再經(jīng)過二、三、四級放大齒輪,最后再通過輸出軸輸出。
通過上面兩圖可以很清晰的看到,本舵機是4級齒輪放大機構(gòu),就是通過這么一層層的把小的力量放大,使得這么一個小小的電機能有15KG的扭力。
看完了舵機的構(gòu)造后咱么對舵機的控制系統(tǒng)進行詳解。
舵機的伺服系統(tǒng)由可變寬度的脈沖來進行控制,控制線是用來傳送脈沖的。脈沖的參數(shù)有最小值,最大值,和頻率。一般而言,舵機的基準信號都是周期為20ms,寬度為1.5ms。這個基準信號定義的位置為中間位置。舵機有最大轉(zhuǎn)動角度,中間位置的定義就是從這個位置到最大角度與最小角度的量完全一樣。最重要的一點是,不同舵機的最大轉(zhuǎn)動角度可能不相同,但是其中間位置的脈沖寬度是一定的,那就是1.5ms。如下圖:
角度是由來自控制線的持續(xù)的脈沖所產(chǎn)生。這種控制方法叫做脈沖調(diào)制。脈沖的長短決定舵機轉(zhuǎn)動多大角度。例如:1.5毫秒脈沖會到轉(zhuǎn)動到中間位置(對于180°舵機來說,就是90°位置)。當控制系統(tǒng)發(fā)出指令,讓舵機移動到某一位置,并讓他保持這個角度,這時外力的影響不會讓他角度產(chǎn)生變化,但是這個是由上限的,上限就是他的最大扭力。除非控制系統(tǒng)不停的發(fā)出脈沖穩(wěn)定舵機的角度,舵機的角度不會一直不變。
當舵機接收到一個小于1.5ms的脈沖,輸出軸會以中間位置為標準,逆時針旋轉(zhuǎn)一定角度。接收到的脈沖大于1.5ms情況相反。不同品牌,甚至同一品牌的不同舵機,都會有不同的最大值和最小值。一般而言,最小脈沖為1ms,最大脈沖為2ms。如下圖:
舵機控制板字面意思就是用于控制舵機的板子,就像驅(qū)動直流電機一樣,機器人使用的舵機也需要專門驅(qū)動,通過舵機的認知篇我們了解到舵機的驅(qū)動方法是單片機輸出特定的PWM信號,舵機接收到信號后經(jīng)舵機內(nèi)部電路檢測對比然后驅(qū)動內(nèi)部的小型直流電機帶動減速齒輪組使舵機的輸出軸轉(zhuǎn)動到特定角度位置。所以想控制舵機就需要學會單片機的程序開發(fā),這對一般的機器人愛好者來說難度挺大,特別是沒有接觸單片機的。而做一個仿生機器人一般都需要幾個十幾個舵機,控制多個舵機的程序則更加復雜,這是大多數(shù)機器人愛好者在制作機器人的過程中都要遇到的一個大問題。為了使大多數(shù)不會編寫舵機控制程序的機器人愛好者能夠輕松的控制舵機,高手們就專門開發(fā)了用于多路舵機控制的硬件模塊供其他不會編寫程序的愛好者使用。
舵機控制板從硬件上來其實也就是一塊單片機開發(fā)板,一片單片機加上一些外圍電路,但由于開發(fā)者將多路舵機控制程序?qū)懭氲絾纹瑱C中,這個外表上看似普通的單片機開發(fā)板便有了不一樣的價值,這就是軟件開發(fā)的魅力所在。與許多技術(shù)一樣,舵機控制板起源于國外,國外比較流行的就是開源的(SSC-32)32路舵機控制板,原理就是使用單片機的硬件PWM接口通過4個74HC595擴展成32路PWM輸出,實現(xiàn)32路舵機控制。另一種方法就是通過單片機內(nèi)部的定時器設(shè)置生成PWM,這樣理論有多少I/O口就能產(chǎn)生多少路控制,但隨著路數(shù)的增加控制精度就會下降,當然用高性能的單片機可以有效避免這個問題。
舵機控制板還有個方便之處在于有一套與之相對應的PC調(diào)試軟件,面向用戶界面,使用戶能夠更直觀的操控舵機位移,而且還能把調(diào)整出來的動作保存下來,形成連貫的動作組,這樣便使得愛好者設(shè)計機器人步態(tài)的過程變得簡單化,讓愛好者更快的享受制作機器人的樂趣。
簡單來說,舵機控制板就是機器人的中樞神經(jīng),負責動作協(xié)調(diào),另外的機器人主控就是大腦,負責處理外界信息,統(tǒng)一指揮,機器人擴展的傳感器就是感官系統(tǒng),負責接收外界信息。
?。ㄐ率直乜矗┖唵握f一下舵機控制板是什么:舵機控制板字面意思就是具有控制舵機能力的電路板,是一種寫好舵機驅(qū)動控制程序的單片機成品模塊,主要功能就是驅(qū)動多路舵機,然后內(nèi)部程序又寫好了與外部設(shè)備進行通訊的串口協(xié)議,這樣外部設(shè)備就能發(fā)送特定的指令給舵機控制板,間接的控制多路舵機。舵機控制板就是這樣的功能,它只是機器人控制系統(tǒng)的一部分,把舵機驅(qū)動控制的程序分離出來單獨做成了一個軟硬件模塊,如果做過智能小車那就好理解了,舵機控制板在仿生機器人中的作用跟電機驅(qū)動模塊在智能小車里的作用是一樣了,只不過前者看著要比后者高級些。脫機運行:字面意思就是能脫離電腦運行,有兩個方法,一個是按照仿生機器人的制作思路,在機器人主控的程序里寫入調(diào)試好的動作,主控檢測外界信息來觸發(fā)相應的動作發(fā)送給舵機控制板,這樣就實現(xiàn)了脫機運行;另外一種就是把調(diào)好的動作組存到舵機控制板上的存儲器中,然后還是用外部設(shè)備來發(fā)送單個動作組指令給舵機控制板,或者設(shè)置存儲的某個動作組在每次重新上電后運行。這兩種方法區(qū)別就是后者省去了前者在主控程序里復制粘貼動作指令這個步驟。但實際上動作組存儲這個功能只是在機器人入門中有點作用,而且還是懶人專用,在后期的高階學習中,機器人主控需要不斷檢測各種傳感器數(shù)據(jù),分析融合,實時生成動作發(fā)給舵機控制板來控制機器人姿態(tài)。舵機控制板上存儲的動作組只是事先預設(shè)的,在需要固定動作套路的場合是有用的,在無規(guī)律判斷場合就沒用了。
伺服電機、舵機、步進電機的區(qū)別
怎么去區(qū)分伺服電機、舵機、步進電機呢?電機種類有很多種,不同的電機的優(yōu)點、缺點各不相同,因此用途也不同。這里簡單的講下伺服電機、舵機、步進電機的區(qū)別,盡量的讓大家通熟易懂。
其實伺服電機是這么一種電機,它主要用于比較精準的位置、速度或力矩輸出。準確地說,伺服電機不是說一個電機,而是一個系統(tǒng)。所以僅僅一臺電機都不能算是伺服電機,因為他們并不具備伺服電機的功能。伺服電機是一個電機系統(tǒng),它包含電機、傳感器和控制器。直流無刷電機可以是伺服電機里面的一部分,交流電機也可以是,但他們并不是伺服電機。作為一個系統(tǒng),它可以有減速齒輪,也可以沒有。
那么舵機是什么呢?舵機是個俗稱,是玩航模、船模的人起的。因為這種電機比較常用于舵面操縱。
舵機,其實就是個低端的伺服電機系統(tǒng),它也是最常見的伺服電機系統(tǒng),因此英文叫做Servo,就是Servomotor的簡稱。它將PWM信號與滑動變阻器的電壓相比對,通過硬件電路實現(xiàn)固定控制增益的位置控制。也就是說,它包含了電機、傳感器和控制器,是一個完整的伺服電機(系統(tǒng))。價格低廉、結(jié)構(gòu)緊湊,但精度很低,位置鎮(zhèn)定能力較差,能夠滿足很多低端需求。
步進電機英文是stepper/step/stepping motor。主要是依靠定子線圈序列通電,順次在不同的角度形成磁場,推拉定子旋轉(zhuǎn)。
步進電機的好處是,你可以省掉用于測量電機轉(zhuǎn)角的傳感器。因此在結(jié)構(gòu)上和價格上有一定的優(yōu)勢。而且它的位置和速度控制相對簡單。其缺點是,第一,與同等功率的電機相比載荷比較小,沒有角度傳感器的情況下不能輸出大力矩。第二,功耗相對較大,要么全開,要么全關(guān)。所以要么接近滿功耗,要么就不能出力。(具體原因和結(jié)構(gòu)可以查閱相關(guān)資料,網(wǎng)上到處都是,并不難以理解,我這里就不冗述了)
因此步進電機一般只用于載荷較小而且十分確定、位置精度要求并不非常高,對體積敏感或在較低價格想要做到較高可靠性的場合。最常見的就是光驅(qū)、掃描儀、復印機等等。當然,它和舵機一樣,也受到?jīng)]有能力自行搭建伺服電機系統(tǒng)的業(yè)余愛好者的喜愛,在一些業(yè)余項目上面用于替代完整的伺服電機系統(tǒng)。
那么舉個簡單的例子。掃描儀(包括現(xiàn)在商務打印機里面的掃描儀)經(jīng)常有一個動作,就是在真正掃描之前,掃描器要從滑軌一頭先快速運動到另一頭。其實那是系統(tǒng)在找位置零點。那里面用的是一個步進電機,它驅(qū)動掃描器運動。但是開始執(zhí)行掃描任務時,系統(tǒng)并不知道那個掃描器的確切位置(因為沒有位置傳感器),所以它只能先驅(qū)動掃描器向滑軌另一邊走。在滑軌的那個盡頭,有一個觸碰開關(guān),一旦掃描器碰到它,就會產(chǎn)生電信號。這樣系統(tǒng)就知道掃描器走到了盡頭,這時候就確定了掃描器的位置,這樣就可以開始掃描了。這個步進電機在執(zhí)行完任務后會關(guān)閉(因為功耗不低),因此一旦有震動什么的,掃描器很容易移位。所以下一次步進電機上電以后,要重新執(zhí)行一遍前面說的那個動作去確定掃描器的位置。
文章來源:機器人2025
“走近無人機是以無人機知識類科普,新產(chǎn)品介紹,行業(yè)資訊,求職招聘信息于一體的服務平臺“
如果您覺得文章對您有幫助,請分享給您的朋友
分享知識,分享快樂
關(guān)注前沿科技一點通:了解更多前沿科技
為什么說飛控是無人機的大腦
多旋翼裝配|新手應該注意的地方
深度觀察:懸在風口上的植保無人機
評論列表
還沒有評論,快來說點什么吧~