陳樂鵬 譚曉東 曹江浩 劉升云 高智偉
摘 ?要:隨著時代的發(fā)展,對于智能化程度各個行業(yè)的要求都有所提高,越來越多的移動機(jī)器得到普及,與傳統(tǒng)的跟隨設(shè)備相比,智能小車具有更好的機(jī)動性、安全性和實(shí)用性。如今國內(nèi)跟隨設(shè)備一般存在于專業(yè)的場館環(huán)境內(nèi),而沒有針對在超市、機(jī)場、火車站等公共場所里的跟隨設(shè)備。文章以STM32為核心,利用多個模塊的結(jié)合,設(shè)計(jì)了一款可以在各個場合都能夠?qū)崿F(xiàn)跟隨的智能小車。該車采用超聲波定位技術(shù)實(shí)現(xiàn)小車與人類距離的檢測,判斷人類的位置,并利用PID算法控制小車移動速度和轉(zhuǎn)彎方向,實(shí)現(xiàn)對人的精準(zhǔn)跟隨。該智能小車既可以應(yīng)用于環(huán)境簡單的場館內(nèi),又可以在復(fù)雜的公共場所實(shí)現(xiàn)跟隨,解放人類雙手。
關(guān)鍵詞:智能跟隨;STM32;超聲波測距;比例控制
中圖分類號:TP391.41 ? ? ? ? 文獻(xiàn)標(biāo)志碼:A ? ? ? ? 文章編號:2095-2945(2019)35-0024-03
Abstract: In order to solve the problem that human hands can not be completely liberated, an intelligent following car based on STM32, single receiving and receiving ultrasonic module ranging and steering proportion control is designed and implemented. The intelligent car is based on STM32 as the core control module, the car installs three ultrasonic receiving modules, uses the human hand-held transmission ultrasonic module to make the car judge the position of the person, and determines the speed of the belt according to the distance, so as to realize the following function of the intelligent car. It is proved that the system is stable and can track and liberate both hands in real time.
Keywords: intelligent follow; STM32; ultrasonic ranging; proportional control
1 概述
隨著時代的發(fā)展,各行各業(yè)對于智能化程度要求的提升,越來越多的移動機(jī)器得到普及,與傳統(tǒng)的跟隨設(shè)備相比,智能小車具有更好的機(jī)動性、安全性和實(shí)用性。如今國內(nèi)跟隨設(shè)備一般存在于專業(yè)的場館環(huán)境內(nèi),而沒有針對在超市、機(jī)場、火車站等公共場所里的跟隨設(shè)備。本文以STM32為核心,利用多個模塊的結(jié)合,設(shè)計(jì)了一款能夠應(yīng)用于各個場所的智能跟隨小車。該車采用超聲波定位技術(shù)實(shí)現(xiàn)小車與人類距離的檢測,判斷人類的位置,并利用PID算法控制小車移動速度和轉(zhuǎn)彎方向,實(shí)現(xiàn)對人的精準(zhǔn)跟隨。該智能小車既可以應(yīng)用于環(huán)境簡單的場館內(nèi),又可以在復(fù)雜的公共場所實(shí)現(xiàn)跟隨,解放人類雙手。
2 硬件設(shè)計(jì)
2.1 系統(tǒng)總體設(shè)計(jì)
系統(tǒng)為了實(shí)現(xiàn)小車自動跟隨,采用了超聲波定位模塊、電機(jī)驅(qū)動模塊和LCD等功能模塊設(shè)計(jì)。通過人手持超聲波發(fā)送模塊與小車安裝的超聲波接收模塊來判斷人的位置,主控芯片STM32處理位置信息,輸出PID算法調(diào)控后的PWM波來控制電機(jī)的轉(zhuǎn)速。電源一給超聲波接收模塊、電機(jī)驅(qū)動模塊和LCD模塊供電。電源二給超聲波發(fā)送模塊供電。系統(tǒng)的總體設(shè)計(jì)圖如圖1所示。
2.2 主控芯片
智能小車采用的是STM32F103的主控芯片,該芯片是32位ARM微控制器,其內(nèi)核是Cortex-M3。擁有性能強(qiáng)大的外設(shè)、低功耗、開發(fā)成本低、支持SWD和JTAG兩種調(diào)試等優(yōu)勢。
2.3 超聲波定位模塊
超聲波定位模塊的基礎(chǔ)是超聲波測距,本設(shè)計(jì)使用的測距模塊是單接收發(fā)超聲波模塊,該模塊的測量范圍為4~500cm,精度為3mm。工作電壓為5V,采用串口通信,通信波特率為115200。定位模塊由發(fā)射超聲波模塊、接收超聲波模塊、控制電路和驅(qū)動電路組成。發(fā)射超聲波模塊只需要上電即可。發(fā)射超聲波模塊上電后,發(fā)射超聲波模塊上的LED會快速閃動,此時發(fā)送超聲波模塊已經(jīng)在正常工作。接收超聲波模塊的四個引腳5V、G、RX和EX與主控芯片STM32的IO口連接,將發(fā)射超聲波模塊與接收超聲波模塊的發(fā)射頭對準(zhǔn),接收超聲波模塊上的LED閃爍后,證明兩者通信成功。接收超聲波模塊接收到數(shù)據(jù)后,會通過串口以50Hz的頻率發(fā)送出距離數(shù)據(jù)。數(shù)據(jù)格式為:0XA5+兩個字節(jié)數(shù)據(jù)(16進(jìn)制),單位為mm。其中0XA5是幀頭,另外2個是數(shù)據(jù)存儲字節(jié)。例如返回的數(shù)據(jù)為:A5 00 C8的意思是200mm。其解算過程是2個字節(jié)數(shù)據(jù)移位然后邏輯運(yùn)算。distance=distance[1]<<8|distance[2]。超聲波定位模塊的實(shí)物圖如圖2,單發(fā)超聲波的電路圖如圖3所示。
2.4 供電模塊
本次設(shè)計(jì)使用的供電電源是12V的,而STM32的正常電壓是3.3V和5V,電機(jī)驅(qū)動模塊和超聲波模塊的正常供電電壓也是5V,所以需要對電源降壓以后供各個模塊使用。我們選用的降壓模塊是LM2596,該模塊發(fā)熱小,性能穩(wěn)定,供電電流大,很適合在單片機(jī)控制系統(tǒng)中使用。供電模塊的供電電路如圖5所示。
2.5 電機(jī)驅(qū)動模塊
此次設(shè)計(jì)采用的是L298N電機(jī)驅(qū)動模塊來控制小車的運(yùn)動。該模塊使用的是H橋直流電機(jī)驅(qū)動芯片,可以很方便地實(shí)現(xiàn)直流電機(jī)的正轉(zhuǎn)、正轉(zhuǎn)制動、反轉(zhuǎn)、反轉(zhuǎn)制動。電機(jī)采用的是脈沖寬度調(diào)制(Pulse Width Modulation, PWM)進(jìn)行調(diào)速,即通過改變電機(jī)電樞電壓的占空比來改變整體電壓的大小,而實(shí)現(xiàn)小車兩個電機(jī)的速度調(diào)節(jié)。電機(jī)的轉(zhuǎn)向通過L298N的4路邏輯門來控制。其中PWM信號通過單片機(jī)定時器來控制輸出,4路邏輯輸入通過單片機(jī)輸出模式的IO口進(jìn)行控制。
2.6 LCD顯示模塊
此次設(shè)計(jì)選擇的是LCD12864作為顯示模塊LCD12864屏幕總共是128*64個點(diǎn),每個點(diǎn)只有亮和不亮兩種狀態(tài),可以直接顯示中文,不需要自己編碼,發(fā)送數(shù)據(jù)使用8位并行模式,用單片機(jī)的IO引腳就可以實(shí)現(xiàn)對該模塊的控制。
3 軟件設(shè)計(jì)
3.1 主程序設(shè)計(jì)
系統(tǒng)的硬件模塊搭建好后,在軟件中對各個環(huán)節(jié)進(jìn)行初始化,包括LCD、延時函數(shù)、SWD下載串口等,然后進(jìn)行中斷優(yōu)先級分組,方便管理各個中斷,最后對控制PWM信號產(chǎn)生的定時器進(jìn)行相關(guān)配置。各個模塊初始化完成以后進(jìn)入while循環(huán),首先對超聲波通信串口配置完成后,進(jìn)行串口中斷服務(wù)程序,開始接收數(shù)據(jù)(如果是0XA5就收,否則不予接收),然后對數(shù)據(jù)進(jìn)行解算并處理,得到左右兩個接收超聲波距離發(fā)射超聲波的距離,最后對得到的左右兩個超聲波的距離進(jìn)行PID控制,并根據(jù)PID控制的輸出量賦值給PWM寄存器,進(jìn)而對左右兩兩個電機(jī)控制。主程序的流程圖如圖6所示。
3.2 超聲波測距程序設(shè)計(jì)
超聲波測距的原理是發(fā)射超聲波模塊發(fā)送數(shù)據(jù),接收超聲波模塊接收到數(shù)據(jù)時所用的時間乘以聲速即為兩個超聲波之間的距離。其中時間是由超聲波模塊上的紅外發(fā)射管和紅外接收管做同步時序,超聲波放松數(shù)據(jù)的同時紅外發(fā)射管發(fā)送紅外數(shù)據(jù),紅外接收頭接收到數(shù)據(jù)時開始時,超聲波接收到數(shù)據(jù)后停止計(jì)時,因?yàn)楣馑龠h(yuǎn)遠(yuǎn)大于聲速,所以時間差是可靠的,得到距離也是可靠的。
3.3 PID控制程序
電機(jī)的轉(zhuǎn)速是隨負(fù)載變化而變化的,而且電機(jī)的損耗程度也會影響電機(jī)的轉(zhuǎn)速,為了使電機(jī)轉(zhuǎn)速的誤差減小,設(shè)置了直線跟隨PID控制和轉(zhuǎn)向跟隨PID控制。PID控制的公式如下:
比例常數(shù)kp;
積分時間常數(shù)TI;
微分時間常數(shù)TD
為了維持小車跟隨距離和轉(zhuǎn)彎穩(wěn)定性維持在一個穩(wěn)定值,設(shè)置了直線比例控制和轉(zhuǎn)彎比例控制。直線比例控制中設(shè)置1m為目標(biāo)值,是小車距離人類在1m內(nèi)實(shí)現(xiàn)跟隨。超聲波測量的距離值與目標(biāo)值的系數(shù)Kp1,得到的結(jié)果用于調(diào)控PWM波形來進(jìn)行小車的直線控制。轉(zhuǎn)彎比例控制是左右兩個超聲波的差值的絕對值乘以比例系數(shù)Kp2,用于調(diào)控PWM波形來進(jìn)行小車的轉(zhuǎn)彎控制。通過小車直線和轉(zhuǎn)彎的閉環(huán)控制,將提升小車對目標(biāo)跟隨和轉(zhuǎn)彎的可靠性。
4 系統(tǒng)調(diào)試
4.1 硬件調(diào)試
(1)測試超聲波和紅外發(fā)送與接收數(shù)據(jù)。
(2)測試電機(jī)正轉(zhuǎn)反轉(zhuǎn)和差速旋轉(zhuǎn)。
(3)測試供電模塊和電機(jī)驅(qū)動模塊等。
4.2 軟件調(diào)試與實(shí)現(xiàn)
(1)超聲波測距模塊在5m之內(nèi)準(zhǔn)確率在97%以上。
(2)積分控制環(huán)節(jié)穩(wěn)定性在80%。
5 結(jié)束語
本文介紹的智能跟隨小車,可以實(shí)現(xiàn)在1m-3m內(nèi)實(shí)現(xiàn)對人體的定位,并能都達(dá)到始終與人體1m的相對位置跟隨,在左右轉(zhuǎn)彎時可以實(shí)現(xiàn)0.5s實(shí)現(xiàn)快速響應(yīng)。能夠在各個場所達(dá)到智能跟隨的功能。
參考文獻(xiàn):
[1]代森.基于超聲波室內(nèi)定位系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].西南交通大學(xué),2017.
[2]曾建,榮聯(lián)城,姜水明,等.基于arduino平臺的智能遙控小車設(shè)計(jì)[J].電子世界,2014(07):142.
[3]師樹恒,趙斌,郭朋彥,等.基于MK60N512的智能循跡小車設(shè)計(jì)[J].機(jī)床與液壓,2014,42(02):91-93+96.
[4]盧威.智能小車避障系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].南昌大學(xué),2012.
[5]陸藺.超聲波三維定位與跟蹤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].蘇州大學(xué),2010.
[6]黃濤.自動化小車的無線遙控駕駛技術(shù)研究[D].西安電子科技大學(xué),2009.