陳樂鵬 譚曉東 曹江浩 劉升云 高智偉



摘 ?要:隨著時代的發展,對于智能化程度各個行業的要求都有所提高,越來越多的移動機器得到普及,與傳統的跟隨設備相比,智能小車具有更好的機動性、安全性和實用性。如今國內跟隨設備一般存在于專業的場館環境內,而沒有針對在超市、機場、火車站等公共場所里的跟隨設備。文章以STM32為核心,利用多個模塊的結合,設計了一款可以在各個場合都能夠實現跟隨的智能小車。該車采用超聲波定位技術實現小車與人類距離的檢測,判斷人類的位置,并利用PID算法控制小車移動速度和轉彎方向,實現對人的精準跟隨。該智能小車既可以應用于環境簡單的場館內,又可以在復雜的公共場所實現跟隨,解放人類雙手。
關鍵詞:智能跟隨;STM32;超聲波測距;比例控制
中圖分類號:TP391.41 ? ? ? ? 文獻標志碼: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 概述
隨著時代的發展,各行各業對于智能化程度要求的提升,越來越多的移動機器得到普及,與傳統的跟隨設備相比,智能小車具有更好的機動性、安全性和實用性。如今國內跟隨設備一般存在于專業的場館環境內,而沒有針對在超市、機場、火車站等公共場所里的跟隨設備。本文以STM32為核心,利用多個模塊的結合,設計了一款能夠應用于各個場所的智能跟隨小車。該車采用超聲波定位技術實現小車與人類距離的檢測,判斷人類的位置,并利用PID算法控制小車移動速度和轉彎方向,實現對人的精準跟隨。該智能小車既可以應用于環境簡單的場館內,又可以在復雜的公共場所實現跟隨,解放人類雙手。
2 硬件設計
2.1 系統總體設計
系統為了實現小車自動跟隨,采用了超聲波定位模塊、電機驅動模塊和LCD等功能模塊設計。通過人手持超聲波發送模塊與小車安裝的超聲波接收模塊來判斷人的位置,主控芯片STM32處理位置信息,輸出PID算法調控后的PWM波來控制電機的轉速。電源一給超聲波接收模塊、電機驅動模塊和LCD模塊供電。電源二給超聲波發送模塊供電。系統的總體設計圖如圖1所示。
2.2 主控芯片
智能小車采用的是STM32F103的主控芯片,該芯片是32位ARM微控制器,其內核是Cortex-M3。擁有性能強大的外設、低功耗、開發成本低、支持SWD和JTAG兩種調試等優勢。
2.3 超聲波定位模塊
超聲波定位模塊的基礎是超聲波測距,本設計使用的測距模塊是單接收發超聲波模塊,該模塊的測量范圍為4~500cm,精度為3mm。工作電壓為5V,采用串口通信,通信波特率為115200。定位模塊由發射超聲波模塊、接收超聲波模塊、控制電路和驅動電路組成。發射超聲波模塊只需要上電即可。發射超聲波模塊上電后,發射超聲波模塊上的LED會快速閃動,此時發送超聲波模塊已經在正常工作。接收超聲波模塊的四個引腳5V、G、RX和EX與主控芯片STM32的IO口連接,將發射超聲波模塊與接收超聲波模塊的發射頭對準,接收超聲波模塊上的LED閃爍后,證明兩者通信成功。接收超聲波模塊接收到數據后,會通過串口以50Hz的頻率發送出距離數據。數據格式為:0XA5+兩個字節數據(16進制),單位為mm。其中0XA5是幀頭,另外2個是數據存儲字節。例如返回的數據為:A5 00 C8的意思是200mm。其解算過程是2個字節數據移位然后邏輯運算。distance=distance[1]<<8|distance[2]。超聲波定位模塊的實物圖如圖2,單發超聲波的電路圖如圖3所示。
2.4 供電模塊
本次設計使用的供電電源是12V的,而STM32的正常電壓是3.3V和5V,電機驅動模塊和超聲波模塊的正常供電電壓也是5V,所以需要對電源降壓以后供各個模塊使用。我們選用的降壓模塊是LM2596,該模塊發熱小,性能穩定,供電電流大,很適合在單片機控制系統中使用。供電模塊的供電電路如圖5所示。
2.5 電機驅動模塊
此次設計采用的是L298N電機驅動模塊來控制小車的運動。該模塊使用的是H橋直流電機驅動芯片,可以很方便地實現直流電機的正轉、正轉制動、反轉、反轉制動。電機采用的是脈沖寬度調制(Pulse Width Modulation, PWM)進行調速,即通過改變電機電樞電壓的占空比來改變整體電壓的大小,而實現小車兩個電機的速度調節。電機的轉向通過L298N的4路邏輯門來控制。其中PWM信號通過單片機定時器來控制輸出,4路邏輯輸入通過單片機輸出模式的IO口進行控制。
2.6 LCD顯示模塊
此次設計選擇的是LCD12864作為顯示模塊LCD12864屏幕總共是128*64個點,每個點只有亮和不亮兩種狀態,可以直接顯示中文,不需要自己編碼,發送數據使用8位并行模式,用單片機的IO引腳就可以實現對該模塊的控制。
3 軟件設計
3.1 主程序設計
系統的硬件模塊搭建好后,在軟件中對各個環節進行初始化,包括LCD、延時函數、SWD下載串口等,然后進行中斷優先級分組,方便管理各個中斷,最后對控制PWM信號產生的定時器進行相關配置。各個模塊初始化完成以后進入while循環,首先對超聲波通信串口配置完成后,進行串口中斷服務程序,開始接收數據(如果是0XA5就收,否則不予接收),然后對數據進行解算并處理,得到左右兩個接收超聲波距離發射超聲波的距離,最后對得到的左右兩個超聲波的距離進行PID控制,并根據PID控制的輸出量賦值給PWM寄存器,進而對左右兩兩個電機控制。主程序的流程圖如圖6所示。
3.2 超聲波測距程序設計
超聲波測距的原理是發射超聲波模塊發送數據,接收超聲波模塊接收到數據時所用的時間乘以聲速即為兩個超聲波之間的距離。其中時間是由超聲波模塊上的紅外發射管和紅外接收管做同步時序,超聲波放松數據的同時紅外發射管發送紅外數據,紅外接收頭接收到數據時開始時,超聲波接收到數據后停止計時,因為光速遠遠大于聲速,所以時間差是可靠的,得到距離也是可靠的。
3.3 PID控制程序
電機的轉速是隨負載變化而變化的,而且電機的損耗程度也會影響電機的轉速,為了使電機轉速的誤差減小,設置了直線跟隨PID控制和轉向跟隨PID控制。PID控制的公式如下:
比例常數kp;
積分時間常數TI;
微分時間常數TD
為了維持小車跟隨距離和轉彎穩定性維持在一個穩定值,設置了直線比例控制和轉彎比例控制。直線比例控制中設置1m為目標值,是小車距離人類在1m內實現跟隨。超聲波測量的距離值與目標值的系數Kp1,得到的結果用于調控PWM波形來進行小車的直線控制。轉彎比例控制是左右兩個超聲波的差值的絕對值乘以比例系數Kp2,用于調控PWM波形來進行小車的轉彎控制。通過小車直線和轉彎的閉環控制,將提升小車對目標跟隨和轉彎的可靠性。
4 系統調試
4.1 硬件調試
(1)測試超聲波和紅外發送與接收數據。
(2)測試電機正轉反轉和差速旋轉。
(3)測試供電模塊和電機驅動模塊等。
4.2 軟件調試與實現
(1)超聲波測距模塊在5m之內準確率在97%以上。
(2)積分控制環節穩定性在80%。
5 結束語
本文介紹的智能跟隨小車,可以實現在1m-3m內實現對人體的定位,并能都達到始終與人體1m的相對位置跟隨,在左右轉彎時可以實現0.5s實現快速響應。能夠在各個場所達到智能跟隨的功能。
參考文獻:
[1]代森.基于超聲波室內定位系統的設計與實現[D].西南交通大學,2017.
[2]曾建,榮聯城,姜水明,等.基于arduino平臺的智能遙控小車設計[J].電子世界,2014(07):142.
[3]師樹恒,趙斌,郭朋彥,等.基于MK60N512的智能循跡小車設計[J].機床與液壓,2014,42(02):91-93+96.
[4]盧威.智能小車避障系統的設計與實現[D].南昌大學,2012.
[5]陸藺.超聲波三維定位與跟蹤系統的設計與實現[D].蘇州大學,2010.
[6]黃濤.自動化小車的無線遙控駕駛技術研究[D].西安電子科技大學,2009.