基于運(yùn)動(dòng)控制芯片的機(jī)械手控制系統(tǒng)設(shè)計(jì)
摘要:針對(duì)平面關(guān)節(jié)型機(jī)械手各關(guān)節(jié)聯(lián)動(dòng)的特點(diǎn),研制和開(kāi)發(fā)了基于PIC16F877單片機(jī)和運(yùn)動(dòng)芯片LM629的底層控制系統(tǒng)。采用LM629這樣的集成運(yùn)動(dòng)芯片,簡(jiǎn)化整個(gè)控制系統(tǒng)的硬件電路結(jié)構(gòu),提高系統(tǒng)的可靠性和控制精度。
關(guān)鍵詞:機(jī)械手 PIC單片機(jī) LM629 L298N 控制器
引 言
平面關(guān)節(jié)型機(jī)械手是應(yīng)用最廣泛的機(jī)械手類型之一,既可以用于實(shí)際生產(chǎn),又可以用于教學(xué)實(shí)驗(yàn)和科學(xué)研究。用于實(shí)際生產(chǎn),它能夠滿足裝配作業(yè)內(nèi)容改變頻繁的要求;用于教學(xué)實(shí)驗(yàn),它能夠使人直觀地了解機(jī)器人結(jié)構(gòu)組成、動(dòng)作原理等[1],所以開(kāi)發(fā)設(shè)計(jì)和研究平面關(guān)節(jié)型機(jī)械手具有最廣泛的實(shí)際意義和應(yīng)用前景。
LM629是美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的可編程全數(shù)字運(yùn)動(dòng)控制芯片[2],它具有32位的位置、速度和加速度寄存器,內(nèi)置PID算法,其參數(shù)可以修改;支持實(shí)時(shí)讀取和設(shè)定速度、加速度以及位置等運(yùn)動(dòng)參數(shù),內(nèi)置的梯形圖發(fā)生器能夠自動(dòng)生成速度曲線,平穩(wěn)地加速、減速;支持增量式光電碼盤(pán)的4倍頻輸入;芯片的主頻為6MHz和8MHz。因此,本文采用LM629和PIC16F877構(gòu)成機(jī)械手的伺服控制系統(tǒng)。
1 機(jī)械手結(jié)構(gòu)
本文設(shè)計(jì)的平面關(guān)節(jié)型機(jī)械手的實(shí)物照片如圖1所示,其主要包括三個(gè)旋轉(zhuǎn)關(guān)節(jié)(分別控制機(jī)械大臂和小臂旋轉(zhuǎn)以及手抓張合)和一個(gè)移動(dòng)關(guān)節(jié)(控制手腕伸縮),圖2為機(jī)械手簡(jiǎn)化模型。各關(guān)節(jié)均采用直流電機(jī)作為驅(qū)動(dòng)裝置,在機(jī)械大臂和小臂的旋轉(zhuǎn)關(guān)節(jié)上還裝配有增量式光電編碼器,提供半閉環(huán)控制所需的反饋信號(hào)。直流電機(jī)的運(yùn)動(dòng)控制采用自行開(kāi)發(fā)的基于LM629和PIC16F877構(gòu)成的多關(guān)節(jié)控制卡,并編制了能滿足運(yùn)動(dòng)控制要求的軟件,實(shí)現(xiàn)對(duì)機(jī)械手的速度、位置以及4關(guān)節(jié)聯(lián)動(dòng)控制。由于機(jī)械手4個(gè)關(guān)節(jié)電機(jī)的控制系統(tǒng)基本類似,因此在下文中,筆者將以單個(gè)關(guān)節(jié)電機(jī)為例向讀者介紹平面關(guān)節(jié)型機(jī)械手的控制系統(tǒng)設(shè)計(jì)過(guò)程。
(本項(xiàng)目得到北京市石景山區(qū)科委的資助,并在石景山區(qū)科委與北方工業(yè)大學(xué)聯(lián)合主辦的第三屆"科園杯"大學(xué)生科技活動(dòng)中榮獲一等獎(jiǎng)。)
圖1機(jī)械手實(shí)物照片
注:1—機(jī)身;2—大臂電機(jī);3—光電編碼器;4—大臂;5—小臂電機(jī);6—同步帶;7—光電編碼器;8—小臂;9—手腕升降電機(jī);10—手抓電機(jī);11—手抓。
圖2機(jī)械手簡(jiǎn)化模型
2 控制系統(tǒng)設(shè)計(jì)
2.1控制系統(tǒng)的工作原理
基于LM629芯片和PIC16F877單片機(jī)構(gòu)成的單個(gè)關(guān)節(jié)直流電機(jī)伺服驅(qū)動(dòng)系統(tǒng)如圖3所示。
圖3控制系統(tǒng)原理圖
運(yùn)動(dòng)芯片LM629通過(guò)8位數(shù)據(jù)線和6根控制線與單片機(jī)PIC16F877的I/O口相連。單片機(jī)通過(guò)數(shù)據(jù)線向LM629發(fā)送位置或速度命令、設(shè)定PID調(diào)節(jié)參數(shù),并從LM629中讀取速度、加速度等數(shù)值。LM629輸出的脈寬調(diào)制幅度信號(hào)和方向信號(hào)直接驅(qū)動(dòng)L298N,經(jīng)過(guò)功率放大后驅(qū)動(dòng)直流電機(jī)。增量式光電編碼器提供半閉環(huán)控制所需的反饋信號(hào)(A、B、IN),梯形圖發(fā)生器計(jì)算出位置或速度模式下所需控制的運(yùn)動(dòng)軌跡。PIC16F877為L(zhǎng)M629提供加速度、速度和目標(biāo)位置量,在每個(gè)采樣周期用這些值來(lái)計(jì)算出新的命令和位置給定值,將其作為指令值。由增量式光電編碼器檢測(cè)電機(jī)的實(shí)際位置,其輸出信號(hào)經(jīng)過(guò)LM629四倍頻后進(jìn)行解碼,形成位置反饋值。指令值與反饋值的差值作為數(shù)字PID校正環(huán)節(jié)的輸入。通過(guò)數(shù)字調(diào)節(jié)器PID計(jì)算,LM629輸出脈寬調(diào)制信號(hào)PWMM和方向信號(hào)PWMS用于控制功率芯片L298N,進(jìn)而驅(qū)動(dòng)電機(jī)運(yùn)動(dòng)到指定的位置。LM629在進(jìn)行位置控制的同時(shí),還對(duì)速度進(jìn)行控制。LM629在接受到主機(jī)送來(lái)的位置信號(hào)后,按梯形圖生成加速、勻速、減速的速度曲線,曲線與坐標(biāo)橫軸所包圍的面積就是指定的位置。PID算法中的比例、積分和微分系數(shù)有時(shí)需要進(jìn)行修改,因此將它們存儲(chǔ)在單片機(jī)的E2PROM中。單片機(jī)和PC機(jī)通過(guò)無(wú)線發(fā)射和接收模塊進(jìn)行串行通信。
2.2控制系統(tǒng)的硬件設(shè)計(jì)
本文所研究的平面關(guān)節(jié)型機(jī)械手的控制系統(tǒng)硬件結(jié)構(gòu)主要包括運(yùn)動(dòng)模塊、功率放大模塊、位置檢測(cè)模塊和通信模塊。
(1) 運(yùn)動(dòng)與功率放大模塊
運(yùn)動(dòng)與功率放大模塊如圖4所示。運(yùn)動(dòng)模塊的核心芯片是LM629。LM629的8位數(shù)據(jù)口D0~D7與PIC單片機(jī)的RD0~RD7口相連,RC0~RC3分別和LM629的CS、RD、WR、PS相連,用于控制片選、數(shù)據(jù)的流向等。LM629接收來(lái)自單片機(jī)的位置、速度或加速度數(shù)據(jù),經(jīng)過(guò)內(nèi)部梯形圖發(fā)生器和PID調(diào)節(jié)器的運(yùn)算,輸出脈寬調(diào)制信號(hào)和方向信號(hào),由引腳PWMM和PWMS輸出。功率放大模塊主要由L298N芯片和電流泄放回路組成。L298N是雙極性H橋功率放大電路,與LM629輸出信號(hào)PWMM和PWMS通過(guò)一個(gè)邏輯門(mén)電路相連,控制直流電機(jī)的正、反轉(zhuǎn)和停止。在芯片LM629和L298N之間增加光電耦合器4N25,進(jìn)行電氣隔離,保護(hù)單片機(jī)和運(yùn)動(dòng)芯片并減少?gòu)?qiáng)電干擾。由于直流電機(jī)是感性負(fù)載,因此選用功率二極管DIN5391組成電流泄放回路,以保護(hù)功率芯片L298N。
(2) 位置檢測(cè)模塊[3]
圖6PC機(jī)和PIC16F877通訊程序流程
位置檢測(cè)模塊主要通過(guò)檢測(cè)與電機(jī)軸相連的增量式光電編碼器,從而實(shí)現(xiàn)檢測(cè)并獲取各關(guān)節(jié)電機(jī)軸位置的目的。圖5所示的電路將增量式光電編碼器輸出的差動(dòng)信號(hào)(A+、A-、B+、B-、IN+、IN-)經(jīng)過(guò)75175合成單端信號(hào)A、B、IN(圖5中只畫(huà)出一路信號(hào)的合成)。合成后的單端信號(hào)A、B、IN分別與LM629的引腳A、B、IN相連。利用差動(dòng)信號(hào)傳輸,可以有效地解決干擾和遠(yuǎn)距離傳輸問(wèn)題。為了進(jìn)一步消除干擾,在輸入端每根線上都加上了一個(gè)濾波電容,在兩根差動(dòng)的信號(hào)線之間接了一個(gè)用于線路阻抗匹配的電阻。增量式碼盤(pán)反饋的脈沖信號(hào)經(jīng)過(guò)4倍頻后,提高了分辨率。A和B的邏輯狀態(tài)每改變一次,LM629的位置寄存器就加(減)1。當(dāng)碼盤(pán)的A、B、IN都為低電平時(shí),產(chǎn)生一個(gè)Index信號(hào)送入寄存器,記錄電機(jī)的絕對(duì)位置。
圖5單端差動(dòng)信號(hào)的合成
(3) 通信模塊
通信模塊主要解決人機(jī)接口問(wèn)題[4]。在本文設(shè)計(jì)的控制系統(tǒng)中,沒(méi)有設(shè)計(jì)顯示模塊和鍵盤(pán)輸入模塊。但在實(shí)際應(yīng)用中,常常需要輸入一些參數(shù),如PID參數(shù)等。利用PC機(jī)豐富的資源和良好的用戶界面,通過(guò)串行口通信來(lái)解決控制系統(tǒng)的參數(shù)輸入和顯示。
2.3控制系統(tǒng)的軟件設(shè)計(jì)
控制系統(tǒng)的軟件部分主要包括初始化模塊、運(yùn)動(dòng)控制模塊、位置檢測(cè)模塊和通信模塊。單片機(jī)根據(jù)位置檢測(cè)模塊獲取的信息,確定機(jī)械手各關(guān)節(jié)的速度、加速度和位置,將這些信息傳入LM629,由速度梯形圖生成速度曲線,進(jìn)行位置控制。PID調(diào)節(jié)器根據(jù)輸入指令和反饋信息來(lái)補(bǔ)償閉環(huán)系統(tǒng)。式(1)表示LM629輸出的控制信號(hào)。
在程序編制過(guò)程中,通常采用增量式PID算法。
通信模塊建立單片機(jī)和PC機(jī)之間的通信。在PC機(jī)端,利用Visual C++編寫(xiě)串行通信程序和參數(shù)輸入界面。在PIC16F877端,用匯編語(yǔ)言編寫(xiě)通信程序,實(shí)現(xiàn)PC機(jī)和單片機(jī)之間的雙向通信。圖6表示主程序和中斷子程序的流程。
結(jié)語(yǔ)
本文介紹了平面關(guān)節(jié)型機(jī)械手的位置伺服控制板的設(shè)計(jì)方法,采用LM629和PIC16F877構(gòu)成機(jī)械手各關(guān)節(jié)的伺服系統(tǒng),同單純用單片機(jī)來(lái)實(shí)現(xiàn)機(jī)械手控制系統(tǒng)相比,具有硬件電路結(jié)構(gòu)簡(jiǎn)單、可靠性高、成本低廉以及單片機(jī)CPU負(fù)擔(dān)小,控制的實(shí)時(shí)性好等優(yōu)點(diǎn)。這種自行開(kāi)發(fā)制作的控制電路板應(yīng)用面較廣,在移動(dòng)機(jī)器人中也能取得很好的應(yīng)用效果。
pid控制相關(guān)文章:pid控制原理
pwm相關(guān)文章:pwm是什么
c++相關(guān)文章:c++教程
pid控制器相關(guān)文章:pid控制器原理
評(píng)論