鄭登華,賀一烜,柏孟杰,張 星
智能物流機器人使用的材料:Arduino mega 2560 控制板,步進電機,TB6560 步進電機驅(qū)動器,全向輪(麥克納姆輪),黑白標傳感器,二維碼,OLED 顯示屏,舵機,openmv,航模電池等。
智能物流機器人的結(jié)構(gòu)設(shè)計:結(jié)構(gòu)設(shè)計主要分為小車底板設(shè)計,機械手設(shè)計,電路設(shè)計以及程序設(shè)計等方面。機械手和小車底板以亞克力板為原料,通過激關(guān)切割得到我們所需要的零件,然后將其組裝,得到一個完整的機械結(jié)構(gòu),也可以通過3D 打印以及線切割等方式得到所需的零件[1]。大多數(shù)小車的底板通常為正方形或者長方形,這樣就必須采用四輪結(jié)構(gòu),不僅耗費材料,而且因為地面摩擦力的原因,會使小車在轉(zhuǎn)向方面存在很多的問題.而我們采用的是三輪結(jié)構(gòu),圓形底盤,通過步進電機獨有的可控轉(zhuǎn)圈數(shù)的功能,不僅能實現(xiàn)360 度無死角轉(zhuǎn)彎,而且還能提高轉(zhuǎn)向時的精準度,減少小車轉(zhuǎn)向時存在的誤差,同時,小車前進時是由兩個輪子帶動,這樣小車便有3 個方向可利用。
圖1 小車正面圖
圖2 小車側(cè)面圖
小車機械手的設(shè)計:小車機械手的主要功能是準確抓取與放置,所以用舵機控制是最好的選擇,一方面是舵機易于控制,方便調(diào)試,另一方面是舵機控制能精確到度數(shù),提高放置物品的精確度。但在比賽中,抓取物品規(guī)則大小由抽簽決定,并且手爪部分要現(xiàn)場打印,裝配,所以機械手的結(jié)構(gòu)最好是越簡單越好,用的舵機是越少越好,如果舵機使用過多,不僅會讓調(diào)試過程變得復(fù)雜,也會使放置的誤差變大。在此建議大家用2 個舵機或3 個舵機控制,使用2 個舵機時,可采用平行4 桿結(jié)構(gòu),一個舵機用于控制升降,另一個舵機控制抓?。ㄈ鐖D3),而3 個舵機則可以采用以上結(jié)構(gòu)(圖2)。
電路控制方面:小車用到的模塊種類很多,工作電壓也不相同,其中TB6560 步進電機驅(qū)動器的工作電壓通常是10V 到35V,其他模塊普遍是5V 供電,而電池供電則規(guī)定在12V 以內(nèi),所以必須要使用降壓模塊給電源降壓,才能讓模塊正常的使用,也可以通過多電源控制,比如單獨給步進電機驅(qū)動器一個電源,而其他模塊一個共用電源。由于這個比賽用的模塊比較多,線路也比較復(fù)雜,所以建議大家可以制作一塊PCB 板,將用到的電源以及模塊集成在PCB 板上,這樣不僅可以減少線路的復(fù)雜度,也可以在小車出現(xiàn)故障時,快速檢查線路方面的問題。
圖3 平行四桿的機械手
程序設(shè)計方面:小車的程序涉及行走路線的規(guī)劃,小車功能的實現(xiàn)以及物品放置的精確度等等,程序比較復(fù)雜,邏輯也比較繁瑣,所以建議大家使用模塊化編程,將小車實現(xiàn)的功能做成一個庫的形式或者定義成函數(shù)的方式,使用時調(diào)用即可。而在這個程序設(shè)計中,最關(guān)鍵的便是步進電機的控制,在這里我們使用步進電機的型號是MG42S1,與之相匹配的驅(qū)動器為TB6560,同樣也可以采用TB6600,雖然兩者控制方法不同,但原理基本相同,再此我重點介紹TB6560 的控制方法,TB6560驅(qū)動器適合4.2A 以內(nèi)的42,57,86 兩相/四相/四線/六線的步進電機,步伐控制共有6 種細分方式,大家可根據(jù)需求選擇,而本文中的小車采用整步的細分方式,具體的程序{digitalWrite(CW,LOW);digitalWrite(CW1,LOW);while(j){digitalWrite(CLK,HIGH);digitalWrite(CLK1,HIGH);delayMicroseconds(500);digitalWrite(C LK,LOW);digitalWrite(CLK1,LOW);delayMicrose conds(500);j-=1;}},其中CW 信號的高低是控制小車輪子轉(zhuǎn)動的方向,當CW 高電平或懸空時為正轉(zhuǎn),低電平時為反轉(zhuǎn),而CLK 的高低電平則是控制電機正常運行,需要有高低電平變化才能控制電機正常轉(zhuǎn)動,如果改變高低電平變化的時間,則還可以控制電機轉(zhuǎn)動的速度,不僅如此,該程序還能通過修改文中j 的大小實現(xiàn)控制步進電機轉(zhuǎn)指定的圈數(shù),由于該步進電機的步距角為1.8 度,故當j=200 時剛好可以控制電機轉(zhuǎn)動一圈,也可以在while 里面加入循跡程序,這樣便可實現(xiàn)循跡加定位的功能,但這只是步進電機最簡單的控制方法,適用于初學(xué)者,如果想要實現(xiàn)步進電機更加強大的功能,大家還可以使用PID 算法控制,加入方向,加速度等功能。
智能物流小車最初的結(jié)構(gòu)設(shè)計與程序設(shè)計只能算是設(shè)計者的主觀想法,如果想要在賽道上穩(wěn)定,高效的工作,還需要后期花費大量的時間進行調(diào)試與修改,例如小車完成后的結(jié)構(gòu)是否能達到比賽要求,機械手結(jié)構(gòu)是否完成其功能,小車功能是否能按照程序設(shè)計那樣運行等問題,都需要我們進行大量的場地實踐,不斷完善小車的功能。而對于小車實現(xiàn)功能方面,建議大家在編程時,不要盲目的把自己所有的程序雜合在一起,剛開始就讓小車一次性實現(xiàn)所有的功能,這樣不僅會導(dǎo)致小車功能無法實現(xiàn),還有可能導(dǎo)致自己的程序無法編譯通過,而更為嚴重的問題是自己都無法確定小車的問題在哪里,所有建議大家在編寫總程序時,一步一步的實現(xiàn)小車的功能,例如可以先實現(xiàn)小車的行走,循跡,再進一步實現(xiàn)二維碼,顯示屏等功能,因為只有這樣你才能及時發(fā)現(xiàn)程序調(diào)試過程中的問題,這樣也方便自己檢查。
2019 年四川省智能物流小車于2019 年11 月份開始,完成的功能主要有二維碼掃描,顏色識別,顯示屏,物料放取,Wi-Fi 網(wǎng)絡(luò)通信等功能,而其中有一項規(guī)定是在4 小時內(nèi)完成小車機械爪的設(shè)計與制作,路線重新規(guī)劃與程序調(diào)試的任務(wù),這個規(guī)定就進一步的要求參賽隊員之間要有緊密的配合,合理的分工,并且要求路徑規(guī)劃以及程序方面要足夠的精簡,這樣才有可能在4 個小時內(nèi)完成程序的編寫。對于路徑的規(guī)劃,建議大家可以使用坐標法對程序的進行設(shè)計,可以先定義一個起始坐標與方向(x,y,d),然后找到小車停止時的坐標與方向(x1,y1,d1),如第一次掃二維碼的位置與方向(6,1,2),然后兩者之差就可以得出x 方向應(yīng)走多少步,y 方向應(yīng)走多少步,中間應(yīng)旋轉(zhuǎn)多少度,并且還要將小車實時的位置記錄下來,作為下一次使用時的初始坐標(x,y,d),盡管這個方法在程序設(shè)計時比較困難,但做出了之后的程序在修改中便會變得十分簡單,這樣也可以使程序在后期修改中更加方便,也更加的智能化。
目前,智能物流小車競賽的難度逐步變大,要求實現(xiàn)的功能也越來越多,無論是結(jié)構(gòu)設(shè)計,還是程序設(shè)計,都需要花費大量的時間,所以要求團隊成員要分工明確,相互合作,才能在競賽中取得優(yōu)異的成績。