摘要:隨著科技的不斷進(jìn)步,機(jī)器人技術(shù)也日臻完善。移動(dòng)機(jī)器人作為機(jī)器人的一種,因其具有靈活、操作簡(jiǎn)單等特點(diǎn),在多領(lǐng)域都得到了長(zhǎng)足發(fā)展和應(yīng)用,比如農(nóng)業(yè)、工業(yè)、服務(wù)和醫(yī)療等行業(yè)。此外,移動(dòng)機(jī)器人在空間探測(cè)、國(guó)防和城市安全等復(fù)雜環(huán)境危險(xiǎn)場(chǎng)合也得到了廣泛的應(yīng)用。文章針對(duì)自動(dòng)避障小車硬件設(shè)計(jì)進(jìn)行了概述。
關(guān)鍵詞:機(jī)器人;自動(dòng)避障;小車硬件設(shè)計(jì);空間探測(cè);國(guó)防;城市安全 文獻(xiàn)標(biāo)識(shí)碼:A
中圖分類號(hào):TP391 文章編號(hào):1009-2374(2017)08-0010-02 DOI:10.13535/j.cnki.11-4406/n.2017.08.005
避障小車是一種采用了紅外、超聲波、CCD和激光等傳感器設(shè)計(jì)的移動(dòng)機(jī)器人。其工作原理是:避障小車在復(fù)雜環(huán)境自主移動(dòng)時(shí),通過(guò)傳感器系統(tǒng)感知外界環(huán)境從而完成避障。避障控制系統(tǒng)的總體設(shè)計(jì)思路是基于自動(dòng)引導(dǎo)小車系統(tǒng),這種系統(tǒng)使用傳感器感知路線和障礙,根據(jù)智能小車實(shí)現(xiàn)自動(dòng)識(shí)別路線,在遇到障礙時(shí)自動(dòng)避讓,并且選擇正確的路線行進(jìn)。
1 設(shè)計(jì)任務(wù)
1.1 設(shè)計(jì)思想
本系統(tǒng)要求自行設(shè)計(jì)制作一個(gè)智能小車,該小車在前進(jìn)的過(guò)程中能夠檢測(cè)到前方障礙并自動(dòng)避開(kāi),達(dá)到避障的效果。設(shè)計(jì)思想是采用單片機(jī)為控制核心,利用位置傳感器檢測(cè)道路上的障礙,通過(guò)采集數(shù)據(jù)并處理后由單片機(jī)產(chǎn)生PWM波驅(qū)動(dòng)直流電機(jī)對(duì)車進(jìn)行轉(zhuǎn)向和行動(dòng)控制,控制電動(dòng)小汽車的自動(dòng)避障、快慢速行駛以及自動(dòng)停車。
1.2 功能概述
本系統(tǒng)主要由微控制器模塊、避障模塊、直流電機(jī)及其驅(qū)動(dòng)模塊電源模塊等構(gòu)成。
微控制器模塊:通過(guò)采用STC89C52作為微控制器接受傳感器部分收集到的外部信息進(jìn)行處理,并將結(jié)果輸出到電機(jī)驅(qū)動(dòng)模塊控制電機(jī)運(yùn)行。
避障模塊:采用位置傳感器的漫反射檢測(cè)來(lái)檢測(cè)前方是否有障礙,通過(guò)紅外光電開(kāi)關(guān)將采集到的信號(hào)送到微控制器。
驅(qū)動(dòng)模塊:通過(guò)接收微控制器產(chǎn)生的信號(hào)來(lái)驅(qū)動(dòng)電機(jī)運(yùn)行,實(shí)現(xiàn)快慢速行駛,轉(zhuǎn)向控制以及自動(dòng)停車。
電源模塊:為保證正常工作,為整個(gè)電路模塊提供電源支持。
2 硬件電路設(shè)計(jì)
關(guān)鍵元件選擇討論:
2.1 單片機(jī)的選擇
單片機(jī)全稱單片微型計(jì)算機(jī)(Single Chip Microcomputer),簡(jiǎn)稱SCM,把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上,具有質(zhì)量輕、體積小、價(jià)格便宜的特點(diǎn)。單片機(jī)內(nèi)部也有著內(nèi)存、CPU、類似硬盤一樣具有存儲(chǔ)功能的器件等與電腦功能類似的模塊。
單片機(jī)的核心是集成電路芯片,該芯片采用了規(guī)模超大的集成電路技術(shù),將各種模塊集成在一起,包括對(duì)數(shù)據(jù)進(jìn)行處理的中央處理器CPU、模擬多路轉(zhuǎn)換器、顯示驅(qū)動(dòng)電路、中斷系統(tǒng)、數(shù)據(jù)存儲(chǔ)器RAM、程序存儲(chǔ)器ROM、定時(shí)器/計(jì)時(shí)器、A/D轉(zhuǎn)換器等,這些功能模塊被集成在硅片上,形成了一個(gè)小型的、完善的計(jì)算機(jī)系統(tǒng)。
MCS-51系列單片機(jī)的內(nèi)部含有九個(gè)功能部件:CPU(運(yùn)算器、控制器和專用寄存器)、程序存儲(chǔ)器(ROM和Flash存儲(chǔ)器)、數(shù)據(jù)存儲(chǔ)器、定時(shí)/計(jì)數(shù)器、并行輸入/輸出(I/O)接口(P0-P3口)、全雙工串行接口、中斷系統(tǒng)、時(shí)鐘電路和內(nèi)部總線。
STC89C52單片機(jī)是帶有8K字節(jié)閃爍可編程可擦除功能的只讀存儲(chǔ)器,該存儲(chǔ)器控制器為CMOS8位微控制器,其能耗較低、性能較高,同時(shí)在一個(gè)芯片上可以安裝具有可編程Flash功能,并且擁有8位CPU。STC89C52可以為嵌入式控制系統(tǒng)提供相應(yīng)的解決方案,其各個(gè)部分的具體標(biāo)準(zhǔn)是:Flash為8k字節(jié),RAM為512字節(jié),I/O口線為32位,內(nèi)置4KBEEPROM,看門狗定時(shí)器,一個(gè)6向量2級(jí)中斷結(jié),兩個(gè)16位定時(shí)器/計(jì)數(shù)器,全雙工串行口。此外,當(dāng)系統(tǒng)處于空閑狀態(tài)的時(shí)候,CPU會(huì)立即停止工作,但是RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷等模塊會(huì)繼續(xù)保持工作狀態(tài),在這種狀態(tài)下,RAM的內(nèi)容可以被及時(shí)保存,振蕩器會(huì)被凍結(jié),單片機(jī)的所有工作都會(huì)隨即停止,直到具體的硬件復(fù)位到工作狀態(tài)或者下一個(gè)中斷出現(xiàn),才能繼續(xù)恢復(fù)工作。
2.2 傳感器的選擇
避障小車是通過(guò)傳感器系統(tǒng)感知外界環(huán)境,在復(fù)雜環(huán)境中自主移動(dòng)并完成避障的任務(wù)。要想實(shí)現(xiàn)避障小車的視覺(jué)功能有多種方式,可以使用CCD攝像頭進(jìn)行圖像采集和識(shí)別的方法,基于檢測(cè)對(duì)象表面靠近傳感元件時(shí)的電容變化的電容式接近傳感器,根據(jù)波從發(fā)射到接收的傳播過(guò)程中所受到的影響來(lái)檢測(cè)物體的接近程度的超聲波傳感器以及包括一個(gè)可以發(fā)射紅外光的固態(tài)發(fā)光二極管和一個(gè)用作接收器的固態(tài)光敏二極管(或光敏三極管)的紅外反射式光電傳感器。由于CCD傳感器的價(jià)格、體積和使用方式上并不占優(yōu)勢(shì)。相對(duì)于CCD傳感器,紅外傳感器優(yōu)勢(shì)明顯,其不但方向感強(qiáng)、探測(cè)視角小、測(cè)量精度高,而且價(jià)格也不算高,又能在夜間工作,所以移動(dòng)機(jī)器人避障的視覺(jué)可選用紅外傳感器。基于上述要求,避障小車一般情況下只需粗略感知,不需要清晰的圖像,因此,物美價(jià)廉的紅外反射式傳感器便在與昂貴的CCD傳感器的競(jìng)爭(zhēng)中勝出。
這次采用的小車傳感器是紅外位置傳感器,用漫反射式光電開(kāi)關(guān)對(duì)故障進(jìn)行規(guī)避,光電接近開(kāi)關(guān)簡(jiǎn)稱為紅外線光電開(kāi)關(guān)。是利用紅外線進(jìn)行遮光和反射的原理對(duì)物體進(jìn)行檢測(cè)的方式,光電接近開(kāi)關(guān)的檢測(cè)范圍包括所有具有反光特性的物體,不僅局限于金屬,只要可以反光,其他材質(zhì)的材料也可以。漫反射式光電開(kāi)關(guān)是一種集發(fā)射器和接收器于一體的傳感器,光電開(kāi)關(guān)產(chǎn)生開(kāi)關(guān)信號(hào)的原理為:當(dāng)有被檢測(cè)物體經(jīng)過(guò)時(shí),光電開(kāi)關(guān)發(fā)射器就會(huì)發(fā)射充足的光線,這些光線被反射到接收器,開(kāi)關(guān)信號(hào)由此產(chǎn)生。
2.3 電機(jī)類型的選擇
2.3.1 步進(jìn)電機(jī)。小車前進(jìn)和避障由步進(jìn)電機(jī)控制。脈沖控制步進(jìn)電機(jī),輸入的脈沖頻率決定其步距角和轉(zhuǎn)速,脈沖的頻率以及電機(jī)的轉(zhuǎn)速是成正比的,因此可以通過(guò)對(duì)電機(jī)的脈沖頻率進(jìn)行控制,從而達(dá)到控制電機(jī)工作的目的,步進(jìn)電機(jī)的驅(qū)動(dòng)脈沖可以通過(guò)單片機(jī)的相關(guān)部件輸出。對(duì)于需要用步進(jìn)電機(jī)驅(qū)動(dòng)芯片來(lái)驅(qū)動(dòng)的原因由于步進(jìn)電機(jī)工作時(shí)需要較大的工作電流,步進(jìn)電機(jī)的驅(qū)動(dòng)法我們通過(guò)ULN2803芯片進(jìn)行,并且用單片機(jī)的P0I/O口來(lái)給ULN2803芯片輸入不同頻率的脈沖,再通過(guò)ULN2803來(lái)驅(qū)動(dòng)步進(jìn)電機(jī)。
在本文中,對(duì)智能小車進(jìn)行驅(qū)動(dòng)的是兩個(gè)四相五線的步進(jìn)電機(jī)。四相五線步進(jìn)電機(jī)中一共包括五根線,其中紅色的線接通電源的正極,剩下的四根線分別與ULN2803芯片的輸出端相連接,為了使得步進(jìn)電機(jī)能夠正常工作,則需要保持四個(gè)I/O口依次輸出高電平。智能小車的車輪也受到不同電機(jī)的控制,前面的輪子用兩個(gè)步進(jìn)電機(jī)來(lái)驅(qū)動(dòng),當(dāng)兩個(gè)步進(jìn)電機(jī)的轉(zhuǎn)速相同的時(shí)候,車子就可以保持直線前行,但是當(dāng)兩個(gè)電機(jī)的轉(zhuǎn)速不相同,則車子的運(yùn)行路徑不為直線,會(huì)出現(xiàn)拐彎,因此想要讓小車在行進(jìn)過(guò)程中變換方向,則只需要通過(guò)對(duì)電機(jī)的轉(zhuǎn)速進(jìn)行改變即可。具體的運(yùn)動(dòng)方向原則是:如果右邊的步進(jìn)電機(jī)轉(zhuǎn)速比左邊的快,小車則會(huì)向左邊拐彎,相反,如果左邊的電機(jī)轉(zhuǎn)速較快,車子則會(huì)向右邊轉(zhuǎn)彎。通過(guò)控制電機(jī)的轉(zhuǎn)速,可以控制小車的運(yùn)行方向,從而對(duì)障礙進(jìn)行有效規(guī)避。
2.3.2 語(yǔ)音提示功能模塊。語(yǔ)音提示指的是在智能小車的運(yùn)行過(guò)程中提供語(yǔ)音服務(wù),提示用戶小車遇到的障礙情況。當(dāng)小車與障礙物比較接近的時(shí)候,提示系統(tǒng)可以發(fā)出類似語(yǔ)音:“在距您車前方x米的地方有一障礙物,請(qǐng)您注意避讓”。此功能是用ISD1760語(yǔ)音芯片來(lái)實(shí)現(xiàn),預(yù)先給語(yǔ)音芯片錄入“在距您車前方”,“米的地方有一障礙物,請(qǐng)您注意避讓”,“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”等語(yǔ)音信息,語(yǔ)音提示的實(shí)現(xiàn)通過(guò)在單片機(jī)程序來(lái)控制語(yǔ)音芯片的定點(diǎn)放音。ISD1760語(yǔ)音芯片的定點(diǎn)放音的控制通過(guò)單片機(jī)的P2.2到P2.5四個(gè)I/O口來(lái)實(shí)現(xiàn)。錄音時(shí)一直按住RES鍵,錄完后松手,按住PLAY鍵即可播放剛錄制的語(yǔ)音片段;可以通過(guò)按動(dòng)VOL鍵加減音量,如果想增大一級(jí)音量,只需按動(dòng)一次VOL鍵。由于音量調(diào)節(jié)只有8級(jí),因此如果想要聲音重新回到最小音量,就必須按動(dòng)VOL鍵9次。ERASE鍵可以擦除已經(jīng)錄入的語(yǔ)音片段,通過(guò)長(zhǎng)按、短按刪除不同的語(yǔ)音片段:短按此鍵可以擦除上一段錄音,長(zhǎng)按此鍵可以擦除所有錄音;通過(guò)SCLK、SS、MISO、MOSI腳與單片機(jī)進(jìn)行SPI通信,單片機(jī)就是通過(guò)這幾個(gè)腳來(lái)實(shí)現(xiàn)對(duì)ISD1760的定點(diǎn)放音。
3 軟件設(shè)計(jì)
3.1 程序設(shè)計(jì)總體思路
在設(shè)計(jì)過(guò)程中,我們將STC89C52單片機(jī)作為控制核心,利用紅外位置傳感器檢測(cè)道路上的障礙信息,而小車通過(guò)位置傳感器獲得路徑信息,當(dāng)有光線反射回來(lái)時(shí),輸出低電平。當(dāng)沒(méi)有光線反射回來(lái)時(shí),輸出高電平,并且將檢測(cè)到信號(hào)返回到單片機(jī)中,然后STC89C52進(jìn)行判斷并開(kāi)始處理小車所處的狀態(tài),采用單片機(jī)產(chǎn)生PWM波驅(qū)動(dòng)直流電機(jī)對(duì)車進(jìn)行轉(zhuǎn)向和行動(dòng)控制,控制電動(dòng)小汽車的自動(dòng)避障、快慢速行駛以及自動(dòng)停車。
3.2 PWM控制的實(shí)現(xiàn)
Pulse Width Modulation簡(jiǎn)稱PWM控制——脈沖寬度調(diào)制技術(shù),通過(guò)對(duì)一系列脈沖的寬度進(jìn)行調(diào)制來(lái)等效地獲得所需要波形(含形狀和幅值)。在逆變電路中PWM控制技術(shù)應(yīng)用得最為廣泛,PWM型在應(yīng)用的逆變電路中最為常見(jiàn),可以說(shuō)電力電子技術(shù)中的重要地位的確定正是由于PWM控制技術(shù)在逆變電路中的應(yīng)用。作為直流電機(jī)的調(diào)速方式,PWM驅(qū)動(dòng)基本是不二的選擇,特別是單片機(jī)日益普及的今天。而我們?cè)O(shè)計(jì)中的電機(jī)兩端的電壓與控制波形的占空比成正比,而電機(jī)轉(zhuǎn)速與電機(jī)兩端的電壓成比例,因此電機(jī)轉(zhuǎn)速與占空比成比例,占空比越大,電機(jī)轉(zhuǎn)動(dòng)越快。我們?cè)诳刂瞥绦蛑锌梢栽O(shè)置一個(gè)寄存器,用來(lái)存儲(chǔ)PCA0L的初值,通過(guò)改變PCA0L的初值來(lái)對(duì)小車的方向和轉(zhuǎn)速進(jìn)行控制。
3.3 小車狀態(tài)定義
我們?cè)谠O(shè)計(jì)小車的程序設(shè)計(jì)中設(shè)計(jì)思想如下:小車在運(yùn)行狀態(tài)中當(dāng)前方有障礙的時(shí)候,傳感器將得到信號(hào)返回到單片機(jī)后,單片機(jī)產(chǎn)生中斷讓小車停駛,并且產(chǎn)生PWM波讓小車前輪轉(zhuǎn)向中倒車一定的時(shí)間,然后再次返回到主程序中運(yùn)行,直到再次檢測(cè)到障礙物時(shí)中斷再次執(zhí)行……直至順利到達(dá)目的地,完成避障功能。
參考文獻(xiàn)
[1] 郭天祥.新概念51單片機(jī)C語(yǔ)言教程——入門、提
高、開(kāi)發(fā)、拓展全攻略[M].北京:電子工業(yè)出版
社,2009.
作者簡(jiǎn)介:李彤(1988-),男,天津人,供職于天津渤海職業(yè)技術(shù)學(xué)院,初級(jí)職稱,碩士,研究方向:電腦鼠算法優(yōu)化。
(責(zé)任編輯:黃銀芳)