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