趙煥娣,譚宇飛,秦運柏,李顏帆
(廣西師范大學(xué),廣西桂林,541004)
隨著科技的飛速發(fā)展與進步,多學(xué)科融合已成為未來科學(xué)發(fā)展的必然趨勢。智能機器人的應(yīng)用在世界上越來越廣泛,逐步在各個領(lǐng)域都有所涉及;在軍事偵察、地質(zhì)勘測、掃雷排雷等人類作業(yè)難度較大的領(lǐng)域以及對惡劣環(huán)境的監(jiān)測工作中都有廣泛的應(yīng)用前景[1]。智能小車作為智能機器人的一個分支集中運用了現(xiàn)代傳感器技術(shù)、信息融合技術(shù)、自動控制等;本次設(shè)計的基于STM32 循跡避障小車屬于智能機器人中移動機器人的分支,該小車實現(xiàn)了對周圍障礙物的感知并進行躲避,根據(jù)激光測距傳感器、紅外傳感器、顏色傳感器相互配合統(tǒng)籌實現(xiàn)循跡避障功能。
本次系統(tǒng)主要對移動機器人范疇的循跡避障小車進行設(shè)計,經(jīng)過研究討論放棄使用8 位單片機作為主控器,改成32 位的STM32F40ZET6 作為本次小車設(shè)計的主控器,其主要原因在于32 位單片機具有更高頻率的處理速度,能做到實時的數(shù)據(jù)交互,且在IO 口上具有數(shù)量優(yōu)勢,有足夠的通信口用于調(diào)用各類傳感器,最高主頻為128MHz 可進行高速的數(shù)據(jù)傳輸處理而八位單片機最高主頻為20MHz 不滿足要求,故選擇32 為單片機作為系統(tǒng)的主控器。
本系統(tǒng)的設(shè)計思路是用通過顏色傳感器來識別賽道中的顏色將路線顏色區(qū)分出來并進行路線規(guī)劃,而顏色傳感器中帶有灰度識別能很好地區(qū)分開白色與其他顏色從而增強對于白色線路的識別,再配合激光測距模塊進行避障處理。
系統(tǒng)主要由電機驅(qū)動模塊、主控模塊、語言播報模塊、二自由度舵機平臺、激光測距模塊、顏色傳感器模塊組成。如圖1 所示。

圖1 系統(tǒng)總構(gòu)成
2.1.1 MUC 主控電路
STM32F407ZET6 單片機是一種集成電路芯片。該芯片具有高達192+4 千字節(jié)的SRAM,包括64 千字節(jié)的CCM(核心耦合內(nèi)存)數(shù)據(jù)RAM,最高主頻高達168MHz,最多1 兆字節(jié)的閃存可以瞬間燒錄代碼,靈活的靜態(tài)內(nèi)存控制器,支持緊湊型閃存、SRAM、PSRAM、NOR 和NAND 存儲器,3 個12 位,2.4 MSPS 高精度A/D 轉(zhuǎn)換器:最多24 個通道可至多接收24 個傳感器信號,如圖2 所示。

圖2 MCU 主控電路
2.1.2 車輪電機驅(qū)動電路
本次采用RZ7899 作為小車的電機驅(qū)動電路,由上圖1中的電機驅(qū)動模塊組成,用以驅(qū)動24V900 轉(zhuǎn)390 減速電機,RZ7899 是一款 DC 雙向馬達驅(qū)動電路,它有兩個邏輯輸入端子用來控制24V900 轉(zhuǎn)390 減速電機前進、后退及制動。該電路具有良好的抗干擾性,微小的待機電流、低的輸出內(nèi)阻,同時,他還具有內(nèi)置二極管能釋放感性負載的反向沖擊電流。其引腳功能如表1 所示。

表1 RZ7899功能表
BI、FI 引腳與主控器隨意IO 口相連,F(xiàn)O,BO 引腳與電機相連,給FI 輸入高電平BO 輸入低電平控制小車前進;給FI 輸入低電平BO 輸入高電平控制小車后退;輸出都為高時小車不動;輸出都為低時小車原地旋轉(zhuǎn)可用該功能控制小車左右轉(zhuǎn)。其原理圖設(shè)計如圖3 所示。

圖3 電機驅(qū)動模塊
2.1.3 力臂舵機驅(qū)動電路
二自由度可控舵機云臺使用重量為15kg 的MG996R 舵機來進行云臺的轉(zhuǎn)向控制,該舵機具有大扭矩高精度的特點,配合U 型橫梁可以輕松載動10kg 物體,云臺采用兩個MG996R 舵機來分別控制云臺的水平轉(zhuǎn)向以及俯仰角度。舵機通過PWM 脈沖信號的控制才能控制舵機轉(zhuǎn)動,舵機脈沖寬度一般在500~2500μs,而PWM 脈沖信號需要由單片機來控制發(fā)出,故需要將舵機與主控器相連。舵機擁有三條線分別為地線、電源線、信號線;地線與主控器的GND 引腳相連達成共地,電源線與穩(wěn)壓電路輸出的3.3V 電源線相連,信號線與主控器的PA6 和PA7 相連。接口原理圖如圖4 所示。

圖4 二自由度舵機云臺電路
通過二自由度舵機云臺控制小車機械底盤上的平臺進行水平旋轉(zhuǎn)。作為后續(xù)擴展搭載其他模塊使用,舵機通過PWM 脈沖信號控制轉(zhuǎn)動角度,通過主控器發(fā)出的不同時間的高電平脈沖,從而控制舵機的轉(zhuǎn)角大小。此舵機轉(zhuǎn)角較大,可調(diào)范圍達到0~270 度,使用100Hz 的PWM 波控制可以做到0.3sec/(2000 脈寬單位)。
這里使用兩路FTM 產(chǎn)生兩支同頻率的100HzPWM 波。通過調(diào)節(jié)占空比調(diào)節(jié)舵機轉(zhuǎn)角。控制過程中關(guān)鍵的一點是,為了能夠讓云臺的角度可以平滑穩(wěn)定變化,需要PWM 波的占空比緩慢均勻的變化,這里是采用占空比每改變0.01%就延時10ms,使云臺可以保證均勻速度的前提下平穩(wěn)運轉(zhuǎn)。
2.1.4 循跡電路
本次采用BV-LX101 顏色傳感器來識別地面的白線,以此來實現(xiàn)循跡功能,BV-LX101 自帶三種模式,顏色模式、色標(biāo)模式、對比模式光強可調(diào),帶有輸出時間調(diào)制功能0.01~9.99s 可調(diào)對比市面的其他產(chǎn)品擁有更高的反應(yīng)力,該模塊使用5V 直流供電,與主控器的一個IO 口相連接,輸出高控制顏色傳感器開啟,輸出低控制顏色傳感器關(guān)閉。可從R·G·B LED 三種顏色中選擇最佳的顏色搭配。傳感器的色標(biāo)模式裝備了“最佳LED 自動選擇功能”,以自動選擇將色標(biāo)和底色對比(S/N 比)最大的LED,進行最佳檢測。因為不是根據(jù)色標(biāo)和底色的反射光量差距而是根據(jù)兩者的對比來自動辨別LED,所以能進行更為穩(wěn)定的檢測。并將測得數(shù)據(jù)通過異步串行通信將識別到的顏色信息傳達給主控器處理,以完成循跡的功能。其原理圖如圖5 所示。

圖5 顏色傳感器模塊
2.1.5 避障電路
本次的避障功能由激光測距傳感器完成,基于測距精度的要求,本設(shè)計采用的測距模塊為MVR 系列的激光測距模塊,該模塊基于TOF(飛行時間)技術(shù),有獨特的結(jié)構(gòu),其大小僅為一個一元硬幣大小,極大地節(jié)省了PCB 的設(shè)計空間,測距快,室內(nèi)外工作效果佳。該模塊采用850nm 激光光源,使測量距離達到30cm~14m,厘米級精度,控制簡單,可以連續(xù)測量也可以單次測量。該測距模塊經(jīng)過嚴謹?shù)臏囟取h(huán)境光及線性補償,在不同環(huán)境下均可得到精準(zhǔn)的距離信息。該測距模塊自帶窄帶濾光片能夠有效阻擋紅外線,消除干擾光,多用于無人機避障、煤料運輸測量、移動機器人避障,最遠測量距離14 米。
MVR 系列激光測距模塊通過異步串口來與主控器進行數(shù)據(jù)通信,該模塊一共有7 個引腳,其中PIN5為模組接收數(shù)據(jù)引腳、PIN6 為模組發(fā)送數(shù)據(jù)引腳,分別與主控器的PA2 和PA3 相連,用UART 串口與主控器進行實時數(shù)據(jù)傳輸,使主控器做出避障判斷,原理圖如圖6 所示。

圖6 MVR 系列激光測距模塊
MVR 系列激光測距模塊帶有一個發(fā)射鏡頭和一個接收鏡頭,測距模塊采用紅外TOF 技術(shù),通過發(fā)射鏡頭發(fā)射紅外光信號,經(jīng)過目標(biāo)板,反射到接收板上從而完成測距。
測距模塊會計算通過調(diào)制的紅外光信號,在接收鏡頭接收到反射的光信號后返回到測距模塊接收傳感器的時間來計算出相對距離。
如圖7 所示,假設(shè)FOV 投射的距離d1=5m 時的面積為144cm2,此塊區(qū)域會被線性地測算出距離。如果多個物體被放置在測距模塊的FOV 范圍之內(nèi),會影響到測算的距離。

圖7 MVR 系列激光測距模塊測距原理
2.2.1 主程序流程圖
通過初始化各模塊來實現(xiàn)智能小車的軟件設(shè)計。將各傳感器采集信息通過數(shù)字信號的形式傳輸?shù)捷斎胍_,通過主控器單片機對這些信號進行處理而后控制智能車正常運行,本次使用 Keil μVision4 軟件來進行小車軟件的編程設(shè)計,使用最接近底層的C 語言來進行編碼,其主程序流程圖如圖8 所示。

圖8 主程序流程圖
本次設(shè)計中,規(guī)定白線為小車的行進路線,綠色區(qū)域為小車到達的終點,其他顏色區(qū)域為小車不該行進區(qū)域。在系統(tǒng)上電后優(yōu)先執(zhí)行系統(tǒng)初始化,初始化中對系統(tǒng)的所有IO口中斷配置以及串口配置進行初始化設(shè)定,因為顏色傳感器是正對著小車的下方,故無需計算顏色傳感器檢測區(qū)域與小車的距離,當(dāng)顏色傳感器識別到白線且激光測距的距離大于3cm 時,才會啟動語音播報模塊,播報聲以滴滴兩聲作為前行提示目的是提示目前的狀態(tài)。
2.2.2 顏色傳感器實現(xiàn)循跡流程圖
本次設(shè)計中使用到兩個串口,故對顏色傳感器和激光測距傳感器都設(shè)定了從機地址;顏色傳感器的從機地址為0X55,BV-LX101 顏色傳感器有一個使能口用于控制其開啟和關(guān)閉,主機輸出高電平開啟,輸出低電平關(guān)閉。在開始通信前主機的PB10 口輸高電平確保顏色傳感器處于開啟狀態(tài),而后開始進行串口通信;當(dāng)檢測到白色、綠色、其他顏色時分別返回三種不同的數(shù)據(jù)給主機處理以此完成循跡功能,具體流程如圖9 所示。

圖9 顏色傳感器實現(xiàn)循跡流程圖
■2.2.3 激光測距傳感器實現(xiàn)避障流程圖
本次設(shè)計中激光測距傳感器的從機地址為0X56,該傳感器無需控制開啟,主要電池保持有電,激光測距傳感器便一直處于開啟狀態(tài)。在與主機成功通信后激光測距傳感器便會返回所測得的數(shù)據(jù),返回的數(shù)據(jù)為16 進制,以毫米為單位,經(jīng)過主機程序處理后完成避障的功能,具體操作流程如圖10 所示。

圖10 激光測距傳感器實現(xiàn)避障流程圖
本文采用激光測距模塊實現(xiàn)了智能小車的自主避障功能,且依據(jù)綠、白線對光的反射系數(shù)不同來控制智能小車的運動路徑,實現(xiàn)了智能小車的循跡功能。通過對智能小車的避障、循跡系統(tǒng)的設(shè)計與研發(fā),大大提高了小車的實用價值。