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