強勝嶺+初俊博+藺躍成


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