余昕 王梓璇 楊詩潔 陸瑞敏 徐思琪
西南石油大學(xué)電氣信息學(xué)院
前言:智能化作為現(xiàn)代科技進(jìn)步的新興產(chǎn)物,必定是大勢(shì)所趨。智能避障小車的出現(xiàn)為家用掃地機(jī)器人、自動(dòng)運(yùn)輸機(jī)器人和自主勘探機(jī)器人等智能產(chǎn)品的設(shè)計(jì)和推廣打下了堅(jiān)實(shí)的基礎(chǔ)。同時(shí),對(duì)于我國的商業(yè),軍事,航天,運(yùn)輸,石油,水利等多種領(lǐng)域的快速發(fā)展也起到推波助瀾的作用。隨著我國工業(yè)、農(nóng)業(yè)、太空探索等領(lǐng)域的不斷發(fā)展,必然會(huì)驅(qū)動(dòng)產(chǎn)生更多的實(shí)用型智能車,因此,這方面的研究存在巨大潛力。針對(duì)當(dāng)前大多數(shù)智能小車以單一的超聲波傳感器進(jìn)行檢測(cè)及避障的不準(zhǔn)確性,本文介紹了一種基于C51的智能避障系統(tǒng),利用STC89C51單片機(jī)作為核心模塊,以keil軟件為開發(fā)環(huán)境,采用超聲波測(cè)距和紅外避障等多傳感器信息融合的采集系統(tǒng),通過對(duì)數(shù)據(jù)的算法優(yōu)化,提升小車對(duì)環(huán)境的感測(cè)精度,有效提高了小車的避障成功率。
系統(tǒng)總體結(jié)構(gòu)如圖1所示。該系統(tǒng)由以下幾部分組成:小車平臺(tái)(包含四個(gè)電機(jī))、STC89C51單片機(jī)、信息采集模塊(含超聲波測(cè)距傳感器HC-SR04和紅外避障傳感器)、電機(jī)驅(qū)動(dòng)模塊(ULN2003)、電源模塊(5V直流電源)、顯示模塊(LCD1602)等。因?yàn)檐囶^是信息采集的主要部位,要盡量滿足信息采集的全面性,而且必須具備測(cè)距精度高,時(shí)效快的特點(diǎn),將信息采集模塊按圖2所示分布。
圖1 系統(tǒng)方案總體框圖
圖2 信息采集模塊分布示意圖
車頭前方安裝兩個(gè)HC-SR04超聲波測(cè)距模塊,該模塊的有效測(cè)量距離為2cm-400cm,其測(cè)量的精度為3mm,測(cè)量角度為15o。為擴(kuò)大整個(gè)小車探測(cè)障礙物的能力,在超聲波旁邊放置兩個(gè)紅外避障模塊,其朝向?yàn)槌暡ㄗ笥?0o,再在小車車頭的左右45o放置同樣的兩個(gè)紅外避障模塊(圖中的左1、左2、右2、右1)。此設(shè)計(jì)中車頭前方的兩種不同的傳感器優(yōu)勢(shì)互補(bǔ),有效提升了小車對(duì)環(huán)境的感測(cè)精度。
電機(jī)驅(qū)動(dòng)電路采用ULN2003芯片控制實(shí)現(xiàn),可由單片機(jī)直接控制。用單片機(jī)的P1.0-P1.3的4個(gè)I/O口控制該驅(qū)動(dòng)芯片,從而驅(qū)動(dòng)步進(jìn)電機(jī),形成五項(xiàng)四線電機(jī)電路,從而控制小車的前進(jìn),并且通過單邊轉(zhuǎn)動(dòng),可以控制小車的轉(zhuǎn)彎。電源模塊采用5V直流電源給ULN2003供電,在5V的工作電壓下ULN2003能與TTL和CMOS電路直接相連,工作電壓高,工作電流大。電源模塊的設(shè)計(jì)除了考慮系統(tǒng)各模塊電壓和電流等參數(shù)來確保系統(tǒng)工作穩(wěn)定性,也最大程度地實(shí)現(xiàn)了各模塊電源轉(zhuǎn)換效率、降低噪聲、防止干擾等方面的優(yōu)化。系統(tǒng)各硬件模塊性能穩(wěn)定、操作簡單,符合智能小車的性能要求。
STC89C51單片機(jī)負(fù)責(zé)小車超聲波傳感器、紅外傳感器數(shù)據(jù)的采集、讀取,進(jìn)行避障算法的運(yùn)算,并控制小車電機(jī)驅(qū)動(dòng)模塊實(shí)現(xiàn)小車行前進(jìn)、遇障轉(zhuǎn)彎、停止等功能,從而控制小車高效、準(zhǔn)確避障;超聲波測(cè)距模塊負(fù)責(zé)對(duì)前方障礙物進(jìn)行探測(cè),將測(cè)得的信息反饋給主控模塊進(jìn)行測(cè)距操作;紅外避障模塊負(fù)責(zé)對(duì)小車左右兩邊的障礙物進(jìn)行探測(cè),并對(duì)前方超聲波測(cè)距模塊的測(cè)距死角區(qū)域的障礙物進(jìn)行探測(cè),將障礙物的信息反饋給主控模塊以便主控模塊做出避障反應(yīng);顯示模塊負(fù)責(zé)將超聲波測(cè)距模塊測(cè)得的距離信息顯示出來,以便能夠直觀方便的了解車輛距離前方障礙物的距離信息。該系統(tǒng)在啟動(dòng)前一直處于超聲波測(cè)距狀態(tài),通過一個(gè)按鍵實(shí)現(xiàn)對(duì)小車的啟動(dòng),然后小車向前,當(dāng)超聲波探測(cè)的距離小于30cm時(shí),返回單片機(jī)來讓小車短暫停止來判斷小車的紅外避障模塊是否探測(cè)到障礙物,如果探測(cè)到障礙物單片機(jī)做出避障算法并將相應(yīng)的信息傳遞給電機(jī)驅(qū)動(dòng)電路,從而實(shí)現(xiàn)小車的停止與轉(zhuǎn)彎。
本系統(tǒng)軟件采用模塊化結(jié)構(gòu),由主程序、避障子程序、電機(jī)驅(qū)動(dòng)程序、測(cè)量子程序、顯示子程序構(gòu)成,如圖3所示。STC89C51單片機(jī)控制器軟件模塊實(shí)現(xiàn)了小車實(shí)時(shí)接受控制命令,對(duì)超聲波傳感器模塊、紅外傳感器模塊收集的數(shù)據(jù)進(jìn)行優(yōu)化,對(duì)智能小車避障策略進(jìn)行選擇,LCD實(shí)時(shí)顯示障礙物距離,并通過軟件調(diào)節(jié)驅(qū)動(dòng)直流電機(jī)的PWM信號(hào)的大小,控制左右輪轉(zhuǎn)速,實(shí)現(xiàn)小車各種避障動(dòng)作。
小車的避障策略如圖4所示。當(dāng)小車通過按鍵啟動(dòng)后,小車向前行駛,同時(shí)超聲波測(cè)距模塊和紅外避障模塊開始工作,探測(cè)障礙物的大小距離等信息。當(dāng)超聲波探測(cè)到的距離小于30cm時(shí),紅外避障模塊探測(cè)左右兩邊是否存在障礙物,當(dāng)左邊有障礙物時(shí),小車向右轉(zhuǎn)彎直至超聲波探測(cè)到的距離大于30cm時(shí)且左邊的紅外探測(cè)到物障礙物,則繼續(xù)向前行駛,直至下一次遇到障礙物,反之亦然;當(dāng)超聲波探測(cè)到的距離信息小于30cm且左右兩邊均沒有探測(cè)到障礙物,則小車默認(rèn)右轉(zhuǎn);當(dāng)超聲波探測(cè)到的距離信息小于30cm且左右兩邊都存在障礙物時(shí),小車停止。
圖3 軟件設(shè)計(jì)圖
圖4 避障策略框圖
設(shè)計(jì)方案中采用HC-SR04超聲波測(cè)距模塊,該模塊主要由發(fā)射部分和接收部分組成,該模塊由主控單片機(jī)控制P2.1口發(fā)出8個(gè)40KHz的方波,檢測(cè)是否有信號(hào)返回,當(dāng)有信號(hào)返回時(shí),測(cè)距模塊反饋給單片機(jī)P2.0口一個(gè)高電平。該模塊可直接與單片機(jī)相連,由單片機(jī)驅(qū)動(dòng)該模塊進(jìn)行測(cè)距,利用單片機(jī)的定時(shí)器T0計(jì)時(shí)計(jì)算出所測(cè)距離S,如公式(4.1)所示。
紅外避障電路由光電二極管組成,采用LM393比較器對(duì)電壓值進(jìn)行比較,利用電位器調(diào)節(jié)參考電壓,從而實(shí)現(xiàn)對(duì)障礙物的探測(cè)。當(dāng)接收二極管沒有接收到有障礙物信息時(shí),LM393指示燈處于長滅狀態(tài)。當(dāng)接收二極管接收到有障礙物信息時(shí),LM393輸出一個(gè)低電平,此時(shí)指示燈亮。
與超聲波模塊相似,其電源依舊與單片機(jī)共用,將該模塊的OUT端與單片機(jī)的I/O端口相連即可。根據(jù)布局方案,本設(shè)計(jì)采用四個(gè)紅外避障模塊,依次檢測(cè)左右兩邊的障礙物分別與單片機(jī)的引腳連接。
小車軟硬件平臺(tái)設(shè)計(jì)完畢后。為了驗(yàn)證智能小車的避障性能,在實(shí)物環(huán)境下對(duì)其進(jìn)行實(shí)驗(yàn)測(cè)試。智能小車在前進(jìn)過程中信息采集系統(tǒng)不斷探測(cè)前方周圍是否有障礙物,當(dāng)存在障礙物時(shí),能夠判斷出相應(yīng)障礙物的方向和距離,并采取相應(yīng)的避障動(dòng)作。
當(dāng)小車遇到墻角時(shí),小車按照?qǐng)D中箭頭所示的路徑行駛,在距離前方障礙物較近時(shí),小車開始轉(zhuǎn)彎,直到與障礙物基本平行時(shí)再前進(jìn),右邊探測(cè)到障礙物,則再向左轉(zhuǎn),最終成功躲避障礙物。
順利通過躲避墻角障礙物后,再按照?qǐng)D5所示擺放障礙物,當(dāng)小車遇到多障礙物時(shí),按照?qǐng)D中箭頭所示的路徑行駛,小車在前進(jìn)的過程中遇到障礙物,由于此時(shí)左右兩邊均沒有障礙物,所以此時(shí)小車左轉(zhuǎn),轉(zhuǎn)過來之后小車前進(jìn),左邊的紅外避障模塊探測(cè)到左邊的障礙物后往右轉(zhuǎn),然后小車再次探測(cè)到前方障礙物,再向右轉(zhuǎn),從兩個(gè)障礙物之間穿過。
圖5 多障礙物避障
根據(jù)上述的測(cè)試過程,對(duì)小車在多障礙物時(shí)能夠準(zhǔn)確躲避的效果進(jìn)行了統(tǒng)計(jì),結(jié)果如表1所示。
表1 避障測(cè)試結(jié)果
總結(jié):本設(shè)計(jì)采用 STC89C51芯片對(duì)直流電機(jī)進(jìn)行控制,同時(shí)采用超聲波以及紅外傳感器檢測(cè)周圍障礙,再由芯片做出判斷,選擇正確路線。液晶顯示器由單片機(jī)控制進(jìn)行讀寫操作,并在其上面顯示數(shù)據(jù)。智能小車避障系統(tǒng)中用了紅外傳感器及超聲波傳感器,通過輸出端口輸出相應(yīng)的電機(jī)驅(qū)動(dòng)信號(hào)控制小車,實(shí)現(xiàn)相應(yīng)的動(dòng)作來達(dá)到避開障礙物的目的。利用紅外傳感器、超聲波傳感器檢測(cè)道路上的障礙,控制電動(dòng)小車的自動(dòng)避障,并通過液晶顯示距離。整個(gè)系統(tǒng)的電路結(jié)構(gòu)較簡單,可靠性能高,實(shí)際測(cè)試效果較好,很好的滿足了題目的要求,并在題目的要求基礎(chǔ)上有一定創(chuàng)意和發(fā)揮,使整個(gè)設(shè)計(jì)更加人性化。