雷 丹
(四川信息職業(yè)技術(shù)學(xué)院,四川 廣元 628017)
隨著科技的發(fā)展和進(jìn)步,采用機(jī)器人替代人工來(lái)探知一些危險(xiǎn)區(qū)域或人類(lèi)不能直接到達(dá)的地域,要求探測(cè)機(jī)器人在行進(jìn)中可以實(shí)時(shí)檢測(cè)周?chē)恼系K物,然后根據(jù)檢測(cè)結(jié)果設(shè)計(jì)出合理的運(yùn)行軌跡,保證機(jī)器人可以安全抵達(dá)任何位置。本文以自動(dòng)避障功能為主要研究對(duì)象,選取合適的障礙物探測(cè)方式及避障控制算法,完成整個(gè)無(wú)人避障小車(chē)系統(tǒng)的設(shè)計(jì)。
根據(jù)目前特殊行業(yè)的需求,本文設(shè)計(jì)了無(wú)人避障小車(chē),主要從以下幾個(gè)方面提出了相應(yīng)的設(shè)計(jì)方案。
本文采用了超聲波傳感器和紅外傳感器,超聲波傳感器采用HC-SR04,該傳感器探測(cè)距離為2 cm~450 cm,探測(cè)角度為15°,工作電壓為5 V,可以由單片機(jī)直接供電。為了實(shí)現(xiàn)無(wú)人避障小車(chē)180°的測(cè)距,增加了可旋轉(zhuǎn)360°伺服舵機(jī)來(lái)帶動(dòng)超聲波傳感器進(jìn)行測(cè)距,伺服舵機(jī)的轉(zhuǎn)動(dòng)角度分別設(shè)計(jì)為0°、90°、180°,使得超聲波測(cè)距范圍形成一個(gè)封閉的半圓形結(jié)構(gòu)。由于超聲波測(cè)距有一個(gè)測(cè)距周期,當(dāng)沒(méi)有達(dá)到該測(cè)距周期時(shí)就使用紅外傳感器來(lái)代替超聲波傳感器進(jìn)行障礙物的檢測(cè),這是對(duì)超聲波傳感器的一個(gè)時(shí)間上的補(bǔ)償,這樣就能更加精確地對(duì)外界環(huán)境進(jìn)行檢測(cè)。
超聲波傳感器需要在0°、90°、180°三個(gè)方位上分別進(jìn)行數(shù)據(jù)檢測(cè),每個(gè)方位上單次檢測(cè)會(huì)獲得5組數(shù)據(jù),分別為d1、d2、d3、d4、d5,然后采用冒泡排序法對(duì)5組數(shù)據(jù)進(jìn)行計(jì)算,得出較為精確的結(jié)果。
冒泡排序法計(jì)算過(guò)程為:先對(duì)5組數(shù)據(jù)進(jìn)行比較排序,得出最大值和最小值,假設(shè)最小值為d1,最大值為d5;然后將最小值d1和最大值d5排除;最后再對(duì)剩下的3個(gè)值d2、d3、d4求平均數(shù)得到如下結(jié)果:
(1)
本文中設(shè)計(jì)的無(wú)人避障小車(chē)系統(tǒng)采用4個(gè)直流電機(jī),控制芯片為L(zhǎng)293D,它是一款雙H橋驅(qū)動(dòng)芯片,可同時(shí)驅(qū)動(dòng)兩路直流電機(jī),本文采用了兩個(gè)L293D,1個(gè)控制左側(cè)兩個(gè)直流電機(jī),另一個(gè)控制右側(cè)兩個(gè)直流電機(jī),然后通過(guò)輸入信號(hào)控制直流電機(jī)執(zhí)行正轉(zhuǎn)、反轉(zhuǎn)、停止來(lái)實(shí)現(xiàn)小車(chē)的直行、左轉(zhuǎn)、右轉(zhuǎn),具體的設(shè)計(jì)如下:
(1) 當(dāng)檢測(cè)到?jīng)]有障礙物時(shí),左側(cè)電機(jī)正轉(zhuǎn),右側(cè)電機(jī)正轉(zhuǎn),實(shí)現(xiàn)無(wú)人小車(chē)直行。
(2) 當(dāng)檢測(cè)到左側(cè)有障礙物時(shí),左側(cè)電機(jī)正轉(zhuǎn),右側(cè)電機(jī)反轉(zhuǎn),實(shí)現(xiàn)無(wú)人小車(chē)右轉(zhuǎn)。
(3) 當(dāng)檢測(cè)到右側(cè)有障礙物時(shí),左側(cè)電機(jī)反轉(zhuǎn),右側(cè)電機(jī)正轉(zhuǎn),實(shí)現(xiàn)無(wú)人小車(chē)左轉(zhuǎn)。
無(wú)人避障小車(chē)的控制系統(tǒng)結(jié)構(gòu)框圖如圖1所示,無(wú)人避障小車(chē)系統(tǒng)分為電源模塊、檢測(cè)模塊、顯示模塊、驅(qū)動(dòng)模塊和控制模塊五個(gè)部分。

圖1 無(wú)人避障小車(chē)控制系統(tǒng)結(jié)構(gòu)框圖
電源模塊:為了保證小車(chē)可以自主行駛,本文采用了獨(dú)立電源模塊,該電源模塊使用了供電、程序燒寫(xiě)、串口通信三合一模塊,采用可充電18650鋰電池,主要給4個(gè)直流電機(jī)和單片機(jī)供電,以及進(jìn)行程序燒寫(xiě)和串口通信。
檢測(cè)模塊:該模塊分為超聲波測(cè)距模塊和紅外檢測(cè)模塊兩部分,超聲波測(cè)距模塊為主要模塊,當(dāng)超聲波失效時(shí),作為儲(chǔ)備使用紅外傳感器避障系統(tǒng)。
顯示模塊:使用LCD1602液晶顯示模塊實(shí)時(shí)顯示超聲波檢測(cè)的距離值,LCD1602 液晶第一行顯示智能小車(chē)行駛方向,第二行顯示該方向與障礙物之間的距離。
驅(qū)動(dòng)模塊:包括4個(gè)驅(qū)動(dòng)電機(jī),執(zhí)行小車(chē)的前進(jìn)、左轉(zhuǎn)、右轉(zhuǎn)和后退動(dòng)作。
按鍵模塊:主要控制小車(chē)的啟動(dòng)與停止。
控制模塊:采用51單片機(jī)作為控制單元,主要負(fù)責(zé)協(xié)調(diào)控制其他4個(gè)模塊,使系統(tǒng)可以完整地完成自主避障功能,單片機(jī)的硬件接線(xiàn)圖如圖2所示。

圖2 單片機(jī)的硬件接線(xiàn)圖
無(wú)人避障小車(chē)控制部分軟件包括主程序、超聲波測(cè)距子程序、顯示模塊子程序、電機(jī)調(diào)速子程序和按鍵控制子程序等5個(gè)部分。
主程序的路徑設(shè)計(jì)過(guò)程如圖3所示。小車(chē)啟動(dòng)后朝正前方前進(jìn),當(dāng)遇到障礙物時(shí)小車(chē)停止,這時(shí)單片機(jī)會(huì)先采集超聲波測(cè)量的正前方障礙物的距離并顯示,然后舵機(jī)左轉(zhuǎn)采集左側(cè)障礙物的距離并顯示,再讓舵機(jī)右轉(zhuǎn)測(cè)量右側(cè)障礙物的距離并顯示,如果三個(gè)方向的距離都小于10 cm說(shuō)明空間極其狹窄,小車(chē)會(huì)原地左轉(zhuǎn)然后繼續(xù)檢測(cè)直至小車(chē)檢測(cè)到有一條合理的路線(xiàn)離開(kāi)這個(gè)空間;如果小車(chē)左側(cè)的距離大于右側(cè)小車(chē)就原地左轉(zhuǎn),如果右側(cè)的距離大于左側(cè)小車(chē)就會(huì)右轉(zhuǎn)。然后小車(chē)?yán)^續(xù)前行,直到再次遇到障礙物進(jìn)入下一個(gè)循環(huán)。

圖3 主程序流程圖
本文基于單片機(jī)開(kāi)發(fā)了一款無(wú)人避障小車(chē),為了實(shí)現(xiàn)180°的檢測(cè)范圍,將伺服電機(jī)與超聲波傳感器結(jié)合起來(lái),以實(shí)時(shí)地檢測(cè)小車(chē)前方是否出現(xiàn)障礙物,并判斷出障礙物的具體方位,為小車(chē)設(shè)計(jì)出合理的避障路徑,實(shí)現(xiàn)了小車(chē)的智能化行駛。