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