首頁 >> 新聞中心 >>行業(yè)科技 >> 基于單片機(jī)的超聲波避障小車設(shè)計(jì)
详细内容

基于單片機(jī)的超聲波避障小車設(shè)計(jì)

      本文完成了基于單片機(jī)STC89C52的超聲波避障小車的設(shè)計(jì),程序使用KEIL開發(fā)工具編寫,硬件部分的核心元件有超聲波傳感器和電機(jī)驅(qū)動(dòng)模塊。當(dāng)小車向前行駛時(shí),超聲波傳感器發(fā)送脈沖檢測(cè)小車與障礙物間的距離。當(dāng)單片機(jī)偵測(cè)到前方障礙物進(jìn)入到危險(xiǎn)距離時(shí),即低于設(shè)定的安全距離,報(bào)警裝置發(fā)出報(bào)警信號(hào),同時(shí)根據(jù)預(yù)先設(shè)置的規(guī)則及障礙物具體位置信息輸出PWM波控制電機(jī)轉(zhuǎn)動(dòng)、調(diào)速,控制小車的轉(zhuǎn)彎、后退,完成自動(dòng)避障。

      隨著社會(huì)的不斷發(fā)展,科技的進(jìn)步和人力成本的增加,創(chuàng)新型、科技型甚至傳統(tǒng)型的企業(yè)都開始把目光放在智能小車、智能機(jī)器人等一切智能裝備的發(fā)展,京東研發(fā)了智慧物流基地,智能機(jī)器人分揀快遞,智能小車運(yùn)送快遞到指定位置;蘇寧研發(fā)無人重卡,用以支撐物流配送;亞馬遜研發(fā)智能倉儲(chǔ);阿里建立智慧一號(hào)倉庫等,智能小車與智能機(jī)器人將成為自動(dòng)化物流最重要的一員,將完成很多工作。企業(yè)對(duì)自動(dòng)化技術(shù)的要求也越來越高,智能避障是智能小車自主工作的第一步,因此,研究智能小車避障技術(shù)對(duì)于完善智能小車的功能是至關(guān)重要的。

      自動(dòng)避障小車其技術(shù)內(nèi)容涵蓋了計(jì)算機(jī)、機(jī)電、自動(dòng)化控制和傳感器技術(shù)等多個(gè)學(xué)科的知識(shí)領(lǐng)域,設(shè)計(jì)自動(dòng)避障小車對(duì)于自動(dòng)化專業(yè)本科畢業(yè)生來說具有一定的實(shí)踐價(jià)值,有利于學(xué)生把學(xué)到的知識(shí)運(yùn)用到實(shí)踐中去。本設(shè)計(jì)結(jié)合前人的研究成果,利用單片機(jī)技術(shù),設(shè)計(jì)智能避障小車模型,最終完成小車的自動(dòng)避障。

1 避障小車總體設(shè)計(jì)

      本設(shè)計(jì)小車的核心裝置是STC89C52單片機(jī),小車的行駛情況由單片機(jī)控制輸出信號(hào),經(jīng)過驅(qū)動(dòng)模塊輸出PWM波控制電機(jī)轉(zhuǎn)動(dòng)、調(diào)速。超聲波智能避障小車設(shè)計(jì)的功能核心在于智能小車避障功能的實(shí)現(xiàn),設(shè)計(jì)的關(guān)鍵點(diǎn)是要解決單片機(jī)與超聲波模塊的通信問題,超聲波模塊主要負(fù)責(zé)測(cè)量周邊的環(huán)境數(shù)據(jù),單片機(jī)則是負(fù)責(zé)將超聲波模塊反饋的信息進(jìn)行處理判斷,通過電機(jī)驅(qū)動(dòng)模塊控制小車的轉(zhuǎn)彎、后退等避障功能的完成。

5e6faefe-b627-4af6-9fcc-c881b8a79d5e.png

1為避障小車系統(tǒng)設(shè)計(jì)框圖

      本系統(tǒng)主要由STC89C52單片機(jī)、超聲波測(cè)距模塊、數(shù)碼管驅(qū)動(dòng)模塊、按鍵模塊、電源模塊、L298N電機(jī)驅(qū)動(dòng)模塊、數(shù)碼管顯示模塊和聲光報(bào)警模塊構(gòu)成。

      超聲波智能避障小車基本功能為小車能前進(jìn)與自主避障。電機(jī)L298N驅(qū)動(dòng)模塊在這方面起至關(guān)重要的作用。正是因?yàn)橛辛怂,可以更方便的?qū)動(dòng)電機(jī)。直流電機(jī)帶動(dòng)輪子,實(shí)現(xiàn)了雙驅(qū)的行駛。在小車的后面,裝上萬向輪可以更好配合雙驅(qū)行駛。

2 避障小車硬件設(shè)計(jì)
2.1 單片機(jī)最小系統(tǒng)

      本設(shè)計(jì)使用51系列的STC89C52單片機(jī)。此類單片機(jī)主要是在8051內(nèi)核的基礎(chǔ)上進(jìn)行優(yōu)化升級(jí)的單片機(jī),兼容了8051的全部功能,運(yùn)行速度與8051相比,速度快,并且因?yàn)樗鼛в?/span>ADC, 4路的PWM,兩個(gè)串口,不存在兩個(gè)同樣的ID號(hào),加密性強(qiáng),抗干擾好。 STC89C52的工作電壓為3.3-5.5V,工作頻率不高于40MHZ

4d5ecf62-3e23-4a0b-ae7f-711aca45dad3.png

圖2 單片機(jī)最小系統(tǒng)圖

      STC89C52擁有32個(gè)通用IO口,不同的端口,結(jié)構(gòu)和功能也不盡相同,大部分的端口不僅可以寫入也可以輸出,如圖2所示。 P0端口因?yàn)閮?nèi)部沒有上拉電阻,當(dāng)P0作為總部拓展,可直接使用,無需添加外部部件;當(dāng)被用作IO口使用時(shí),需要加上外部上拉電阻。再者,該單片機(jī)具有EEPROM及看門狗功能, 512字節(jié)的RAM、 8K字節(jié)FLASH、全雙工串行口、 3個(gè)16位定時(shí)器/計(jì)數(shù)器。

      STC89C52存在兩種中斷:定時(shí)器中斷和外部中斷。定時(shí)器中斷是當(dāng)時(shí)間到達(dá)設(shè)定時(shí)間時(shí),系統(tǒng)中斷。當(dāng)外部輸入信號(hào)有下降沿時(shí),會(huì)發(fā)生外部中斷;當(dāng)外部電路為低電平電路時(shí),后發(fā)生外部中斷,低電平電路還可以讓單片機(jī)從掉電模式中恢復(fù)過來。

      與單片機(jī)RST引腳連接的那部分電路就為復(fù)位電路,由于給單片機(jī)RST引腳高電平持續(xù)2us就可以實(shí)現(xiàn)復(fù)位。復(fù)位電路是單片機(jī)RST經(jīng)電容接VCC,經(jīng)電阻接地,電容處可并聯(lián)按鍵按鈕。當(dāng)用戶輕擊一下開關(guān)按鍵, VCC、電容和開關(guān)形成回路,導(dǎo)致短路給電容充電,單片機(jī)RST引腳得到高電平,因此達(dá)到手動(dòng)復(fù)位的目的。
      在圖2中,導(dǎo)線連接在XTAL1XTAL2GND間所組成的電路為時(shí)鐘電路, XTAL就是外接晶振,時(shí)鐘電路由一個(gè)晶振和兩個(gè)20pF的電容器組成,晶振頻率采用最常見的12MHz,為了方便設(shè)置波特率。

2.2 超聲波模塊
      本設(shè)計(jì)采用超聲波傳感器實(shí)現(xiàn)避障,超聲測(cè)距具有方便、計(jì)算簡(jiǎn)單、容易實(shí)現(xiàn)實(shí)時(shí)控制的優(yōu)點(diǎn),并且在測(cè)量距離、測(cè)量精度等方面能達(dá)到實(shí)際使用的要求。

      采用超聲波模塊HC-SR04,其由超聲波發(fā)射器、接收器和控制電路組成,最大射程為4m,最小射程為2cm,測(cè)距精度可達(dá)3mm。本模塊性能穩(wěn)定,測(cè)度距離精確,模塊高精度,盲區(qū)小。通常用于機(jī)器人避障、物體測(cè)距、公共安防和停車場(chǎng)檢測(cè)等項(xiàng)目。

      HC-SR04超聲波模塊如圖3所示,有四個(gè)引腳,包括觸發(fā)信號(hào)Trig,回響信號(hào)Echo,供電VCCGND,測(cè)量周期60ms以上。當(dāng)Trig接收到10us以上的脈沖時(shí), HC-SR04內(nèi)部8個(gè)40kHZ的電平并檢測(cè)回波。

      Echo剛收到回波時(shí)置1(超出一定范圍收到的信號(hào)不夠HC-SR041定時(shí)器不計(jì)數(shù)),單片機(jī)定時(shí)器開始計(jì)算次數(shù),直到Echo沒有收到信號(hào),則置0,記了TH+TL次機(jī)器周期,一個(gè)機(jī)器周期需要12個(gè)振蕩周期,由此時(shí)間就可以計(jì)算出來,再用時(shí)間與聲速相乘就可以獲得距離S。

7e737c69-4aac-4ede-b7df-75294ec59b3c.png

圖3 HC-SR04超聲波模塊

2.3 電機(jī)驅(qū)動(dòng)模塊

      本設(shè)計(jì)采用L298N電機(jī)驅(qū)動(dòng)模塊,該模塊控制兩個(gè)直流電機(jī)完成小車避障行駛。 L298N電機(jī)驅(qū)動(dòng)模塊不僅可以驅(qū)動(dòng)兩路直流電機(jī),還能夠驅(qū)動(dòng)二相四線步進(jìn)電機(jī)、四相五線,四相六線步進(jìn)電機(jī)。如采用兩個(gè)電源供電,則單片機(jī)與L298N模塊共地,這樣L298N才能正常工作,給電機(jī)賦能。電機(jī)賦能之后,緊接著是通過控制四個(gè)信號(hào)IN1, IN2, IN3IN4的輸入控制電機(jī)制動(dòng)、變速等。若對(duì)直流電機(jī)進(jìn)行PWM調(diào)速,需對(duì)使能端輸出PWMPulse Width Modulation)脈沖,即可實(shí)現(xiàn)調(diào)速。

      L298N有四路輸入,四路輸出。輸入口接單片機(jī)的P0, IN1IN3為高電平時(shí)左右電機(jī)正轉(zhuǎn),根據(jù)ENA、 ENB口輸入的PWM信號(hào)的占空比調(diào)整小車的行駛快慢。當(dāng)小車右側(cè)遇到障礙物的時(shí)候,控制小車左轉(zhuǎn),左側(cè)電機(jī)停轉(zhuǎn),右側(cè)電機(jī)在PWM信號(hào)調(diào)制下變速轉(zhuǎn)動(dòng)。當(dāng)小車左側(cè)遇到障礙物時(shí),控制小車右轉(zhuǎn),右側(cè)電機(jī)停轉(zhuǎn),左側(cè)電機(jī)在PWM信號(hào)調(diào)制下變速轉(zhuǎn)動(dòng)。當(dāng)左右都有障礙物時(shí),通過IN2IN4端口輸入高電平, IN1, IN3端口輸入低電平控制小車后退,然后再執(zhí)行下一步操作,如左轉(zhuǎn)或右轉(zhuǎn)。

cbe48207-becb-4b7e-b513-39d1a414c5e4.png

圖4 L298N電機(jī)驅(qū)動(dòng)模塊

3 避障小車軟件設(shè)計(jì)
3.1 超聲波測(cè)距程序設(shè)計(jì)

      超聲波測(cè)距程序流程如圖5所示。超聲波測(cè)距程序,程序代碼如下:定義了一個(gè)send_wave()函數(shù),給HC-SR04Trig高電平10uS時(shí)間,使超聲波模塊發(fā)出超聲波,接著給定時(shí)器清零,啟動(dòng)定時(shí)器,收到返回的聲波后關(guān)閉定時(shí)器,通過定時(shí)器時(shí)間測(cè)算出距離,實(shí)現(xiàn)超聲波測(cè)距。

71d31881-090a-4383-a2f6-f009094c26c9.png

圖5 超聲波測(cè)距程序流程圖                圖6 主程序流程圖
3.2 主程序設(shè)計(jì)
      程序使用KEIL開發(fā)工具編寫,小車啟動(dòng)后,超聲波模塊工作,調(diào)用超聲波測(cè)距函數(shù),得到距離后,傳給單片機(jī),然后數(shù)碼管將距離顯示給用戶看,系統(tǒng)再調(diào)用處理顯示函數(shù),判斷是否小于設(shè)定安全距離,如果小于安全距離,聲光報(bào)警,調(diào)用報(bào)警函數(shù)及小車避障子程序,控制驅(qū)動(dòng)電路,小車按照預(yù)定的避障規(guī)則行進(jìn)避障。即當(dāng)小車右側(cè)遇到障礙物的時(shí)候,控制小車左轉(zhuǎn),左側(cè)電機(jī)停轉(zhuǎn),右側(cè)電機(jī)在PWM信號(hào)調(diào)制下變速轉(zhuǎn)動(dòng)。當(dāng)小車左側(cè)遇到障礙物時(shí),控制小車右轉(zhuǎn),右側(cè)電機(jī)停轉(zhuǎn),左側(cè)電機(jī)在PWM信號(hào)調(diào)制下變速轉(zhuǎn)動(dòng)。當(dāng)左右都有障礙物時(shí),通過IN2IN4端口輸入高電平, IN1, IN3端口輸入低電平控制小車后退,然后再執(zhí)行下一步操作,如左轉(zhuǎn)或右轉(zhuǎn)。如果否,則繼續(xù)使用小車前進(jìn)函數(shù),繼續(xù)測(cè)量距離。

4 結(jié)論
      本文設(shè)計(jì)了一款基于STC89C52單片機(jī)的超聲波避障小車,設(shè)計(jì)采用HC-SR04超聲波模塊和L298N電機(jī)驅(qū)動(dòng)模塊。超聲波傳感器檢測(cè)小車與障礙物之間的距離,單片機(jī)對(duì)障礙物位置信息進(jìn)行判斷,根據(jù)預(yù)先設(shè)置的規(guī)則及障礙物當(dāng)前位置信息,通過L298N電機(jī)模塊控制電機(jī)前進(jìn),轉(zhuǎn)彎或后退,實(shí)現(xiàn)自動(dòng)避障。

      本設(shè)計(jì)在某些部分做了一定的工作,但設(shè)計(jì)還不夠完美,還需要繼續(xù)完善,如果設(shè)計(jì)轉(zhuǎn)化成實(shí)際應(yīng)用的產(chǎn)品還需要不斷的改進(jìn)和提高。


班寧產(chǎn)品匯總

seo seo