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