趙煥娣,譚宇飛,秦運(yùn)柏,李顏帆
(廣西師范大學(xué),廣西桂林,541004)
隨著科技的飛速發(fā)展與進(jìn)步,多學(xué)科融合已成為未來科學(xué)發(fā)展的必然趨勢。智能機(jī)器人的應(yīng)用在世界上越來越廣泛,逐步在各個(gè)領(lǐng)域都有所涉及;在軍事偵察、地質(zhì)勘測、掃雷排雷等人類作業(yè)難度較大的領(lǐng)域以及對惡劣環(huán)境的監(jiān)測工作中都有廣泛的應(yīng)用前景[1]。智能小車作為智能機(jī)器人的一個(gè)分支集中運(yùn)用了現(xiàn)代傳感器技術(shù)、信息融合技術(shù)、自動(dòng)控制等;本次設(shè)計(jì)的基于STM32 循跡避障小車屬于智能機(jī)器人中移動(dòng)機(jī)器人的分支,該小車實(shí)現(xiàn)了對周圍障礙物的感知并進(jìn)行躲避,根據(jù)激光測距傳感器、紅外傳感器、顏色傳感器相互配合統(tǒng)籌實(shí)現(xiàn)循跡避障功能。
本次系統(tǒng)主要對移動(dòng)機(jī)器人范疇的循跡避障小車進(jìn)行設(shè)計(jì),經(jīng)過研究討論放棄使用8 位單片機(jī)作為主控器,改成32 位的STM32F40ZET6 作為本次小車設(shè)計(jì)的主控器,其主要原因在于32 位單片機(jī)具有更高頻率的處理速度,能做到實(shí)時(shí)的數(shù)據(jù)交互,且在IO 口上具有數(shù)量優(yōu)勢,有足夠的通信口用于調(diào)用各類傳感器,最高主頻為128MHz 可進(jìn)行高速的數(shù)據(jù)傳輸處理而八位單片機(jī)最高主頻為20MHz 不滿足要求,故選擇32 為單片機(jī)作為系統(tǒng)的主控器。
本系統(tǒng)的設(shè)計(jì)思路是用通過顏色傳感器來識(shí)別賽道中的顏色將路線顏色區(qū)分出來并進(jìn)行路線規(guī)劃,而顏色傳感器中帶有灰度識(shí)別能很好地區(qū)分開白色與其他顏色從而增強(qiáng)對于白色線路的識(shí)別,再配合激光測距模塊進(jìn)行避障處理。
系統(tǒng)主要由電機(jī)驅(qū)動(dòng)模塊、主控模塊、語言播報(bào)模塊、二自由度舵機(jī)平臺(tái)、激光測距模塊、顏色傳感器模塊組成。如圖1 所示。
圖1 系統(tǒng)總構(gòu)成
2.1.1 MUC 主控電路
STM32F407ZET6 單片機(jī)是一種集成電路芯片。該芯片具有高達(dá)192+4 千字節(jié)的SRAM,包括64 千字節(jié)的CCM(核心耦合內(nèi)存)數(shù)據(jù)RAM,最高主頻高達(dá)168MHz,最多1 兆字節(jié)的閃存可以瞬間燒錄代碼,靈活的靜態(tài)內(nèi)存控制器,支持緊湊型閃存、SRAM、PSRAM、NOR 和NAND 存儲(chǔ)器,3 個(gè)12 位,2.4 MSPS 高精度A/D 轉(zhuǎn)換器:最多24 個(gè)通道可至多接收24 個(gè)傳感器信號(hào),如圖2 所示。
圖2 MCU 主控電路
2.1.2 車輪電機(jī)驅(qū)動(dòng)電路
本次采用RZ7899 作為小車的電機(jī)驅(qū)動(dòng)電路,由上圖1中的電機(jī)驅(qū)動(dòng)模塊組成,用以驅(qū)動(dòng)24V900 轉(zhuǎn)390 減速電機(jī),RZ7899 是一款 DC 雙向馬達(dá)驅(qū)動(dòng)電路,它有兩個(gè)邏輯輸入端子用來控制24V900 轉(zhuǎn)390 減速電機(jī)前進(jìn)、后退及制動(dòng)。該電路具有良好的抗干擾性,微小的待機(jī)電流、低的輸出內(nèi)阻,同時(shí),他還具有內(nèi)置二極管能釋放感性負(fù)載的反向沖擊電流。其引腳功能如表1 所示。
表1 RZ7899功能表
BI、FI 引腳與主控器隨意IO 口相連,F(xiàn)O,BO 引腳與電機(jī)相連,給FI 輸入高電平BO 輸入低電平控制小車前進(jìn);給FI 輸入低電平BO 輸入高電平控制小車后退;輸出都為高時(shí)小車不動(dòng);輸出都為低時(shí)小車原地旋轉(zhuǎn)可用該功能控制小車左右轉(zhuǎn)。其原理圖設(shè)計(jì)如圖3 所示。
圖3 電機(jī)驅(qū)動(dòng)模塊
2.1.3 力臂舵機(jī)驅(qū)動(dòng)電路
二自由度可控舵機(jī)云臺(tái)使用重量為15kg 的MG996R 舵機(jī)來進(jìn)行云臺(tái)的轉(zhuǎn)向控制,該舵機(jī)具有大扭矩高精度的特點(diǎn),配合U 型橫梁可以輕松載動(dòng)10kg 物體,云臺(tái)采用兩個(gè)MG996R 舵機(jī)來分別控制云臺(tái)的水平轉(zhuǎn)向以及俯仰角度。舵機(jī)通過PWM 脈沖信號(hào)的控制才能控制舵機(jī)轉(zhuǎn)動(dòng),舵機(jī)脈沖寬度一般在500~2500μs,而PWM 脈沖信號(hào)需要由單片機(jī)來控制發(fā)出,故需要將舵機(jī)與主控器相連。舵機(jī)擁有三條線分別為地線、電源線、信號(hào)線;地線與主控器的GND 引腳相連達(dá)成共地,電源線與穩(wěn)壓電路輸出的3.3V 電源線相連,信號(hào)線與主控器的PA6 和PA7 相連。接口原理圖如圖4 所示。
圖4 二自由度舵機(jī)云臺(tái)電路
通過二自由度舵機(jī)云臺(tái)控制小車機(jī)械底盤上的平臺(tái)進(jìn)行水平旋轉(zhuǎn)。作為后續(xù)擴(kuò)展搭載其他模塊使用,舵機(jī)通過PWM 脈沖信號(hào)控制轉(zhuǎn)動(dòng)角度,通過主控器發(fā)出的不同時(shí)間的高電平脈沖,從而控制舵機(jī)的轉(zhuǎn)角大小。此舵機(jī)轉(zhuǎn)角較大,可調(diào)范圍達(dá)到0~270 度,使用100Hz 的PWM 波控制可以做到0.3sec/(2000 脈寬單位)。
這里使用兩路FTM 產(chǎn)生兩支同頻率的100HzPWM 波。通過調(diào)節(jié)占空比調(diào)節(jié)舵機(jī)轉(zhuǎn)角??刂七^程中關(guān)鍵的一點(diǎn)是,為了能夠讓云臺(tái)的角度可以平滑穩(wěn)定變化,需要PWM 波的占空比緩慢均勻的變化,這里是采用占空比每改變0.01%就延時(shí)10ms,使云臺(tái)可以保證均勻速度的前提下平穩(wěn)運(yùn)轉(zhuǎn)。
2.1.4 循跡電路
本次采用BV-LX101 顏色傳感器來識(shí)別地面的白線,以此來實(shí)現(xiàn)循跡功能,BV-LX101 自帶三種模式,顏色模式、色標(biāo)模式、對比模式光強(qiáng)可調(diào),帶有輸出時(shí)間調(diào)制功能0.01~9.99s 可調(diào)對比市面的其他產(chǎn)品擁有更高的反應(yīng)力,該模塊使用5V 直流供電,與主控器的一個(gè)IO 口相連接,輸出高控制顏色傳感器開啟,輸出低控制顏色傳感器關(guān)閉。可從R·G·B LED 三種顏色中選擇最佳的顏色搭配。傳感器的色標(biāo)模式裝備了“最佳LED 自動(dòng)選擇功能”,以自動(dòng)選擇將色標(biāo)和底色對比(S/N 比)最大的LED,進(jìn)行最佳檢測。因?yàn)椴皇歉鶕?jù)色標(biāo)和底色的反射光量差距而是根據(jù)兩者的對比來自動(dòng)辨別LED,所以能進(jìn)行更為穩(wěn)定的檢測。并將測得數(shù)據(jù)通過異步串行通信將識(shí)別到的顏色信息傳達(dá)給主控器處理,以完成循跡的功能。其原理圖如圖5 所示。
圖5 顏色傳感器模塊
2.1.5 避障電路
本次的避障功能由激光測距傳感器完成,基于測距精度的要求,本設(shè)計(jì)采用的測距模塊為MVR 系列的激光測距模塊,該模塊基于TOF(飛行時(shí)間)技術(shù),有獨(dú)特的結(jié)構(gòu),其大小僅為一個(gè)一元硬幣大小,極大地節(jié)省了PCB 的設(shè)計(jì)空間,測距快,室內(nèi)外工作效果佳。該模塊采用850nm 激光光源,使測量距離達(dá)到30cm~14m,厘米級(jí)精度,控制簡單,可以連續(xù)測量也可以單次測量。該測距模塊經(jīng)過嚴(yán)謹(jǐn)?shù)臏囟?、環(huán)境光及線性補(bǔ)償,在不同環(huán)境下均可得到精準(zhǔn)的距離信息。該測距模塊自帶窄帶濾光片能夠有效阻擋紅外線,消除干擾光,多用于無人機(jī)避障、煤料運(yùn)輸測量、移動(dòng)機(jī)器人避障,最遠(yuǎn)測量距離14 米。
MVR 系列激光測距模塊通過異步串口來與主控器進(jìn)行數(shù)據(jù)通信,該模塊一共有7 個(gè)引腳,其中PIN5為模組接收數(shù)據(jù)引腳、PIN6 為模組發(fā)送數(shù)據(jù)引腳,分別與主控器的PA2 和PA3 相連,用UART 串口與主控器進(jìn)行實(shí)時(shí)數(shù)據(jù)傳輸,使主控器做出避障判斷,原理圖如圖6 所示。
圖6 MVR 系列激光測距模塊
MVR 系列激光測距模塊帶有一個(gè)發(fā)射鏡頭和一個(gè)接收鏡頭,測距模塊采用紅外TOF 技術(shù),通過發(fā)射鏡頭發(fā)射紅外光信號(hào),經(jīng)過目標(biāo)板,反射到接收板上從而完成測距。
測距模塊會(huì)計(jì)算通過調(diào)制的紅外光信號(hào),在接收鏡頭接收到反射的光信號(hào)后返回到測距模塊接收傳感器的時(shí)間來計(jì)算出相對距離。
如圖7 所示,假設(shè)FOV 投射的距離d1=5m 時(shí)的面積為144cm2,此塊區(qū)域會(huì)被線性地測算出距離。如果多個(gè)物體被放置在測距模塊的FOV 范圍之內(nèi),會(huì)影響到測算的距離。
圖7 MVR 系列激光測距模塊測距原理
2.2.1 主程序流程圖
通過初始化各模塊來實(shí)現(xiàn)智能小車的軟件設(shè)計(jì)。將各傳感器采集信息通過數(shù)字信號(hào)的形式傳輸?shù)捷斎胍_,通過主控器單片機(jī)對這些信號(hào)進(jìn)行處理而后控制智能車正常運(yùn)行,本次使用 Keil μVision4 軟件來進(jìn)行小車軟件的編程設(shè)計(jì),使用最接近底層的C 語言來進(jìn)行編碼,其主程序流程圖如圖8 所示。
圖8 主程序流程圖
本次設(shè)計(jì)中,規(guī)定白線為小車的行進(jìn)路線,綠色區(qū)域?yàn)樾≤嚨竭_(dá)的終點(diǎn),其他顏色區(qū)域?yàn)樾≤嚥辉撔羞M(jìn)區(qū)域。在系統(tǒng)上電后優(yōu)先執(zhí)行系統(tǒng)初始化,初始化中對系統(tǒng)的所有IO口中斷配置以及串口配置進(jìn)行初始化設(shè)定,因?yàn)轭伾珎鞲衅魇钦龑χ≤嚨南路?,故無需計(jì)算顏色傳感器檢測區(qū)域與小車的距離,當(dāng)顏色傳感器識(shí)別到白線且激光測距的距離大于3cm 時(shí),才會(huì)啟動(dòng)語音播報(bào)模塊,播報(bào)聲以滴滴兩聲作為前行提示目的是提示目前的狀態(tài)。
2.2.2 顏色傳感器實(shí)現(xiàn)循跡流程圖
本次設(shè)計(jì)中使用到兩個(gè)串口,故對顏色傳感器和激光測距傳感器都設(shè)定了從機(jī)地址;顏色傳感器的從機(jī)地址為0X55,BV-LX101 顏色傳感器有一個(gè)使能口用于控制其開啟和關(guān)閉,主機(jī)輸出高電平開啟,輸出低電平關(guān)閉。在開始通信前主機(jī)的PB10 口輸高電平確保顏色傳感器處于開啟狀態(tài),而后開始進(jìn)行串口通信;當(dāng)檢測到白色、綠色、其他顏色時(shí)分別返回三種不同的數(shù)據(jù)給主機(jī)處理以此完成循跡功能,具體流程如圖9 所示。
圖9 顏色傳感器實(shí)現(xiàn)循跡流程圖
■2.2.3 激光測距傳感器實(shí)現(xiàn)避障流程圖
本次設(shè)計(jì)中激光測距傳感器的從機(jī)地址為0X56,該傳感器無需控制開啟,主要電池保持有電,激光測距傳感器便一直處于開啟狀態(tài)。在與主機(jī)成功通信后激光測距傳感器便會(huì)返回所測得的數(shù)據(jù),返回的數(shù)據(jù)為16 進(jìn)制,以毫米為單位,經(jīng)過主機(jī)程序處理后完成避障的功能,具體操作流程如圖10 所示。
圖10 激光測距傳感器實(shí)現(xiàn)避障流程圖
本文采用激光測距模塊實(shí)現(xiàn)了智能小車的自主避障功能,且依據(jù)綠、白線對光的反射系數(shù)不同來控制智能小車的運(yùn)動(dòng)路徑,實(shí)現(xiàn)了智能小車的循跡功能。通過對智能小車的避障、循跡系統(tǒng)的設(shè)計(jì)與研發(fā),大大提高了小車的實(shí)用價(jià)值。