|
舵機是一種位置(角度)伺服的驅動器,適用于那些需要角度不斷變化并可以保持的控制系統。目前在高檔遙控玩具,如航模,包括飛機模型,潛艇模型;遙控機器人中已經使用得比較普遍。舵機是一種俗稱,其實是一種伺服馬達。在機器人機電控制系統中,舵機控制效果是性能的重要影響因素。舵機可以在微機電系統和航模中作為基本的輸出執行機構,其簡單的控制和輸出使得單片機系統非常容易與之接口。
舵機的工作原理:一般來講,舵機主要由以下幾個部分組成, 舵盤、減速齒輪組、位置反饋電位計、直流電機、控制電路板等。舵機的控制信號為周期是20ms的脈寬調制(PWM)信號,其中脈沖寬度從0.5ms-2.5ms,相對應舵盤的位置為0-180度,呈線性變化。也就是說,給它提供一定的脈寬,它的輸出軸就會保持在一個相對應的角度上,無論外界轉矩怎樣改變,直到給它提供一個另外寬度的脈沖信號,它才會改變輸出角度到新的對應的位置上。轉動范圍不能超過180度。適合于需要不斷角度變化并可以保持的驅動電路中。
控制電路板中的信號調制芯片接收來自信號線的信號,獲得偏置電壓,芯片內部本身帶有一個基準電路,產生周期為20毫秒,寬度為1.5MS的基準信號,獲得的偏置電壓信號會與基準電壓進行比較,電壓差的正負值輸出到電機驅動芯片將決定電機的正反轉,因為舵機的輸出軸與位置反饋電位計是相連的,電機的轉動通過級聯減速齒輪帶動反饋電位計(電位器)旋轉,電位計將輸出一個電壓信號到控制電路板,進行負反饋,當電壓差為零時,電機停止轉動,并達到預期的轉動角度位置。
舵機的控制:
舵機的控制一般需要一個20ms左右的時基脈沖,該脈沖的高電平部分一般為0.5ms~2.5ms范圍內的角度控制脈沖部分。以180度角度伺服為例,那么對應的控制關系是這樣的:
0.5ms-----------負90度;
1.0ms-----------負45度;
1.5ms------------0度;
2.0ms-----------正45度;
2.5ms-----------正90度;
請看下形象描述吧:
這只是一種參考數值,具體的參數,請參見舵機的技術參數。
第八屆的B車模采用的舵機是SD_5參數如下:
簡介:數字舵機,最高工作電壓是5.5V,正常工作電流是200mA,具有堵轉保護功能,當堵轉電流大于或等于800mA時,舵機在三秒后開始保護電路、電機,降低電流,停止轉動。但不排除電壓過高燒壞的風險,詳細了解一款舵機的工作參數是精準控制的前提。
在我們看來,理想的舵機模型應滿足以下條件
1、響應時間為零,在接到指令后即可轉動到指定位置。
2、力矩為無窮大,可以克服一切機械阻力。
3、對外界的電磁干擾不敏感,也不對外產生電磁干擾。
4、工作中中值恒定。
5、控制精度足夠高。
6、舵機轉角與高電平時間呈線性關系。
出于以上幾點,我們知道理想模型是不存在的,但我們可以對實際模型進行改進。如何縮短舵機的響應時間?提高工作電壓是一個方法,在最高允許工作電壓下,電壓越高,響應越快。加長舵機機械臂也是一個方法,根據杠桿原理,臂長越長,前輪轉動相同的角度,舵機需要轉動的角度越小,但臂長加長,對舵機輸出力矩強度要求就越高,當強度不能滿足要求時,控制精度就會下降,并有可能因為電流過大燒壞舵機。
舵機控制:(以下為摘抄參考內容)
小型舵機的工作電壓一般為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個內存單元來存放舵機的角度伺服參數了。所以這樣一來,我們可以采用這樣的軟件結構了:
|
-
-
淺談舵機電路及其控制原理.docx
2018-4-28 15:01 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
17.42 KB, 下載次數: 33, 下載積分: 黑幣 -5
|