1.       什麼是舵機:

    在機器人機電控制系統中,舵機控制效果是性能的重要影響因素。舵機可以在微機電系統和航模中作為基本的輸出執行機構,其簡單的控制和輸出使得單片機系統非常容易與之接口。

   舵機是一種位置(角度)伺服的驅動器,適用於那些需要角度不斷變化並可以保持的控制系統。目前在高檔遙控玩具,如航模,包括飛機模型,潛艇模型;遙控機器人中已經使用得比較普遍。舵機是一種俗稱,其實是一種伺服馬達。

     還是看看具體的實物比較過癮一點:

  \

2.     其工作原理是:

控制信號由接收機的通道進入信號調制芯片,獲得直流偏置電壓。它內部有一個基准電路,產生周期為20ms,寬度為1.5ms的基准信號,將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。最後,電壓差的正負輸出到電機驅動芯片決定電機的正反轉。當電機轉速一定時,通過級聯減速齒輪帶動電位器旋轉,使得電壓差為0,電機停止轉動。當然我們可以不用去了解它的具體工作原理,知道它的控制原理就夠了。就象我們使用晶體管一樣,知道可以拿它來做開關管或放大管就行了,至於管內的電子具體怎麼流動是可以完全不用去考慮的。

3.     舵機的控制:

舵機的控制一般需要一個20ms左右的時基脈沖,該脈沖的高電平部分一般為0.5ms~2.5ms內的角度控制脈沖部分。以180度角度伺服為例,那麼對應的控制關系是這樣的:

   0.5ms--------------0度;

   1.0ms------------45度;

   1.5ms------------90度;

   2.0ms-----------135度;

   2.5ms-----------180度;

請看下形象描述吧:

這只是一種參考數值,具體的參數,請參見舵機的技術參數。

   小型舵機的工作電壓一般為4.8V或6V,轉速也不是很快,一般為0.22/60度或0.18/60度,所以假如你更改角度控制脈沖的寬度太快時,舵機可能反應不過來。如果需要更快速的反應,就需要更高的轉速了。

要精確的控制舵機,其實沒有那麼容易,很多舵機的位置等級有1024個,那麼,如果舵機的有效角度為180度的話,其控制的角度精度是可以達到180/1024度約0.18度了,從時間上看其實要求的脈寬控制精度為2000/1024us約2us。如果你拿了個舵機,連控制精度為1度都達不到的話,而且還看到舵機在發抖。在這種情況下,只要舵機的電壓沒有抖動,那抖動的就是你的控制脈沖了。而這個脈沖為什麼會抖動呢?當然和你選用的脈沖發生器有關了。一些前輩喜歡用555來調舵機的驅動脈沖,如果只是控制幾個點位置伺服好像是可以這麼做的,可以多用幾個開關引些電阻出來調佔空比,這麼做簡單嗎,應該不會啦,調試應該是非常麻煩而且運行也不一定可靠的。其實主要還是他那個年代,單片機這東西不流行呀,哪裡會喲!

使用傳統單片機控制舵機的方案也有很多,多是利用定時器和中斷的方式來完成控制的,這樣的方式控制1個舵機還是相當有效的,但是隨著舵機數量的增加,也許控制起來就沒有那麼方便而且可以達到約2微秒的脈寬控制精度了。聽說AVR也有控制32個舵機的試驗板,不過精度能不能達到2微秒可能還是要泰克才知道了。其實測試起來很簡單,你只需要將其控制信號與示波器連接,然後讓試驗板輸出的舵機控制信號以2微秒的寬度遞增。

     為什麼FPPA就可以很方便地將脈寬的精度精確地控制在2微秒甚至2微秒一下呢。主要還是 delay memory這樣的具有創造性的指令發揮了功效。該指令的延時時間為數據單元中的立即數的值加1個指令周期(數據0出外,詳情請參見delay指令使用注意事項)因為是8位的數據存儲單元,所以memory中的數據為(0~255),記得前面有提過,舵機的角度級數一般為1024級,所以只用一個存儲空間來存儲延時參數好像還不夠用的,所以我們可以採用2個內存單元來存放舵機的角度伺服參數了。所以這樣一來,我們可以採用這樣的軟體結構了:

\
舵機驅動的應用場合:

         1.    高檔遙控仿真車,至少得包括左轉和右轉功能,高精度的角度控制,必然給你最真實的駕車體驗.

         2.    多自由度機器人設計,為什麼日本人設計的機器人可以上萬RMB的出售,

             而國內設計的一些兩三千塊也賣不出去呢,還是一個品質的問題.

         3.    多路伺服航模控制,電動遙控飛機,油動遙控飛機,航海模型等