<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于STM32F107的搬運(yùn)機(jī)器人電機(jī)控制系統(tǒng)設(shè)計(jì)

          基于STM32F107的搬運(yùn)機(jī)器人電機(jī)控制系統(tǒng)設(shè)計(jì)

          作者: 時(shí)間:2012-05-03 來(lái)源:網(wǎng)絡(luò) 收藏

          2.2 μC/OS-II系統(tǒng)下任務(wù)的分配
          成功地將μC/OS-Ⅱ系統(tǒng)移植到后,μC/OS-II的程序是將一個(gè)大的應(yīng)用程序分成相對(duì)獨(dú)立的多個(gè)任務(wù)來(lái)完成。定義好每個(gè)任務(wù)的優(yōu)先級(jí),μC/OS-II內(nèi)核對(duì)這些任務(wù)進(jìn)行調(diào)度和管理。
          軟件思路是根據(jù)實(shí)際運(yùn)行的需要由上位機(jī)通過(guò)串口對(duì)轉(zhuǎn)速和舵機(jī)轉(zhuǎn)動(dòng)位置進(jìn)行給定。的轉(zhuǎn)速是由設(shè)定的速度值和由增量式編碼器的采集值相比較,經(jīng)過(guò)速度PID算法實(shí)現(xiàn)閉環(huán)控制。舵機(jī)的位置主要是由絕對(duì)值式編碼器反饋現(xiàn)在位置,根據(jù)動(dòng)作時(shí)間要求調(diào)節(jié)舵機(jī)轉(zhuǎn)動(dòng)的速度。本軟件要實(shí)現(xiàn)的功能如下:
          ◆上位機(jī)給定電機(jī)轉(zhuǎn)速、舵機(jī)轉(zhuǎn)動(dòng)角度和動(dòng)作時(shí)間;
          ◆要求電機(jī)轉(zhuǎn)速連續(xù)可調(diào)并且具有良好的靜、動(dòng)態(tài)性能,轉(zhuǎn)速?zèng)]計(jì)采用PI算法調(diào)節(jié);
          ◆要求舵機(jī)快速到達(dá)指定角度,有位置反饋?zhàn)鳛槎鏅C(jī)給定轉(zhuǎn)速的調(diào)整;
          ◆具有一定的故障保護(hù)功能。當(dāng)電機(jī)出現(xiàn)堵轉(zhuǎn)、電流過(guò)大以及舵機(jī)觸動(dòng)限位開(kāi)關(guān)時(shí),要求停止驅(qū)動(dòng)模塊工作。
          針對(duì)以上要實(shí)現(xiàn)的功能,可以將應(yīng)用程序分為以下幾個(gè)任務(wù):
          ①啟動(dòng)任務(wù)。對(duì)系統(tǒng)進(jìn)行初始化,創(chuàng)建初始電機(jī)狀態(tài),然后自我刪除,啟動(dòng)任務(wù)進(jìn)入睡眠狀態(tài)。
          ②電機(jī)和舵機(jī)保護(hù)任務(wù)。用于在過(guò)流或限位開(kāi)關(guān)動(dòng)作時(shí)響應(yīng)外部中斷,進(jìn)入中斷狀態(tài)通過(guò)發(fā)任務(wù)信號(hào)量,任務(wù)程序檢測(cè)信號(hào)量有效并響應(yīng)該任務(wù),停止輸出。任務(wù)優(yōu)先級(jí)設(shè)為0級(jí)。
          ③上位機(jī)給定任務(wù)。用于上位機(jī)控制電機(jī)和舵機(jī),任務(wù)優(yōu)先級(jí)設(shè)為1級(jí)。上位機(jī)數(shù)據(jù)輸入寄存器時(shí)將產(chǎn)生一個(gè)中斷,該中斷將收到的字節(jié)送入緩沖區(qū)并釋放上位機(jī)給定任務(wù)的信號(hào)量;任務(wù)中檢測(cè)到信號(hào)量有效便開(kāi)始執(zhí)行,將對(duì)應(yīng)的字節(jié)信息解析成對(duì)應(yīng)的電機(jī)轉(zhuǎn)速和舵機(jī)轉(zhuǎn)角位置信息給相應(yīng)變量賦值。
          ④電機(jī)轉(zhuǎn)速控制任務(wù)。用于電機(jī)的閉環(huán)調(diào)速,任務(wù)優(yōu)先級(jí)設(shè)為2級(jí)。
          ⑤舵機(jī)控制任務(wù)。用于控制舵機(jī)在規(guī)定時(shí)間內(nèi)到達(dá)指定位置,任務(wù)優(yōu)先級(jí)設(shè)為3級(jí)。
          2.3 啟動(dòng)任務(wù)
          主程序中,在調(diào)用μC/OS-II的其他任務(wù)之前,首先調(diào)用系統(tǒng)初始化函數(shù)OSInit(),初始化μC/OS-II所有的變量和數(shù)據(jù)結(jié)構(gòu);同時(shí),建立空閑任務(wù)OS_TaskIdle(),這個(gè)任務(wù)總是處于就緒態(tài);調(diào)用OSTaskCreate()函數(shù)建立啟動(dòng)任務(wù);調(diào)用OSStart(),將控制權(quán)交給μC/OS-II內(nèi)核,開(kāi)始運(yùn)行多任務(wù)。
          啟動(dòng)任務(wù)是在主程序中創(chuàng)建的,它主要有3個(gè)功能:
          ①用于系統(tǒng)初始化(PWM輸出模塊、串口、ADC模塊、輸入電平中斷功能、定時(shí)器)。
          ②建立系統(tǒng)所要用到的信號(hào)量。
          ③建立系統(tǒng)的其他任務(wù)。
          最后調(diào)用OSTaskDel(OS_PRIO_SELF)進(jìn)行自我刪除,啟動(dòng)任務(wù)進(jìn)入睡眠狀態(tài)。主程序任務(wù)流程如圖4所示。

          本文引用地址:http://www.ex-cimer.com/article/160667.htm

          e.JPG


          2.4 電機(jī)轉(zhuǎn)速控制任務(wù)
          增量式編碼器每次產(chǎn)生外部中斷,在中斷狀態(tài)中發(fā)出任務(wù)信號(hào)量,任務(wù)程序檢測(cè)信號(hào)量有效并響應(yīng)該任務(wù),任務(wù)中通過(guò)測(cè)得電機(jī)當(dāng)前轉(zhuǎn)速和給定速度對(duì)比實(shí)現(xiàn)閉環(huán)控制。電機(jī)轉(zhuǎn)速控制任務(wù)流程如圖5所示。

          f.JPG



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();