李娜 楊春鶴 王澤昊 婁世超
沈陽(yáng)工學(xué)院信息與控制學(xué)院
淺談基于STM32單片機(jī)的智能車設(shè)計(jì)過程
李娜 楊春鶴 王澤昊 婁世超
沈陽(yáng)工學(xué)院信息與控制學(xué)院
介紹了關(guān)于基于STM32的智能車設(shè)計(jì)過程,主要通過硬件和軟件兩部分來實(shí)現(xiàn)。實(shí)物可以完成小車直線行進(jìn)、四邊形勻速、變速行進(jìn)等一系列基礎(chǔ)的功能和引用紅外模塊同時(shí)能實(shí)現(xiàn)小車循跡避障的功能。
STM32 智能車 設(shè)計(jì) 功能
如今智能車的設(shè)計(jì)過程方案很多種,本文采用了以STM32單片機(jī)為核心,外加電機(jī)驅(qū)動(dòng)模塊,紅外尋跡模塊,紅外避障模塊,報(bào)警模塊所組成。接下來詳細(xì)介紹智能車的設(shè)計(jì)過程。
1.1 單片機(jī)模塊介紹
智能車設(shè)計(jì)的核心部分要協(xié)調(diào)整個(gè)外設(shè)工作過程和相互通信,所以單片機(jī)的選擇很重要,既要考慮速度,又要考慮io引腳資源,還要考慮中斷等一系列問題,因此本文采用了適合本設(shè)計(jì)的STM32S103型號(hào)單片機(jī)。該單片機(jī)在整個(gè)系統(tǒng)中需要完成采集數(shù)據(jù)的處理工作,需要完成輸出信號(hào)的控制工作,需要在特殊情況下進(jìn)行報(bào)警控制。
1.2 電機(jī)模塊介紹
智能車的運(yùn)行是通過電機(jī)的運(yùn)轉(zhuǎn)來實(shí)現(xiàn)的,電機(jī)的運(yùn)行需要高電壓,大電流,直接利用單片機(jī)的IO口來提供無法保證電機(jī)正常工作,那么一個(gè)驅(qū)動(dòng)模塊就非常有必要。本文中采用了L298N模塊來保證電機(jī)的正常工作。單片機(jī)與驅(qū)動(dòng)模塊之間的控制信號(hào)如下:
1.3 紅外循跡和避障模塊
小車的行進(jìn)過程中可能會(huì)碰到障礙物,那么小車需要事前檢測(cè)到,然后進(jìn)行合理的避障處理機(jī)制,本文采用了紅外這種方式來實(shí)現(xiàn)紅外的避障檢測(cè)過程,當(dāng)小車在行進(jìn)過程中紅外模塊始終發(fā)送出紅外信號(hào),當(dāng)無障礙物時(shí),紅外接收器沒有接收到紅外信號(hào),小車正常運(yùn)行,當(dāng)有障礙物時(shí),接收模塊接收到信號(hào),單片機(jī)根據(jù)信號(hào)的變化判斷出小車遇到障礙物要通過改變當(dāng)前的行進(jìn)路線進(jìn)行避障處理。小車在運(yùn)行過程中需要按照規(guī)劃的路線循跡行駛,那么紅外模塊就起到了循跡的功能,可以通過紅外模塊與地面和路線反饋給紅外接收器信號(hào)的不等,單片機(jī)實(shí)時(shí)檢測(cè)信號(hào)發(fā)生的變化判斷出小車與規(guī)定路線的偏差,來實(shí)時(shí)調(diào)整運(yùn)行方式。
1.4 報(bào)警模塊
小車在遇到障礙物或者是無法找到行走的路線時(shí),要實(shí)時(shí)進(jìn)行報(bào)警來提示當(dāng)前的狀態(tài),所以設(shè)計(jì)了報(bào)警模塊。當(dāng)需要報(bào)警的時(shí)候,單片機(jī)發(fā)出報(bào)警信號(hào)驅(qū)動(dòng)報(bào)警電路工作,該模塊就可以進(jìn)行聲音和光報(bào)警兩種方式,有效起到提醒的作用。
該設(shè)計(jì)利用單片機(jī)和電機(jī)模塊可以實(shí)現(xiàn)的基本功能包括:直行,后退,左轉(zhuǎn),右轉(zhuǎn)四種基本功能。
該設(shè)計(jì)利用單片機(jī)和電機(jī)模塊可以實(shí)現(xiàn)的其他功能包括:左轉(zhuǎn),右轉(zhuǎn)。
該設(shè)計(jì)利用單片機(jī)和電機(jī)模塊加紅外循跡模塊可以實(shí)現(xiàn)的在基礎(chǔ)功能包括:隨機(jī)設(shè)計(jì)運(yùn)行軌跡,小車可以自由運(yùn)行在軌道上。
該設(shè)計(jì)利用單片機(jī)和電機(jī)模塊加紅外避障模塊可以實(shí)現(xiàn)的在基礎(chǔ)功能包括:隨機(jī)設(shè)計(jì)障礙物的位置,小車在運(yùn)行過程中一旦碰到障礙物立即停止,當(dāng)障礙物清楚,小車?yán)^續(xù)運(yùn)行。
該設(shè)計(jì)利用單片機(jī)和電機(jī)模塊加紅外避障模塊加紅外循跡模塊可以實(shí)現(xiàn)的在基礎(chǔ)功能包括:隨機(jī)設(shè)計(jì)障礙物的位置,隨機(jī)設(shè)計(jì)運(yùn)行軌跡,小車按照軌跡運(yùn)行,當(dāng)碰到障礙物時(shí),進(jìn)行聲音和光報(bào)警,并在運(yùn)行過程中一旦碰到障礙物立即停止,當(dāng)障礙物清楚,小車?yán)^續(xù)運(yùn)行。
設(shè)計(jì)思路: 先定義好前進(jìn)、左轉(zhuǎn)、右轉(zhuǎn)、停止、后退的子函數(shù)。在主函數(shù)中做if判斷,若兩個(gè)傳感器都感應(yīng)到了障礙物,則調(diào)用停止函數(shù),讓小車停止,同時(shí)將PB6置低電平讓蜂鳴器響;若小車左方有障礙物,則調(diào)用后退、右轉(zhuǎn)函數(shù),讓小車先后退再右轉(zhuǎn),同時(shí)讓蜂鳴器響;若小車右方有障礙物,則調(diào)用后退、左轉(zhuǎn)函數(shù),讓小車先后退再左轉(zhuǎn),同時(shí)讓蜂鳴器響;若沒檢測(cè)到障礙物,則調(diào)用直行函數(shù),同時(shí)將PB6置高電平,蜂鳴器不響。將紅外傳感器跨在黑線兩旁,若小車向右偏,則小車左側(cè)傳感器就會(huì)檢測(cè)到黑線,左側(cè)傳感器就沒有反射信號(hào),此時(shí)設(shè)置小車向左轉(zhuǎn);若小車向左偏,原理亦然;若兩側(cè)的紅外傳感器都能檢測(cè)到信號(hào),則證明小車沒有走偏,持續(xù)直行。
經(jīng)過測(cè)試,本文設(shè)計(jì)的智能小車可以完成循跡和避障過程,同時(shí)可以給出聲音和光報(bào)警,是一種非常適合于學(xué)生來完成的一個(gè)設(shè)計(jì)過程。因此,單片機(jī)的學(xué)習(xí)、開發(fā)與應(yīng)用是學(xué)生必須掌握的基本技能。
[1] 譚淑梅.簡(jiǎn)析STM32單片機(jī)原理及硬件電路設(shè)計(jì)[J].大慶師范學(xué)院學(xué)報(bào),2014
[2] 楊光祥.STM32單片機(jī)原理與工程實(shí)踐[M].武漢理工大學(xué)出版社,2008
[3] 劉火良,楊森.STM32庫(kù)開發(fā)實(shí)戰(zhàn)指南[M]. 機(jī)械工業(yè)出版社,2013