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