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