強(qiáng)勝嶺+初俊博+藺躍成
【摘 要】本次設(shè)計(jì)是對(duì)C51寶貝車機(jī)器人的控制系統(tǒng)進(jìn)行研究設(shè)計(jì),目的要實(shí)現(xiàn)一個(gè)基于路徑規(guī)劃處理和智能避障的寶貝車機(jī)器人控制系統(tǒng)。
【關(guān)鍵詞】觸須;避障;單片機(jī)
1 設(shè)計(jì)功能
本次設(shè)計(jì)中,我們采用了人性化的思想,利用觸覺感知能力來實(shí)現(xiàn)寶貝車的導(dǎo)航避障能力,C51單片機(jī)充當(dāng)寶貝車的大腦,在小車前端裝一對(duì)觸須傳感器用來充當(dāng)小車的觸覺開關(guān),通過對(duì)觸覺狀態(tài)的監(jiān)視,以決定當(dāng)小車碰到障礙時(shí)如何動(dòng)作,從而實(shí)現(xiàn)利用觸須觸覺來實(shí)現(xiàn)小車的導(dǎo)航避障功能[1]。
2 機(jī)器人伺服電機(jī)的控制
首先要對(duì)小車的兩個(gè)伺服電機(jī)進(jìn)行零點(diǎn)矯正,即用延時(shí)函數(shù)產(chǎn)生一個(gè)高電平脈沖信號(hào)持續(xù)1.5ms,低電平脈沖信號(hào)持續(xù)20ms,發(fā)送給伺服電機(jī),若伺服電機(jī)不旋轉(zhuǎn)則電機(jī)已調(diào)零,若電機(jī)處于轉(zhuǎn)動(dòng)轉(zhuǎn)動(dòng)狀態(tài)則需用螺絲刀對(duì)伺服電機(jī)進(jìn)行調(diào)零。我們可以根據(jù)控制信號(hào)脈寬調(diào)制調(diào)速原理,用延時(shí)函數(shù)設(shè)定的延時(shí)長短來控制控制電機(jī)運(yùn)轉(zhuǎn)速度以及順逆轉(zhuǎn)狀態(tài)。由實(shí)驗(yàn)可知延時(shí)小于1.5ms時(shí)是順時(shí)針旋轉(zhuǎn),大于1.5ms時(shí)是逆時(shí)針旋轉(zhuǎn)[2]。
根據(jù)以上實(shí)踐證明可以得出以下幾個(gè)結(jié)論:
已知左輪引腳接P1_1,右輪引腳接P1_0
1)停止
P1_1延時(shí)1.5ms,P1_0延時(shí)1.5ms;
2)前進(jìn)
P1_1延時(shí)1.7ms,P1_0延時(shí)1.3ms;
3)后退
P1_1延時(shí)1.3ms,P1_0延時(shí)1.7ms;
4)右轉(zhuǎn)
P1_1延時(shí)1.7ms,P1_0延時(shí)1.5ms;
5)左轉(zhuǎn)
P1_1延時(shí)1.5ms,P1_0延時(shí)1.3ms;
3 觸覺傳感器的安裝測試
3.1 安裝觸須
如圖1所示是安裝機(jī)器人觸覺觸須安裝示意圖及觸須電路圖。
3.2 測試機(jī)器人觸須
其實(shí)觸須感知傳感器的工作原理是通過傳感元件是否接地來控制左右驅(qū)動(dòng)引腳的高低電平狀態(tài),再將左右驅(qū)動(dòng)引腳高低電平信息傳輸?shù)轿⒖刂破鲝亩鴮?shí)現(xiàn)避障導(dǎo)航的功能。觸須接地(GND)是通過主板外圍的鍍金孔都連接到GND,而金屬支架和螺絲釘提供電氣連接給觸須如圖1所示。
3.3 獲取觸須狀態(tài)
觸須狀態(tài)的獲取是實(shí)現(xiàn)小車避障的核心工作,觸須的觸動(dòng)與否通過對(duì)微控制器即C51單片機(jī)編程來實(shí)現(xiàn)。圖1說明是如何工作的。當(dāng)觸須沒有碰到障礙物時(shí),連接觸須的I/O管腳的電壓是高電平;當(dāng)觸須碰到障礙物時(shí),I/O短接到地,所以I/O管腳的電壓是低電平。
C51單片機(jī)啟動(dòng)或復(fù)位時(shí),所有的I/O插腳缺省為輸入。也就是說,連接到觸須的I/O管腳會(huì)自動(dòng)作為輸入。作為輸入,如果I/O腳上的電壓為高電平(觸須沒有碰到障礙物),則其相應(yīng)的寄存器中的相應(yīng)位存儲(chǔ)1;如果電壓為低電平(觸須碰到障礙物),則存儲(chǔ)0.
4 觸覺導(dǎo)航避障策略實(shí)現(xiàn)
寶貝車行走過程中,導(dǎo)航避障程序需要接受觸須傳來的感知信息,判斷它的意義,調(diào)用一系列使寶貝車前進(jìn)、后退、朝不同方向行走的動(dòng)作子函數(shù)??捎胕f…else…if多分支選擇語句來實(shí)現(xiàn)[3],子動(dòng)作流程框圖如圖2所示。
5 逃離墻角死區(qū)改進(jìn)
假如寶貝車進(jìn)入了墻角,左觸須觸碰到障礙物,于是它右轉(zhuǎn),向前行走,右觸須觸碰到障礙物,于是左轉(zhuǎn)前進(jìn),又碰到左邊障礙物,再次碰到右邊障礙物……如果不把它從墻角拿出來,它就會(huì)一直困在墻角里而出不來。
解決方案:
導(dǎo)航程序記錄每個(gè)觸須的前一次觸碰狀態(tài),并和當(dāng)前觸碰狀態(tài)對(duì)比。如果狀態(tài)相反,就在交替總數(shù)上加1。如果這個(gè)交替總數(shù)超過了導(dǎo)航程序中預(yù)先給定的閥值,那么就該做一個(gè)“U”型轉(zhuǎn)彎,并且把觸須交替計(jì)數(shù)器復(fù)位。
逃離墻角死區(qū)流程框圖如圖3。
6 展望
由于觸須一旦被固定在寶貝車的前端,那么它所能觸覺避免障礙物的高度及障礙物被碰的角度都會(huì)受到一定的條件限制,如果障礙物太低,寶貝車在前進(jìn)過程當(dāng)中,觸須不能碰到障礙物的話,則寶貝車就無法實(shí)現(xiàn)避障功能;如果寶貝車以一個(gè)很小的傾斜角貼墻前進(jìn)時(shí),此時(shí)寶貝車其實(shí)是受阻的,但由于角度太小,導(dǎo)致不能夠讓觸須碰到3-pin公-公接頭,則寶貝車也是無法實(shí)現(xiàn)躲避轉(zhuǎn)向功能的。
下一階段還需研究解決措施,可以通過改變觸須的形狀,比如說,將它向下折彎一定長度,這樣就能觸覺到較低障礙物了,或者從根本上來改變導(dǎo)航避障原理,比如說,用紅外探測距離來避障或者超聲波避障等等。
【參考文獻(xiàn)】
[1]孫育才.MCS-51 系列單片機(jī)及其應(yīng)用[M].東南大學(xué)出版社.
[2]王曉明.電動(dòng)機(jī)的單片機(jī)控制[M].北京航空航天大學(xué)出版社.
[3]何建英.基于MCS-51單片機(jī)智能小車控制器設(shè)計(jì)與實(shí)現(xiàn)[J].重慶文理學(xué)院.
[責(zé)任編輯:田吉捷]