李萌 于洋

摘 要:應用STM32F407微控制器平臺設計一款智能小車,結合紅外線檢測技術與超聲波檢測技術,使小車能夠繞高臺陣地四周行走,且到邊緣自動轉向,自動檢測入侵障礙物,當檢測到障礙物時,進行報警并攻擊移動進攻障礙物,因具備巡邏和防御功能可承擔“守門員”的任務。
關鍵詞:微控制器;紅外檢測技術;超聲波檢測技術
Abstract:Using STM32F407 microcontroller platform to design a smart car,combined with infrared detection technology and ultrasonic detection technology,enables the car to walk around the high-position,and automatically change direction when reaching the edge,automatically detect the intrusion obstacles,Alarm and attack the mobile offensive obstacles when an obstacle is detected,can take on the task of "goalkeeper" because of the patrol and defense function.
Key words:Microcontroller;infrared detection technology;ultrasonic detection technology
現階段的智能小車“巡防”,在有白線或黑線路徑時,多采用循跡方式,利用傳感器對黑白線進行識別,從而沿預定軌跡進行“巡視”。設計方式也多以輪式四輪小車為主,也可用紅外線進行障礙物檢測。
本文針對形狀規則的高地,設計了一款智能小車,小車車體為方形,車輪采用全向輪,在硬件結構的基礎上選用STM32F407為主要控制核心部件,配合電機控制板、紅外傳感器、超聲波傳感器等元件,可實現運行速度、紅外傳感器的安裝位置及檢測精度、超聲波傳感器測量報警距離等可調的控制要求,使其適用在多種高地場合,實現其自動巡查、報警、防御等功能。
1 硬件結構設計
將整車分為行走系統、機械系統和控制系統幾大部分進行設計。整車形狀為方形,在車架體四個方向各裝一個全向輪,能夠在兩個垂直的方向切換行走。通過電機實現轉向和行走,車體四個方向每一側各安裝一個超聲波傳感器,檢測到障礙物后,停止巡查,采用防御支架進行旋轉或撞擊,未檢測到障礙物時可保持循環行走。
行走系統由全向輪和連軸器及電機組成,構成了一個完整的行走單元。輪胎使用4寸全向輪,它的主要特點為可進行前后移動和左右移動,使整車可全方向移動和旋轉,采用與全向輪匹配的6mm 聯軸器,主要用于連接輪胎及電機。
本文在設計的過程將機械結構分為了車架體和防御支架。車架體采用方形結構,設計理念為可以隨意旋轉移動,增加側面攻擊力,快速切換行走方向,雙面都可行走,上下蓋板用支架連接,減輕重量,利于散熱,行走及防御各需兩個電機作為執行機構。為保護輪胎、進行防御撞擊,車體上配置防御支架。防御支架安裝在四個輪胎外圍,上下蓋板的連接支架上。
2 控制系統設計
控制系統主要包括了STM32F407微控制器、電源、電機驅動板、檢測系統等,整機電源為12V可充電鋰電池,使用多路輸出DC-DC電壓轉換模塊,可將12V轉3.3V及5V,能夠同時為控制單元供電,電氣系統的整體設計如圖所示:
紅外線檢測分為4個探頭和一個中控板,探頭包括紅外線發射管和接收管。紅外線檢測模塊安全工作電壓范圍在3V至6V之間,4 路全開工作電流30mA至55mA之間。車體四個方向的防御支架下方安裝4個紅外傳感器檢測端,檢測端與紅外傳感器模塊連接,調整所在通道的電位器可以改變探測的距離。當在高地上正常行走時,紅外傳感器檢測模塊能夠采集到正常信號,當紅外傳感器檢測到已超出高地邊緣,紅外傳感器將給STM32F407相應引腳低電平信號,用以控制電機的方向,同時紅外傳感器模塊自帶指示燈,檢測到高地邊緣時,指示燈即點亮。
超聲波測距部分使用HC-SRF05 超聲波測距模塊,HC-SRF05集成了超聲波發射器、接收器和控制電路,具備2cm-450cm范圍內的的非接觸式距離感測功能,距離測量精度可達到3mm。
電機驅動模塊具備雙路電機接口,每路額定輸出電流7A,有欠壓保護和電源瞬態干擾抑制功能,每路支持三線控制使能、正反轉及制動,使能信號可外接PWM進行調速。
3 軟件設計
在主函數中完成時鐘、GPIO及TIM2、TIM3、TIM4、TIM5通用定時器的初始化,當四個紅外檢測信號未觸發,且前、后、左、右四個超聲波傳感器在檢測范圍內未發現攻擊物體,小車在電機的作用下向前運動。當前方紅外檢測信號觸發,其它三個方向紅外檢測信號正常,且前、后、左、右四個超聲波傳感器在檢測范圍內未發現攻擊物體,小車在電機的作用下向后運動2S后改為向左運動,當左邊紅外檢測信號觸發,其它三個方向紅外檢測信號正常,且前、后、左、右四個超聲波傳感器在檢測范圍內未發現攻擊物體,小車在電機的作用下向右運動2S后改為向后運動,當后方紅外檢測信號觸發,其它三個方向紅外檢測信號正常,且前、后、左、右四個超聲波傳感器在檢測范圍內未發現攻擊物體,小車在電機的作用下向前運動2S后改為向右運動,如此循環完成四個方向的行走。一但出現對向紅外線檢測信號同時觸發,或三個以上紅外檢測信號同時觸發,系統報警。當任意一方向超聲波傳感器距離值小于150cm(距離可根據場地情況進行調節),小車即向此方向行駛,遇到邊緣后向后方退2S后,進行原地旋轉尋找攻擊物體,并報警。
3.1 電機控制
首先定義電機控制端口,電機1控制信號對應PC1、PC2,電機2控制信號對應PA3、PA4,電機3控制信號對應PB1、PB2,電機4控制信號對應PB13、PB14,八個引腳連接至電機控制模塊。
進行IO口的初始化:
3.1.1 使能時鐘
需要使用STM32F407的GPIOA、GPIOB、GPIOC、GPIOD、GPIOE的I/O端口,在使用前需要使能時鐘,才可使端口正常工作,可調用RCC_AHB1PeriphClockCmd函數進行時鐘使能。
3.1.2 I/O口的初始化
配置上述I/O口模式為上拉推挽輸出、引腳速率為100MHz。
3.1.3 電機控制函數
定義5個電機控制子函數,分別控制電機的前進、后退、左行、右行、旋轉、停止。
void front_move(void);//小車前進
void left_move(void);//小車左行
void right_move(void);//小車右行
void back_move(void);//小車后退
void rotate_move(void);//小車旋轉
void stop_move(void);//小車停止
其中,可通過對PC1、PC2、PA3、PA4、PB1、PB2、PB13、PB14的端口0/1狀態的改變來實現電機運動狀態的改變,如前進時,PC1、PB1為高電平,PC2、PB2為低電平,且另外四個引腳應為低電平。同時設置三個端口連接電機驅動模塊使能端,通過使能端的PWM信號進行電機調速。
3.2 紅外線檢測
紅外線檢測信號為數字量信號,定義4個紅外線檢測信號對應的STM32F407的引腳PE5、PE6、PE7、PE8,當相應引腳檢測到低電平信號時,即為處于邊緣狀態,需要向反方向行使,是控制電機運動的條件之一。
#define Edge1 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_5)
#define Edge2 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_6)
#define Edge3 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_7)
#define Edge4 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_8)
紅外線檢測子函數:
u8 IN_Scan()
{
if(Edge2==1&& Edge3==1)
{
if(Edge1==0&& Edge4==1)return2;
else if(Edge1==1&& Edge4==0)return1;
else return4;
}
else if(Edge2==0&& Edge3==1)return2;
else if(Edge2==1&& Edge3==0)return1;
else return3;
}
3.3 超聲波檢測
超聲波傳感器采用IO口TRIG觸發測距,分別定義PA1、PA2、PA5、PD0為超聲波觸發信號控制端口,給相應端口15us的高電平信號,例如其中一個端口控制信號程序如下:
GPIO_SetBits(GPIOA,GPIO_Pin_5);//引腳置為高電平
delay_us(15);//延時15us
GPIO_ResetBits(GPIOA,GPIO_Pin_5);//引腳置為低電平
STM32F407的上述相應引腳給出15μs的高電平后,超聲波測距模塊的發射器會向前方發送8個40khz的方波,同時測距模塊檢測返回信號,若有信號返回,STM32F407的PD3、PD4、PD5、PD9端口會接收到高電平;分別使用TIM2、TIM3、TIM4、TIM5中斷來計算每個超聲波傳感器的高電平信號所持續的時間,即超聲波從發射到返回的時間,(高電平時間*聲速)/2即為超聲波傳感器到物體之間的距離。
4 結論
本文設計了一款可用于規則高臺巡查的智能小車,小車外形為正方形,采用全向輪,四邊各一個輪胎,直角轉向方便。小車具有高臺邊緣檢測功能,車底安裝紅外線檢測裝置,檢測到小車行走至邊緣后切換行駛方向。小車車體四邊安裝四個超聲波檢測傳感器,檢測四個方向的進攻障礙物,可通過開關設置和調節2cm-450cm范圍內的檢測距離。檢測到障礙物后,小車發出報警聲音,并可手動調整電機速度,小車減速緩慢行駛并對移動障礙物攻擊,小車結構輕便,功能全面,在規則性高臺環境下能夠起到較好的巡邏、報警、和攻擊作用。
參考文獻:
[1]呂閃,金巳婷,沈巍.基于STM32的循跡避障智能小車的設計[J].計算機與數字工程,2017(03):549-552.
[2]蘇元楷,季磊,聶嘉欣,蔚國將,關玉琴.基于STM32F407的路徑識別智能小車設計[J].信息通信,2017(08):31-33.
[3]李帥男.基于STM32的循跡避障智能小車的設計[J].數字技術與應用,2018(8):163-164.
[4]李亞巨,李戰勝,熊碧濤,樊東.基于stm32f103zet6的智能小車的制作[J].電子制作,2013(11):52-53.