智能尋跡小車以及程序.doc
《智能尋跡小車以及程序.doc》由會員分享,可在線閱讀,更多相關(guān)《智能尋跡小車以及程序.doc(9頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
尋跡小車在歷屆全國大學(xué)生電子設(shè)計(jì)競賽中多次出現(xiàn)了集光、機(jī)、電于一體的簡易智能小車題目。筆者通過論證、比較、實(shí)驗(yàn)之后,制作出了簡易小車的尋跡電路系統(tǒng)。整個系統(tǒng)基于普通玩具小車的機(jī)械結(jié)構(gòu),并利用了小車的底盤、前后輪電機(jī)及其自動復(fù)原裝置,能夠平穩(wěn)跟蹤路面黑色軌跡運(yùn)行??傮w方案整個電路系統(tǒng)分為檢測、控制、驅(qū)動三個模塊。首先利用光電對管對路面信號進(jìn)行檢測,經(jīng)過比較器處理之后,送給軟件控制模塊進(jìn)行實(shí)時控制,輸出相應(yīng)的信號給驅(qū)動芯片驅(qū)動電機(jī)轉(zhuǎn)動,從而控制整個小車的運(yùn)動。系統(tǒng)方案方框圖如圖1所示。圖1 智能小車尋跡系統(tǒng)框圖傳感檢測單元小車循跡原理該智能小車在畫有黑線的白紙 “路面”上行駛,由于黑線和白紙對光線的反射系數(shù)不同,可根據(jù)接收到的反射光的強(qiáng)弱來判斷“道路”黑線。筆者在該模塊中利用了簡單、應(yīng)用也比較普遍的檢測方法紅外探測法。紅外探測法,即利用紅外線在不同顏色的物理表面具有不同的反射性質(zhì)的特點(diǎn)。在小車行駛過程中不斷地向地面發(fā)射紅外光,當(dāng)紅外光遇到白色地面時發(fā)生漫發(fā)射,反射光被裝在小車上的接收管接收;如果遇到黑線則紅外光被吸收,則小車上的接收管接收不到信號。傳感器的選擇市場上用于紅外探測法的器件較多,可以利用反射式傳感器外接簡單電路自制探頭,也可以使用結(jié)構(gòu)簡單、工作性能可靠的集成式紅外探頭。ST系列集成紅外探頭價(jià)格便宜、體積小、使用方便、性能可靠、用途廣泛,所以該系統(tǒng)中最終選擇了ST168反射傳感器作為紅外光的發(fā)射和接收器件,其內(nèi)部結(jié)構(gòu)和外接電路均較為簡單,如圖2所示:圖2 ST168檢測電路ST168采用高發(fā)射功率紅外光、電二極管和高靈敏光電晶體管組成,采用非接觸式檢測方式。ST168的檢測距離很小,一般為815毫米,因?yàn)?毫米以下是它的檢測盲區(qū),而大于15毫米則很容易受干擾。筆者經(jīng)過多次測試、比較,發(fā)現(xiàn)把傳感器安裝在距離檢測物表面10毫米時,檢測效果最好。R1限制發(fā)射二極管的電流,發(fā)射管的電流和發(fā)射功率成正比,但受其極限輸入正向電流50mA的影響,用R1=150的電阻作為限流電阻,Vcc=5V作為電源電壓,測試發(fā)現(xiàn)發(fā)射功率完全能滿足檢測需要;可變電阻R2可限制接收電路的電流,一方面保護(hù)接收紅外管;另一方面可調(diào)節(jié)檢測電路的靈敏度。因?yàn)閭鞲衅鬏敵龆说玫降氖悄M電壓信號,所以在輸出端增加了比較器,先將ST168輸出電壓與2.5V進(jìn)行比較,再送給單片機(jī)處理和控制。傳感器的安裝正確選擇檢測方法和傳感器件是決定循跡效果的重要因素,而且正確的器件安裝方法也是循跡電路好壞的一個重要因素。從簡單、方便、可靠等角度出發(fā),同時在底盤裝設(shè)4個紅外探測頭,進(jìn)行兩級方向糾正控制,將大大提高其循跡的可靠性,具體位置分布如圖3所示。圖3 紅外探頭的分布圖圖中循跡傳感器全部在一條直線上。其中X1與Y1為第一級方向控制傳感器,X2與Y2為第二級方向控制傳感器,并且黑線同一邊的兩個傳感器之間的寬度不得大于黑線的寬度。小車前進(jìn)時,始終保持(如圖3中所示的行走軌跡黑線)在X1和Y1這兩個第一級傳感器之間,當(dāng)小車偏離黑線時,第一級傳感器就能檢測到黑線,把檢測的信號送給小車的處理、控制系統(tǒng),控制系統(tǒng)發(fā)出信號對小車軌跡予以糾正。第二級方向探測器實(shí)際是第一級的后備保護(hù),它的存在是考慮到小車由于慣性過大會依舊偏離軌道,再次對小車的運(yùn)動進(jìn)行糾正,從而提高了小車循跡的可靠性。軟件控制單元單片機(jī)選型及程序流程此部分是整個小車運(yùn)行的核心部件,起著控制小車所有運(yùn)行狀態(tài)的作用??刂品椒ㄓ泻芏啵蟛糠侄疾捎脝纹瑱C(jī)控制。由于51單片機(jī)具有價(jià)格低廉是使用簡單的特點(diǎn),這里選擇了ATMEL公司的AT89S51作為控制核心部件,其程序控制方框圖如圖4所示。圖4 系統(tǒng)的程序流程圖小車進(jìn)入循跡模式后,即開始不停地掃描與探測器連接的單片機(jī)I/O口,一旦檢測到某個I/O口有信號變化,程序就進(jìn)入判斷程序,把相應(yīng)的信號發(fā)送給電動機(jī)從而糾正小車的狀態(tài)。車速的控制車速調(diào)節(jié)的方法有兩種:一是用步進(jìn)電機(jī)代替小車上原有的直流電機(jī);二是在原有直流電機(jī)的基礎(chǔ)上,采用pwm調(diào)速法進(jìn)行調(diào)速??紤]到機(jī)械裝置不便于修改等因素,這里選擇后者,利用單片機(jī)輸出端輸出高電平的脈寬及其占空比的大小來控制電機(jī)的轉(zhuǎn)速,從而控制小車的速度。經(jīng)過多次試驗(yàn),最終確定合適的脈寬和占空比,基本能保證小車在所需要的速度范圍內(nèi)平穩(wěn)前行。電機(jī)驅(qū)動單元從單片機(jī)輸出的信號功率很弱,即使在沒有其它外在負(fù)載時也無法帶動電機(jī),所以在實(shí)際電路中我們加入了電機(jī)驅(qū)動芯片提高輸入電機(jī)信號的功率,從而能夠根據(jù)需要控制電機(jī)轉(zhuǎn)動。根據(jù)驅(qū)動功率大小以及連接電路的簡化要求選擇L298N,其外形、管腳分 布如圖5所示。 圖5 L298N管腳分布圖從圖中可以知道,一塊L298N芯片能夠驅(qū)動兩個電機(jī)轉(zhuǎn)動,它的使能端可以外接高低電平,也可以利用單片機(jī)進(jìn)行軟件控制,極大地滿足各種復(fù)雜電路需要。另外,L298N的驅(qū)動功率較大,能夠根據(jù)輸入電壓的大小輸出不同的電壓和功率,解決了負(fù)載能力不夠這個問題。結(jié)語此方案選擇的器件比較簡單,實(shí)際中也很容易實(shí)現(xiàn)。經(jīng)過多次測試,結(jié)果表明在一定的弧度范圍內(nèi),小車能夠沿著黑線軌跡行進(jìn),達(dá)到了預(yù)期目標(biāo)。不足之處,由于小車采用直流電機(jī),其速度控制不夠精確和穩(wěn)定,不能實(shí)現(xiàn)急轉(zhuǎn)和大弧度的拐彎。程序#include#define uchar unsigned char#define uint unsigned intuchar pro_left,pro_right,i,j; /左右占空比標(biāo)志 sbit left1=P20;sbit left2=P21;sbit right1=P22;sbit right2=P23; sbit en1=P10;sbit en2=P11; /循跡口 三個紅外傳感器sbit left_red=P12; /白線位置sbit mid_red=P13; /黑線位置sbit right_red=P14; /白線位置void delay(uint z)uchar i;while(z-)for(i=0;i121;i+);void init()left_red=0; /白線位置mid_red=1; /黑線位置right_red=0;TMOD=0X01;TH0=(65536-100)/256;TL0=(65536-100)%256;EA=1;ET0=1;TR0=1;en1=1;en2=1;void time0(void)interrupt 1i+;j+;if(i=pro_right) en1=1; else en1=0;if(i=40) en1=en1;i=0;if(j=pro_left) en2=1; else en2=0;if(j=40) en2=en2;j=0;TH0=(65536-100)/256;TL0=(65536-100)%256;void straight() /走直線函數(shù)pro_right=39;pro_left=39;left1=0;left2=1;right1=1;right2=0;void turn_left() /左轉(zhuǎn)彎函數(shù)pro_right=5;pro_left=39;left1=0;left2=1;right1=1;right2=0; void turn_right() /右轉(zhuǎn)彎函數(shù)pro_right=39;pro_left=5;left1=0;left2=1;right1=1;right2=0;void turn_back() /后退(反轉(zhuǎn))函數(shù)left1=1;left2=0;right1=0;right2=1; pro_right=39;pro_left=39;void infrared() /循跡 uchar flag;if(left_red=1) flag=1; elseif(right_red=1) flag=2; elseif(left_red=0)&(mid_red=0)&(right_red=0) flag=3; else flag=0;switch (flag) case 0: straight(); break; case 1: turn_left(); break; case 2: turn_right(); break; case 3: turn_back(); break; default: break; void main(void)init();delay(1);while(1) infrared();/ straight();void int0(void)interrupt 0- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 智能 小車 以及 程序
鏈接地址:http://m.appdesigncorp.com/p-6655411.html