徐靜 李欣欣
摘要:智能循跡避障小車(chē)以STM32為核心控制器,可以在行駛過(guò)程中調(diào)節(jié)小車(chē)的速度和方向。小車(chē)前方安裝的兩個(gè)灰度傳感器用于檢測(cè)路面上的黑色軌跡,超聲波模塊用來(lái)實(shí)時(shí)檢測(cè)行駛道路前方障礙物,從而實(shí)現(xiàn)小車(chē)的循跡和避障功能。經(jīng)過(guò)實(shí)際測(cè)試,各組成部分協(xié)同工作可以實(shí)現(xiàn)小車(chē)的避障和循跡的功能,且小車(chē)運(yùn)行安全穩(wěn)定。
關(guān)鍵詞:循跡避障;STM32;傳感器;超聲波
中圖分類(lèi)號(hào):TP302? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2019)24-0191-03
開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
Design and Implementation of Intelligent Tracking Obstacle Avoidance Vehicle
XU Jing, LI Xin-xin
(College of Computer and Information Engineering, Xinjiang Agricultural University, Urumqi 830052, China)
Abstract: The intelligent tracking and obstacle avoidance trolley is controlled by the STM32, which can adjust the speed and direction of the trolley during driving. Two grayscale sensors installed in front of the trolley are used to detect the black trajectory on the road surface, and the ultrasonic module is used to detect obstacles in front of the road in real time, thereby realizing the tracking and obstacle avoidance functions of the trolley. After the actual test, the components work together to realize the obstacle avoidance and tracking function of the trolley, and the trolley runs safely and stably.
Keywords: The sensor; Ultrasound; Single chip microcomputer; Automatic control
1 緒論
1.1 研究的背景及意義
近年來(lái),科學(xué)技術(shù)的快速發(fā)展,極大地提高了中國(guó)社會(huì)的經(jīng)濟(jì)發(fā)展水平。為了大力發(fā)展中國(guó)制造產(chǎn)業(yè),中國(guó)發(fā)布了《中國(guó)制造2025》重大政策戰(zhàn)略。在此基礎(chǔ)上,中國(guó)汽車(chē)工業(yè)協(xié)會(huì)發(fā)布了汽車(chē)工業(yè)發(fā)展“十三五”規(guī)劃,它強(qiáng)調(diào)了大力發(fā)展智能汽車(chē)產(chǎn)業(yè)的重要性[1]。智能小車(chē),是一種以汽車(chē)電子為研究背景的多種學(xué)科相互滲透的科技創(chuàng)意性設(shè)計(jì)。本設(shè)計(jì)主要由檢測(cè)部分、動(dòng)力輸出部分以及核心控制部分三部分組成,小車(chē)通過(guò)傳感器可以實(shí)時(shí)檢測(cè)黑線軌跡和前方障礙物,以此實(shí)現(xiàn)小車(chē)的智能循跡和避障的功能[2]。
1.2 發(fā)展趨勢(shì)
隨著當(dāng)前科學(xué)技術(shù)的快速發(fā)展,智能車(chē)輛已經(jīng)迎來(lái)一個(gè)新的發(fā)展時(shí)代。近年來(lái)有以下發(fā)展趨勢(shì):
(1)智能車(chē)輛的性?xún)r(jià)比逐步提高。在速度、精準(zhǔn)性、可靠性、操作性和可維護(hù)性等方面也在不斷提高,價(jià)格卻不斷降低。
(2)越來(lái)越依賴(lài)傳感器。除了傳統(tǒng)的加速度傳感器、位置傳感器、速度傳感器以外,各種高級(jí)傳感器,如視覺(jué)、聲音、壓力和觸摸,已被用于環(huán)境建模和決策控制。
(3)系統(tǒng)控制權(quán)限不再完全交付機(jī)器,更加注重人機(jī)交互控制,即通過(guò)人工干預(yù)加上本地控制構(gòu)成一個(gè)完整的控制系統(tǒng)。
2智能循跡避障小車(chē)的設(shè)計(jì)方案
2.1 系統(tǒng)的總體設(shè)計(jì)
本設(shè)計(jì)控制核心為STM32,通過(guò)I/O口可以直接控制電機(jī)驅(qū)動(dòng)模塊,進(jìn)一步控制電機(jī),通過(guò)調(diào)節(jié)I/O口占空比改變直流電機(jī)的轉(zhuǎn)速實(shí)現(xiàn)小車(chē)平臺(tái)的轉(zhuǎn)向和移動(dòng)。為了實(shí)現(xiàn)小車(chē)的避障功能,在小車(chē)車(chē)頭安裝超聲波模塊用來(lái)實(shí)時(shí)檢測(cè)小車(chē)行駛道路前方障礙物。為了實(shí)現(xiàn)小車(chē)循跡功能,在小車(chē)車(chē)頭安裝兩個(gè)灰度傳感器,用來(lái)檢測(cè)小車(chē)行駛路線。在本設(shè)計(jì)中藍(lán)牙模塊用于小車(chē)和手機(jī)端實(shí)時(shí)通訊,追蹤數(shù)據(jù),方便調(diào)試。電源模塊的作用是為芯片提供穩(wěn)定工作的電壓??傮w框圖如圖1所示。
2.2 設(shè)計(jì)方案選擇及硬件設(shè)計(jì)
針對(duì)現(xiàn)有智能小車(chē)存在的不足,結(jié)合實(shí)際工作環(huán)境中的需求,本設(shè)計(jì)在智能小車(chē)道路識(shí)別方面做了一些改進(jìn),提高了識(shí)別準(zhǔn)確度。本設(shè)計(jì)主要由以下模塊構(gòu)成,包括灰度識(shí)別模塊、超聲波模塊、主控芯片、電源模塊等。
2.2.1 單片機(jī)的選用
本設(shè)計(jì)單片機(jī)的選型從以下幾個(gè)方面考慮:一是要有定時(shí)器功能,因?yàn)榭刂菩≤?chē)輪子轉(zhuǎn)速需要PWM(脈沖寬度調(diào)制),用于實(shí)現(xiàn)避障功能超聲波模塊的驅(qū)動(dòng)也需要用到定時(shí)器。二是要有A/D轉(zhuǎn)換功能,因?yàn)榛叶葌鞲衅鬏敵龅氖履M信號(hào),需要通過(guò)A/D轉(zhuǎn)換變成數(shù)字信號(hào)才能被單片機(jī)所使用。
綜上所述,結(jié)合本次設(shè)計(jì)的實(shí)際情況選擇STM32,自帶A/D轉(zhuǎn)換器且定時(shí)器功能比較強(qiáng)大,外設(shè)接口豐富,性?xún)r(jià)比非常高。
2.2.2 超聲波模塊的選用及設(shè)計(jì)
為了降低開(kāi)發(fā)成本,本設(shè)計(jì)使用超聲波模塊來(lái)測(cè)量距離。市面上超聲波測(cè)距模塊類(lèi)型很多,其中HC-SR04超聲波模塊測(cè)量范圍相對(duì)較廣,測(cè)量精度相對(duì)較高,屬于非接觸式測(cè)量傳感器[3]。該模塊各項(xiàng)性能指標(biāo)滿足本設(shè)計(jì)的需求且價(jià)格合理。因此本設(shè)計(jì)采用HC-SR04作為測(cè)距模塊。該模塊使用也比較簡(jiǎn)單,通過(guò)trig引腳觸發(fā)來(lái)啟動(dòng)測(cè)距,若有信號(hào)返回,則echo引腳輸出一定時(shí)間高電平,通過(guò)測(cè)量高電平持續(xù)時(shí)間可以計(jì)算出小車(chē)和障礙物之間的距離[4]。
2.2.3 循跡模塊的選用及設(shè)計(jì)
本設(shè)計(jì)采用的灰度傳感器為亞博智能灰度傳感器,用來(lái)實(shí)時(shí)檢測(cè)路線。該模塊輸出信號(hào)為模擬信號(hào),使道路識(shí)別功能更加靈敏、精確。本設(shè)計(jì)采用灰度傳感器為循跡功能提供一種新的思路。由于光在不同顏色的物體表面反射程度不同,所以傳感器接收到的光強(qiáng)度也有所不同,灰度傳感器上面的光敏電阻阻值不斷變化,輸出電壓也就有所變化。當(dāng)環(huán)境光干擾不嚴(yán)重時(shí),非常適合用于區(qū)分黑色和白色。該傳感器正常工作電壓較廣,適應(yīng)性強(qiáng),對(duì)電源要求較低。它輸出的信號(hào)是模擬信號(hào),因此需要ADC模塊來(lái)做模數(shù)轉(zhuǎn)換變成數(shù)字信號(hào)后供單片機(jī)使用進(jìn)行不同顏色的判別。
2.2.4 藍(lán)牙模塊的選用及設(shè)計(jì)
本設(shè)計(jì)采用HC-05主從一體藍(lán)牙模塊,實(shí)現(xiàn)小車(chē)和手機(jī)端通信。因其價(jià)格比較合理,使用方便,在近距離無(wú)線通信方案中有較多的應(yīng)用,通過(guò)簡(jiǎn)單的配置就可以使用[5]。通過(guò)藍(lán)牙模塊的無(wú)線傳輸功能把數(shù)據(jù)發(fā)送到手機(jī)端,可以實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)監(jiān)測(cè),方便調(diào)試。后期也可以用它實(shí)現(xiàn)無(wú)線遙控,進(jìn)行數(shù)據(jù)的監(jiān)測(cè)。
3 數(shù)據(jù)處理
3.1 傳感器數(shù)據(jù)處理
在本設(shè)計(jì)中用于道路識(shí)別的是灰度傳感器,輸出的信號(hào)為模擬信號(hào),需要經(jīng)過(guò)A/D轉(zhuǎn)換,轉(zhuǎn)換為數(shù)字信號(hào)為單片機(jī)所用[6]。本設(shè)計(jì)所采用單片機(jī)為STM32,自帶12位分辨率ADC,通過(guò)CubeMX軟件配置ADC模塊為連續(xù)轉(zhuǎn)換掃描模式,ADC轉(zhuǎn)換通道數(shù)量為8個(gè),ADC時(shí)鐘周期為12MHz,采樣周期為71.5個(gè)時(shí)鐘周期,通過(guò)公式(1),STM32的采樣時(shí)間轉(zhuǎn)換公式:
其中t為采樣時(shí)間,T為ADC采樣頻率,
經(jīng)過(guò)上述配置就可以分別獲取到兩個(gè)灰度傳感器的值,但是這樣并不能通過(guò)傳感器的值獲取當(dāng)前小車(chē)相對(duì)于道路的左右偏離情況。所以,在本設(shè)計(jì)中對(duì)傳感器值做以下處理,該灰度傳感器從純白到純黑輸出的值大概是1到2的連續(xù)數(shù)值,將該數(shù)值放大50倍,得到50到100范圍內(nèi)連續(xù)的信號(hào)。由于兩個(gè)傳感器在相同位置輸出值存在偏差,且處理數(shù)據(jù)時(shí)放大倍數(shù)較高,實(shí)際右邊傳感器測(cè)量到的輸出值比左邊傳感器測(cè)量到的輸出值小10,所以最終單片機(jī)使用到的傳感器的值如公式(2)所示:
其中,為最終處理結(jié)果,為左邊灰度傳感器輸出值,為右邊灰度傳感器輸出值。數(shù)值經(jīng)過(guò)公式(1)的處理相當(dāng)于在道路上構(gòu)建了一個(gè)范圍大概是-40到40的一維坐標(biāo)系。
3.2 PID算法在本設(shè)計(jì)中的應(yīng)用
在本設(shè)計(jì)中執(zhí)行機(jī)構(gòu)是電機(jī),用于控制小車(chē)運(yùn)動(dòng),測(cè)量元件是灰度傳感器,用于實(shí)時(shí)檢測(cè)小車(chē)位置偏差,因此在本設(shè)計(jì)中可以運(yùn)用PID控制器來(lái)對(duì)小車(chē)進(jìn)行控制。
通過(guò)增量式PID運(yùn)算可以得到一個(gè)輸出值用來(lái)糾正小車(chē)偏移方向,但是小車(chē)的輪子分為左右兩邊。通過(guò)藍(lán)牙模塊和手機(jī)通信可以在手機(jī)端實(shí)時(shí)追蹤小車(chē)數(shù)據(jù),通過(guò)分析發(fā)現(xiàn),當(dāng)小車(chē)向左偏離時(shí)增量式PID計(jì)算結(jié)果全部為正數(shù),當(dāng)小車(chē)向右偏離時(shí)增量式PID計(jì)算結(jié)果全部為負(fù)數(shù)。給小車(chē)一個(gè)初始速度讓小車(chē)向前行駛,當(dāng)小車(chē)行駛方向向左偏離時(shí)它應(yīng)該向右轉(zhuǎn),所以增大左邊車(chē)輪速度,減小右邊車(chē)輪速度,反之亦然。通過(guò)如下處理可以滿足左轉(zhuǎn)和右轉(zhuǎn)兩種情況,首先獲取增量PID計(jì)算結(jié)果,限制計(jì)算結(jié)果上下限,然后將結(jié)果作用到車(chē)輪轉(zhuǎn)速控制。
4 軟件設(shè)計(jì)
4.1避障功能設(shè)計(jì)
小車(chē)在行駛的過(guò)程中需要實(shí)時(shí)獲取道路前方障礙物信息,并做出相應(yīng)的決策。小車(chē)每隔1ms發(fā)送一次Trig信號(hào),用于啟動(dòng)超聲波模塊測(cè)距,檢測(cè)小車(chē)前方障礙物。如果小車(chē)和障礙物之間的距離小于20厘米,則小車(chē)暫停等待,否則小車(chē)?yán)^續(xù)向前行駛。智能小車(chē)避障流程圖如圖5所示。
4.2 循跡功能設(shè)計(jì)
循跡功能為本設(shè)計(jì)核心功能, STM32讀取并處理灰度傳感器輸出值,獲取當(dāng)前小車(chē)相對(duì)于道路的位置信息,每隔10μs通過(guò)PID控制器調(diào)節(jié)小車(chē)左右車(chē)輪轉(zhuǎn)速,調(diào)節(jié)小車(chē)到期望的位置。智能小車(chē)循跡流程圖如圖6所示。
5 結(jié)論
本設(shè)計(jì)是以STM32為控制核心的智能循跡避障小車(chē),小車(chē)在行駛的過(guò)程中不斷調(diào)節(jié)自身行駛速度方向,使小車(chē)按照規(guī)定的路線正常行駛,并且在行駛同時(shí)檢測(cè)小車(chē)前方是否有障礙物,當(dāng)小車(chē)發(fā)現(xiàn)前方有障礙物時(shí)就停止避免發(fā)生碰撞。智能汽車(chē)的研究在當(dāng)前非常受重視,并且各個(gè)國(guó)家這方面的投入也越來(lái)越多。智能車(chē)輛將伴隨著人工智能技術(shù)、計(jì)算機(jī)技術(shù)、自動(dòng)控制技術(shù)的不斷進(jìn)步進(jìn)入一個(gè)快速發(fā)展的新時(shí)期。
參考文獻(xiàn):
[1] 周生遠(yuǎn),王浩,于匯鑫. 基于單片機(jī)的智能小車(chē)避障循跡系統(tǒng)設(shè)計(jì)[J]. 科技傳播,2017(07).
[2] 南春巖. 基于單片機(jī)的機(jī)械小車(chē)自動(dòng)技術(shù)實(shí)訓(xùn)[J]. 科技資訊,2017(27).
[3] 胡志.基于PID控制的兩輪自平衡小車(chē)設(shè)計(jì)[J].電子質(zhì)量,2017(12).
[4] 李偉中.模糊PID控制算法在智能小車(chē)中的研究與應(yīng)用[J].工業(yè)設(shè)計(jì),2016(03).
[5] 楊前明,張君,阮益. AGV軌跡規(guī)劃及其糾偏控制機(jī)理研究[D]. 浙江大學(xué). 2018(11).
[6] 沈維佳. 多傳感器小車(chē)的控制系統(tǒng)設(shè)計(jì)與研究[D].南京理工大學(xué),2015.
【通聯(lián)編輯:梁書(shū)】