国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于STM32的避障小車設計

2018-01-31 08:31李懷宇
科技視界 2018年30期

李懷宇

【摘 要】基于超聲波傳感器測距原理和紅外傳感器避障原理,首先提出控制系統(tǒng)的總體方案,其為:前方遇障礙物,小車減速并判斷左側(cè)是否有障礙物,無則左轉(zhuǎn),有則繼續(xù)判斷右側(cè)是否有障礙物,無則右轉(zhuǎn),有則制動并后退。之后從硬件設計、軟件設計兩方面展開,給出了以STM32單片機為核心、使用L298N驅(qū)動電機的避障小車系統(tǒng)的設計。設計的意義在于使用簡單的傳感器進行自動避障,避障方案易于實現(xiàn)且方便移植,其對于開發(fā)多功能自動機器人具有借鑒意義,同時它也可以用于智能玩具的開發(fā)。

【關鍵詞】STM32;避障小車;超聲波傳感器;紅外傳感器;L298N

中圖分類號:TP242.3 文獻標識碼: A 文章編號: 2095-2457(2018)30-0191-003

DOI:10.19694/j.cnki.issn2095-2457.2018.30.084

The Design of Obstacle Avoidance Car Based on STM32

LI Huai-yu

(College of Automation of Harbin Engineering University,Harbin Heilongjiang 150001 China)

【Abstract】Based on the principle of ultrasonic sensor ranging and infrared sensor obstacle avoidance, the overall scheme of the control system is proposed firstly, which is: encountering obstacles ahead, the car slows down and judges whether there are obstacles on the left side, if there is no left turn, if there is still judgement whether there are obstacles on the right side, if there is no right turn, if there is braking and back.Then the design of obstacle avoidance trolley system based on STM32 MCU and driven by L298N motor is given from two aspects of hardware design and software design. The design significance of the system lies in the use of simple sensors for automatic obstacle avoidance. The obstacle avoidance scheme is easy to implement and easy to transplant. It can be used for reference in the development of multi-functional automatic robots. At the same time, it can also be used in the development of intelligent toys.

【Key words】STM32; Obstacle avoidance car; Ultrasonic sensors; Infrared sensor; L298N

0 引言

隨著科技的快速發(fā)展,很多行業(yè)都引入了智能化的設備,汽車行業(yè)也不例外。智能汽車可以用于碼頭無人操作自動運輸,也可以在人類無法到達的危險環(huán)境中作業(yè),其應用前景十分廣闊。避障小車是一種可移動的輪式機器人,可以在無人操縱的情況下自主行走,遇到障礙物可以報警并自動避障。本文設計的避障小車以STM32F103ZET6為主控芯片,以紅外光電傳感器和超聲波傳感器為檢測元件,以直流減速電機為執(zhí)行元件,它基本滿足了避障對于小車靈活性的要求。

1 控制系統(tǒng)總體方案

避障小車主要由主控模塊、驅(qū)動模塊、檢測模塊、報警模塊、顯示模塊、電源模塊六個主要模塊組成,系統(tǒng)結(jié)構(gòu)框圖如圖1所示。具體工作流程:當位于小車前方的超聲波傳感器檢測到障礙物時,將障礙物的距離信號發(fā)送至單片機,單片機會對信號進行處理,通過LCD屏幕顯示出來,之后對距離信號進行判斷,若距離大于80厘米,則延續(xù)之前的運動;若距離在80到60厘米之間,則輸出控制信號通過驅(qū)動模塊使電機轉(zhuǎn)速下降達到減速的目的;若距離在60厘米以內(nèi),則先使后輪減速并迅速判斷安裝在車身兩側(cè)的紅外避障傳感器是否檢測到障礙物,如果兩側(cè)都無障礙物,單片機發(fā)出控制信號使前輪左轉(zhuǎn);如果左側(cè)有障礙物,前輪右轉(zhuǎn);如果兩側(cè)都檢測到障礙物,單片機發(fā)出控制信號使小車制動并后退。當轉(zhuǎn)向繞開前方障礙物后,即超聲波檢測出前方80厘米內(nèi)都沒有障礙物時,前輪擺正。在小車運行過程中,若超聲波傳感器檢測到車頭與前方障礙物的距離低于20厘米時,后輪會緊急制動并后退同時拉響警報[1]。

2 系統(tǒng)硬件設計

2.1 車體框架

避障小車為前兩輪利用直流電機轉(zhuǎn)向,后兩輪利用直流電機驅(qū)動的四輪結(jié)構(gòu)。前輪的轉(zhuǎn)向同樣可以利用舵機來實現(xiàn),不過本車使用的電機驅(qū)動模塊L298N自帶兩路控制通道,因此為了防止有用資源的浪費和避免引入更多模塊帶來的軟件設計問題,我們?nèi)岳弥绷麟姍C來實現(xiàn)前輪的轉(zhuǎn)向功能。四輪車架結(jié)構(gòu)簡單穩(wěn)定,足以承受上層各模塊的重量。上層模塊的重量主要集中在電源模塊和連接了LCD屏幕的STM32主控板上,應注意將這兩部分安裝在小車四輪的中心靠后兩輪的中線上,以防重心的偏移導致前輪轉(zhuǎn)向用直流電機出現(xiàn)零位誤差,即直流電機在沒有控制指令的情況下發(fā)生偏轉(zhuǎn),改變了小車原有的路徑。

2.2 主控模塊

主控模塊的核心是一塊STM32F103ZET6芯片,該芯片是意法半導體公司推出的基于Cortex-M3內(nèi)核的32位ARM微控制器。芯片具有2個基本定時器、4個通用定時器、2個高級定時器以及112個通用IO口,時鐘頻率達到72MHz,各種參數(shù)足以滿足小車運行對主控芯片的要求,且其價格低廉,開發(fā)成本低,因此我們選擇了該款芯片。

2.3 電機驅(qū)動模塊

2.3.1 驅(qū)動原理

驅(qū)動模塊使用的驅(qū)動芯片為L298N雙H橋直流電機驅(qū)動芯片,驅(qū)動電路原理圖如圖3所示。L298N為SGS公司生產(chǎn)的專門用于驅(qū)動二相和四相電機的驅(qū)動器。它擁有四通道邏輯電路,內(nèi)含兩個H橋高電壓大電流雙全橋式驅(qū)動器,接收標準TTL邏輯電平信號。其上的四個端子IN1、IN2、IN3、IN4可以通過輸入高低電平來控制電機A和電機B的正反轉(zhuǎn),具體組合方式如表1所示。端子ENA和ENB是使能端,可以接收來自單片機的PWM波進行調(diào)速。當使能信號為0時,電機處于自由停止狀態(tài);當使能信號為1時,配置IN所接單片機的相應引腳才可以使電機處于正轉(zhuǎn)、反轉(zhuǎn)、制動狀態(tài)[2]。

2.3.2 驅(qū)動方式的選擇

后輪電機的作用是驅(qū)動車輛,通過配置IN1和IN2來控制其運動狀態(tài),小車的運動過程需要加速和減速,因此還需對ENA引腳輸入PWM波進行調(diào)速操作。前輪電機的作用是轉(zhuǎn)向,電機的運動幾乎是瞬間完成的,因此不需要對電極進行調(diào)速操作,僅使能ENB再對IN3和IN4進行高低電平配置即可。

2.3.3 注意事項

主控板應和L298N共地,否則高低電平的判斷無法實現(xiàn),即使線路連接和程序沒有問題,電機也不會正常運轉(zhuǎn)。

2.4 超聲波測距模塊

超聲波模塊固定在小車的正前方,用來檢測正前方的障礙物。在這里筆者選用的型號是US-100,其測距范圍為2cm-450cm,自帶溫度傳感器可以自動對測試結(jié)果進行校正,具有電平輸出和UART輸出兩種輸出方式,小車使用的是電平輸出。該模塊具有五個端子,1號端子接VCC電源;4號和5號端子接外部電路的地;2號端子為Trig端;3號端子為Echo端。需要測距時,單片機會從Trig管腳輸入一個10微秒以上的高電平,系統(tǒng)會發(fā)出8個40KHz的超聲波脈沖,然后檢測回波信號,經(jīng)過溫度校正后,將結(jié)果通過Echo管腳輸出[3]。

2.5 紅外避障模塊

紅外避障模塊固定在小車的兩側(cè),一側(cè)使用一個,用來判斷左右兩側(cè)是否有障礙物。當前方出現(xiàn)障礙物時,紅外傳感器的信號線中的電平由高置低,通過讀取與信號線連接的單片機上的相應IO口的低電平即可判斷出出現(xiàn)障礙物[4]。市面上的大部分紅外傳感器對外界的光干擾比較敏感,鑒于小車可能會在強光中運行,因此選擇型號為HJ-IR2的紅外傳感器。其主要優(yōu)點是抗光干擾能力強,檢測距離為2cm-30cm。

2.6 蜂鳴器電路

單片機的IO口驅(qū)動能力不足以使蜂鳴器發(fā)聲,因此我們通過三極管放大驅(qū)動電流來使其發(fā)聲。當單片機輸出高電平時,三極管導通,集電極電流通過蜂鳴器使之發(fā)出聲音。

2.7 電源模塊

本次設計中使用的是兩節(jié)3.7伏可充電電池串聯(lián)供電,供電電壓為7.4伏,直接給L298N供電。另引出一路電源通過降壓模塊降壓至5伏給主控板供電,降壓模塊上有數(shù)碼管可以實時監(jiān)測電源電壓,當電壓不足時需要及時充電[5]。主控板上自帶ASM1117芯片,可以將5伏電壓轉(zhuǎn)換為3.3伏。

2.8 LCD顯示模塊

本次設計中為了使調(diào)試工作比較方便,特意加入了LCD顯示模塊來顯示超聲波所測距離。LCD屏幕連接在主控板上。

3 系統(tǒng)軟件設計

在本次設計中筆者使用C語言進行編程,在編程過程中使用了模塊化設計,方便移植。編譯軟件使用的是KeilμVision5,該款軟件擁有功能強大的仿真調(diào)試器,便于檢查錯誤。

3.1 主程序

先引用頭文件,之后對各項定義的函數(shù)進行初始化,輸出占空比為零的PWM波控制后輪進行啟動,對超聲波發(fā)送持續(xù)10微秒以上的高電平使它開始檢測。若前方障礙物距離低于80厘米,將具體距離值顯示在LCD屏幕上,并進一步判斷:如果距離在60厘米到80厘米之間,輸出一定占空比的PWM波使小車減速;如果距離在20厘米到60厘米之間,先減速再判斷左側(cè)紅外傳感器的信號結(jié)果,若為高電平即無障礙物則左轉(zhuǎn),轉(zhuǎn)彎過程中每200微秒檢測一次前方障礙物距離,當前方障礙物距離大于80厘米時前輪擺正;若為低電平則繼續(xù)判斷右側(cè)是否有障礙物,無則右轉(zhuǎn),有則通過改變電機驅(qū)動IN1和IN2的配置使小車后退,延時一秒后重新判斷障礙物距離;如果距離在20厘米以內(nèi),則使能相應IO口使蜂鳴器發(fā)聲并使小車后退,延時一秒后重新判斷障礙物距離。主程序流程圖如圖7所示。

圖7 主程序流程圖

3.2 定時器程序

STM32的通用定時器既可以用于測量輸入信號的脈沖長度即輸入捕獲,也可以用于產(chǎn)生輸出波形即輸出比較和PWM波。STM32的通用定時器之間不會互相干涉,都是完全獨立的。

3.2.1 輸入捕獲

超聲波的信號回傳使用了輸入捕獲。其信號線與單片機相連,配置單片機的相應引腳為輸入捕獲,先使用上升沿捕獲來檢測信號,記錄發(fā)生上升沿的定時器的值,之后配置該引腳為下降沿捕獲,當捕獲到下降沿時再記錄一次定時器的值,兩值相減便是高電平脈寬。當然如果脈寬過長,沒檢測到下降沿時定時器已經(jīng)溢出,則還需要額外對定時器溢出的次數(shù)進行計數(shù)才可以得到準確的高電平脈寬[6]。當測出脈寬為t時,將t乘以聲速(帶溫度補償?shù)腢S-100傳感器聲速直接使用340m/s)再除以2(所測時間t為超聲波被發(fā)出碰到障礙物再彈回被接收的總時長)即為所測距離。

3.2.2 輸出PWM波

對后輪電機的速度調(diào)節(jié)使用的是PWM波,通過調(diào)節(jié)PWM波的占空比改變電機通斷電時間從而達到調(diào)速的目的[6]。

4 結(jié)束語

本文簡述了以STM32單片機為核心的避障小車系統(tǒng)的設計,包含了電機驅(qū)動模塊、超聲波模塊、紅外模塊等。本系統(tǒng)的設計意義在于使用簡單的傳感器進行自動避障,避障方案易于實現(xiàn)且方便移植,其對于開發(fā)多功能自動機器人具有借鑒意義,同時它也可以被用于智能玩具的開發(fā)。預留的LCD屏幕可以顯示小車更多的狀態(tài),方便開發(fā)者對小車功能的進一步開發(fā),比如給小車安裝無線手柄進行人為遙控,并使用無線模塊將小車狀態(tài)通過單片機之間的通信顯示在另一單片機的LCD屏幕上。

【參考文獻】

[1]嵇萍.基于單片機的自動避障小車設計[J].蘇州市職業(yè)大學學報,2013, (1):33-35.

[2]冷雪鋒.基于PID的STM32智能小車機器人的設計[J].自動化技術(shù)與應用,2016,第35卷(11):122-127.

[3]馬巧梅.基于51單片機的汽車預警系統(tǒng)的設計與實現(xiàn)*[J].自動化技術(shù)與應用, 2017,第36卷(11):121-124.

[4]代德丹,王猛,李怡.智能避障小車[J].電子世界,2017,(20):111-112.

[5]胡海.基于單片機的自適應避障小車的設計[J].微型電腦應用,2017,第33卷(4):45-47.

[6]張洋,劉軍.原子教你玩STM32(庫函數(shù)版)(第二版)[M].北京:北京航空航天大學出版社,2015.

孟津县| 建宁县| 宁武县| 根河市| 婺源县| 习水县| 千阳县| 格尔木市| 铜陵市| 师宗县| 大悟县| 牟定县| 迁西县| 大宁县| 米易县| 武威市| 射阳县| 子长县| 田东县| 闽清县| 卢龙县| 岳普湖县| 阜宁县| 西平县| 博客| 陈巴尔虎旗| 元朗区| 姜堰市| 厦门市| 罗源县| 修水县| 盐池县| 隆林| 西林县| 买车| 贵定县| 霍林郭勒市| 平陆县| 镇沅| 永寿县| 莱州市|