孫 捷,劉 瑄,有 力,劉 楚,徐蓮輝
(華中師范大學(xué) 計算機學(xué)院,湖北 武漢 430070)
?
基于ARM的多自由度機械手設(shè)計*
孫捷,劉瑄,有力,劉楚,徐蓮輝
(華中師范大學(xué) 計算機學(xué)院,湖北 武漢 430070)
機械手選用ARM芯片作為控制核心,主要是基于其運算能力強,外設(shè)接口豐富,可擴展成串行、并行、高速和低速等各種接口,也能很容易擴展成網(wǎng)絡(luò)接口,便于機械手組網(wǎng)協(xié)同工作。特別是ARM芯片的LCD接口和存儲器擴展接口能大大提高機械手的智能化程度,擴展LCD后能提供友好的人機交互界面,便于編程、維護和故障指示;大容量存儲器可為復(fù)雜運算和大數(shù)據(jù)存儲提供方便。ARM的這些優(yōu)點為機械手的高度智能化提供了最有效的保證。
機械手;ARM芯片;伺服電機;嵌入式;控制系統(tǒng)
引用格式:孫捷,劉瑄,有力,等. 基于ARM的多自由度機械手設(shè)計[J].微型機與應(yīng)用,2016,35(17):28-31,38.
機器人應(yīng)用情況是展現(xiàn)一個國家工業(yè)自動化水平的重要標(biāo)志。工業(yè)自動化中機械手發(fā)揮了相當(dāng)大的作用,生產(chǎn)中應(yīng)用機械手可以減輕勞動強度、保證產(chǎn)品質(zhì)量、實現(xiàn)安全生產(chǎn);尤其在高溫、高壓、易爆、有放射性或有毒性污染的場合中,機械手能代替人進行正常的工作。特別是近些年人工成本越來越高,企業(yè)都迫切需要采用一些自動化設(shè)備來降低人工成本,工業(yè)機械手在這方面有著廣闊的應(yīng)用前景。
常用的機械手多為6個自由度以下的。一般的專用機械手只有2~4個自由度,而通用機械手則多數(shù)為3~6個自由度。目前大多數(shù)工業(yè)機械手基本上都是采用單片機、PLC或DSP等控制的,單片機只能控制簡單的3個自由度以下的機械手;PLC控制的成本高,運算能力很差,對機械手運動軌跡控制能力差;應(yīng)用DSP控制運算能力強,但其外設(shè)接口沒有ARM豐富[1],并且成本也比ARM高,一片DSP控制的機械手自由度也有限,6個自由度的、復(fù)雜一點的機械手都需要多個DSP芯片協(xié)同才能較好地完成控制。
1.14個自由度設(shè)計[2]
機械抓手選用型號為42HD2401-100L,兩相4線步進電機,絲桿電機的行程為100 mm,步距角為1.8°,電流1.5 A N1504。利用其不同的行程可以設(shè)計不同力矩大小的抓手或夾具,此部分通過加工的一個連接軸,用螺絲鎖定在型號為42BYG行星減速步進電機上,配48 mm 步進電機,減速比5.18 ∶1,這樣控制機械抓手在360°范圍內(nèi)旋轉(zhuǎn)。也就是機械手的第一自由度控制。
第二自由度裝置負責(zé)將前面第一自由度的電機固定,并且控制運動一定的角度范圍,根據(jù)選用的蝸輪減速裝置結(jié)構(gòu),角度范圍為0~130°。電機為57步進電機57BYG250H,轉(zhuǎn)矩2.8 NM,步距角1.8°,機身長112 mm,蝸輪蝸桿減速機NMRV030,減速比1 ∶20。
第三自由度使用的電機型號為86HS45-80,兩相步進,步距角1.8°,機身長度78 mm,電流4 A,保持轉(zhuǎn)矩4.24 NM。配備蝸輪減速裝置RV040,減速比1 ∶20。
第四自由度主要負責(zé)平面內(nèi)360°旋轉(zhuǎn),采用與第二自由度一樣的電機,減速裝置的減速比為1 ∶30。該電機安裝在底座上。
1.2電機驅(qū)動器選型及機械部分總成
機械手有4個自由度和1個機械抓手,共使用了5個不同規(guī)格步進電機,其中86型號的電機使用的是F-MD860,其他的都使用DM542型,配備了兩個24 V功率為250 W的電源分別供電[3]。
圖1 四自由度機械手實物圖
所有機械部分安裝完成后的實物圖如圖1所示,底座采用鍍鋅方管焊接成100 mm×100 mm的雙層鐵架構(gòu)成,最下面的電機用角鐵固定,全部用自噴漆噴涂一遍用于防銹,將導(dǎo)線用伸縮塑膠管封固定,以防導(dǎo)線纏繞或損壞[4]。
圖2 ARM控制板CPU部分電路原理圖
機械手的控制核心采用功能強大的ARM芯片來進行設(shè)計,芯片型號為STM32F103C8T6,引腳數(shù)48??刂瓢褰邮丈衔粰C的串口通信數(shù)據(jù),并根據(jù)數(shù)據(jù)協(xié)議轉(zhuǎn)變?yōu)榭刂撇竭M電機的脈沖信號去驅(qū)動各個步進電機,控制板采用雙排針將所有GPIO全部引出,可以靈活擴展[5]。原理圖使用的是Altium Designed 10軟件進行繪制,ARM控制板CPU部分電路原理圖如圖2所示,時鐘、復(fù)位、電源電路原理圖如圖3所示,串口與JTAG電路原理圖如圖4所示[6-7]。
機械手的具體指標(biāo)參數(shù)如下:機構(gòu)材料采用全金屬材料;驅(qū)動方式為步進伺服混合驅(qū)動;操作方式采用可編程單機工作/聯(lián)機工作;重復(fù)定位精度為±5 mm;最大展開半徑為600 mm;高度為1 000 mm;本體重量≤50 kg;電源為單相220 V;最大功率<200 W;動作范圍為第1自由度轉(zhuǎn)動-180°~ 180°,速度范圍在0.5°/s~50°/s;第2自由度轉(zhuǎn)動-65°~65°,速度范圍在0.5°/s~30°/s;第3自由度轉(zhuǎn)動-65°~65°,速度范圍在0.5°/s~30°/s;第4自由度轉(zhuǎn)動-180°~180°,速度范圍在0.5°/s~40°/s。
3.1ARM控制板軟件的設(shè)計
開發(fā)環(huán)境使用的是Keil uVision3 + MDK3.50,ARM控制板上的程序主要包括串口通信的控制和脈沖波形的產(chǎn)生,主控程序流程圖如圖5所示[8]。STM32F103首先要進行初始化,主要有如下初始化內(nèi)容:RCC_Configuration(void)、NVIC_Configuration(void)、GPIO_Configuration(void)、USART_Init(USART1, &USART_InitStructure)和TIM3_PWM_Init(u16 arr,u16 psc)。
串行通信先要設(shè)置GPIO引腳,串口設(shè)置波特率為9 600 b/s,8 bit數(shù)據(jù),2 bit停止位,不使用奇偶校驗位,無硬件流控制。最后還要按如下語句進行串口接收中斷初始化設(shè)置:
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure)。
為了保證ARM控制板能在接收命令參數(shù)后獨立控制機械手的運動,需要將數(shù)據(jù)存儲在ARM芯片的Flash存儲器中,然后再讀出、解析、執(zhí)行命令,程序流程圖如圖6所示。
另外對于脈沖波形的產(chǎn)生,采用ARM芯片內(nèi)自帶的硬件定時器單元來產(chǎn)生頻率可調(diào)的方波,定時器中斷初始化的程序如下:
void Timerx_Init(u16 arr,u16 psc)
{
RCC->APB1ENR|=1<<1;
//TIM3時鐘使能
TIM3->ARR=arr;
//設(shè)定計數(shù)器自動重裝值,剛好1 ms
圖3 時鐘、復(fù)位、電源電路原理圖
圖4 串口與JTAG部分電路原理圖
圖5 STM32F103主控程序流程圖
圖6 解析與執(zhí)行程序流程圖
TIM3->PSC=psc;
//預(yù)分頻器7200,得到10 kHz的計數(shù)時鐘
TIM3->DIER|=1<<0;
//允許更新中斷
TIM3->DIER|=1<<6;
//允許觸發(fā)中斷
TIM3->CR1|=0x01;
//使能定時器3
MY_NVIC_Init(1,3,TIM3_IRQChannel,2);
//搶占1,子優(yōu)先級3,組2
}
周期時間較長的方波用上述定時器中斷溢出進行計時產(chǎn)生,這種方法產(chǎn)生的延時可以很長,適用于對各種動作速度的控制。對于運動較快的也可以直接利用STM32F103中的硬件PWM單元來產(chǎn)生方波,這種周期時間較短,其主要控制源程序如下:
void TIM3_PWM_Init(u16 arr,u16 psc)
{
//此部分需手動修改IO口設(shè)置
RCC->APB1ENR|=1?1;
//TIM3時鐘使能
RCC->APB2ENR|=1?3;
//使能PORTB時鐘
GPIOB->CRL&=0XFF0FFFFF;
//PB5輸出
GPIOB->CRL|=0X00B00000;
//復(fù)用功能輸出
RCC->APB2ENR|=1?0;
//開啟輔助時鐘
AFIO->MAPR&=0XFFFFF3FF;
//清除MAPR的[11:10]
AFIO->MAPR|=1?11;
//部分重映像,TIM3_CH2->PB5
TIM3->ARR=arr;
//設(shè)定計數(shù)器自動重裝值
TIM3->PSC=psc;
//預(yù)分頻器不分頻
TIM3->CCMR1|=7?12;
//CH2 PWM2模式
TIM3->CCMR1|=1?11;
//CH2預(yù)裝載使能
TIM3->CCER|=1?4;
//OC2 輸出使能
TIM3->CR1=0x0080;
//ARPE使能
TIM3->CR1|=0x01;
//使能定時器3
}
3.2機械手上位機軟件的設(shè)計
上位機程序主要完成機械手運動位置參數(shù)的設(shè)定[9],并且通過串口將數(shù)據(jù)傳送給ARM開發(fā)板,在調(diào)試過程中,將運動控制分為單軸運動的控制和三軸運動的控制。單軸控制界面如圖7,三軸運動控制界面如圖8,分別輸入x、y、z三個方向的起始和終止坐標(biāo),啟動后即可將數(shù)據(jù)傳送給下位機[10]。
圖7 上位機的單軸運動控制界面
圖8 上位機的三軸運動控制界面
在界面上還有串口通信數(shù)據(jù)監(jiān)測窗口,主要顯示發(fā)出的命令和收到的數(shù)據(jù)是否正常,這樣能方便進行開發(fā)。
在進入串行數(shù)據(jù)通信編程中,應(yīng)用CSerialPort類進行編程,對串口、波特率、數(shù)據(jù)位數(shù)、停止位、奇偶校驗位等初始化,使用的主要函數(shù)為InitPort(),如下所示:
if(m_Port.InitPort(this,m_nCom,m_nBaud,m_cParity,m_nDa-tabits,m_nStopbits,m_dwCommEvents,512)){
m_Port.StartMonitoring();
m_CtrlOpenPort.SetWindowText("打開串口");
m_Port.ClosePort();
//關(guān)閉串口
}elseAfxMessageBox("沒有發(fā)現(xiàn)此串口");
發(fā)送數(shù)據(jù)使用的主要語句如下:
sendcommand=m_strSendData;
m_Port.WriteToPort((LPCTSTR)sendcommand);
//發(fā)送數(shù)據(jù)
接收數(shù)據(jù)在CSerialPort類中進行,可以中斷接收,但必須在主程序中進行數(shù)據(jù)識別,本文在LONG CICtestDlg::OnCommunication(WPARAM ch, LPARAM port)函數(shù)
中專門來解析接收到的數(shù)據(jù)。
本項目主要是利用ARM系列的CPU作為控制核心,驅(qū)動一定數(shù)量的伺服機構(gòu)來組裝一臺多個自由度的機械手裝置。與傳統(tǒng)的機械手控制系統(tǒng)相比,本系統(tǒng)具有體積小、功耗低、性能髙、成本低等優(yōu)點,具有很好的發(fā)展前景。重復(fù)定位精度未達到預(yù)先估計的值,這與購買的電機和減速機的制造精度有關(guān),并且步進電機在運行過程中還可能失步,因此還有許多方面需要改進,比如在各個電機運動控制時加裝編碼器來進行運動角度檢測,這樣可以改進精度方面的問題,也完全可以消除失步的問題。
[1] 李新榮,曲風(fēng)娟.ARM9嵌入式系統(tǒng)設(shè)計與應(yīng)用[M].北京:清華大學(xué)出版社,2011.
[2] 李海標(biāo),甘鎮(zhèn)釗,楊碩.基于ARM9的機械手控制系統(tǒng)的設(shè)計[J].測控技術(shù),2015,34(8):82-85.
[3] 耶曉東.基于單片機的簡易機械手的設(shè)計[J].微計算機信息,2009,25(14):230-231.
[4] 孫宴偉.五軸注塑機機械手示教系統(tǒng)的設(shè)計及實現(xiàn)[D].西安:西安電子科技大學(xué),2013.
[5] 楊振聲.工業(yè)機械手控制系統(tǒng)硬件設(shè)計[D].西安:西安電子科技大學(xué),2014.
[6] 向丹,王文濤,原健鐘,等.基于ARM嵌入式的三維機械手遠程控制系統(tǒng)設(shè)計[J].電子與封裝,2009,9(6):21-24.
[7] 楊莉,李正明,劉寶森.基于ARM9的嵌入式數(shù)控銑床控制系統(tǒng)的設(shè)計[J].機床電氣,2008,35(2):8-11.
[8] 李坤,楊家軍.5自由度焊接機械手的運動學(xué)研究[J].機械工程師,2007(4):20-21.
[9] 何洋.三軸伺服注塑機機械手上位機控制器的設(shè)計與實現(xiàn)[D].杭州:浙江大學(xué),2012.
[10] 李濤.伺服機械手手控器軟件設(shè)計及其實現(xiàn)[D].西安:西安電子科技大學(xué),2013.
Design of multi-degree of freedom robotic manipulators based on ARM
Sun Jie,Liu Xuan,You Li,Liu Chu,Xu Lianhui
(School of Computer Science, Huazhong Normal University, Wuhan 430070, China)
Robotic manipulators uses ARM chip as the control core, is mainly based on its powerful computational capabilities and rich peripheral interfaces which are suitable to be used as serial, parallel, high-speed and low-speed interface, and also can easily be used as network interface for robotic manipulators collaborative work. Especially the LCD interface and the memory expansion interface of ARM chip can greatly improve the intelligent degree of the robotic manipulators. The LCD can provide a friendly man-machine interface, easy programming, maintenance and fault indication. The large capacity memory provide convenient for complex operation and large data storage. These advantages of ARM provide the most effective guarantee for the high intelligence of the robotic manipulators.
robotic manipulators; ARM chip; servo motor; embedded; control system
華中師范大學(xué)2015年大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃項目(2015062)
TP241
ADOI: 10.19358/j.issn.1674- 7720.2016.17.009
2016-05-04)
孫捷(1995-),通信作者,女,本科,主要研究方向: 嵌入式系統(tǒng)。E-mail:1666368956@qq.com。
劉瑄(1995-),女,本科,主要研究方向: 軟件工程。
有力(1995-),女,本科,主要研究方向: 軟件工程。