(北京物資學院 北京 101149)
物流導引小車的主要導航模式包括電磁式導航[1]、激光導航[2]、慣性導航[3]、視覺導引式導航[4]。而本文設計的導航模式可以不依賴外部導航方式,依靠物流導引小車的自身的程序即可導航,降低了技術難度。這為無線通信技術提供了一種新的方法,同時也對將來AGV發(fā)展趨勢和現(xiàn)代智能家居的設計提供了參考價值[5]。
本設計的思路是基于以下幾個方面:以利用手機APP實現(xiàn)小車的任意路徑規(guī)劃,設計符合要求的手APP與控制程序。小車的控制程序主要通過Wi-Fi進行信號的傳輸與反饋軟件基于Eclipse框架結構[6],使用Java語言進行開發(fā)。
首先,實現(xiàn)基本的物流導引小車的移動控制。之后,讓小車完成正方形的路徑,確保小車可以按照要求完成常規(guī)路徑。最后實現(xiàn)在手機APP上可以畫圖控制物流導引小車路徑,AGV能夠按照給定的路徑進行移動,就完成了設計目標。
Wi-Fi無線網絡是由無線網卡和網絡橋接器AP(Access Point)所組成的,對裝有無線網卡的終端進入Wi-Fi覆蓋區(qū)域能由AP來接入Internet,Wi-Fi接入技術具有高速傳輸和無線接入的優(yōu)點,最高速度可達54Mbps[7]。同時Wi-Fi技術布網簡單,成本低廉,速度快,定位精確,傳輸不失真。其控制代碼格式如表1所示。
表1 控制代碼格式
其控制代碼主要分為4部分,包頭包尾均為ff,首兩位主要區(qū)分不同類型的功能,次兩位分別同樣部分的不同命令,最后兩位主要區(qū)分同樣指令不同的數(shù)據位。
在物流導引小車的控制端(手機APP),具有的功能包括:
物流導引小車可以按照固定的路徑進行移動??梢园凑帐謾CAPP畫出的路徑進行移動,實時改變路徑,攝像頭可以傳輸畫面。
物流導引小車主要有三塊主板(Arduino2560主板、PWR電源板、Wi-Fi模塊),插入攝像頭上電源后由Wi-Fi模塊建立無線熱點,手機可直接連接此熱點進行視頻和控制。
1.手機APP的顯示設計
利用Arduino進行硬件平臺開發(fā),首先,先確認我們使用的是Eclipse的ADT工具進行開發(fā),同時其還提供了模擬器,可以在軟件中模擬進程。
Android系統(tǒng)的總體架構主要分為4部分,分別為:核心操作系統(tǒng)底層、系統(tǒng)支持庫層、Android應用框架層和應用、小部件層。
首先需要先搭建環(huán)境。在安裝完成JDK后,再設置環(huán)境變量即可完成。建立一個開始界面,在設計界面的過程中,采用了線性布局,分別是主界面是垂直布局,次級界面是水平布局。垂直布局的主要代碼為android:orientation=“horizontal”與android:orientation=“verticaltal”。采用的是xml。
手機控制AGV,需要有固定的程序,主要通過Activity實現(xiàn),即按一下按鍵,就實現(xiàn)相應的功能。同時因為包含了發(fā)送自定義的功能,所以我們還需要用Edit Text,收集你所輸入的內容。
2.手機APP端控制設計
按鍵前進來控制物流導引小車前行。不進行操作時物流導引小車停止。按鍵左轉可以控制物流導引小車左轉。按鍵右轉可以控制物流導引小車右轉。按鍵后退可以控制物流導引小車后退。
屏幕中間的按鍵CMD可以進入自定義的命令,按鍵長方形可以控制物流導引小車按照長方形路徑進行移動,按鍵圓形路與按鍵正方形同理。按鍵路徑規(guī)劃可以進入下一級控制系統(tǒng),如圖1所示。
圖1 手機自定義命令的發(fā)送界面
圖2 路徑規(guī)劃初始界面
按路徑規(guī)劃鍵會彈出一張平面圖,可以在上邊畫出物流導引小車的理想移動路徑,點擊開始執(zhí)行就可以讓物流導引小車按照你所輸入的路徑進行移動,如圖2所示。
Arduino2560電源板集成了L298P。L298P是一款雙全橋電機專用芯片,內部包含4信道邏輯驅動電路,接收標準TTL邏輯準確信號,可驅動46V、2A以下的步進電機或直流電機,并透過電源來調節(jié)輸出電壓;此芯片可以直接由單片機的IO來提供模擬時序信號。
表2直觀的顯示出了電機轉動和其所需要的高低電平情況。
表2 電機轉動邏輯表
物流導引小車前進要求電機1反轉,電機2反轉。
物流導引小車后退要求電機1正轉,電機2正轉。
物流導引小車右轉要求電機1正轉,電機2反轉。
物流導引小車左轉要求電機1反轉,電機2正轉。
物流導引小車停止要求電機1與電機2均為0,及低電平。
其電機連線如圖3所示。
圖3 物流導引小車的電機接線圖
四個電機的接線圖主要就是相互靠近的電機相同的兩極相連,并共同連到Arduino相應的部分。相互靠近的兩個電機的正負極分別連接到同一M+與M-極。
首先,需要在Arduino中,將ENA、ENB、INPUT1、INPUT2、INPUT3、INPUT4都設置為輸出,即輸出屬性。
其次,確認物流導引小車的指令,在Arduino中收到手機APP的命令之后,分辨他屬于那種命令,驅動電機進行相對應的動作。0x01指令為前進,即電機1與電機2均反轉,0x02為后退指令,即電機1與電機2均正轉,以此類推。
之后,通過digitalWrite函數(shù),作用是設置引腳的輸出電壓為高(低)電平,該函數(shù)無返回值,從而控制L298P驅動模塊,即電機驅動板上,控制電機的正轉與反轉。由上面分析的物流導引小車的基本移動需要的電機轉動方向。其流程如圖4所示。
圖4 電機驅動程序流程圖
首先將ENA、ENB、input1、input2、input3、input4設置為輸出,使其接電機時可以控制電機的正反轉。
正方形路徑步驟完全一樣,只是驅動電機的程序不一樣。將ENA、ENB設為高電平,使得物流導引小車可以按照設定固定完成路線,執(zhí)行前進指令,前進,即回到了原點。物流導引小車就可完成了一個固定的正方形路徑。
AGVs在制造業(yè)中主要作用是物料運輸、裝配和加工制造等,尤其物料運輸方面的應用更為廣泛。對于現(xiàn)代制造業(yè)來講,提高AGV系統(tǒng)的工作效率,使AGVs能快速、準確、高效地將物料運送目的地上是非常重要的。為了滿足以上要求,AGV必須擁有流暢的行駛路徑,因此,對AGV進行路徑規(guī)劃具有實際意義。物流導引小車的路徑規(guī)劃就是物流導引小車處于一個環(huán)境中,給定起點與終點或者給定路徑,控制物流導引小車的能按照路徑進行移動[8-11]。
如手機APP端控制設計,將物流導引小車的路徑規(guī)劃基礎界面。當我們在手機上畫出一個路徑時,手機會把路徑分為節(jié)點,近似的分為直線運動,當越彎的路徑需要的節(jié)點數(shù)越多,在路徑上遇到問題時,可以通過清空畫布按鍵,停止小車,如果路徑沒有問題,你還可以讓小車重復執(zhí)行路徑。
在畫布上的程序,通過Wi-Fi模塊與一定的規(guī)則,將相應的命令傳輸給物流導引小車。
首先,在畫布上的路徑被分為了若干節(jié)點,完成路徑主要分為兩部分,直行與轉彎。其中轉彎主要分為兩個變量,轉角與時間。
判斷執(zhí)行的命令,如果RevStatu==1(RevStatus等于1),那么判斷物流導引小車進行左轉的命令,其轉角時間等于TurnAngle的數(shù)值乘以6,單位為毫秒。之后進行直走命令,時間為Golength的數(shù)值乘以10,單位為毫秒。達到下一節(jié)點,繼續(xù)此流程。右轉指令以此類推。具體流程如圖5所示。
圖5 路徑規(guī)劃程序的流程圖
在手機畫布上的路徑與實際路徑比例大約為1:100,即畫布上1厘米,實際物流導引小車行進大概1米,方向與畫布方向一致,即上方對應前進,下方對應后退,左側代表左轉,右側代表右轉。
本文通過Wi-Fi進行信號的傳輸與反饋,APP的設計基于Eclipse框架結構,使用Java語言進行開發(fā)。經過多次試和修改代碼,成功實現(xiàn)了Wi-Fi小車預設的功能,在Wi-Fi輻射范圍內通信穩(wěn)定,控制可靠靈活。經過不斷優(yōu)化代碼最終實現(xiàn)“無障礙”通信、控制。
首先,實現(xiàn)了通過手機APP實時控制小車的運行狀態(tài)。之后,通過預設,小車可以按照指定路徑循環(huán)行走。最后,實現(xiàn)了小車按照已經畫好的路徑行走,并且可以實時更改行走線路。
設計的意義在于將單片機電子技術,Wi-Fi通信技術和智能終端設備有效結合,深化物聯(lián)網的概念,本方案可推廣到智能家居等領域。