|
基于單片機的超聲波避障小車設(shè)計 本文完成了基于單片機STC89C52的超聲波避障小車的設(shè)計,程序使用KEIL開發(fā)工具編寫,硬件部分的核心元件有超聲波傳感器和電機驅(qū)動模塊。當(dāng)小車向前行駛時,超聲波傳感器發(fā)送脈沖檢測小車與障礙物間的距離。當(dāng)單片機偵測到前方障礙物進入到危險距離時,即低于設(shè)定的安全距離,報警裝置發(fā)出報警信號,同時根據(jù)預(yù)先設(shè)置的規(guī)則及障礙物具體位置信息輸出PWM波控制電機轉(zhuǎn)動、調(diào)速,控制小車的轉(zhuǎn)彎、后退,完成自動避障。 隨著社會的不斷發(fā)展,科技的進步和人力成本的增加,創(chuàng)新型、科技型甚至傳統(tǒng)型的企業(yè)都開始把目光放在智能小車、智能機器人等一切智能裝備的發(fā)展,京東研發(fā)了智慧物流基地,智能機器人分揀快遞,智能小車運送快遞到指定位置;蘇寧研發(fā)無人重卡,用以支撐物流配送;亞馬遜研發(fā)智能倉儲;阿里建立智慧一號倉庫等,智能小車與智能機器人將成為自動化物流最重要的一員,將完成很多工作。企業(yè)對自動化技術(shù)的要求也越來越高,智能避障是智能小車自主工作的第一步,因此,研究智能小車避障技術(shù)對于完善智能小車的功能是至關(guān)重要的。 自動避障小車其技術(shù)內(nèi)容涵蓋了計算機、機電、自動化控制和傳感器技術(shù)等多個學(xué)科的知識領(lǐng)域,設(shè)計自動避障小車對于自動化專業(yè)本科畢業(yè)生來說具有一定的實踐價值,有利于學(xué)生把學(xué)到的知識運用到實踐中去。本設(shè)計結(jié)合前人的研究成果,利用單片機技術(shù),設(shè)計智能避障小車模型,最終完成小車的自動避障。 1 避障小車總體設(shè)計 本設(shè)計小車的核心裝置是STC89C52單片機,小車的行駛情況由單片機控制輸出信號,經(jīng)過驅(qū)動模塊輸出PWM波控制電機轉(zhuǎn)動、調(diào)速。超聲波智能避障小車設(shè)計的功能核心在于智能小車避障功能的實現(xiàn),設(shè)計的關(guān)鍵點是要解決單片機與超聲波模塊的通信問題,超聲波模塊主要負責(zé)測量周邊的環(huán)境數(shù)據(jù),單片機則是負責(zé)將超聲波模塊反饋的信息進行處理判斷,通過電機驅(qū)動模塊控制小車的轉(zhuǎn)彎、后退等避障功能的完成。 圖1為避障小車系統(tǒng)設(shè)計框圖 本系統(tǒng)主要由STC89C52單片機、超聲波測距模塊、數(shù)碼管驅(qū)動模塊、按鍵模塊、電源模塊、L298N電機驅(qū)動模塊、數(shù)碼管顯示模塊和聲光報警模塊構(gòu)成。 超聲波智能避障小車基本功能為小車能前進與自主避障。電機L298N驅(qū)動模塊在這方面起至關(guān)重要的作用。正是因為有了它,可以更方便的驅(qū)動電機。直流電機帶動輪子,實現(xiàn)了雙驅(qū)的行駛。在小車的后面,裝上萬向輪可以更好配合雙驅(qū)行駛。 2 避障小車硬件設(shè)計 本設(shè)計使用51系列的STC89C52單片機。此類單片機主要是在8051內(nèi)核的基礎(chǔ)上進行優(yōu)化升級的單片機,兼容了8051的全部功能,運行速度與8051相比,速度快,并且因為它帶有ADC, 4路的PWM,兩個串口,不存在兩個同樣的ID號,加密性強,抗干擾好。 STC89C52的工作電壓為3.3-5.5V,工作頻率不高于40MHZ。 圖2 單片機最小系統(tǒng)圖 STC89C52擁有32個通用IO口,不同的端口,結(jié)構(gòu)和功能也不盡相同,大部分的端口不僅可以寫入也可以輸出,如圖2所示。 P0端口因為內(nèi)部沒有上拉電阻,當(dāng)P0作為總部拓展,可直接使用,無需添加外部部件;當(dāng)被用作IO口使用時,需要加上外部上拉電阻。再者,該單片機具有EEPROM及看門狗功能, 512字節(jié)的RAM、 8K字節(jié)FLASH、全雙工串行口、 3個16位定時器/計數(shù)器。 STC89C52存在兩種中斷:定時器中斷和外部中斷。定時器中斷是當(dāng)時間到達設(shè)定時間時,系統(tǒng)中斷。當(dāng)外部輸入信號有下降沿時,會發(fā)生外部中斷;當(dāng)外部電路為低電平電路時,后發(fā)生外部中斷,低電平電路還可以讓單片機從掉電模式中恢復(fù)過來。 與單片機RST引腳連接的那部分電路就為復(fù)位電路,由于給單片機RST引腳高電平持續(xù)2us就可以實現(xiàn)復(fù)位。復(fù)位電路是單片機RST經(jīng)電容接VCC,經(jīng)電阻接地,電容處可并聯(lián)按鍵按鈕。當(dāng)用戶輕擊一下開關(guān)按鍵, VCC、電容和開關(guān)形成回路,導(dǎo)致短路給電容充電,單片機RST引腳得到高電平,因此達到手動復(fù)位的目的。 2.2 超聲波模塊 采用超聲波模塊HC-SR04,其由超聲波發(fā)射器、接收器和控制電路組成,最大射程為4m,最小射程為2cm,測距精度可達3mm。本模塊性能穩(wěn)定,測度距離精確,模塊高精度,盲區(qū)小。通常用于機器人避障、物體測距、公共安防和停車場檢測等項目。 HC-SR04超聲波模塊如圖3所示,有四個引腳,包括觸發(fā)信號Trig,回響信號Echo,供電VCC和GND,測量周期60ms以上。當(dāng)Trig接收到10us以上的脈沖時, HC-SR04內(nèi)部8個40kHZ的電平并檢測回波。 Echo剛收到回波時置1(超出一定范圍收到的信號不夠HC-SR04置1定時器不計數(shù)),單片機定時器開始計算次數(shù),直到Echo沒有收到信號,則置0,記了TH+TL次機器周期,一個機器周期需要12個振蕩周期,由此時間就可以計算出來,再用時間與聲速相乘就可以獲得距離S。 圖3 HC-SR04超聲波模塊 2.3 電機驅(qū)動模塊 本設(shè)計采用L298N電機驅(qū)動模塊,該模塊控制兩個直流電機完成小車避障行駛。 L298N電機驅(qū)動模塊不僅可以驅(qū)動兩路直流電機,還能夠驅(qū)動二相四線步進電機、四相五線,四相六線步進電機。如采用兩個電源供電,則單片機與L298N模塊共地,這樣L298N才能正常工作,給電機賦能。電機賦能之后,緊接著是通過控制四個信號IN1, IN2, IN3, IN4的輸入控制電機制動、變速等。若對直流電機進行PWM調(diào)速,需對使能端輸出PWM( Pulse Width Modulation)脈沖,即可實現(xiàn)調(diào)速。 L298N有四路輸入,四路輸出。輸入口接單片機的P0, IN1和IN3為高電平時左右電機正轉(zhuǎn),根據(jù)ENA、 ENB口輸入的PWM信號的占空比調(diào)整小車的行駛快慢。當(dāng)小車右側(cè)遇到障礙物的時候,控制小車左轉(zhuǎn),左側(cè)電機停轉(zhuǎn),右側(cè)電機在PWM信號調(diào)制下變速轉(zhuǎn)動。當(dāng)小車左側(cè)遇到障礙物時,控制小車右轉(zhuǎn),右側(cè)電機停轉(zhuǎn),左側(cè)電機在PWM信號調(diào)制下變速轉(zhuǎn)動。當(dāng)左右都有障礙物時,通過IN2和IN4端口輸入高電平, IN1, IN3端口輸入低電平控制小車后退,然后再執(zhí)行下一步操作,如左轉(zhuǎn)或右轉(zhuǎn)。 圖4 L298N電機驅(qū)動模塊 3 避障小車軟件設(shè)計 超聲波測距程序流程如圖5所示。超聲波測距程序,程序代碼如下:定義了一個send_wave()函數(shù),給HC-SR04的Trig高電平10uS時間,使超聲波模塊發(fā)出超聲波,接著給定時器清零,啟動定時器,收到返回的聲波后關(guān)閉定時器,通過定時器時間測算出距離,實現(xiàn)超聲波測距。 圖5 超聲波測距程序流程圖 圖6 主程序流程圖 4 結(jié)論 本設(shè)計在某些部分做了一定的工作,但設(shè)計還不夠完美,還需要繼續(xù)完善,如果設(shè)計轉(zhuǎn)化成實際應(yīng)用的產(chǎn)品還需要不斷的改進和提高。 |