萬選明
【摘 要】本文介紹一款基于單片機(jī)的移動(dòng)型工件組裝機(jī)器人教學(xué)實(shí)訓(xùn)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),論述各部分的功能及詳細(xì)的設(shè)計(jì)方案。整個(gè)系統(tǒng)由兩臺(tái)移動(dòng)型機(jī)器人及上位監(jiān)控計(jì)算機(jī)組成,在上位監(jiān)控計(jì)算機(jī)的統(tǒng)一控制下,兩臺(tái)機(jī)器人相互配合完成工件的識(shí)別、抓取、存儲(chǔ)、搬運(yùn)及組裝任務(wù)。
【關(guān)鍵詞】單片機(jī) 工件組裝 機(jī)器人 MCU 實(shí)訓(xùn)系統(tǒng)
【中圖分類號(hào)】G 【文獻(xiàn)標(biāo)識(shí)碼】A
【文章編號(hào)】0450-9889(2018)02C-0187-03
隨著機(jī)器人技術(shù)的應(yīng)用普及和相關(guān)裝備制造業(yè)的發(fā)展,企業(yè)對(duì)機(jī)器人技術(shù)應(yīng)用人才的需求在不斷地增加,對(duì)學(xué)生的專業(yè)素質(zhì)和動(dòng)手能力的要求也在不斷地提高。因此,對(duì)高職院校而言,機(jī)器人技術(shù)應(yīng)用人才的培養(yǎng)中不僅要培養(yǎng)學(xué)生的理論知識(shí),更要注重培養(yǎng)學(xué)生的實(shí)踐動(dòng)手能力。但由于高職院校機(jī)器人應(yīng)用技術(shù)專業(yè)起步較晚,專業(yè)實(shí)驗(yàn)室建設(shè)相對(duì)比較滯后,實(shí)驗(yàn)實(shí)訓(xùn)設(shè)備相對(duì)比較匱乏,為了克服高職院校機(jī)器人應(yīng)用技術(shù)專業(yè)發(fā)展的不足,在綜合調(diào)研的基礎(chǔ)上,以智能工廠為主題,按照智能工廠的設(shè)計(jì)理念和需求,自主研發(fā)了一套完整的工件組裝機(jī)器人教學(xué)實(shí)訓(xùn)系統(tǒng),本著低成本、綜合程度高、適合循序漸進(jìn)使用的原則設(shè)計(jì)和制作,不僅可以為學(xué)生提供一個(gè)完整的工件組裝機(jī)器人實(shí)訓(xùn)項(xiàng)目,而且還可以為工業(yè)機(jī)器人專業(yè)單片機(jī)控制技術(shù)、傳感器與檢測(cè)技術(shù)、物聯(lián)網(wǎng)技術(shù)及應(yīng)用等課程提供一個(gè)教學(xué)及實(shí)驗(yàn)的平臺(tái)。
根據(jù)當(dāng)前工業(yè)機(jī)器人技術(shù)應(yīng)用專業(yè)實(shí)踐教學(xué)的現(xiàn)狀,并針對(duì)廣西區(qū)域企業(yè)工業(yè)機(jī)器人應(yīng)用的實(shí)際,確定了以工件組裝機(jī)器人為主體,涵蓋傳感器應(yīng)用技術(shù)、物聯(lián)網(wǎng)技術(shù)、氣動(dòng)控制技術(shù)等綜合一體的設(shè)計(jì)方案。整個(gè)系統(tǒng)由四部分組成,分別是:1#機(jī)器人、2#機(jī)器人、上位監(jiān)控計(jì)算機(jī)及附屬場(chǎng)地,如圖1所示。
上位監(jiān)控計(jì)算機(jī)在本系統(tǒng)中起監(jiān)督調(diào)度作用,主要的任務(wù)有:(1)給機(jī)器人下發(fā)任務(wù)(包括要抓取的工件、交通燈信號(hào)、啟動(dòng)指令、裝配任務(wù)等)。(2)接收和存儲(chǔ)信息。(3)在監(jiān)控界面上顯示機(jī)器人上傳的信息列表,包括機(jī)器人位置坐標(biāo),抓取工件數(shù)量、車載工件等信息。
1#、2#機(jī)器人是整個(gè)實(shí)訓(xùn)系統(tǒng)的核心,是實(shí)現(xiàn)所有功能需求的最基本要素。兩臺(tái)機(jī)器人在接收到上位監(jiān)控軟件下發(fā)的任務(wù)后,根據(jù)任務(wù)控制行走機(jī)構(gòu)運(yùn)動(dòng)到指定的位置、抓取相應(yīng)的工件、搬運(yùn)、組裝完成任務(wù),在整個(gè)過程中,包含了傳感器的基本應(yīng)用、單片機(jī)的編程測(cè)試、氣動(dòng)元件的控制、RFID信息采集、基于ZIGBEE網(wǎng)絡(luò)的數(shù)據(jù)通信,等等。每臺(tái)機(jī)器人可以獨(dú)立控制實(shí)現(xiàn)一些基本實(shí)驗(yàn)實(shí)訓(xùn)的驗(yàn)證,也可以兩臺(tái)同時(shí)組網(wǎng)運(yùn)行,完成一些復(fù)雜實(shí)訓(xùn)項(xiàng)目的驗(yàn)證。工件搬運(yùn)機(jī)器人的設(shè)計(jì)是本系統(tǒng)的主要任務(wù),主要由循跡傳感器的設(shè)計(jì)、行走機(jī)構(gòu)的設(shè)計(jì)、工件識(shí)別、抓取機(jī)構(gòu)的設(shè)計(jì)、工件存儲(chǔ)機(jī)構(gòu)的設(shè)計(jì)、通信接口的設(shè)計(jì)等幾部分組成。
場(chǎng)地是整個(gè)工件組裝機(jī)器人實(shí)訓(xùn)系統(tǒng)的基本配置,根據(jù)實(shí)驗(yàn)實(shí)訓(xùn)需求再結(jié)合實(shí)驗(yàn)室場(chǎng)地大小,擇以綠色表面的木工板作為整個(gè)機(jī)器人實(shí)訓(xùn)系統(tǒng)的工作場(chǎng)地,大小長(zhǎng)8米,寬6米的長(zhǎng)方形結(jié)構(gòu),引導(dǎo)線是3厘米寬的白色電工膠布,外圍擋板高10厘米,整個(gè)場(chǎng)地劃分為四個(gè)功能區(qū):出發(fā)區(qū)、倉庫區(qū)、交通燈區(qū)、組裝區(qū)。
(一)行走機(jī)構(gòu)設(shè)計(jì)。行走機(jī)構(gòu)是機(jī)器人的主要運(yùn)動(dòng)部件,常見的行走機(jī)構(gòu)有輪式結(jié)構(gòu)和履帶式結(jié)構(gòu)兩種,本設(shè)計(jì)采用三輪式結(jié)構(gòu),即由兩個(gè)主動(dòng)輪和一個(gè)從動(dòng)輪構(gòu)成,兩個(gè)主動(dòng)輪采用直流減速電機(jī)驅(qū)動(dòng),從動(dòng)輪用萬向輪。
(二)上位抓取機(jī)構(gòu)設(shè)計(jì)。上位抓取機(jī)構(gòu)是本機(jī)器人的設(shè)計(jì)核心,采用X、Y、Z三軸移動(dòng)方式完成工件的識(shí)別、抓取、運(yùn)輸及裝配,整個(gè)上位機(jī)構(gòu)主要由導(dǎo)軌和齒輪齒條的組合結(jié)構(gòu)完成X、Y、Z三軸軸向的引導(dǎo),電機(jī)的運(yùn)動(dòng)通過導(dǎo)軌或齒輪齒條轉(zhuǎn)換成上位機(jī)構(gòu)在X、Y、Z某個(gè)軸向的位移,其中水平左右移動(dòng)(X軸)用數(shù)字舵機(jī)完成,機(jī)械手伸縮(Y軸)和垂直升降(Z軸)用直線推桿電機(jī)完成;機(jī)械手的開閉用氣動(dòng)手指完成,除此之外,為了提高搬運(yùn)效率,上位機(jī)構(gòu)專門設(shè)計(jì)了圓盤式工件存儲(chǔ)裝置,該裝置是在一個(gè)圓形的金屬盤上等分固定4個(gè)高為50 mm、直徑80 mm的PVC塑料管來做存儲(chǔ)區(qū),對(duì)這四個(gè)存儲(chǔ)區(qū)分別編號(hào)為1、2、3、4,整個(gè)工件存儲(chǔ)盤與機(jī)器人上位平臺(tái)之間通過一個(gè)平面軸承連接,用一個(gè)數(shù)字舵機(jī)旋轉(zhuǎn),需要存儲(chǔ)工件時(shí),控制舵機(jī)將指定編號(hào)的存儲(chǔ)區(qū)旋轉(zhuǎn)至機(jī)械手正下方,松開機(jī)械手,依靠重力,工件即可落入存儲(chǔ)區(qū),同時(shí)為了便于將存儲(chǔ)區(qū)中的工件抓取,特在機(jī)械手的正下方安裝了一個(gè)筆形氣缸,并在每個(gè)存儲(chǔ)區(qū)正下方開孔,需要抓取工件時(shí),給筆形氣缸通氣,筆形氣缸頂起工件后,機(jī)械手即可輕松抓取工件。
(三)傳感器選擇及設(shè)計(jì)。傳感器是機(jī)器人的感知系統(tǒng),相當(dāng)于人的眼睛、鼻子、嘴巴等,本機(jī)器人用到的傳感器主要有以下幾種:
1.循跡傳感器。循跡傳感器相當(dāng)于機(jī)器人的眼睛,設(shè)計(jì)的好壞直接影響到機(jī)器人能否可靠地行走,本機(jī)器人循跡傳感器是根據(jù)同一光源照射在不同顏色的介質(zhì)上反射光強(qiáng)不同的特性而設(shè)計(jì)的,利用光敏電阻通過檢測(cè)光線強(qiáng)弱就可以知道當(dāng)前位置在綠色地板還是白色線條上,光敏電阻將光線強(qiáng)弱轉(zhuǎn)變成電阻的變化,借助串聯(lián)分壓電路,就可以將電阻的變化轉(zhuǎn)換為電壓的變化,數(shù)值較小,還需要進(jìn)一步放大處理后才能送給單片機(jī)處理,分壓電路輸出的電壓信號(hào)首先經(jīng)過由LM324構(gòu)成的同相比例放大電路進(jìn)行放大,然后送入電壓比較器的反相輸入端,與同相輸入端的基準(zhǔn)電壓作比較,通過調(diào)節(jié)同相比例放大電路的放大倍數(shù),使得傳感器在綠、白兩種不同地面上時(shí),比較器的輸出狀態(tài)不同,當(dāng)傳感器處在綠色地面上時(shí),比較器輸出高電平,在白色線條時(shí)輸出為低電平,最后通過反相器輸出送到主控制板。以上是一路傳感器的信號(hào)處理電路,每個(gè)機(jī)器人設(shè)計(jì)了16路同樣的傳感器,共同組合來確定機(jī)器人的姿態(tài),每個(gè)傳感器輸出端還配有一個(gè)發(fā)光LED,通過發(fā)光管的亮滅就可以指示當(dāng)前傳感器是在白條還是地板上。
2.上位機(jī)構(gòu)位置定位傳感器。上位機(jī)構(gòu)上下左右位置定位傳感器,選用了開關(guān)型霍爾傳感器作為位置檢測(cè)傳感器,在運(yùn)動(dòng)部件上固定一磁鋼,而在相對(duì)固定的部件上固定一霍爾傳感器,當(dāng)舉升機(jī)構(gòu)上下運(yùn)動(dòng)到目標(biāo)位置時(shí),磁鋼與對(duì)應(yīng)的霍爾傳感器重合,霍爾傳感器輸出“0”,否則輸出“1”,CPU在檢測(cè)到0時(shí),給運(yùn)動(dòng)機(jī)構(gòu)發(fā)出停止信息。
3.工件識(shí)別傳感器。工件信息是存儲(chǔ)在工件上的RFID卡中,所以還需要RFID卡讀寫傳感器,RFID卡讀寫傳感器選用了ZKR6806M型讀寫模塊,該模塊通過RS-232串口與主控制板通信,RFID卡閱讀器采用搖臂的方式固定安裝在機(jī)器人正前方,當(dāng)需要讀取RFID信息時(shí),控制搖臂電機(jī)動(dòng)作,把RFID閱讀器旋轉(zhuǎn)到正前方進(jìn)行正面讀取,讀取完成后或不需要讀取RFID信息時(shí),通過控制搖臂電機(jī),將RFID讀寫器收起,以致不影響其他機(jī)構(gòu)的正常工作。
(四)主控制板的設(shè)計(jì)。主控板除CPU外,還有一些接口電路,比如循跡傳感器及信號(hào)調(diào)理模塊接口電路、電機(jī)驅(qū)動(dòng)板接口電路、通信接口電路、氣動(dòng)裝置驅(qū)動(dòng)接口電路,其組成如圖3所示。
循跡傳感器共有16個(gè)光電傳感器輸出端口,為了節(jié)省CPU端口,采用了分時(shí)復(fù)用的方式,將16個(gè)傳感器狀態(tài)數(shù)據(jù)分2次送入CPU,利用2片74LS245做數(shù)據(jù)緩沖器,高8位傳感器數(shù)據(jù)輸出端接第一片74LS245(用1#芯片表示)的數(shù)據(jù)輸入端,低8位接第二片74LS245(用2#芯片表示),兩片74LS245的輸出端依次兩兩接在一起并依次接在 P2.7—P2.0口,1#芯片的使能端(9號(hào)引腳)與CPU的P4.4引腳相連,二號(hào)芯片的使能端與P4.4之間通過一個(gè)具有反相功能的施密特觸發(fā)器(74HC14)相連,這樣就可以通過P4.4來控制兩片74LS245,分時(shí)將16位傳感器數(shù)據(jù)送入P2.0口。
電機(jī)驅(qū)動(dòng)電路包括了行走電機(jī)驅(qū)動(dòng)、升降、伸縮電機(jī)驅(qū)動(dòng)以及舵機(jī)的驅(qū)動(dòng),行走電機(jī)是2個(gè)減速直流電機(jī),減速直流電機(jī)驅(qū)動(dòng)采用PWM技術(shù)進(jìn)行控制,直接采用STC12C5A60S2單片機(jī)內(nèi)置的2路PWM信號(hào)發(fā)生器,經(jīng)光耦隔離后送入直流電機(jī)專用驅(qū)動(dòng)控制器IR2210,除調(diào)速外,方向控制分別用兩個(gè)端口控制兩個(gè)繼電器來實(shí)現(xiàn)方向的切換,每個(gè)繼電器控制一個(gè)電機(jī)的轉(zhuǎn)向,常閉觸點(diǎn)接電機(jī)正轉(zhuǎn),常開觸點(diǎn)接反轉(zhuǎn),如需反轉(zhuǎn),只需將對(duì)應(yīng)電機(jī)的方向控制端口置低電平,繼電器得電,常開觸點(diǎn)閉合,常閉觸點(diǎn)斷開,電機(jī)反轉(zhuǎn);除行走減速電機(jī)外,工件抓取機(jī)構(gòu)中上下舉升電機(jī)和機(jī)械手伸縮電機(jī)是2個(gè)直線推桿電機(jī),每個(gè)電機(jī)用2個(gè)繼電器控制,需要4個(gè)端口,在這里分配P0.0、P1.7作為控制上下舉升電機(jī)的上升與下降,P0.1、P0.2控制伸縮電機(jī)的前進(jìn)與后退;三個(gè)舵機(jī)是數(shù)字舵機(jī),采用串行總線的形式級(jí)聯(lián)在串口2上。
(五)串口通信電路。為了讓機(jī)器人能夠上位監(jiān)控計(jì)算機(jī)、機(jī)器人與機(jī)器人之間的數(shù)據(jù)通信,每臺(tái)機(jī)器人選用了ZKM101B無線數(shù)據(jù)傳輸模塊作為數(shù)據(jù)傳輸?shù)耐ǖ?,模塊是無線轉(zhuǎn)RS232接口;另外每個(gè)機(jī)器人選用了ZKR6806M型嵌入式超高頻讀寫模塊作為RFID信息讀取裝置,該模塊也是基于RS232的串行接口,再加之?dāng)?shù)字舵機(jī)也是基于串口控制的設(shè)備,這樣一來,每臺(tái)機(jī)器人就有三樣設(shè)備基于串口通信,理論上需要三個(gè)串口才能保證正常通信,而控制板電路中選擇的單片機(jī)STC12C5A60S2只有2個(gè)串口,但經(jīng)過詳細(xì)的過程分析,發(fā)現(xiàn)每個(gè)機(jī)器人盡管有三種不同類型的串口設(shè)備,但是這三種設(shè)備不一定同時(shí)工作,尤其是ZKR6806模塊和數(shù)字舵機(jī),這兩個(gè)設(shè)備在工作時(shí)間上完全不沖突,ZKR6806M工作時(shí),舵機(jī)不需要工作,舵機(jī)工作時(shí),ZKR6806M模塊就不需要工作,這樣一來發(fā)現(xiàn)這兩個(gè)設(shè)備完全可以共用一個(gè)串口,而且不需要特殊的處理,直接將舵機(jī)的數(shù)據(jù)線經(jīng)MAX232轉(zhuǎn)換成RS232電平后與ZKR6806M模塊的數(shù)據(jù)線并接在一起即可,經(jīng)過大量的實(shí)驗(yàn),發(fā)現(xiàn)這種方法切實(shí)可行,無數(shù)據(jù)丟失和數(shù)據(jù)干擾現(xiàn)象。ZKM101B無線數(shù)據(jù)模塊由于要隨時(shí)收發(fā)數(shù)據(jù),其獨(dú)占串口1。
(一)下位單片機(jī)控制軟件設(shè)計(jì)。機(jī)器人控制軟件采用模塊化設(shè)計(jì)思想,用C語言在KEIL軟件下完成編寫和調(diào)試,分為三大模塊:(1)機(jī)器人行走程序模塊;(2)機(jī)器人工件識(shí)別抓取模塊;(3)通信模塊。機(jī)器人上電后,進(jìn)入初始化狀態(tài),機(jī)器人所有運(yùn)動(dòng)部件全部動(dòng)作,操作者在確認(rèn)運(yùn)動(dòng)機(jī)構(gòu)沒有問題的狀態(tài)下,按下啟動(dòng)按鈕,機(jī)器人進(jìn)入命令監(jiān)聽狀態(tài),接收上位機(jī)下發(fā)的指令,當(dāng)接收到啟動(dòng)指令后,機(jī)器人開始巡線運(yùn)行,到達(dá)貨架位置,識(shí)別抓取工件然后按照交通燈狀態(tài)從綠燈所在位置的十字路口通過,到達(dá)裝配區(qū)完成裝配任務(wù)。
(二)通信子程序。本系統(tǒng)涉及的通信實(shí)際上包括兩部分:一部分是機(jī)器人與機(jī)器人、機(jī)器人與上位機(jī)之間的基于zigbee模塊的數(shù)據(jù)通信;另一部分是機(jī)器人通過串口控制舵機(jī)或通過RFID讀寫器讀取工件信息。對(duì)于機(jī)器人而言,第一部分的通信是基于單片機(jī)串口1而完成的通信,第二部分是基于單片機(jī)的串口2而完成的通信。
機(jī)器人與機(jī)器人、機(jī)器人與上位機(jī)之間的通信項(xiàng)目中,機(jī)器人與機(jī)器人之間、上位機(jī)與機(jī)器人之間的通信協(xié)議基于Modbus協(xié)議制定,每幀命令包含有地址碼、功能碼、數(shù)據(jù)碼和校驗(yàn)碼四個(gè)部分,如表1所示。
幀結(jié)構(gòu)里,每個(gè)數(shù)據(jù)的含義如下:
地址位(ADDR)——通信對(duì)方的代號(hào),通信網(wǎng)絡(luò)中每個(gè)設(shè)備必須有而且是唯一的地址,不能重復(fù),本項(xiàng)目中,上位機(jī)地址定義為0xf0, 1號(hào)機(jī)器人地址為001,2號(hào)機(jī)器人地址為0x02。
功能號(hào)——相關(guān)命令代碼,不同的功能代碼表示要完成不同的任務(wù),比如03表示下發(fā)抓取工件命令、04下發(fā)裝配臺(tái)安裝任務(wù),05下發(fā)啟動(dòng)命令,06機(jī)器人實(shí)時(shí)位置信息上傳,07機(jī)器人抓取工件后,工件信息上傳,08機(jī)器人裝配臺(tái)安放工件位置信息上傳,09交通燈控制器向機(jī)器人下發(fā)紅綠燈命令。
數(shù)據(jù)數(shù)量——數(shù)據(jù)單元的長(zhǎng)度,對(duì)于不同的功能其數(shù)據(jù)長(zhǎng)度不一致,為確保通信可靠,在傳輸前將需要傳輸?shù)臄?shù)據(jù)個(gè)數(shù)統(tǒng)計(jì)出來,便于接收方接收和校驗(yàn)。
數(shù)據(jù)—命令代碼,功能代碼不同,命令代碼也不同。
校驗(yàn)——采用CRC校驗(yàn)方式。
數(shù)據(jù)通信采用二次回傳確認(rèn)方式,當(dāng)一端發(fā)送數(shù)據(jù),另一端接收到數(shù)據(jù)后按照CRC校驗(yàn),校驗(yàn)無誤后,再將確認(rèn)后的數(shù)據(jù)回送給發(fā)送端,當(dāng)發(fā)送端發(fā)送數(shù)據(jù)后超過一定時(shí)間沒有接收到回傳信息或接收到下位回傳錯(cuò)誤代碼,發(fā)送端需要重新發(fā)送數(shù)據(jù)。
(三)上位監(jiān)控軟件設(shè)計(jì)。上位監(jiān)控軟件采用VB6.0軟件編寫,VB6.0是較為常用的面向用戶的圖形界面程序設(shè)計(jì)軟件之一,整個(gè)軟件采用多窗體的形式來設(shè)計(jì)實(shí)現(xiàn),每個(gè)窗體都有自己的界面和程序代碼,整個(gè)上位機(jī)主要包括以下幾部分:(1)主界面設(shè)計(jì),主要包括任務(wù)下發(fā),機(jī)器人位置實(shí)時(shí)顯示,短信息提示等。(2)參數(shù)設(shè)置,包括通信端口設(shè)置和通信各方地址設(shè)置。(3)數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)追溯。
主界面的設(shè)計(jì)是整個(gè)上位機(jī)設(shè)計(jì)的核心,主界面由任務(wù)下發(fā)區(qū)、機(jī)器人位置實(shí)時(shí)顯示區(qū)及菜單欄組成。如圖5所示。左側(cè)是任務(wù)下發(fā)區(qū),分別用按鈕、單選按鈕、復(fù)選按鈕、Shape控件和CommandButton控件設(shè)計(jì),上位機(jī)與下位機(jī)之間通信通過串口實(shí)現(xiàn),數(shù)據(jù)與數(shù)據(jù)庫之間通過Data控件連接,數(shù)據(jù)庫采用ACCESS,在控件中通過設(shè)置數(shù)據(jù)庫的位置。
本文討論了一種基于單片機(jī)的工件組裝機(jī)器人實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn),對(duì)系統(tǒng)的整體實(shí)現(xiàn)方案做了詳細(xì)的敘述說明,并通過方案的比較和論證,選擇了一套切實(shí)可行的設(shè)計(jì)方案,并完成樣機(jī)的制作和測(cè)試,通過長(zhǎng)時(shí)間的系統(tǒng)測(cè)試,整個(gè)實(shí)踐教學(xué)系統(tǒng)性能相對(duì)比較穩(wěn)定,可以應(yīng)用到職業(yè)院校機(jī)器人應(yīng)用技術(shù)專業(yè)相關(guān)課程的實(shí)踐教學(xué)中,對(duì)改善職業(yè)院校機(jī)器人應(yīng)用技術(shù)專業(yè)實(shí)踐教學(xué)條件有很大的幫助。
(責(zé)編 王 一)