|
基于單片機(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ā)智能倉(cāng)儲(chǔ);阿里建立智慧一號(hào)倉(cāng)庫(kù)等,智能小車與智能機(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)彎、后退等避障功能的完成。 圖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ì) 本設(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。 圖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.2 超聲波模塊 采用超聲波模塊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,供電VCC和GND,測(cè)量周期60ms以上。當(dāng)Trig接收到10us以上的脈沖時(shí), HC-SR04內(nèi)部8個(gè)40kHZ的電平并檢測(cè)回波。 Echo剛收到回波時(shí)置1(超出一定范圍收到的信號(hào)不夠HC-SR04置1定時(shí)器不計(jì)數(shù)),單片機(jī)定時(shí)器開始計(jì)算次數(shù),直到Echo沒有收到信號(hào),則置0,記了TH+TL次機(jī)器周期,一個(gè)機(jī)器周期需要12個(gè)振蕩周期,由此時(shí)間就可以計(jì)算出來,再用時(shí)間與聲速相乘就可以獲得距離S。 圖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, IN3, IN4的輸入控制電機(jī)制動(dòng)、變速等。若對(duì)直流電機(jī)進(jìn)行PWM調(diào)速,需對(duì)使能端輸出PWM( Pulse Width Modulation)脈沖,即可實(shí)現(xiàn)調(diào)速。 L298N有四路輸入,四路輸出。輸入口接單片機(jī)的P0, IN1和IN3為高電平時(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í),通過IN2和IN4端口輸入高電平, IN1, IN3端口輸入低電平控制小車后退,然后再執(zhí)行下一步操作,如左轉(zhuǎn)或右轉(zhuǎn)。 圖4 L298N電機(jī)驅(qū)動(dòng)模塊 3 避障小車軟件設(shè)計(jì) 超聲波測(cè)距程序流程如圖5所示。超聲波測(cè)距程序,程序代碼如下:定義了一個(gè)send_wave()函數(shù),給HC-SR04的Trig高電平10uS時(shí)間,使超聲波模塊發(fā)出超聲波,接著給定時(shí)器清零,啟動(dòng)定時(shí)器,收到返回的聲波后關(guān)閉定時(shí)器,通過定時(shí)器時(shí)間測(cè)算出距離,實(shí)現(xiàn)超聲波測(cè)距。 圖5 超聲波測(cè)距程序流程圖 圖6 主程序流程圖 4 結(jié)論 本設(shè)計(jì)在某些部分做了一定的工作,但設(shè)計(jì)還不夠完美,還需要繼續(xù)完善,如果設(shè)計(jì)轉(zhuǎn)化成實(shí)際應(yīng)用的產(chǎn)品還需要不斷的改進(jìn)和提高。 |