• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于STC15F2K60S2的多路PWM舵機控制器設(shè)計

    2018-09-04 09:37:16姚強王亞剛
    軟件導(dǎo)刊 2018年6期
    關(guān)鍵詞:舵機中斷上位

    姚強 王亞剛

    摘 要:舵機控制器在機器人控制技術(shù)中有重要應(yīng)用,其性能優(yōu)劣直接關(guān)系到多舵機系統(tǒng)能否正常工作。為解決采用控制芯片設(shè)計的舵機控制器多路數(shù)輸出和高精度之間的矛盾,設(shè)計了一種新的舵機控制器,硬件采用高性能STC15F2K60S2單片機,在最大限度內(nèi)縮短了中斷服務(wù)時間,PWM波控制精度可達(dá)0.5us;軟件采用分時復(fù)用思想,PWM波在20ms的信號周期內(nèi)輸出路數(shù)多達(dá)32路。經(jīng)仿真軟件驗證,該設(shè)計在保證控制路數(shù)足夠多的前提下極大提高了控制精度,并成功應(yīng)用于7自由度持鏡機械臂控制。

    關(guān)鍵詞:舵機控制器;STC15F2K60S2;PWM;持鏡機械臂

    DOI:10.11907/rjdk.172881

    中圖分類號:TP319

    文獻(xiàn)標(biāo)識碼:A 文章編號:1672-7800(2018)006-0132-04

    Abstract:The steering gear controller plays an important role in robot control technology, and it has a direct influence on the multi-steering system. In order to solve the contradiction between multi-controlling channels and low accuracy of the steering gear controller, we adopt controller IC to design a new type of steering gear controller. The high-performance STC15F2K60S2 microcontroller is used to shorten the time of the interrupt service to the maxium. The control precision of PWM wave can reach 0.5us. The thought of time-sharing is adopted to produce no more than 32 PWM channels in 20ms signal period. The simulation software verifies that on the premise of enough controlling channels the new design greatly improves the controlling precision and can be successfully applied in controlling seven-DOF endoscope arm.

    Key Words:steering gear controller; STC15F2K60S2; PWM; endoscope arm

    0 引言

    舵機控制器設(shè)計是機械臂控制的關(guān)鍵技術(shù)之一。目前舵機的PWM控制信號生成方法可概括為3大類:第一類是基于分立器件的產(chǎn)生方法[1],它的實現(xiàn)電路比較復(fù)雜,而且精度難以控制,信號質(zhì)量不高;第二類是基于可編程邏輯器件(PLD)的產(chǎn)生方法[2-3],該方法可產(chǎn)生多路高精度PWM,但是設(shè)計復(fù)雜,成本較高,只有在高要求場合下才可使用;第三類是基于單片機的產(chǎn)生方法[4-6],簡單易實現(xiàn),成本較低,而且精度也較高。但是傳統(tǒng)的基于單片機的舵機控制器存在一個難以調(diào)和的矛盾,即輸出PWM多路數(shù)和PWM高精度不可兼得,如7路高精度舵機控制器[7-8],24路低精度舵機控制器[9]和基于74HC595擴展的多路舵機控制器[10]。為解決這一問題,設(shè)計了一款基于高性能8位單片機STC15F2K60S2的舵機控制器。

    1 PWM舵機控制器硬件設(shè)計

    1.1 舵機控制原理[11]

    舵機一般有3根引線,分別是電源線、地線、信號線。Robo-Soul公司生產(chǎn)的LDX-218舵機所需的電壓為6-7.4V,其中信號線是PWM輸入線,通過改變PWM脈寬可以達(dá)到控制舵機轉(zhuǎn)動角度的目的。如圖1所示,PWM信號周期為20ms,高電平最小為0.5ms,最大為2.5ms,對應(yīng)電機的轉(zhuǎn)動角度為0°和180°。

    1.2 舵機控制器硬件設(shè)計方案

    1.2.1 控制芯片選擇

    本設(shè)計采用宏晶科技公司生產(chǎn)的STC15F2K60S2單時鐘/機器周期(1T)單片機,它是高速、低功耗和超強抗干擾新一代8051單片機,指令代碼完全兼容傳統(tǒng)8051,但速度快7-12倍;工作頻率為5~35MHz,相當(dāng)于普通8051的60~420MHz。鑒于舵機控制器需要32路PWM輸出,選擇LQFP44封裝,它具有通用P0、P1、P2、P3和P4五個通用I/0口,不需要外部晶振,通過程序即可設(shè)置內(nèi)部晶振頻率,滿足舵機控制器多I/O口和高執(zhí)行效率的要求,控制芯片及外圍電路如圖2所示。

    1.2.2 串口通訊電路設(shè)計

    選擇CH340T作為USB轉(zhuǎn)串口芯片,USB既作為通訊接口,接收上位機傳輸過來的控制信號,同時也給單片機供電。用單片機的串口1作為通訊接口,即P3.0口和P3.1口,其電路圖如3所示。

    2 PWM舵機控制器軟件設(shè)計

    2.1 輸出多路PWM算法實現(xiàn)

    2.1.1 多路PWM產(chǎn)生原理

    如圖4所示,設(shè)置芯片內(nèi)部晶振頻率為24M,采用1個16位定時器,基準(zhǔn)時間是1個機器周期為0.5us。上位機將角度數(shù)據(jù)轉(zhuǎn)化為下位機定時器初值。對于0°-180°之間的任意角度可按照(1)式轉(zhuǎn)換,其中θ為待轉(zhuǎn)角度,f為下位機晶振頻率,12個時鐘周期(1個機器周期)定時器進(jìn)行一次減1操作。

    2.1.2 軟件設(shè)計

    上位機主要完成數(shù)據(jù)預(yù)處理工作,包括將角度轉(zhuǎn)換為下位機定時器初值,對32路PWM定時器初值進(jìn)行排序,在充分考慮時間和空間復(fù)雜度的基礎(chǔ)上選擇插入排序算法[12]按照升序進(jìn)行排列。

    下位機主要完成如下操作步驟:

    Step1:將上位機傳輸過來的32路PWM定時器計數(shù)值的每1路封裝成1個結(jié)構(gòu)體。

    Struct PWM_Tcnt

    {

    unsigned int count;//計數(shù)值

    bit flag; //對應(yīng)的輸出端口

    }

    Step2:定義一個結(jié)構(gòu)體數(shù)組并初始化

    Struct PWM_Tcnt PWMOUT[33];

    Step3:按照如下算法更新結(jié)構(gòu)體數(shù)組。

    PWMOUT[i].count=PWMOUT[i+1].count-PWMOUT[i+1].count,i=1,2...31PWMOUT[32]=2^16-20ms0.5us-PWMOUT[32].count

    Step4:將所有PWM輸出口置高,開啟定時中斷。

    Step5: 中斷處理任務(wù)中關(guān)閉定時時間已到的PWM輸出端口,同時更新下一路計數(shù)值。

    Step6:在周期20ms剩余時間內(nèi)完成接收上位機數(shù)據(jù)。

    Step7:周期定時20ms時間一到,立即跳轉(zhuǎn)至Step1。

    產(chǎn)生多路PWM信號流程圖分為上位機和下位機,上位機和下位機通過串口1通信,如圖5所示。

    2.2 舵機調(diào)速方法

    舵機屬于位置伺服控制系統(tǒng),通過改變PWM脈沖寬度對角度實現(xiàn)精確控制,如控制舵機轉(zhuǎn)動θ角度,此時對應(yīng)的脈沖寬度為Pw,可以設(shè)置脈沖寬度按照階梯型遞增, 如圖6所示。舵機角速度就受脈沖寬度的切換速度控制,進(jìn)而達(dá)到舵機調(diào)速目的,其步進(jìn)值Inc通過N調(diào)節(jié),如式(2)。

    3 方法驗證

    在單片機仿真與開發(fā)領(lǐng)域,Proteus 有獨特的優(yōu)勢,它可以從理論層面驗證可行性,從而縮短開發(fā)周期,降低開發(fā)成本。仿真實驗中選用AT89C52對8路PWM輸出進(jìn)行方法驗證,經(jīng)實驗證明該算法能穩(wěn)定輸出8路穩(wěn)定PWM波形,如圖7所示。

    4 7自由度持鏡機械臂的舵機控制實驗結(jié)果及分析

    4.1 舵機控制器試驗結(jié)果

    為了驗證方案實際控制效果,針對圖8(a)所示的7自由度持鏡機械臂[13-14]樣機進(jìn)行控制實驗,機械臂的7個自由度分別是機械臂整體上下滑動、肩旋轉(zhuǎn)、肩擺動、肘旋轉(zhuǎn)、肘擺動、腕旋轉(zhuǎn)和腕擺動,如圖8(b)所示。對機械臂的旋轉(zhuǎn)范圍、定位精度、重復(fù)精度[15-16]進(jìn)行評定,評定結(jié)果如表1所示,評定方法如下:

    旋轉(zhuǎn)范圍:PWM脈寬設(shè)置為0.5ms和2.5ms,測定關(guān)節(jié)的旋轉(zhuǎn)角度,測10次求取平均值。

    定位精度:測定脈寬為0.5ms、0.7ms、0.9ms、1.1ms、1.3ms、1.5ms、1.7ms、1.9ms、2.1ms、2.3ms和2.5ms的10組關(guān)節(jié)旋轉(zhuǎn)角度數(shù)據(jù),定位精度為10次不同位置偏差值的均值。

    重復(fù)精度:測定同一位置固定轉(zhuǎn)角10次,其重復(fù)精度可按如下公式求得:

    4.2 舵機控制器試驗結(jié)果分析

    實驗結(jié)果存在誤差,這些誤差有來源于硬件的,如舵機固有誤差和傳感器誤差等,還有來自PWM生成算法本身的軟件誤差。本文主要分析來源于算法本身的誤差。PWM脈寬的控制精度主要由進(jìn)入中斷、退出中斷和中斷服務(wù)程序處理三段時間的大小決定,其中進(jìn)入中斷、退出中斷時間相對穩(wěn)定,可通過修改定時時間彌補和完善;對于中斷服務(wù)時間則需要通過高性能芯片盡量縮短中斷服務(wù)時間來彌補。本設(shè)計采用的芯片PWM是一款廉價高性能單片機、對于工作頻率要求不是很高,如50HZ就能夠達(dá)到理想效果。

    5 結(jié)語

    采用高性能單片機STC15F2K60S2作為控制芯片,它能夠最大限度縮短中斷服務(wù)處理重裝定時器初值和拉低相應(yīng)PWM輸出端口程序所耗費的時間,同時它還具有多個I/O口,便于擴展多路PWM輸出的需求。首先對多路PWM脈沖寬度排序,然后置高所有PWM輸出端口,再按照脈寬由窄至寬的順序清零輸出端口,最后所有PWM輸出端口拉低后,再重復(fù)上述過程即可實現(xiàn)多路PWM連續(xù)輸出。該方法具有多路輸出和高精度的特點,適宜于應(yīng)用在多舵機控制場合。另外針對于舵機調(diào)速只給出引導(dǎo)方法,具體實現(xiàn)還有待進(jìn)一步研究。

    參考文獻(xiàn):

    [1] 侯志勇.由時基電路 NE555 組成的 PWM直流電機調(diào)速電路[J].河南機專學(xué)報,1997,5(1):30-33.

    [2] 林王堅,馮浩,華亮.一種基于 VHDL與 CPLD器件的 PWM發(fā)生器[J].機電工程,2008,25(2):93-99.

    [3] 張巖,宋翔.基于 FPGA 的高精度PWM 發(fā)生器設(shè)計與實現(xiàn)[J].微計算機信息,2009,25(1-2):160-163.

    [4] 馮曉偉,王雷陽,李正生.多路舵機控制PWM發(fā)生器的設(shè)計與Proteus仿真[J].現(xiàn)代電子技術(shù),2011,34(11):167-169.

    [5] 方慶山,林春方.一種基于AT89C2051的多路舵機控制方案設(shè)計[J].微特電機,2009,1(7):56-58.

    [6] 付麗,劉衛(wèi)國,伊強.單片機控制的多路舵機用PWM波產(chǎn)生方法[J].微特電機,2006, 3(4): 28-33.

    [7] 劉歌群,盧京潮,閆建國,薛堯舜.用單片機產(chǎn)生7路舵機控制PWM波的方法[J].機械與電子,2004,1(2):76-78.

    [8] 韓慶瑤,洪草根,朱曉光.基于AVR單片機的多舵機控制系統(tǒng)設(shè)計及仿真[J].計算機測量與控制,2011,19(2): 332-335.

    [9] 梁鋒,王志良,解侖,徐文學(xué).多舵機控制在類人機器人上的應(yīng)用[J].機器人技術(shù),2008,24(1-2):227-229.

    [10] 邵平,莫燕斌,連晉平,陳元濱.一種基于74HC595產(chǎn)生舵機用多路PWM波的方法[J].肇慶學(xué)院學(xué)報,2013,34(5):1-5.

    [11] 王曉楓,華云松.基于雙足負(fù)載機器人的大功率舵機的設(shè)計[J].電子科技,2017,30(3):170-173.

    [12] 劉模群.排序算法時間復(fù)雜度研究[J].軟件導(dǎo)刊,2012,11(6):35-38.

    [13] 袁金生.冗余自由度持鏡機械臂的設(shè)計[D].哈爾濱:哈爾濱工業(yè)大學(xué),2011.

    [14] 董光友.腹腔微創(chuàng)手術(shù)機器人機械臂的設(shè)計及研究法[D].長春:吉林大學(xué),2016.

    [15] 費業(yè)泰.誤差理論與數(shù)值處理[M].北京:機械工業(yè)出版社,1983.

    [16] 何洪軍,張東寧,馬傳寶.機械手臂重復(fù)定位精度和運動速度測量實驗研究[J].微特電機,2016,44(3):34-36.

    (責(zé)任編輯:江 艷)

    猜你喜歡
    舵機中斷上位
    含齒隙彈載舵機的全局反步模糊自適應(yīng)控制
    特斯拉 風(fēng)云之老阿姨上位
    車迷(2018年12期)2018-07-26 00:42:22
    基于dsPIC單片機的飛艇舵機控制實現(xiàn)
    電子制作(2018年1期)2018-04-04 01:48:14
    跟蹤導(dǎo)練(二)(5)
    千里移防,衛(wèi)勤保障不中斷
    解放軍健康(2017年5期)2017-08-01 06:27:44
    基于高速同步485總線通信的多通道舵機控制器設(shè)計
    “三扶”齊上位 決戰(zhàn)必打贏
    基于ZigBee和VC上位機的教室智能監(jiān)測管理系統(tǒng)
    以新思路促推現(xiàn)代農(nóng)業(yè)上位
    基于云模型的舵機同步控制
    太原市| 龙游县| 山东省| 醴陵市| 金平| 吴旗县| 丰县| 上犹县| 基隆市| 公安县| 余庆县| 浮山县| 长垣县| 墨脱县| 弥渡县| 鹤峰县| 车险| 万山特区| 大姚县| 北流市| 城固县| 抚州市| 伊吾县| 牡丹江市| 和龙市| 上蔡县| 兴宁市| 扎兰屯市| 北京市| 卫辉市| 昭平县| 贺州市| 襄汾县| 中阳县| 舞阳县| 顺平县| 望江县| 蓬溪县| 古浪县| 南投县| 昂仁县|