日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

智能小车52单片机c语言,基于STC89C52单片机的智能循迹小车设计

發(fā)布時間:2023/12/31 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 智能小车52单片机c语言,基于STC89C52单片机的智能循迹小车设计 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

摘要:智能循跡小車是一種在控制系統(tǒng)的作用下,可以準(zhǔn)確沿既定路線自動行駛的系統(tǒng)。本設(shè)計中,采用STC89C52單片機(jī)為主控制芯片,結(jié)合直流電機(jī)、傳感器、電源電路及其他外圍電路,設(shè)計實現(xiàn)了小車沿黑色軌跡行走的智能循跡小車,其中小車循跡功能由紅外式光電傳感器完成,小車的驅(qū)動功能由L293D驅(qū)動電路完成。

關(guān)鍵詞:智能循跡小車;直流電機(jī);紅外光電傳感器

中圖分類號:TP18文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2011)31-00000-00

隨著計算機(jī)和信息技術(shù)的飛速發(fā)展,智能技術(shù)的開發(fā)受到越來越廣泛的重視,其開發(fā)速度也在快速增加。由于智能化的程度越來越高,使得其應(yīng)用范圍也在不斷的擴(kuò)展。與此同時,機(jī)器人技術(shù)的發(fā)展勢頭迅猛,其應(yīng)用領(lǐng)域眾多,智能循跡小車就是機(jī)器人技術(shù)與智能控制技術(shù)相結(jié)合的一個應(yīng)用典范。通俗來講,智能循跡小車就是智能機(jī)器人的另一種形式,它用輪子代替了機(jī)器人的雙腿,因而在機(jī)械設(shè)計和電路方面都要比智能機(jī)器人簡單,另外,其控制系統(tǒng)和智能機(jī)器人相比也較為簡單,可是其對行車速度和行駛方向的配合則要求較嚴(yán)格,它首先通過傳感器獲取目標(biāo)道路信息,然后結(jié)合智能車當(dāng)前的行駛狀態(tài)智能地做出決策,對其行駛方向與行車速度進(jìn)行調(diào)整,從而達(dá)到準(zhǔn)確快速跟蹤道路的目的。本文介紹了一種基于STC89C52單片機(jī)為控制核心的智能循跡小車的設(shè)計,該智能小車能自動沿黑色固定軌跡運行。

1 智能循跡小車總體硬件結(jié)構(gòu)設(shè)計及工作原理簡介

1.1 智能循跡小車總體硬件結(jié)構(gòu)設(shè)計

本設(shè)計中,智能循跡小車是由主控制模塊、循跡模塊、電機(jī)驅(qū)動模塊、電源模塊和其他外圍電路組成,其總體硬件結(jié)構(gòu)框圖如圖1所示。

圖1 智能循跡小車總體硬件結(jié)構(gòu)圖

在本設(shè)計中,是以STC89C52為主控模塊,采用模塊化設(shè)計的方法,以紅外光電傳感器作為循跡模塊,并采用L293D芯片控制輸出直接驅(qū)動直流電機(jī)作為電機(jī)驅(qū)動模塊。電源模塊用4節(jié)1.5V的電池供電,經(jīng)L7805穩(wěn)壓模塊后,輸出電壓穩(wěn)定在+5V,從而向各個模塊供電。

1.2 智能小車工作原理簡介

本設(shè)計中,循跡指的是小車在白色地板上沿著2cm寬的黑線行走。紅外傳感器的發(fā)射管發(fā)出紅外線,由接收管接收。同時,接收的物理量被轉(zhuǎn)化成電信號,經(jīng)過信號放大電路處理,由單片機(jī)的P0,P1,P2口輸入,經(jīng)過處理后,信號由P20,P21,P22,P23,P24,P25口輸出給電機(jī)驅(qū)動電路的L293D芯片,從而達(dá)到驅(qū)動小車行走和循跡的目的。循跡時,由于紅外線在白色地板和黑線上的反射系數(shù)不同,所以可以根據(jù)三極管接收紅外線的強(qiáng)弱來決定小車的走向。本設(shè)計采用三對紅外傳感器,采用“一字型”[1]分布。中間傳感器接收不到反射回來的紅外線,而左右兩個傳感器能接收到反射回來的紅外線,則小車直線前進(jìn);當(dāng)左邊和中間(或只有左邊)的傳感器接收不到反射回來的紅外線,只有右邊傳感器能接收到時,說明小車向右偏離黑色軌道,則小車向左轉(zhuǎn)動;同理,當(dāng)中間和右邊(或只有右邊)的傳感器接收不到反射回來的紅外線,只有左邊傳感器能接收到時,說明小車向左偏離黑色軌道,則小車向右轉(zhuǎn)動,從而實現(xiàn)自動循跡。本設(shè)計中紅外傳感器離地面垂直距離為8cm,能在沒有強(qiáng)烈日光干擾或在有日光燈的房間里,完全能滿足探測要求,具有很好的可靠性與抗干擾能力[2,3]。

2 智能循跡小車所用芯片器件簡介

上文已經(jīng)介紹,本設(shè)計一共分為主控制模塊、循跡模塊、電機(jī)驅(qū)動模塊和電源模塊等模塊。下面對主要模塊的工作原理作簡單說明。

2.1 主控模塊STC89C52簡介

該模塊是整個設(shè)計的大腦。傳感器的輸出端SEN1,SEN2,SEN3將信號通過P1.0,P1.1,P1.2口輸入單片機(jī),經(jīng)過處理后,由P20, P21,P22, P23,P24,P25口輸出給L293D的EN1, EN2, IN1, IN2, IN3, IN4引腳,從而完成對小車的控制。該模塊的主要由STC89C52單片機(jī)及其外圍電路組成,如圖2所示。

圖2 STC89C52單片機(jī)個引腳圖

本設(shè)計中,STC89C52芯片的40引腳VCC接+5V電源,20引腳GND接地。18引腳XTAL1和19引腳XTAL2接在頻率為11.0592MHZ的晶振上,并接了20PF的電容。9引腳RST外接復(fù)位電路,為單片機(jī)提供上電復(fù)位。作為P3口的第二功能,10引腳P3.0和11引腳P3.1被作為單片機(jī)的通信端,即串行輸入口和串行輸出口,用以完成程序下載所需。1引腳P1.0,2引腳P1.1,3引腳P1.2分別和三對紅外傳感器的輸出端SEN1,SEN2,SEN3相連,以完成電信號的輸入。21引腳P2.0,22引腳P2.1,23引腳P2.2,24引腳P2.3,25引腳P2.4,26引腳P2.5分別和L293D芯片的EN1,EN2,IN1,IN2,IN3,IN4引腳相連,以完成將經(jīng)過單片機(jī)處理過的信號輸入給電機(jī)驅(qū)動電路。

2.2 TCRT5000紅外光電傳感器模塊簡介

本設(shè)計中,采用三對TCRT5000型號的紅外光電傳感器。這三對傳感器呈均勻“一字型”分布。這種方法檢測連貫簡單,程序控制算法簡單,使小車控制穩(wěn)定。但是這種均勻一字型分布不利于對彎道信號采集的準(zhǔn)確性。圖3為其中一對傳感器及其外圍電路的原理圖。

圖3TCRT5000傳感器電路圖

TCRT5000型紅外光電傳感器由一個高發(fā)射功率的紅外光電二極管和一個接收紅外線的高度靈敏的光電三極管(NPN型)組成。其中滑動變阻器R3是一個藍(lán)白電位器,通過調(diào)整R3的阻值從而達(dá)到調(diào)整光敏三極管對反射光的靈敏度。

紅外發(fā)射二極管不斷的發(fā)射出紅外線。當(dāng)反射回來的紅外線強(qiáng)度足夠大時,光敏三極管飽和,則該模塊輸出為高電平;當(dāng)反射回來的紅外線強(qiáng)度不夠大或者沒有反射回來紅外線時,光敏三極管一直處于關(guān)斷狀態(tài),則該模塊的輸出為低電平。光敏三極管除了具有將光信號轉(zhuǎn)換成電信號的功能外,還具有對電信號放大的功能。

2.3 電信號放大模塊簡介

傳感器所產(chǎn)生的電信號較為微弱,不能作為單片機(jī)的輸入,因此要接一個放大電路進(jìn)行處理。本模塊采用SN74HC04N芯片及其外圍電路用作放大電路。

SN74HC04N芯片的引腳圖如圖4所示。

圖4 SN74HC04N引腳圖

首先,SN74HC04N芯片內(nèi)部有六組相同的反相器。因此,當(dāng)三組紅外傳感器產(chǎn)生的電信號傳給SN74HC04N后,會變成與其相反的電平。本設(shè)計中,引腳1, 3, 5為紅外傳感器輸入SN74HC04N芯片的接口,引腳2, 4, 6為經(jīng)SN74HC04N處理后的輸出口,對應(yīng)圖2中SEN1,SEN2,SEN3這三個接口。另外,74HC04N內(nèi)部有6個施密特觸發(fā)器電路。施密特觸發(fā)器的重要特點是能夠把緩慢變化的輸入信號整形成邊沿陡峭的矩形脈沖。同時,施密特觸發(fā)器還可以利用其回差電壓來提高電路的抗干擾能力。

2.4 電機(jī)驅(qū)動模塊簡介

圖5電機(jī)驅(qū)動模塊圖

本模塊選用L293D芯片進(jìn)行控制。該芯片驅(qū)動方式比較簡單,直接驅(qū)動兩個直流電機(jī)。控制每一路電機(jī),都有三個信號,分別為EN1,IN1,IN2和EN2,IN3, IN4。這六個引腳分別同STC89C52單片機(jī)的P2.0~P2.5口相連。這里芯片的工作電壓為+5V。本設(shè)計中,采用兩個輸出控制一個電機(jī)的方式。即OUT1和OUT2控制電機(jī)1,OUT3和OUT4控制電機(jī)2。上圖中的D1~D8為箝位二極管。電機(jī)在停止的瞬間會產(chǎn)生一個逆向的電流,切割磁場后會產(chǎn)生一個逆向的電動勢。設(shè)置這些箝位二極管,就是為了防止逆電動勢燒壞芯片,從而它們起到保護(hù)作用。

3 智能循跡小車的軟件設(shè)計

單片機(jī)完成對智能小車的自動控制功能,主要是執(zhí)行相應(yīng)軟件來實現(xiàn)。本設(shè)計中,利用結(jié)構(gòu)化設(shè)計方法,采用C語言實現(xiàn)相應(yīng)功能軟件。下面對程序中的主要幾個功能模塊進(jìn)行說明。

3.1 主程序函數(shù)

void main(void)

{

delay(10);

while(1)

{

switch( sensor_inp() )

{

case 0x02:forward(); break;

case 0x04: turn_left(); break;

case 0x01: turn_right(); break;

default:

break;

}

}

}

程序開始,進(jìn)入主函數(shù)。調(diào)用延遲函數(shù)delay(),用以使系統(tǒng)達(dá)到穩(wěn)定狀態(tài)。在KEIL軟件下進(jìn)行斷點運行,測得這里的delay(10)在11.0592MHz的晶振下可以延遲100ms。之后進(jìn)入while循環(huán),條件始終為真,表示小車將一直運行while函數(shù)中的語句,直至外界迫使小車停下。在switch分支語句中,case 0x02將使程序跳轉(zhuǎn)至forward();,其中0x02即為二進(jìn)制的00000010,這表示三個傳感器中,只有中間的傳感器輸出的是高電平,左右兩個傳感器都輸出低電平,故小車沿直線行走。case 0x04將使程序跳轉(zhuǎn)至turn_left();,其中0x04即為二進(jìn)制的00000100,這表示三個傳感器中,只有左邊的傳感器輸出的是高電平,中間和右邊的傳感器輸出的均為低電平,故小車左拐。case 0x01將使程序跳轉(zhuǎn)至turn_right();,其中0x01即為二進(jìn)制的00000001,這表示三個傳感器中,只有右邊的傳感器輸出的是高電平,左邊和中間的傳感器均輸出低電平,故小車右拐。

3.2 小車前進(jìn)子程序模塊

void forward()

{

IN1=1;

IN2=0;

IN3=1;

IN4=0;

EN1=1;

EN2=1;

}

該程序中,L293D芯片的兩個使能端EN1和EN2一直保持高電平。IN1=1,IN2=0說明右邊電機(jī)向前轉(zhuǎn)動;IN3=1,IN4=0說明左邊電機(jī)也向前轉(zhuǎn)動。故兩個電機(jī)同時向前轉(zhuǎn)動,從而驅(qū)動小車向前行進(jìn)。

3.3 小車左轉(zhuǎn)子程序模塊

void turn_right()

{

IN1=1;

IN2=0;

IN3=0;

IN4=0;

EN1=1;

EN2=1;

}

該程序中,使能端EN1和EN2仍然保持高電平。IN1=0,IN2=0,表明右邊電機(jī)向前轉(zhuǎn)動;而IN3=0,IN4=0,說明左邊電機(jī)不動。左輪不轉(zhuǎn)右輪轉(zhuǎn),這樣就實現(xiàn)了小車向左轉(zhuǎn)

3.4 小車右轉(zhuǎn)子程序模塊

void turn_left()

{

IN1=0;

IN2=0;

IN3=1;

IN4=0;

EN1=1;

EN2=1;

}

該程序中,使能端EN1和EN2仍然保持高電平。IN1=0,IN2=0表明右邊電機(jī)停止不轉(zhuǎn)動;IN3=1,IN4=0說明左邊電機(jī)向前轉(zhuǎn)動。右輪不轉(zhuǎn)左輪轉(zhuǎn),這樣就實現(xiàn)了小車右轉(zhuǎn)。

3.5 延時子程序模塊

void delay(int n)

{

unsigned char i,j,k;

for(i=n;i>0;i--)

for(j=50;j>0;j--)

for(k=100;k>0;k--);

}

該延時子程序主要是讓系統(tǒng)初始化到最佳狀態(tài)。經(jīng)由KEIL軟件的斷點測試,在晶振頻率為11.0592MHz時,當(dāng)n = 10時,可延時100ms。

4 總結(jié)

本文提出了一種基于STC89C52單片機(jī)為控制核心的智能循跡小車的設(shè)計方案,該方案以紅外傳感器作為路徑信息采集手段,以L293D芯片來控制并驅(qū)動電機(jī)運行,最終實現(xiàn)了小車在固定軌跡上自動循跡運行。該方案總體來說,比較簡單,成本低且易于實現(xiàn),但也存在缺陷,如傳感器的“一字型”均勻布局使得小車在彎道行駛時可能會出現(xiàn)誤差,另外,小車循跡過程中會出現(xiàn)“蛇形擺動”問題,這些問題都還有待于改進(jìn)。

參考文獻(xiàn):

[1] 周斌,李立國.智能車光電傳感器布局對路徑識別的影響研究[J].產(chǎn)品世界,2006(9):139-140.

[2] 吳建平,殷戰(zhàn)國.紅外反射式傳感器在自主導(dǎo)航小車中的應(yīng)用[J].中國測試技術(shù),2004(6):21-23.

[3] 楊永輝.智能小車的多傳感器數(shù)據(jù)融合[J].現(xiàn)代電子技術(shù),2005(6):3-6.

[4] 高月華.基于紅外光電傳感器的智能車自動循跡系統(tǒng)的設(shè)計[J].光電技術(shù)應(yīng)用,2009(2):1-5.

[5] 何立民.基于HCS12的小車智能控制系統(tǒng)設(shè)計[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2007(3):51-53,57.

收稿日期:2011-08-17

基金項目:陜西理工學(xué)院教學(xué)改革項目(XJG1135)

總結(jié)

以上是生活随笔為你收集整理的智能小车52单片机c语言,基于STC89C52单片机的智能循迹小车设计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。