孫捷,劉瑄,有力,劉楚,徐蓮輝
(華中師范大學(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ī)械手的高度智能化提供了最有效的保證。
關(guān)鍵詞:機(jī)械手;ARM芯片;伺服電機(jī);嵌入式;控制系統(tǒng)
0引言
機(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)行正常的工作。特別是近些年人工成本越來(lái)越高,企業(yè)都迫切需要采用一些自動(dòng)化設(shè)備來(lái)降低人工成本,工業(yè)機(jī)械手在這方面有著廣闊的應(yīng)用前景。
常用的機(jī)械手多為6個(gè)自由度以下的。一般的專(zhuān)用機(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è)接口沒(méi)有ARM豐富[1],并且成本也比ARM高,一片DSP控制的機(jī)械手自由度也有限,6個(gè)自由度的、復(fù)雜一點(diǎn)的機(jī)械手都需要多個(gè)DSP芯片協(xié)同才能較好地完成控制。1機(jī)械部分設(shè)計(jì)與安裝 1.1 4個(gè)自由度設(shè)計(jì)[2]
機(jī)械抓手選用型號(hào)為42HD2401100L,兩相4線步進(jìn)電機(jī),絲桿電機(jī)的行程為100 mm,步距角為1.8°,電流1.5 A N1504。利用其不同的行程可以設(shè)計(jì)不同力矩大小的抓手或夾具,此部分通過(guò)加工的一個(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]。
所有機(jī)械部分安裝完成后的實(shí)物圖如圖1所示,底座采用鍍鋅方管焊接成100 mm×100 mm的雙層鐵架構(gòu)成,最下面的電機(jī)用角鐵固定,全部用自噴漆噴涂一遍用于防銹,將導(dǎo)線用伸縮塑膠管封固定,以防導(dǎo)線纏繞或損壞[4]。
2機(jī)械手控制系統(tǒng)硬件設(shè)計(jì)
機(jī)械手的控制核心采用功能強(qiáng)大的ARM芯片來(lái)進(jìn)行設(shè)計(jì),芯片型號(hào)為STM32F103C8T6,引腳數(shù)48。控制板接收上位機(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所示[67]。
機(jī)械手的具體指標(biāo)參數(shù)如下:機(jī)構(gòu)材料采用全金屬材料;驅(qū)動(dòng)方式為步進(jìn)伺服混合驅(qū)動(dòng);操作方式采用可編程單機(jī)工作/聯(lián)機(jī)工作;重復(fù)定位精度為±5 mm;最大展開(kāi)半徑為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機(jī)械手控制系統(tǒng)軟件設(shè)計(jì)
3.1ARM控制板軟件的設(shè)計(jì)
開(kāi)發(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)位,無(wú)硬件流控制。最后還要按如下語(yǔ)句進(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í)器單元來(lái)產(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
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單元來(lái)產(chǎn)生方波,這種周期時(shí)間較短,其主要控制源程序如下: void TIM3_PWM_Init(u16 arr,u16 psc) {//此部分需手動(dòng)修改IO口設(shè)置 RCC->APB1ENR|=11;//TIM3時(shí)鐘使能 RCC->APB2ENR|=13;//使能PORTB時(shí)鐘 GPIOB->CRL&=0XFF0FFFFF;//PB5輸出 GPIOB->CRL|=0X00B00000;//復(fù)用功能輸出 RCC->APB2ENR|=10;//開(kāi)啟輔助時(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],并且通過(guò)串口將數(shù)據(jù)傳送給ARM開(kāi)發(fā)板,在調(diào)試過(guò)程中,將運(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]。
在界面上還有串口通信數(shù)據(jù)監(jiān)測(cè)窗口,主要顯示發(fā)出的命令和收到的數(shù)據(jù)是否正常,這樣能方便進(jìn)行開(kāi)發(fā)。
在進(jìn)入串行數(shù)據(jù)通信編程中,應(yīng)用CSerialPort類(lèi)進(jìn)行編程,對(duì)串口、波特率、數(shù)據(jù)位數(shù)、停止位、奇偶校驗(yàn)位等初始化,使用的主要函數(shù)為InitPort(),如下所示: if(m_Port.InitPort(this,m_nCom,m_nBaud,m_cParity,m_nDatabits,m_nStopbits,m_dwCommEvents,512)){ m_Port.StartMonitoring(); m_CtrlOpenPort.SetWindowText("打開(kāi)串口"); m_Port.ClosePort();//關(guān)閉串口 }elseAfxMessageBox("沒(méi)有發(fā)現(xiàn)此串口"); 發(fā)送數(shù)據(jù)使用的主要語(yǔ)句如下: sendcommand=m_strSendData; m_Port.WriteToPort((LPCTSTR)sendcommand);//發(fā)送數(shù)據(jù) 接收數(shù)據(jù)在CSerialPort類(lèi)中進(jìn)行,可以中斷接收,但必須在主程序中進(jìn)行數(shù)據(jù)識(shí)別,本文在LONG CICtestDlg::OnCommunication(WPARAM ch, LPARAM port)函數(shù)中專(zhuān)門(mén)來(lái)解析接收到的數(shù)據(jù)。4結(jié)束語(yǔ) 本項(xiàng)目主要是利用ARM系列的CPU作為控制核心,驅(qū)動(dòng)一定數(shù)量的伺服機(jī)構(gòu)來(lái)組裝一臺(tái)多個(gè)自由度的機(jī)械手裝置。與傳統(tǒng)的機(jī)械手控制系統(tǒng)相比,本系統(tǒng)具有體積小、功耗低、性能髙、成本低等優(yōu)點(diǎn),具有很好的發(fā)展前景。重復(fù)定位精度未達(dá)到預(yù)先估計(jì)的值,這與購(gòu)買(mǎi)的電機(jī)和減速機(jī)的制造精度有關(guān),并且步進(jìn)電機(jī)在運(yùn)行過(guò)程中還可能失步,因此還有許多方面需要改進(jìn),比如在各個(gè)電機(jī)運(yùn)動(dòng)控制時(shí)加裝編碼器來(lái)進(jìn)行運(yùn)動(dòng)角度檢測(cè),這樣可以改進(jìn)精度方面的問(wèn)題,也完全可以消除失步的問(wèn)題。
參考文獻(xià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.
機(jī)械手相關(guān)文章
更多 >>- 可傳遞觸覺(jué)的機(jī)器手進(jìn)行首次公開(kāi)演示
- 新技術(shù)讓癱瘓猴子恢復(fù)行走 或十年內(nèi)用于人類(lèi)
- 基于ARM的多自由度機(jī)械手設(shè)計(jì)
- 機(jī)器人產(chǎn)業(yè)面臨的機(jī)遇與挑戰(zhàn)
- 基于Arduino的語(yǔ)音識(shí)別與控制系統(tǒng)實(shí)現(xiàn)
- 專(zhuān)家解析 中國(guó)機(jī)器人產(chǎn)業(yè)發(fā)展的“阿基米德點(diǎn)”
- 一款新型機(jī)械手可識(shí)別不同材料敏感度超人類(lèi)
- 基于AT89C52的備料機(jī)械手控制系統(tǒng)設(shè)計(jì)