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