|
在2001、2003年連續(xù)兩屆全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽中,均出現(xiàn)了簡(jiǎn)易智能小車這種集光、機(jī)、電于一體的題目。本文具體介紹一下小車如何正確地進(jìn)行循跡并給出必要的源代碼。 1.小車控制及驅(qū)動(dòng)單元的選擇 此部分是整個(gè)小車的大腦,是整個(gè)小車運(yùn)行的核心部件,起著控制小車所有運(yùn)行狀態(tài)的作用。通常選用單片機(jī)作為小車的核心控制單元,本文以臺(tái)灣凌陽(yáng)公司的SPCE061A單片機(jī)為例予以介紹。SPCE061是一款擁有2K RAM、32KFlash、32 個(gè)I/O 口,并集成了AD/DA功能強(qiáng)大的16位微處理器,它還擁有豐富的語(yǔ)音處理功能,為小車的功能擴(kuò)展提供了相當(dāng)大的空間。只要按照該單片機(jī)的要求對(duì)其編制程序就可以實(shí)現(xiàn)很多不同的功能。 小車驅(qū)動(dòng)電機(jī)一般利用現(xiàn)成的玩具小車上的配套直流電機(jī)。考慮到小車必須能夠前進(jìn)、倒退、停止,并能靈活轉(zhuǎn)向,在左右兩輪各裝一個(gè)電機(jī)分別進(jìn)行驅(qū)動(dòng)。當(dāng)左輪電機(jī)轉(zhuǎn)速高于右輪電機(jī)轉(zhuǎn)速時(shí)小車向右轉(zhuǎn),反之則向左轉(zhuǎn)。為了能控制車輪的轉(zhuǎn)速,可以采取PWM調(diào)速法,即由單片機(jī)的IOB8、IOB9輸出一系列頻率固定的方波,再通過(guò)功率放大來(lái)驅(qū)動(dòng)電機(jī),在單片機(jī)中編程改變輸出方波的占空比就可以改變加到電機(jī)上的平均電壓,從而可以改變電機(jī)的轉(zhuǎn)速。左右輪兩個(gè)電機(jī)轉(zhuǎn)速的配合就可以實(shí)現(xiàn)小車的前進(jìn)、倒退、轉(zhuǎn)彎等功能。 2.小車循跡的原理 這里的循跡是指小車在白色地板上循黑線行走,通常采取的方法是紅外探測(cè)法。 紅外探測(cè)法,即利用紅外線在不同顏色的物體表面具有不同的反射性質(zhì)的特點(diǎn),在小車行駛過(guò)程中不斷地向地面發(fā)射紅外光,當(dāng)紅外光遇到白色紙質(zhì)地板時(shí)發(fā)生漫反射,反射光被裝在小車上的接收管接收;如果遇到黑線則紅外光被吸收,小車上的接收管接收不到紅外光。單片機(jī)就是否收到反射回來(lái)的紅外光為依據(jù)來(lái)確定黑線的位置和小車的行走路線。紅外探測(cè)器探測(cè)距離有限,一般最大不應(yīng)超過(guò)15cm。對(duì)于發(fā)射和接收紅外線的紅外探頭,可以自己制作或直接采用集成式紅外探頭。 (1)自制紅外探頭電路如圖1所示,紅外光的發(fā)送接收選用型號(hào)為ST168的對(duì)管。當(dāng)小車在白色地面行駛時(shí),裝在車下的紅外發(fā)射管發(fā)射紅外線信號(hào),經(jīng)白色反射后,被接收管接收,一旦接收管接收到信號(hào),那么圖中光敏三極管將導(dǎo)通,比較器輸出為低電平;當(dāng)小車行駛到黑色引導(dǎo)線時(shí),紅外線信號(hào)被黑色吸收后,光敏三極管截止,比較器輸出高電平,從而實(shí)現(xiàn)了通過(guò)紅外線檢測(cè)信號(hào)的功能。將檢測(cè)到的信號(hào)送到單片機(jī)I/O口,當(dāng)I/O口檢測(cè)到的信號(hào)為高電平時(shí),表明紅外光被地上的黑色引導(dǎo)線吸收了,表明小車處在黑色的引導(dǎo)線上;同理,當(dāng)I/O口檢測(cè)到的信號(hào)為低電平時(shí),表明小車行駛在白色地面上。此種方法簡(jiǎn)單,價(jià)格便宜,靈敏度可調(diào),但是容易受到周圍環(huán)境的影響,特別是在圖1較強(qiáng)的日光燈下,對(duì)檢測(cè)到的信號(hào)有一定的影響。
(2)集成式紅外探頭可以采用型號(hào)為E3F-DS10C4集成斷續(xù)式光電開關(guān)探測(cè)器,它具有簡(jiǎn)單、可靠的工作性能,只要調(diào)節(jié)探頭上的一個(gè)旋鈕就可以控制探頭的靈敏度。該探頭輸出端只有三根線(電源線、地線、信號(hào)線),只要將信號(hào)線接在單片機(jī)的I/O口,然后不停地對(duì)該I/O口進(jìn)行掃描檢測(cè),當(dāng)其為高電平時(shí)則檢測(cè)到白紙,當(dāng)為低電平時(shí)則檢測(cè)到黑線。此種探頭還能有效地防止普通光源(如日光燈等)的干擾。其缺點(diǎn)則是體積比較大,占用了小車有限的空間。 3.紅外探頭的安裝 在小車具體的循跡行走過(guò)程中,為了能精確測(cè)定黑線位置并確定小車行走的方向,需要同時(shí)在底盤裝設(shè)4個(gè)紅外探測(cè)頭,進(jìn)行兩級(jí)方向糾正控制,提高其循跡的可靠性。這4個(gè)紅外探頭的具體位置如圖2所示。圖中循跡傳感器共安裝4個(gè),全部在一條直線上。其中InfraredMR與InfraredML 為第一級(jí)方向控制傳感器,InfraredSR 與InfraredSL 為第二級(jí)方向控制傳感器。小車行走時(shí),始終保持黑線(如圖2 中所示的行走軌跡黑線)在InfraredMR和InfraredML這兩個(gè)第一級(jí)傳感器之間,當(dāng)小車偏離黑線時(shí),第一級(jí)探測(cè)器一旦探測(cè)到有黑線,單片機(jī)就會(huì)按照預(yù)先編定的程序發(fā)送指令給小車的控 制系統(tǒng),控制系統(tǒng)再對(duì)小車路徑予以糾正。若小車回到了軌道上,即4個(gè)探測(cè)器都只檢測(cè)到白紙,則小車會(huì)繼續(xù)行走;若小車由于慣性過(guò)大依舊偏離軌道,越出了第一級(jí)兩個(gè)探測(cè)器的探測(cè)范圍,這時(shí)第二級(jí)動(dòng)作,再次對(duì)小車的運(yùn)動(dòng)進(jìn)行糾正,使之回到正確軌道上去?梢钥闯,第二級(jí)方向探測(cè)器實(shí)際是第一級(jí)的后備保護(hù),從而提高了小車循跡的可靠性。 
4.軟件控制 其程序控制框圖如圖3。小車進(jìn)入循跡模式后,即開始不停地掃描與探測(cè)器連接的單片機(jī)I/O口,一旦檢測(cè)到某個(gè)I/O口有信號(hào),即進(jìn)入判斷處理程序(switch),先確定4個(gè)探測(cè)器中的哪一個(gè)探測(cè)到了黑線,如果InfraredML(左面第一級(jí)傳感器)或者InfraredSL(左面第二級(jí)傳感器)探測(cè)到黑線,即小車左半部分壓到黑線,車身向右偏出,此時(shí)應(yīng)使小車向左轉(zhuǎn);如果是InfraredMR(右面第一級(jí)傳感 器)或InfraredSR(右面第二級(jí)傳感器)探測(cè)到了黑線,即車身右半部壓住黑線,小車向左偏出了軌跡,則應(yīng)使小車向右轉(zhuǎn)。在經(jīng)過(guò)了方向調(diào)整后,小車再繼續(xù)向前行走,并繼續(xù)探測(cè)黑線重復(fù)上述動(dòng)作。 
由于第二級(jí)方向控制為第一級(jí)的后備,則兩個(gè)等級(jí)間的轉(zhuǎn)向力度必須相互配合。第二級(jí)通常是在超出第一級(jí)的控制范圍的情況下發(fā)生作用,它也是最后一層保護(hù),所以它必須要保證小車回到正確軌跡上來(lái),則通常使第二級(jí)轉(zhuǎn)向力度大于第一級(jí),即level2>level1(level1、level2為小車轉(zhuǎn)向力度,其大小通過(guò)改變單片機(jī)輸出的占空比的大小來(lái)改變),具體數(shù)值在實(shí)地實(shí)驗(yàn)中得到。 專家點(diǎn)評(píng):根據(jù)本文所講述的方法,我們可以較容易地做出按照一定軌跡行走的智能電動(dòng)小車。但是按照該方法行走的小車如果是走直線,有可能會(huì)是蛇形前進(jìn)。為了使小車能夠按軌跡行走的更流暢,可以在軟件編程時(shí)運(yùn)用一些簡(jiǎn)單的算法。例如,在對(duì)小車進(jìn)行糾偏時(shí),適當(dāng)提前停止糾偏,而不要等到小車完全不偏時(shí)再停止,以防止小車的過(guò)沖。
華中科技大學(xué)電工電子科技創(chuàng)新基地 張立 楊立 |