汪智禹,陶仕豪,何天屹,魏漢森
(南京工程學(xué)院 信息與通信工程學(xué)院,江蘇 南京 211100)
隨著工業(yè)4.0的提出,傳統(tǒng)的工業(yè)制造已經(jīng)不能滿(mǎn)足社會(huì)的需求,取而代之的是智能化工業(yè)流水線(xiàn)。在傳統(tǒng)的生產(chǎn)過(guò)程中,物料的運(yùn)送主要還是靠人力搬運(yùn),不僅耗費(fèi)時(shí)間、浪費(fèi)人力,還會(huì)造成較高的貨物損壞率,無(wú)法有效地完成貨物搬運(yùn)工作[1]。而AGV小車(chē)是一種能夠完成自主駕駛、無(wú)人操縱的自動(dòng)化運(yùn)輸設(shè)備,因此AGV小車(chē)能夠很好地解決這部分問(wèn)題。但是由于近些年工業(yè)自動(dòng)化領(lǐng)域的飛速發(fā)展,工廠對(duì)小車(chē)的功能需求越來(lái)越大,在部分境況之下,任務(wù)的完成通常需要數(shù)臺(tái)小車(chē)一起發(fā)揮功用,故而有效地達(dá)成對(duì)多臺(tái)AGV小車(chē)協(xié)作的良好控制就顯得十分關(guān)鍵[2]。目前,簡(jiǎn)單的小車(chē)還只能在部分單一的領(lǐng)域里起作用,不能夠完成較為復(fù)雜的作業(yè),而無(wú)線(xiàn)通信可以使小車(chē)相互之間協(xié)同工作。ZigBee無(wú)線(xiàn)通信技術(shù)具有成本低、功耗低、多節(jié)點(diǎn)和網(wǎng)絡(luò)性能穩(wěn)定等特征[3],可以嵌入各種設(shè)備[4],很容易用一個(gè)低成本的設(shè)置來(lái)實(shí)現(xiàn),主要適合于自動(dòng)控制和遠(yuǎn)程控制領(lǐng)域。ZigBee無(wú)線(xiàn)通信技術(shù)是為短范圍無(wú)線(xiàn)數(shù)據(jù)傳輸而設(shè)計(jì)的,并具有較高的安全可靠性,可實(shí)現(xiàn)十分完備的檢測(cè)功能[5-6]。因此,本文使用ZigBee實(shí)現(xiàn)AGV小車(chē)間的無(wú)線(xiàn)通信。
本文設(shè)計(jì)了一款能夠?qū)崿F(xiàn)循跡和避障功能、支持協(xié)同作業(yè)的AGV智能小車(chē)。AGV智能小車(chē)的具體功能為:(1)通過(guò)循跡模塊檢測(cè)路面黑線(xiàn),并跟隨預(yù)設(shè)的黑線(xiàn)前進(jìn),實(shí)現(xiàn)自動(dòng)導(dǎo)航功能;(2)通過(guò)避障模塊檢測(cè)障礙物,并繞開(kāi)障礙物行駛,實(shí)現(xiàn)自動(dòng)避障功能;(3)手機(jī)遙控,通過(guò)藍(lán)牙模塊接收手機(jī)端發(fā)送過(guò)來(lái)的數(shù)據(jù),進(jìn)而控制小車(chē)進(jìn)入循跡模式或避障模式。根據(jù)目標(biāo)功能,對(duì)小車(chē)的各部分模塊進(jìn)行設(shè)計(jì),硬件部分主要為ESP32藍(lán)牙模塊、ZigBee模塊、避障模塊、循跡模塊、驅(qū)動(dòng)模塊、電源模塊等。主控模塊選用STM32單片機(jī),負(fù)責(zé)控制循跡模塊、避障模塊、驅(qū)動(dòng)模塊,同時(shí)負(fù)責(zé)控制藍(lán)牙模塊完成與手機(jī)小程序的連接,實(shí)現(xiàn)多臺(tái)AGV的集中控制,并控制ZigBee模塊完成AGV之間信息的交互。支持協(xié)同作業(yè)的AGV系統(tǒng)如圖1所示。
圖1 多AGV協(xié)同作業(yè)系統(tǒng)
根據(jù)總體設(shè)計(jì),單臺(tái)AGV智能小車(chē)的系統(tǒng)結(jié)構(gòu)和實(shí)物如圖2所示。小車(chē)主要實(shí)現(xiàn)紅外循跡、超聲波避障、藍(lán)牙遙控、ZigBee無(wú)線(xiàn)通信4個(gè)功能。紅外循跡、超聲波避障用于檢測(cè)周?chē)沫h(huán)境,主控芯片根據(jù)環(huán)境信息形成驅(qū)動(dòng)指令實(shí)現(xiàn)對(duì)電機(jī)的驅(qū)動(dòng);藍(lán)牙遙控功能主要依賴(lài)ESP32實(shí)現(xiàn),用于完成對(duì)手機(jī)指令的接收和處理,實(shí)現(xiàn)手機(jī)端對(duì)多AGV小車(chē)的集中控制;小車(chē)間通信主要依靠ZigBee無(wú)線(xiàn)通信技術(shù)實(shí)現(xiàn)。
圖2 單臺(tái)AGV小車(chē)系統(tǒng)結(jié)構(gòu)
編寫(xiě)程序時(shí)需要對(duì)硬件模塊定義引腳、輸入輸出模式、設(shè)置波特率等。最大速度設(shè)置為100 m/s,紅外循跡傳感器與主芯片14和15號(hào)引腳相連,并設(shè)置為輸入模式;3塊超聲波避障傳感器分別與主芯片28、33號(hào)引腳,29、26號(hào)引腳,32、27號(hào)引腳相連,并設(shè)置為輸入模式;由于ESP32芯片自帶藍(lán)牙功能,故藍(lán)牙遙控模塊通過(guò)ESP32單片機(jī)實(shí)現(xiàn);ZigBee通信模塊核心DL-30 CC2530芯片連接主控芯片STM32芯片的21號(hào)、22號(hào)引腳;用于串口通信的波特率設(shè)為9 600。
項(xiàng)目選擇STM32系列的STM32F103C8T6型號(hào),如圖3所示。此系列的單片機(jī)處理能力強(qiáng)大、開(kāi)發(fā)生態(tài)豐富且易于調(diào)試和測(cè)試,能夠滿(mǎn)足智能小車(chē)的開(kāi)發(fā)需求。
圖3 控制芯片電路
電機(jī)驅(qū)動(dòng)模塊主要用于車(chē)速和方向的控制,本項(xiàng)目選擇L298N電機(jī)驅(qū)動(dòng)模塊。L298N是專(zhuān)用的驅(qū)動(dòng)集成電路,屬于H橋電機(jī)驅(qū)動(dòng)芯片,輸出電流為2~4 A,最高工作電壓為50 V,輸入端可以與單片機(jī)直接相連,便于控制。與L293D相比,L298N輸出電流增大、功率增強(qiáng),更適用于智能小車(chē)的設(shè)計(jì)。本例中AGV智能小車(chē)采用三角形布局,車(chē)體前部的左右兩側(cè)各安裝一個(gè)電機(jī),驅(qū)動(dòng)小車(chē)輪子,通過(guò)改變電機(jī)的轉(zhuǎn)動(dòng)來(lái)控制小車(chē)的運(yùn)動(dòng)狀態(tài)。小車(chē)尾部安裝了一個(gè)萬(wàn)向輪,萬(wàn)向輪無(wú)需電機(jī)驅(qū)動(dòng)即可在水平方向進(jìn)行360°旋轉(zhuǎn),用于控制小車(chē)的平衡,并與車(chē)體前部由電機(jī)驅(qū)動(dòng)的車(chē)輪構(gòu)成了穩(wěn)定的三角形結(jié)構(gòu)。
AGV智能小車(chē)采用兩路TCR5000紅外循跡傳感器,分別與STM32F103C8T6的PA4和PA5相連。地面鋪設(shè)的黑色行車(chē)線(xiàn)路會(huì)吸收TCR5000傳感器發(fā)射的紅外光線(xiàn),而普通的路面則會(huì)將其反射回去,TCR5000傳感器將接收地面反射紅外線(xiàn)的強(qiáng)度并轉(zhuǎn)換為高低電平輸入STM32F103C8T6的PA4和PA5口(14、15號(hào)引腳)。STM32F103C8T6通過(guò)判斷PA4和PA5端口電平來(lái)控制驅(qū)動(dòng)模塊調(diào)整小車(chē)兩側(cè)電機(jī)的運(yùn)動(dòng)狀態(tài),從而實(shí)現(xiàn)循跡的功能。
為了盡量避免檢測(cè)盲區(qū)的干擾,在小車(chē)車(chē)頭的中間和左右兩邊各安裝了一個(gè)HC-SR04超聲波測(cè)距模塊,分別與主控芯片PB15、PA12號(hào)引腳,PA8、PB13號(hào)引腳,PA11、PB14引腳相連。利用超聲波測(cè)距模塊發(fā)射并接收遇到障礙物而返回的超聲波的時(shí)間差,測(cè)量出模塊與障礙物之間的距離,當(dāng)距離小于設(shè)定的值后,判定小車(chē)前有障礙物,將該信息轉(zhuǎn)換為高低電平后,進(jìn)而改變電機(jī)運(yùn)動(dòng)狀態(tài),實(shí)現(xiàn)超聲波避障。直到該障礙物被移走,超聲波測(cè)距模塊檢測(cè)到閾值內(nèi)無(wú)障礙物,軟件繼續(xù)控制對(duì)應(yīng)引腳電平高低,使小車(chē)?yán)^續(xù)前進(jìn)。HC-SR04接口電路如圖4所示。
圖4 避障模塊接口電路
藍(lán)牙模塊實(shí)現(xiàn)手機(jī)與小車(chē)之間的數(shù)據(jù)交換。AGV智能小車(chē)使用ESP32內(nèi)置的藍(lán)牙模組實(shí)現(xiàn)與手機(jī)小程序之間的藍(lán)牙通信。ESP32模組是一款超小體積的多功能通用型模組,以具有雙核處理器的ESP32作為主控,主頻高達(dá)600 DMIPS,模塊搭配PCB板載天線(xiàn),通信速度快,操作簡(jiǎn)便,且使用的是低功耗藍(lán)牙技術(shù),與傳統(tǒng)藍(lán)牙技術(shù)相比,功耗更低,價(jià)格低廉。
EST32芯片的RXD0和TXD0引腳經(jīng)CP2102芯片與STM32F103C8T6的PA9和PA10相連,實(shí)現(xiàn)EST32與STM32F103C8T6間的數(shù)據(jù)傳輸,接口連接如圖5所示。
圖5 ESP32藍(lán)牙模塊電路
手機(jī)可以連接多臺(tái)AGV智能小車(chē)實(shí)現(xiàn)總體控制。用戶(hù)通過(guò)手機(jī)小程序發(fā)送的操作指令由ESP32芯片接收并通過(guò)TXD0引腳傳遞到主控芯片,最終實(shí)現(xiàn)對(duì)AGV智能小車(chē)的遙控;而主控模塊通過(guò)RXD0引腳將當(dāng)前狀態(tài)傳遞給ESP32芯片,并通過(guò)手機(jī)顯示當(dāng)前小車(chē)的狀態(tài)。
ZigBee通信模塊主要負(fù)責(zé)車(chē)與車(chē)之間的通信。ZigBee無(wú)線(xiàn)通信技術(shù)以IEEE802.15.4協(xié)議棧為標(biāo)準(zhǔn),使用頻段為2.4 GHz,數(shù)據(jù)傳輸速率約250 Kbps,有效組網(wǎng)距離為100~2 000 m且支持點(diǎn)對(duì)點(diǎn)、星形、鏈狀以及網(wǎng)狀等多種組網(wǎng)形式,具有成本低、功耗低、多節(jié)點(diǎn)和網(wǎng)絡(luò)性能穩(wěn)定等特征,是經(jīng)濟(jì)高效的無(wú)線(xiàn)網(wǎng)絡(luò)解決方案。
ZigBee無(wú)線(xiàn)通信網(wǎng)絡(luò)的組成部分包括協(xié)調(diào)器、路由器、終端節(jié)點(diǎn)。協(xié)調(diào)器負(fù)責(zé)建立網(wǎng)絡(luò),路由器負(fù)責(zé)傳輸數(shù)據(jù)包,終端節(jié)點(diǎn)負(fù)責(zé)數(shù)據(jù)的收發(fā)。本項(xiàng)目采用星形拓?fù)浣Y(jié)構(gòu),組成部分僅有終端節(jié)點(diǎn)和協(xié)調(diào)器,其優(yōu)點(diǎn)是建立速度快,邏輯簡(jiǎn)單清晰,數(shù)據(jù)傳輸雙向。在小車(chē)投入使用之前需要事先對(duì)ZigBee模塊設(shè)置波特率、工作方式等參數(shù),并由協(xié)調(diào)器建立一個(gè)網(wǎng)絡(luò)。
ZigBee通信模塊采用DL-30 CC2530。通過(guò)將該模塊的TX和RX引腳與STM32F103C8T6芯片PB10和PB11的連接實(shí)現(xiàn)兩者間的數(shù)據(jù)傳遞。組網(wǎng)時(shí),將其中1臺(tái)AGV智能小車(chē)的CC2530芯片設(shè)置為協(xié)調(diào)器,負(fù)責(zé)建立和維護(hù)網(wǎng)絡(luò),定期發(fā)送狀態(tài)請(qǐng)求數(shù)據(jù)包;其他AGV智能小車(chē)的CC2530芯片充當(dāng)終端節(jié)點(diǎn)加入網(wǎng)絡(luò),獲得節(jié)點(diǎn)編號(hào),同時(shí)接收協(xié)調(diào)器發(fā)送的狀態(tài)請(qǐng)求數(shù)據(jù)包,并發(fā)送自己的狀態(tài)。接收到各終端節(jié)點(diǎn)發(fā)送的狀態(tài)后,協(xié)調(diào)器根據(jù)內(nèi)部設(shè)定好的協(xié)同作業(yè)流程和作業(yè)路徑規(guī)劃算法,對(duì)這些數(shù)據(jù)包進(jìn)行演算,得出避碰指令并發(fā)送含有目標(biāo)編號(hào)的協(xié)同控制數(shù)據(jù)包,對(duì)應(yīng)編號(hào)的終端節(jié)點(diǎn)收到控制數(shù)據(jù)包后會(huì)調(diào)整AVG智能小車(chē)相應(yīng)引腳的電平,實(shí)現(xiàn)繞行避碰。
本程序是在Android studio開(kāi)發(fā)環(huán)境下開(kāi)發(fā)的,主要分基礎(chǔ)功能部分、藍(lán)牙通信部分和ZigBee網(wǎng)絡(luò)通信部分?;A(chǔ)功能部分主要包括驅(qū)動(dòng)功能、超聲波避障功能、紅外循跡功能。藍(lán)牙通信部分實(shí)現(xiàn)手機(jī)小程序和小車(chē)的通信。ZigBee網(wǎng)絡(luò)通信部分實(shí)現(xiàn)車(chē)與車(chē)之間的通信。
小車(chē)打開(kāi)電源后將自動(dòng)觸發(fā)循跡模塊功能和避障模塊功能。手機(jī)端藍(lán)牙與ESP32連接之后,通過(guò)小程序進(jìn)行相應(yīng)的設(shè)置,可以對(duì)小車(chē)發(fā)送前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、暫停等指令,實(shí)現(xiàn)對(duì)工作區(qū)內(nèi)AGV智能小車(chē)的總體控制。軟件部分核心函數(shù)為gatts_profile_a_event_handler,其主要功能在于使藍(lán)牙模塊和ZigBee無(wú)線(xiàn)模塊正常運(yùn)作。AGV的藍(lán)牙、循跡和避障程序流程如圖6所示。
圖6 藍(lán)牙、循跡和避障程序流程
當(dāng)手機(jī)與AGV智能小車(chē)之間完成藍(lán)牙連接后,小車(chē)LED燈亮起,表明可以正常接收指令。此時(shí),手機(jī)端按下啟動(dòng),小車(chē)開(kāi)始自行前進(jìn),循跡模塊進(jìn)入工作狀態(tài)并不斷檢測(cè)前方是否存在導(dǎo)航黑線(xiàn)。當(dāng)前方不存在黑線(xiàn)時(shí),小車(chē)調(diào)整方向試圖回到黑線(xiàn)上,如果正前方無(wú)黑線(xiàn),小車(chē)依次向左方和右方檢測(cè),若存在黑線(xiàn)則向?qū)?yīng)方向偏轉(zhuǎn)并繼續(xù)前進(jìn),否則暫停等待。在避障模式下,小車(chē)通過(guò)3個(gè)HC-HR04超聲波測(cè)距模塊檢測(cè)障礙物,當(dāng)正前方距離大于閾值且左右方距離大于閾值的一半時(shí),AGV智能小車(chē)判斷為周?chē)鸁o(wú)障礙繼續(xù)前進(jìn),否則,判斷為周?chē)龅秸系K物。此時(shí),小車(chē)停止前進(jìn),直到障礙物被移走且距離大于閾值時(shí)才自動(dòng)前進(jìn),避障過(guò)程中,將自身信息通過(guò)藍(lán)牙實(shí)時(shí)通信發(fā)送到手機(jī)端。
藍(lán)牙通信過(guò)程中,小車(chē)不斷掃描串行緩沖區(qū),根據(jù)gatts_profile_a_event_handler中的ESP_GATT_CONNECT_EVT部分自動(dòng)解析數(shù)據(jù)判斷指令內(nèi)容,然后根據(jù)指令動(dòng)作。收到前進(jìn)指令,小車(chē)左右輪都正轉(zhuǎn),控制小車(chē)前進(jìn);收到后退指令時(shí),小車(chē)左右輪都反轉(zhuǎn),控制小車(chē)后退;收到左轉(zhuǎn)指令,小車(chē)左輪反轉(zhuǎn),右輪正轉(zhuǎn),控制小車(chē)左轉(zhuǎn);收到右轉(zhuǎn)指令時(shí),小車(chē)左正轉(zhuǎn),右輪反轉(zhuǎn),控制小車(chē)右轉(zhuǎn)。
ZigBee通信部分,協(xié)調(diào)器會(huì)定期廣播發(fā)送gatts_profile_a_event_handler函數(shù)中的adv_data申請(qǐng)采集數(shù)據(jù)包,獲得各終端節(jié)點(diǎn)的狀態(tài),得出路徑和避碰策略控制包,發(fā)給終端節(jié)點(diǎn)。終端節(jié)點(diǎn)收到控制數(shù)據(jù)包后調(diào)整狀態(tài),實(shí)現(xiàn)繞行避碰。而身為協(xié)調(diào)器的AGV智能小車(chē)則利用超聲波避障模塊檢測(cè)到與終端節(jié)點(diǎn)的距離低于閾值時(shí)停止活動(dòng),直到兩者距離大于閾值后,才繼續(xù)活動(dòng)。協(xié)調(diào)器和終端節(jié)點(diǎn)間的避碰流程如圖7所示,其中協(xié)調(diào)器為小車(chē)1,終端節(jié)點(diǎn)為小車(chē)2。
圖7 協(xié)調(diào)器和終端節(jié)點(diǎn)間的避碰流程
本文所設(shè)計(jì)的成品小車(chē)以STM32芯片為控制核心,在確保小車(chē)能夠正常運(yùn)行的基礎(chǔ)上加入了紅外循跡、超聲波避障、藍(lán)牙遙控等功能。成品具有價(jià)格低廉、性?xún)r(jià)比高、原理清晰簡(jiǎn)明、功能豐富、控制方法簡(jiǎn)單的優(yōu)點(diǎn)?,F(xiàn)實(shí)中以它為藍(lán)本作出進(jìn)一步改進(jìn)的模型車(chē)可以出色地完成一些模擬實(shí)驗(yàn)或代替人類(lèi)做一些危險(xiǎn)的任務(wù),廣泛應(yīng)用于交通、探測(cè)等領(lǐng)域。