基于51單片機的多自由度工業(yè)機器人控制系統(tǒng)設(shè)計
江蘇科技大學電子信息學院 夏斯維1 陳迅2 2018/7/30 9:58:59
(接上頁)改變舵機的旋轉(zhuǎn)角度。選擇使用的舵機MG996R工作脈沖寬度范圍是0.5ms-2.5ms,對應(yīng)舵機的-90度到+90度,這里的程序設(shè)計是在中斷中主要針對這2ms的工作脈沖寬度范圍進行處理,這樣只要使用一個定時器就足夠控制舵機的動作了,既節(jié)省了硬件電路也減少了軟件開銷,使得工業(yè)機器人控制系統(tǒng)工作效率和控制精度都有所提高。
具體的設(shè)計過程:例如想讓舵機轉(zhuǎn)向30度,它的正脈沖延時為0.8ms,則負脈沖延時為20ms-0.8ms=19.2ms,所以開始時就打開中斷,給控制口發(fā)送高電平,設(shè)置定時器延時0.8ms后將控制口電平取反并將定時器數(shù)值改為1.7ms,再經(jīng)過15ms的低電平定時循環(huán),則舵機旋轉(zhuǎn)到對應(yīng)角度后停止轉(zhuǎn)動。具體程序流程圖如圖2-4所示。
圖2-4定時器程序流程圖
2.3.2一個舵機控制模塊設(shè)計
在這個控制系統(tǒng)中,由于要對多路舵機進行控制,所以在編寫多個舵機控制程序之前,先對一個舵機進行編程控制。具體程序流程圖如圖2-5所示。
圖2-5一個舵機控制程序流程圖
給舵機一個0.5ms脈沖信號,舵機轉(zhuǎn)到0度位置,再重新給一個1.5ms的脈沖信號,舵機位置轉(zhuǎn)到90度位置,程序主要實現(xiàn)一個舵機在0度和90度之間來回動作,具體效果如圖2-6(a) 和(b)所示。
(a) 舵機0度效果圖
(b) 舵機90度效果圖
圖2-6一個舵機控制效果圖
2.3.3機器人姿態(tài)控制模塊設(shè)計
基于上小節(jié)對于一個舵機的軟件控制,通過前面的正運動學理論分析可以控制多個舵機同時動作,設(shè)計了踮腳、彎腰和踏步等基本的動作姿態(tài)來體現(xiàn)對于工業(yè)機器人的多自由度的控制。因為一個姿態(tài)需要分解成很多個小的動作姿態(tài),光通過嘗試是沒有辦法得出數(shù)據(jù)的,所以采取上位機來測試出這些基礎(chǔ)動作姿態(tài)的每個舵機的工作脈寬數(shù)組,再將數(shù)據(jù)編寫進程序,從而實現(xiàn)對多自由度工業(yè)機器人的理想控制。
由于選用的舵機是模擬舵機MG996R,它的舵機旋轉(zhuǎn)速度是固定的,但是這樣當需要動作角度較大的時候,就非常容易導(dǎo)致機器人失去重心導(dǎo)致動作失敗。經(jīng)過多次嘗試,決定每次讓舵機旋轉(zhuǎn)3度到4度左右,每次加上100ms的延時,這樣通過軟件延時的方法來降低舵機的轉(zhuǎn)動速度,從而保證機器人能夠平穩(wěn)的動作。
例如,通過軟件編程,工業(yè)機器人做出踮腳動作,這個動作姿態(tài)數(shù)據(jù)以及對應(yīng)的角度如下所示。
{1500,930,1500,1053,1916,2160}←→{90o 55.8o 90o 63.2o 115o 129.6o}
{1484,930,1516,992,2254,1762}←→{89o 55.8o 91o 59.5o 135.2o 105.7o}
本章主要是根據(jù)控制系統(tǒng)功能要求對系統(tǒng)進行的軟件設(shè)計,主要是對定時器和一個舵機控制先進行實驗調(diào)試,然后再對多路舵機實現(xiàn)想要的姿態(tài)控制。
3 實驗結(jié)果
(1)踮腳姿態(tài)測試
工業(yè)機器人做出踮腳動作,對應(yīng)數(shù)據(jù)如下所示,效果圖如圖3-1所示。
{1500,930,1500,1053,1916,2160}←→{90o 55.8o 90o 63.2o 115o 129.6o}
{1484,930,1516,992,2254,1762}←→{89o 55.8o 91o 59.5o 135.2o 105.7o}
圖3-1踮腳效果圖
(2)前傾姿態(tài)測試
工業(yè)機器人做出前傾動作,數(shù)據(jù)如下所示。效果圖如圖3-2所示。
{1500,930,1500,1116,1884,2162}←→{90o 55.8o 90o 66.9o 113o 129.7o}
{1823,653,1947,561,1884,2162}←→{109.4o 39(未完,下一頁)
|