一、舵機原理簡述
控制信號由接收機的通道進(jìn)入信號調(diào)制芯片,獲得直流偏置電壓。它內(nèi)部有一個基準(zhǔn)電路,產(chǎn)生周期為20ms,寬度為1.5ms的基準(zhǔn)信號,將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。最后,電壓差的正負(fù)輸出到電機驅(qū)動芯片決定電機的正反轉(zhuǎn)。當(dāng)電機轉(zhuǎn)速一定時,通過級聯(lián)減速齒輪帶動電位器旋轉(zhuǎn),使得電壓差為0,電機停止轉(zhuǎn)動。
舵機的控制一般需要一個20ms左右的時基脈沖,該脈沖的高電平部分一般為0.5ms-2.5ms范圍內(nèi)的角度控制脈沖部分,總間隔為2ms。以180度角度伺服為例,那么對應(yīng)的控制關(guān)系是這樣的:
0.5ms--------------0度;
1.0ms------------45度;
1.5ms------------90度;
2.0ms-----------135度;
2.5ms-----------180度;
(1)舵機的追隨特性
假設(shè)現(xiàn)在舵機穩(wěn)定在A點,這時候CPU發(fā)出一個PWM信號,舵機全速由A點轉(zhuǎn)向B點,在這個過程中需要一段時間,舵機才能運動到B點。
保持時間為Tw
當(dāng)Tw≥△T時,舵機能夠到達(dá)目標(biāo),并有剩余時間;
當(dāng)Tw≤△T時,舵機不能到達(dá)目標(biāo);
理論上:當(dāng)Tw=△T時,系統(tǒng)最連貫,而且舵機運動的最快。
實際過程中w不盡相同,連貫運動時的極限△T比較難以計算出來。
當(dāng)PWM信號以最小變化量即(1DIV=8us)依次變化時,舵機的分辨率最高,但是速度會減慢。
二、舵機PWM信號介紹
1.PWM信號的定義 PWM 信號為脈寬調(diào)制信號,其特點在于他的上升沿與下降沿之間的時間寬度。具體的時間寬窄協(xié)議參考下列講述。我們目前使用的舵機主要依賴于模型行業(yè)的標(biāo)準(zhǔn)協(xié)議,隨著機器人行業(yè)的漸漸獨立,有些廠商已經(jīng)推出全新的舵機協(xié)議,這些舵機只能應(yīng)用于機器人行業(yè),已經(jīng)不能夠應(yīng)用于傳統(tǒng)的模型上面了。 目前 舵機可能是這個過渡時期的產(chǎn)物,它采用傳統(tǒng)的 PWM 協(xié)議,優(yōu)缺點一目了然。優(yōu)點是已經(jīng)產(chǎn)業(yè)化,成本低,旋轉(zhuǎn)角度大(目前所生產(chǎn)的都可達(dá)到 185 度); 缺點是控制比較復(fù)雜,畢竟采用 PWM 格式。 但是它是一款數(shù)字型的舵機,其對 PWM 信號的要求較低: (1) 不用隨時接收指令,減少 CPU 的疲勞程度; (2) 可以位置自鎖、位置跟蹤,這方面超越了普通的步進(jìn)電機;
其 PWM 格式注意的幾個要點: (1) 上升沿最少為 0.5mS,為 0.5mS---2.5mS 之間; (2) HG14-M 數(shù)字舵機下降沿時間沒要求,目前采用 0.5Ms 就行;也就是說 PWM 波形可以是一個周期 1mS 的標(biāo)準(zhǔn)方波; (3) HG0680 為塑料齒輪模擬舵機,其要求連續(xù)供給 PWM 信號;它也可以輸入一個周期為 1mS 的標(biāo)準(zhǔn)方波,這時表現(xiàn)出來的跟隨性能很好、很緊密。
2.PWM信號控制精度制定
如果采用的是 8 位單片機AT89C52CPU,其數(shù)據(jù)分辨率為256,那么經(jīng)過舵機極限參數(shù)實驗,得到應(yīng)該將其劃分為 250 份。 那么 0.5mS---2.5Ms 的寬度為 2mS = 2000uS。2000uS÷250=8uS,則:PWM 的控制精度為 8us。我們可以以 8uS 為單位遞增控制舵機轉(zhuǎn)動與定位。 舵機可以轉(zhuǎn)動 185 度,那么185 度÷250=0.74 度,則:舵機的控制精度為 0.74 度。
1 DIV = 8us ; 250DIV=2ms時基寄存器內(nèi)的數(shù)值為:(#01H)01 ----(#0FAH)250。 共 185 度,分為 250 個位置,每個位置叫 1DIV。則:185÷250 = 0.74 度 / DIV PWM 上升沿函數(shù): 0.5ms + N×DIV 0us ≤ N×DIV ≤ 2ms 0.5ms ≤ 0.5ms+N×DIV ≤ 2.5ms
二.單舵機拖動及調(diào)速算法
1.舵機為隨動機構(gòu)(1)當(dāng)其未轉(zhuǎn)到目標(biāo)位置時,將全速向目標(biāo)位置轉(zhuǎn)動。 (2)當(dāng)其到達(dá)目標(biāo)位置時,將自動保持該位置。所以對于數(shù)字舵機而言,PWM 信號提供的是目標(biāo)位置,跟蹤運動要靠舵機本身。 (3)像 HG0680 這樣的模擬舵機需要時刻供給 PWM 信號,舵機自己不能鎖定目標(biāo)位置。所以我們的控制系統(tǒng)是一個目標(biāo)規(guī)劃系統(tǒng)。 (1)HG14-M舵機的位置控制方法 舵機的轉(zhuǎn)角達(dá)到 185 度,由于采用 8 為 CPU 控制,所以控制精度最大為 256 份。目前經(jīng)過實際測試和規(guī)劃,分了 250 份。將 0—185° 分為 250 份,每份 0.74 度??刂扑璧?PWM 寬度為 0.5ms—2.5ms,寬度 2ms。 2ms÷250=8us;所以得出:PWM 信號 = 1 度/8us;
(2)舵機的運動協(xié)議
運動時可以外接較大的轉(zhuǎn)動負(fù)載,舵機輸出扭矩較大,而且抗抖動性很好,電位器的線性度較高,達(dá)到極限位置時也不會偏離目標(biāo)。
2、目標(biāo)規(guī)劃系統(tǒng)的特征
(1)舵機的追隨特性
① 舵機穩(wěn)定在 A 點不動; ② CPU 發(fā)出 B 點位置坐標(biāo)的 PWM 信號; ③ 舵機全速由 A 點轉(zhuǎn)向 B 點; △ф = фB - фA △T = △ф÷ω ④ CPU 發(fā)出 B 點 PWM 信號后,應(yīng)該等待一段時間,利用此時間舵機才能轉(zhuǎn)動至 B 點。那么,具體的保持(等待)時間如何來計算,如下講解: 令:保持時間為 Tw 當(dāng) Tw≥△T 時,舵機能夠到達(dá)目標(biāo),并有剩余時間; 當(dāng) Tw≤△T 時,舵機不能到達(dá)目標(biāo); 理論上:當(dāng) Tw=△T 時,系統(tǒng)最連貫,而且舵機運動的最快。 實際過程中由于 2 個因素: ① 1 個機器人身上有多個舵機,負(fù)載個不相同,所以ω不同; ② 某個舵機在不同時刻的外界環(huán)境負(fù)載也不同,所以ω不同; 則連貫運動時的極限△T 難以計算出來。 目前采取的方法是經(jīng)驗選取ω值。
(2)舵機ω值測定 舵機的ω值隨時變化,所以只能測定一個平均值,或稱出現(xiàn)概率最高的點。 依據(jù)
① 廠商的經(jīng)驗值; ② 采用 HG14-M 具體進(jìn)行測試; 測試實驗:
① 將 CPU 開通,并開始延時 Tw; ② 當(dāng)延時 Tw到達(dá)后,觀察舵機是否到達(dá)目標(biāo); 測定時采用一段雙擺程序,伴隨示波器用肉眼觀察 Tw與△T 的關(guān)系。 (3)舵機ω值計算 一般舵機定為 0.16--0.22 秒/60 度; 取 0.2 秒/60 度 >> 1.2 秒/360 度 >> 0.617 秒/185 度 則ω為 360 度/1.2 秒,2Π/1.2 秒 ω=300 度/秒 那么 185 度轉(zhuǎn)動的時間為 185 度÷360 度/1.2 秒 = 0.6167 秒。 (4)采用雙擺試驗驗證
3.DAV的定義將 185 度的轉(zhuǎn)角分為 250 個平均小份。 則:每小份為 0.74 度。 定義如下:DAV = 0.74 度 由于:ω = 0.2 秒/60 度 則:運行 1 DAV 所需時間為:0.72 度*0.2 秒/60 度 = 2.4 ms;
4.DIV的定義舵機電路支持的 PWM 信號為 0.5ms—2.5ms,總間隔為 2ms。 若分為 250 小份,則 2ms÷250 = 0.008 ms = 8us。 定義如下:DIV = 8us。
5.單舵機調(diào)速算法
測試內(nèi)容:將后部下降沿的時間拉至 30ms 沒有問題,舵機照樣工作。
將后部下降沿的時間拉至 10ms 沒有問題,舵機照樣工作。 將后部下降沿的時間拉至 2.6ms 沒有問題,舵機照樣工作。 將后部下降沿的時間拉至 500us 沒有問題,舵機照樣工作。 實踐檢驗出:下降沿時間參數(shù)可以做的很小。目前實驗降至 500uS,依然工作正常。 原因是:
(1)舵機電路自動檢測上升沿,遇上升沿就觸發(fā),以此監(jiān)測 PWM 脈寬“頭”。 (2)舵機電路自動檢測下降沿,遇下降沿就觸發(fā),以此監(jiān)測 PWM 脈寬“尾”。
(1)舵機轉(zhuǎn)動時的極限下降沿PWM脈寬
令人質(zhì)疑的地方為 1.1ms 時的表現(xiàn),得出的 Tw≈ △T; 也就是說 1.1ms = 2.467ms,顯然存在問題。 經(jīng)過考慮重新觀察 PWM 波形圖發(fā)現(xiàn),電機真正的啟動點如下圖:
實際上由 A 到 B 的運動時間為:△T = Tw +(B 點的)PWM