基于STM32單片機(jī)的智能小車控制系統(tǒng)
發(fā)布時(shí)間:2020-12-25 01:29
<正>本設(shè)計(jì)基于STM32F系列單片微型控制器,設(shè)計(jì)的核心模塊選用STM32F103rct6型號(hào)單片微型控制器,其具備強(qiáng)大的數(shù)據(jù)運(yùn)算和控制能力。主要使用TCRT5000紅外反射模塊、HC-SR04超聲波測(cè)距模塊、L298N電機(jī)驅(qū)動(dòng)模塊等,實(shí)現(xiàn)智能小車的黑白線循跡功能與超聲波測(cè)距并避障報(bào)警的功能。該設(shè)計(jì)使智能小車具有一定程度的環(huán)境感知能力、障礙物探測(cè)能力和自動(dòng)黑白線循跡行駛能力。
【文章來(lái)源】:電子世界. 2020年19期
【文章頁(yè)數(shù)】:2 頁(yè)
【部分圖文】:
小車成品圖
硬件系統(tǒng)的設(shè)計(jì)方案包含五大模塊:STM32單片微控制器、檢測(cè)黑白線循跡模塊、障礙物探測(cè)測(cè)距模塊、蜂鳴報(bào)警模塊、行駛驅(qū)動(dòng)控制模塊。本次設(shè)計(jì)包含兩大功能板塊:自動(dòng)循跡模塊與探測(cè)障礙物并報(bào)警模塊。自動(dòng)循跡功能的設(shè)計(jì)以紅外反射傳感器為主要器件,配合電機(jī)驅(qū)動(dòng)模塊驅(qū)動(dòng)電機(jī)運(yùn)轉(zhuǎn),以達(dá)到智能小車循跡行駛的目的;避障報(bào)警功能依托超聲波測(cè)距模塊和蜂鳴器設(shè)計(jì)完成,在小車運(yùn)行過(guò)程中,超聲波測(cè)距模塊以一定的時(shí)間間隔不斷發(fā)出超聲波,并接受超聲波的回波,當(dāng)測(cè)距模塊通過(guò)計(jì)算檢測(cè)到智能小車離障礙物的距離小于預(yù)先設(shè)計(jì)好的距離,就會(huì)使小車自動(dòng)停止并通過(guò)蜂鳴器蜂鳴報(bào)警。當(dāng)小車在行駛時(shí),位于其前端兩側(cè)的倆個(gè)紅外反射模塊會(huì)不停檢測(cè)黑白線軌跡,當(dāng)小車靠近黑線時(shí),紅外反射模塊會(huì)向單片機(jī)返回電信號(hào),此電信號(hào)表示小車即將越過(guò)黑線脫離行駛軌道,這時(shí),單片機(jī)向電機(jī)驅(qū)動(dòng)模塊發(fā)送控制命令,減緩即將越過(guò)黑線一側(cè)電機(jī)的轉(zhuǎn)速,利用差速轉(zhuǎn)動(dòng)原理使小車回歸到軌道內(nèi)行駛。在小車的車體前端安裝有一個(gè)超聲波測(cè)距模塊,當(dāng)小車在運(yùn)行過(guò)程中,超聲波模塊以一個(gè)極為短暫的時(shí)間間隔不斷地向前發(fā)射超聲波。利用聲波的反射,當(dāng)聲波在傳播過(guò)程中碰上障礙物,會(huì)產(chǎn)生一個(gè)回波,超聲波模塊會(huì)接收到這個(gè)回波,并將會(huì)返回一個(gè)電信號(hào)給單片微控制器。此時(shí)電信號(hào)代表小車前方出現(xiàn)障礙物,單片機(jī)會(huì)向電機(jī)驅(qū)動(dòng)模塊發(fā)送控制指令使電機(jī)停止轉(zhuǎn)動(dòng),這時(shí)小車處于停止?fàn)顟B(tài),接著單片機(jī)向蜂鳴器發(fā)送電信號(hào)使其蜂鳴報(bào)警,提示智能小車遭遇障礙物。待障礙物被清理之后,小車?yán)^續(xù)循跡前進(jìn)。小車的整個(gè)控制過(guò)程不斷循環(huán)重復(fù),即可達(dá)到循跡行駛功能和避障報(bào)警功能(見(jiàn)圖1)。1.2 軟件系統(tǒng)
程序設(shè)計(jì)包括三個(gè)功能模塊:驅(qū)動(dòng)控制模塊、障礙物測(cè)距模塊、報(bào)警模塊。將三個(gè)程序功能模塊寫做三個(gè)單獨(dú)的.C文件,每個(gè)文件不相互依賴,這樣有助于提高程序的易讀性和抽象性。驅(qū)動(dòng)控制模塊的函數(shù)全部寫在control.c文件中。程序中先對(duì)與L298N連接的引腳PA1、PA2、PA3、PA5、PA7初始化。寫好電機(jī)控制函數(shù)接口。在control.h文件中使用宏將其實(shí)現(xiàn)細(xì)節(jié)屏蔽,使得電機(jī)控制函數(shù)接口更加抽象。障礙物測(cè)距模塊的函數(shù)全部寫在time.c文件中。程序中需要對(duì)定時(shí)器TIM2的通道1配置為輸入捕獲模式,并設(shè)置相應(yīng)的端口PA0,接著設(shè)置分頻、捕獲模式、中斷功能等。待定時(shí)器TIM2設(shè)置完成后,需要設(shè)置外部中斷函數(shù)。當(dāng)小車在運(yùn)行過(guò)程中遭遇障礙物時(shí),通過(guò)單片機(jī)的中斷功能發(fā)送信號(hào),程序的設(shè)計(jì)更合理,對(duì)單片機(jī)資源的消耗也最小。中斷函數(shù)中需要計(jì)算超聲波的運(yùn)行時(shí)間。報(bào)警模塊的函數(shù)寫在led.c文件中。該文件中包含兩個(gè)函數(shù):使蜂鳴器蜂鳴的函數(shù)buzzer,和使led紅燈閃爍的函數(shù)。待包含各個(gè)部分功能函數(shù)的文件完成后,只需要在主函數(shù)main.c中調(diào)用即可。各個(gè)軟件功能模塊設(shè)計(jì)完成后,將其分別封裝成不同的函數(shù),保存在不同的文件中。在主要函數(shù)文件中將其引入,通過(guò)在main.c中將各個(gè)功能模塊調(diào)用,根據(jù)不同的情況調(diào)用不同的函數(shù),即可完成預(yù)先設(shè)計(jì)的全部功能,流程如圖2所示。1.3 實(shí)物制作及調(diào)試
本文編號(hào):2936686
【文章來(lái)源】:電子世界. 2020年19期
【文章頁(yè)數(shù)】:2 頁(yè)
【部分圖文】:
小車成品圖
硬件系統(tǒng)的設(shè)計(jì)方案包含五大模塊:STM32單片微控制器、檢測(cè)黑白線循跡模塊、障礙物探測(cè)測(cè)距模塊、蜂鳴報(bào)警模塊、行駛驅(qū)動(dòng)控制模塊。本次設(shè)計(jì)包含兩大功能板塊:自動(dòng)循跡模塊與探測(cè)障礙物并報(bào)警模塊。自動(dòng)循跡功能的設(shè)計(jì)以紅外反射傳感器為主要器件,配合電機(jī)驅(qū)動(dòng)模塊驅(qū)動(dòng)電機(jī)運(yùn)轉(zhuǎn),以達(dá)到智能小車循跡行駛的目的;避障報(bào)警功能依托超聲波測(cè)距模塊和蜂鳴器設(shè)計(jì)完成,在小車運(yùn)行過(guò)程中,超聲波測(cè)距模塊以一定的時(shí)間間隔不斷發(fā)出超聲波,并接受超聲波的回波,當(dāng)測(cè)距模塊通過(guò)計(jì)算檢測(cè)到智能小車離障礙物的距離小于預(yù)先設(shè)計(jì)好的距離,就會(huì)使小車自動(dòng)停止并通過(guò)蜂鳴器蜂鳴報(bào)警。當(dāng)小車在行駛時(shí),位于其前端兩側(cè)的倆個(gè)紅外反射模塊會(huì)不停檢測(cè)黑白線軌跡,當(dāng)小車靠近黑線時(shí),紅外反射模塊會(huì)向單片機(jī)返回電信號(hào),此電信號(hào)表示小車即將越過(guò)黑線脫離行駛軌道,這時(shí),單片機(jī)向電機(jī)驅(qū)動(dòng)模塊發(fā)送控制命令,減緩即將越過(guò)黑線一側(cè)電機(jī)的轉(zhuǎn)速,利用差速轉(zhuǎn)動(dòng)原理使小車回歸到軌道內(nèi)行駛。在小車的車體前端安裝有一個(gè)超聲波測(cè)距模塊,當(dāng)小車在運(yùn)行過(guò)程中,超聲波模塊以一個(gè)極為短暫的時(shí)間間隔不斷地向前發(fā)射超聲波。利用聲波的反射,當(dāng)聲波在傳播過(guò)程中碰上障礙物,會(huì)產(chǎn)生一個(gè)回波,超聲波模塊會(huì)接收到這個(gè)回波,并將會(huì)返回一個(gè)電信號(hào)給單片微控制器。此時(shí)電信號(hào)代表小車前方出現(xiàn)障礙物,單片機(jī)會(huì)向電機(jī)驅(qū)動(dòng)模塊發(fā)送控制指令使電機(jī)停止轉(zhuǎn)動(dòng),這時(shí)小車處于停止?fàn)顟B(tài),接著單片機(jī)向蜂鳴器發(fā)送電信號(hào)使其蜂鳴報(bào)警,提示智能小車遭遇障礙物。待障礙物被清理之后,小車?yán)^續(xù)循跡前進(jìn)。小車的整個(gè)控制過(guò)程不斷循環(huán)重復(fù),即可達(dá)到循跡行駛功能和避障報(bào)警功能(見(jiàn)圖1)。1.2 軟件系統(tǒng)
程序設(shè)計(jì)包括三個(gè)功能模塊:驅(qū)動(dòng)控制模塊、障礙物測(cè)距模塊、報(bào)警模塊。將三個(gè)程序功能模塊寫做三個(gè)單獨(dú)的.C文件,每個(gè)文件不相互依賴,這樣有助于提高程序的易讀性和抽象性。驅(qū)動(dòng)控制模塊的函數(shù)全部寫在control.c文件中。程序中先對(duì)與L298N連接的引腳PA1、PA2、PA3、PA5、PA7初始化。寫好電機(jī)控制函數(shù)接口。在control.h文件中使用宏將其實(shí)現(xiàn)細(xì)節(jié)屏蔽,使得電機(jī)控制函數(shù)接口更加抽象。障礙物測(cè)距模塊的函數(shù)全部寫在time.c文件中。程序中需要對(duì)定時(shí)器TIM2的通道1配置為輸入捕獲模式,并設(shè)置相應(yīng)的端口PA0,接著設(shè)置分頻、捕獲模式、中斷功能等。待定時(shí)器TIM2設(shè)置完成后,需要設(shè)置外部中斷函數(shù)。當(dāng)小車在運(yùn)行過(guò)程中遭遇障礙物時(shí),通過(guò)單片機(jī)的中斷功能發(fā)送信號(hào),程序的設(shè)計(jì)更合理,對(duì)單片機(jī)資源的消耗也最小。中斷函數(shù)中需要計(jì)算超聲波的運(yùn)行時(shí)間。報(bào)警模塊的函數(shù)寫在led.c文件中。該文件中包含兩個(gè)函數(shù):使蜂鳴器蜂鳴的函數(shù)buzzer,和使led紅燈閃爍的函數(shù)。待包含各個(gè)部分功能函數(shù)的文件完成后,只需要在主函數(shù)main.c中調(diào)用即可。各個(gè)軟件功能模塊設(shè)計(jì)完成后,將其分別封裝成不同的函數(shù),保存在不同的文件中。在主要函數(shù)文件中將其引入,通過(guò)在main.c中將各個(gè)功能模塊調(diào)用,根據(jù)不同的情況調(diào)用不同的函數(shù),即可完成預(yù)先設(shè)計(jì)的全部功能,流程如圖2所示。1.3 實(shí)物制作及調(diào)試
本文編號(hào):2936686
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/2936686.html
最近更新
教材專著