智能車學習(十四)——舵機學習


一、舵機基礎知識

1、定義

     舵機簡單的說就是集成了直流電機、電機控制器和減速器等,並封裝在一個便於安裝的外殼里的伺服單元。能夠利用簡單的輸入信號比較精確的轉動給定角度的電機系統。

     舵機安裝了一個電位器(或其它角度傳感器)檢測輸出軸轉動角度,控制板根據電位器的信息能比較精確的控制和保持輸出軸的角度。這樣的直流電機控制方式叫閉環控制,所以舵機更准確的說是伺服馬達,英文servo。

2、舵機組成

image

3、工作原理

      控制電路接收信號源的控制信號,並驅動電機轉動;齒輪組將電機的速度成大倍數縮小,並將電機的輸出扭矩放大響應倍數,然后輸出;電位器和齒輪組的末級一起轉動,測量舵機軸轉動角度;電路板檢測並根據電位器判斷舵機轉動角度然后控制舵機轉動到目標角度或保持在目標角度。

 

二、舵機的規格

1、轉速:

(1)定義:轉速由舵機無負載的情況下轉過60°角所需時間來衡量。

(2)一般在0.11S/60°~0.21S/60°之間。

 

2、轉矩

(1)定義:舵機扭矩的單位是KG·CM,這是一個扭矩單位。可以理解為在舵盤上距舵機軸中心水平距離1CM處,舵機能夠帶動的物體重量。

 

3、電壓

     廠商提供的速度、轉矩數據和測試電壓有關,在4.8V和6V兩種測試電壓下這兩個參數有比較大的差別。如Futaba S-9001 在 4.8V 時扭力為 3.9kg、速度為 0.22 秒,在 6.0V 時扭力為 5.2kg、速度為 0.18 秒。若無特別注明,JR 的舵機都是以 4.8V 為測試電壓,Futaba則是以 6.0V 作為測試電壓。

 

三、模擬舵機及其控制原理

image

1、工作原理

     工作原理是控制電路接收信號源的控制脈沖,並驅動電機轉動;齒輪組將電機的速度成大倍數縮小,並將電機的輸出扭矩放大響應倍數,然后輸出;電位器和齒輪組的末級一起轉動,測量舵機軸轉動角度;電路板檢測並根據電位器判斷舵機轉動角度,然后控制舵機轉動到目標角度或保持在目標角度。

 

2、控制信號

舵機的控制脈沖周期20ms脈寬從0.5ms-2.5ms,分別對應-90度到+90度的位置。如下圖所示:

image

 

四、使用PWM控制舵機輸出

在main函數中的測試代碼

#include "include.h"
#include "init.h"
#include "OLED.h"
#include "menu.h"
#include "keySquare.h"


void main()
{
  
  DisableInterrupts;
  system_init();
  EnableInterrupts;
  
  u16 duty = 450;
  FTM_PWM_init(FTM2,CH0,50,duty);
  OLED_Write_Int(0,0,duty);

  while(1)
  {
    if(keyBoard_get() == Keynum1)
    {
      time_delay_ms(100);
      if(keyBoard_get() == Keynum1)
      {
         duty += 10;
         FTM_PWM_Duty(FTM2,CH0,duty);
         
         OLED_Clear();
         OLED_Write_Int(0,0,duty);
         time_delay_ms(100);
      }
    }
  
    if(keyBoard_get() == Keynum2)
    {
      time_delay_ms(100);
      if(keyBoard_get() == Keynum2)
      {
         duty -= 10;
         FTM_PWM_Duty(FTM2,CH0,duty);
  
         OLED_Clear();
         OLED_Write_Int(0,0,duty);
         time_delay_ms(100);
        

      }
    }
  }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM