基于單片機(jī)的多功能智能小車設(shè)計(jì)論文
基于單片機(jī)的多功能智能小車設(shè)計(jì)論文,基于,單片機(jī),多功能,智能,小車,設(shè)計(jì),論文
<河南城建學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 摘要
畢 業(yè) 設(shè) 計(jì) [論 文]
題 目:基于單片機(jī)的智能電動(dòng)小車控制系統(tǒng)
學(xué) 院: 電氣與信息工程學(xué)院
專 業(yè):
姓 名:
學(xué) 號(hào):
指導(dǎo)老師:
完成時(shí)間:
21
摘 要
基于單片機(jī)的智能電動(dòng)小車作為實(shí)現(xiàn)無(wú)人駕駛小汽車的方案之一,以其智能、靈活、便攜、智能等優(yōu)點(diǎn)滿足了玩具小汽車發(fā)展的需要。本文設(shè)計(jì)的智能電動(dòng)小車控制系統(tǒng)有自動(dòng)循跡的功能,能滿足按預(yù)設(shè)軌道行走并完成給定任務(wù)的要求,單片機(jī)是實(shí)現(xiàn)電動(dòng)智能小車控制系統(tǒng)的核心,其軟硬件設(shè)計(jì)是實(shí)現(xiàn)循跡功能的基本要求和關(guān)鍵環(huán)節(jié)。
本智能電動(dòng)小車在循跡方面做了相對(duì)系統(tǒng)化的設(shè)計(jì),本文主要工作包括兩個(gè)個(gè)方面:
1.硬件設(shè)計(jì):用紅外光電傳感器檢測(cè)路面的黑色軌跡物,確定小車的位置和運(yùn)動(dòng)狀態(tài)并再將檢測(cè)信號(hào)反饋給單片機(jī),單片機(jī)對(duì)采集到的信號(hào)予以分析判斷,及時(shí)控制直流電機(jī)調(diào)整小車轉(zhuǎn)向與行車速度。
2.軟件設(shè)計(jì):通過(guò)對(duì)AD轉(zhuǎn)換、電機(jī)和循跡等模塊的編程,控制硬件電路工作,實(shí)現(xiàn)軟硬件結(jié)合,完成判斷控制功能。
本設(shè)計(jì)以STC12C5A60S2單片機(jī)為核心,通過(guò)合理軟硬件設(shè)計(jì)、調(diào)試,獲得了較好的測(cè)試效果,樣品實(shí)際工作穩(wěn)定,滿足實(shí)際要求。
關(guān)鍵詞 : 循跡小車,單片機(jī),紅外傳感器
I
<河南城建學(xué)院本科畢業(yè)設(shè)計(jì)(論文) Abstract
2
Abstract
MCU based electric car of smart program as one scheme of driverless cars with its advantages like smart ,flexible and portable made intelligent toys meeting the needs of car development. This design of smart electric car with automatic tracking control system functions is to meet the preset orbit by walking and complete the given tasks. STC89C52 MCU is a core of electric smart car control system's ,its hardware and software design is to achieve the tracking function of the basic requirements and key links .
The smart electric tracking car has done some thing in a relatively systematic design, this paper includes two aspects:
1. Hardware design : Using infrared sensors to detect the black track pavement materials , determine the location and movement of the car and then the state detection signal feedback to the MCU, the MCU of the collected signals are analyzed to determine , in a timely manner to control a DC motor to adjust the car steering and driving speed .
2. Software design : By programming the AD converter , motor and tracking modules , can control the hardware circuit, to achieve a combination of hardware and software to complete the judgment control.
STC12C5A60S2 MCU is a core of the design , through reasonable hardware and software design , debugging , testing to get a better effect , sample real job stability, to meet the actual requirements.
Keywords: tracking car , MCU , infrared sensors
II
<河南城建學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 目錄
目錄
摘 要 I
Abstract II
第一章 緒論 1
1.1引言 1
1.2智能小車的研究現(xiàn)狀 1
1.2.1國(guó)外概況 1
1.2.2國(guó)內(nèi)概況 2
第二章 方案設(shè)計(jì)與論證 5
2.1 控制系統(tǒng) 5
2.2 電機(jī)驅(qū)動(dòng)模塊 6
2.3 循跡模塊 6
2.4 機(jī)械系統(tǒng) 7
第三章 硬件設(shè)計(jì) 8
3.1總體設(shè)計(jì) 8
3.2 STC12C5A60S2單片機(jī)控制電路 9
3.2.1 STC12C5A60S2單片機(jī)的介紹 9
3.2.2 時(shí)鐘電路 12
3.2.3 復(fù)位電路 13
3.2.4 P0口外接上拉電阻 14
3.3 TCRT5000黑色軌跡識(shí)別電路 14
3.3.1 TCRT5000的介紹 16
3.4 TB6612FNG電機(jī)驅(qū)動(dòng)電路 16
3.4.1 TB6612FNG的介紹 17
3.5 升降壓模塊 19
3.5.1 LM2577的介紹 19
第四章 軟件設(shè)計(jì) 21
4.1主程序流程 21
4.2循跡子程序流程圖 23
第五章 設(shè)計(jì)安裝與調(diào)試 28
65.1 PCB的設(shè)計(jì)制作與安裝 28
5.2 小車調(diào)試 31
結(jié)論 32
參考文獻(xiàn) 33
致謝 34
附錄1:主程序 35
附錄2:PCB走線圖 49
附錄3:小車實(shí)物圖 50
總原理圖 51
<河南城建學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 1緒論
第一章 緒論
1.1引言
21世紀(jì)是高速發(fā)展的社會(huì),是智能現(xiàn)代化的社會(huì)。智能機(jī)器人是一個(gè)多種高新技術(shù)的集成體,它融合了機(jī)械、電子、傳感器、計(jì)算機(jī)硬件、軟件、人工智能等許多學(xué)科的知識(shí),涉及到當(dāng)今許多前沿領(lǐng)域的技術(shù)。智能小車即輪式移動(dòng)機(jī)器人,是一種集環(huán)境感知、決策規(guī)劃、自動(dòng)行駛等功能于一體的綜合智能系統(tǒng),智能小車集中地運(yùn)用了自動(dòng)控制、模式識(shí)別、傳感器技術(shù)、汽車電子、電氣、計(jì)算機(jī)、機(jī)械等多個(gè)學(xué)科的知識(shí)。隨著控制技術(shù)、計(jì)算機(jī)技術(shù)和信息技術(shù)的發(fā)展,智能小車在工業(yè)生產(chǎn)和日常生活中已經(jīng)扮演了非常重要的角色,近年來(lái),智能車在野外、道路、現(xiàn)代物流及柔性制造系統(tǒng)中都有廣泛運(yùn)用,已成為人工智能領(lǐng)域研究和發(fā)展的熱點(diǎn)。
目前,智能小車領(lǐng)域的研究已經(jīng)能夠在具有一定標(biāo)記的道路上為司機(jī)提供輔助駕駛系統(tǒng)甚至實(shí)現(xiàn)無(wú)人駕駛,這些智能小車的設(shè)計(jì)通常依靠特定道路標(biāo)記完成識(shí)別,通過(guò)推理判斷模仿人工駕駛進(jìn)行操作。本文所述智能車就是一種自動(dòng)導(dǎo)引小車,能夠在給定的區(qū)域內(nèi)沿著軌跡自動(dòng)進(jìn)行行進(jìn)。小車運(yùn)行過(guò)程由方向檢測(cè)和電機(jī)驅(qū)動(dòng)兩個(gè)部分控制,采用與白色地面顏色有較大差別的黑色線條作引導(dǎo)。智能車尋跡系統(tǒng)采用紅外反射式光電管識(shí)別路徑上的黑線,并以最短的時(shí)間完成尋跡,用單片機(jī)STC12C5A60S2控制光電傳感器組,對(duì)采集到的信號(hào)進(jìn)行分析處理并做出邏輯判斷后,得到行進(jìn)方向,再通過(guò)直流電機(jī)驅(qū)動(dòng)前輪轉(zhuǎn)向,實(shí)現(xiàn)智能小車的循跡行進(jìn)。智能車的驅(qū)動(dòng)采用直流電機(jī),并采用PWM實(shí)現(xiàn)直流電機(jī)的調(diào)速,為了使智能車快速、平穩(wěn)地行駛,系統(tǒng)必須把路徑識(shí)別、相應(yīng)的轉(zhuǎn)向伺服電機(jī)控制以及直流驅(qū)動(dòng)電機(jī)控制準(zhǔn)確地結(jié)合在一起。本文對(duì)智能電動(dòng)小車的尋跡及速度控制等進(jìn)行了研究[1]。
1.2智能小車的研究現(xiàn)狀
1.2.1國(guó)外概況
對(duì)智能汽車最為重視的國(guó)家當(dāng)屬美國(guó)了,美國(guó)交通部2000年投資 3500 萬(wàn)美元與通用公司進(jìn)行長(zhǎng)達(dá)五年的合作,開(kāi)始籌劃開(kāi)發(fā)汽車的前后防撞系統(tǒng)。幾乎同一時(shí)刻,美國(guó)的知名高校也開(kāi)始了研發(fā)全自動(dòng)汽車,并不斷完善改進(jìn),很多研發(fā)團(tuán)體也都陸續(xù)加入開(kāi)展這項(xiàng)工作。
歐洲開(kāi)發(fā)基金投入大量資金支持智能系統(tǒng)的研發(fā),研究方向?yàn)轳{駛?cè)诵袨榉治?、增?qiáng)行駛中的視覺(jué)效果、合理控制汽車的前后車距、自動(dòng)感應(yīng)道路和其他物體的等周邊環(huán)境,以及感應(yīng)紅綠燈及其他方面的信號(hào)等等,通過(guò)GPRS或者汽車周邊的環(huán)境以及導(dǎo)航系統(tǒng)對(duì)汽車進(jìn)行導(dǎo)航,同時(shí)智能操控其方向與速度。多組數(shù)據(jù)證明,這種智能系統(tǒng)可以有效降低交通事故,減少接近 20%的事故發(fā)生。
視覺(jué)系統(tǒng)是智能車的一個(gè)重要的組成部分,道路和障礙物是視覺(jué)提取的最重要信息,需要對(duì)這兩個(gè)目標(biāo)體進(jìn)行提取計(jì)算與跟蹤處理,對(duì)此,德國(guó)慕尼黑聯(lián)邦國(guó)防大學(xué)與奔馳公司進(jìn)行了合作研制,將一輛500SEL的奔馳車改裝成的一輛 VaMP 試驗(yàn)車,并進(jìn)行多次試驗(yàn)。每一次的試驗(yàn),改裝后的試驗(yàn)車都行使了接近 2500公里,其中將近95%的路程是由智能控制系統(tǒng)自動(dòng)完成的,試驗(yàn)的成功也促進(jìn)了智能控制的進(jìn)一步發(fā)展。
在智能車控制系統(tǒng)中,防撞警示系統(tǒng)也是不可或缺的一部分。歐洲調(diào)查發(fā)現(xiàn):提前0.5s得到“預(yù)知警示”,那么汽車駕駛員就可以避免至少60%的碰撞危險(xiǎn)的,減少追尾撞車的事故;“預(yù)知警示”時(shí)間提高到1s,則90%的碰撞事故將不會(huì)再發(fā)生。研究智能汽車不僅是對(duì)汽車的本身進(jìn)行研究,還包括智能運(yùn)輸系統(tǒng)和智能交通系統(tǒng)的研究,這些研究的倘若成功可以促進(jìn)國(guó)家經(jīng)濟(jì)的發(fā)展。美國(guó)一項(xiàng)研究表明,這種影響可能會(huì)超過(guò)覆蓋全美的洲際高速公路。研究的目的與意義在于:可以大量降低公路交通擁擠、堵塞,甚至是汽車油耗,使城市減少 25%~40%左右的損失,這些損失都是由于交通擁擠和堵塞造成的。這樣就可以大幅度提高公路的通行能力,至少使現(xiàn)有高速公路的交通量增加一倍,道路暢通也在很大程度上提高了公路交通的安全性。除此之外,智能系統(tǒng)不但提高運(yùn)輸效率還能帶動(dòng)交通運(yùn)輸行業(yè)的健康發(fā)展與繁榮。
在對(duì)智能汽車的研究中,日本和美國(guó)目前處在比較領(lǐng)先的地位,現(xiàn)在他們用高性能的專家控制系統(tǒng)開(kāi)發(fā)智能車控制系統(tǒng)的推進(jìn)器驅(qū)動(dòng),這種產(chǎn)品如果實(shí)現(xiàn)將幫助駕駛員對(duì)道路信息有一個(gè)更為全面的了解,使行車更為方便安全,例如對(duì)于搶道、超車等等危險(xiǎn)行為作出提醒或者警告,告知司機(jī)現(xiàn)在的前后車的安全距離,提醒司機(jī)是否疲勞駕駛,監(jiān)查駕駛員的精神面貌等等,這些技術(shù)的完善對(duì)智能車控制系統(tǒng)的進(jìn)一步提高作下了鋪墊[2]。
1.2.2國(guó)內(nèi)概況
早在 1986 年,清華大學(xué)就開(kāi)始了關(guān)于我國(guó)智能汽車的研究(圖1.1),一直發(fā)展至今天。其中,目前最先進(jìn)的智能無(wú)人駕駛汽車由清華大學(xué)自主研制,它可以在各種復(fù)雜的路面上行駛,這個(gè)高端科技的無(wú)人駕駛汽車采用激光雷達(dá)和攝像頭
圖1.1無(wú)人駕駛小車研究[3]
作為外部傳感器,運(yùn)用現(xiàn)階段最先進(jìn)的圖像處理技術(shù)對(duì)道路信息進(jìn)行識(shí)別判斷,來(lái)實(shí)現(xiàn)智能車的自動(dòng)駕駛功能。為了不斷地提高技術(shù)性能和完善該車的智能控制系統(tǒng),工程師們一直都在不斷地刻苦研究,以便該控制系統(tǒng)可以早日的運(yùn)用到我們?nèi)粘J褂玫男∑嚿稀A硗?,?duì)智能車系統(tǒng)控制的研究在其他高??蒲袡C(jī)構(gòu)中也相繼的展開(kāi)了。如:由香港城市大學(xué)自主研發(fā)的自動(dòng)導(dǎo)航車和服務(wù)機(jī)器人,“智能先鋒號(hào)”由中科院合肥物質(zhì)科學(xué)研究院主導(dǎo)研究開(kāi)發(fā),還有北京理工大學(xué)也不斷地參與研發(fā)關(guān)于智能汽車控制系統(tǒng)等等,這些都極具現(xiàn)實(shí)意義。
要不斷的完善汽車的動(dòng)力性和各方面的控制性能,保證汽車在行駛的時(shí)候可以平穩(wěn)、安全并且低功耗,那么通過(guò)不斷地對(duì)智能控制的研究可以使其成為可能。通過(guò)不斷開(kāi)發(fā)新技術(shù)和完善車載控制系統(tǒng),可以使行車更為方便、安全,使人類的生活更為舒適。智能汽車可以減少人為因素的失誤,即使在復(fù)雜的路面上行駛也可以自動(dòng)的避開(kāi)阻擋物,尋求最佳路線行駛,平穩(wěn)、安全的通過(guò)各種復(fù)雜的路面,能夠輕易地做到人類手工操作很難做到的事情。
58
<河南城建學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 第二章 方案設(shè)計(jì)與論證
第二章 方案設(shè)計(jì)與論證
基于單片機(jī)的智能電動(dòng)小車控制系統(tǒng)主要實(shí)現(xiàn)循跡功能,為實(shí)現(xiàn)對(duì)小車的運(yùn)動(dòng)狀態(tài)進(jìn)行實(shí)時(shí)控制,需要對(duì)小車設(shè)計(jì)進(jìn)行軟硬件方案的設(shè)計(jì)與論證,以使其滿足控制靈活、可靠,精度高等性能。據(jù)此,確定如下方案:畫出要設(shè)計(jì)小車的PCB原理圖打成印制板,把印制板合理規(guī)劃作為小車的底板,在底板上加裝光電傳感器和單片機(jī)控制系統(tǒng)以實(shí)現(xiàn)對(duì)小車的位置、運(yùn)行狀況等進(jìn)行實(shí)時(shí)測(cè)量,并將測(cè)量數(shù)據(jù)傳送至單片機(jī)進(jìn)行處理,以便單片機(jī)根據(jù)所檢測(cè)的各種數(shù)據(jù)實(shí)現(xiàn)對(duì)小車的智能控制。
2.1 控制系統(tǒng)
控制系統(tǒng)是智能電動(dòng)小車控制系統(tǒng)的核心,主要功能是對(duì)傳感器采集到的光電信息進(jìn)行實(shí)時(shí)分析、判斷,控制智能小車的驅(qū)動(dòng)系統(tǒng),隨時(shí)調(diào)整小車的速度和位置。針對(duì)智能小車控制系統(tǒng)的特點(diǎn),制定如下備選方案:
方案一:
選用一片CPLD(如EPM7128LC84-15)作為系統(tǒng)的核心部件,實(shí)現(xiàn)控制與處理的功能。CPLD具有速度快、編程容易、資源豐富、開(kāi)發(fā)周期短等優(yōu)點(diǎn),可利用VHDL語(yǔ)言進(jìn)行編寫開(kāi)發(fā)。但CPLD在控制上較單片機(jī)有較大的劣勢(shì)。同時(shí),CPLD的處理速度非常快,而小車的行進(jìn)速度不可能太高,相對(duì)緩慢,那么對(duì)系統(tǒng)處理信息的要求也就不會(huì)太高,在這一點(diǎn)上,MCU就已經(jīng)可以勝任了。若采用該方案,必將在控制上遇到許多不必要增加的難題,進(jìn)而提出了第二種方案。
方案二:
采用單片機(jī)作為整個(gè)系統(tǒng)的核心,用其控制行進(jìn)中的小車,以實(shí)現(xiàn)其既定的性能指標(biāo)。充分分析設(shè)計(jì)的系統(tǒng),其關(guān)鍵在于實(shí)現(xiàn)小車的自動(dòng)控制,而在這一點(diǎn)上,單片機(jī)就顯現(xiàn)出了它的優(yōu)勢(shì)——控制簡(jiǎn)單、方便、快捷。這樣一來(lái),單片機(jī)就可以充分發(fā)揮其資源豐富、有較為強(qiáng)大的控制功能、可位尋址操作功能以及價(jià)格低廉等優(yōu)點(diǎn)。本設(shè)計(jì)采用方案二來(lái)完成智能小車的控制系統(tǒng)的設(shè)計(jì)。
針對(duì)本設(shè)計(jì)特點(diǎn)——多開(kāi)關(guān)量輸入的復(fù)雜程序控制系統(tǒng),需要擅長(zhǎng)處理多開(kāi)關(guān)量的標(biāo)準(zhǔn)單片機(jī),在小車運(yùn)行過(guò)程中需實(shí)時(shí)控制小車的運(yùn)動(dòng)狀態(tài),控制智能小車運(yùn)行程序比較復(fù)雜,因而所需的內(nèi)存空間比較大。根據(jù)這些分析,我選定了STC12C5A60S2單片機(jī)作為本設(shè)計(jì)的主控裝置。STC12C5A60S2單片機(jī)有內(nèi)存空間大、高速、高可靠、寬電壓、超強(qiáng)抗干擾等功能;具有功能強(qiáng)大的位操作指令;I/O口均可按位尋址,程序空間多達(dá)60K;有8路8位高速A/D轉(zhuǎn)換器,速度可達(dá)到300KHz,且STC12C5A60S2單片機(jī)具有A/D轉(zhuǎn)換和PWM功能[4]。
2.2 電機(jī)驅(qū)動(dòng)模塊
電機(jī)驅(qū)動(dòng)模塊是智能電動(dòng)小車前行的直接動(dòng)力源,智能電動(dòng)小車驅(qū)動(dòng)電機(jī)的控制效果直接影響小車的速度以及前行的穩(wěn)定性。針對(duì)小車的電機(jī)驅(qū)動(dòng)模塊確定如下方案:
方案一:
采用繼電器對(duì)電動(dòng)機(jī)的開(kāi)或關(guān)進(jìn)行控制,通過(guò)開(kāi)關(guān)的切換對(duì)小車的方向進(jìn)行調(diào)整。此方案的優(yōu)點(diǎn)是電路較為簡(jiǎn)單,缺點(diǎn)是繼電器的響應(yīng)時(shí)間慢,易損壞,壽命較短,可靠性不高。
方案二:
采用電阻網(wǎng)絡(luò)或數(shù)字電位器調(diào)節(jié)電動(dòng)機(jī)的分壓,從而達(dá)到分壓的目的。但電阻網(wǎng)絡(luò)只能實(shí)現(xiàn)有級(jí)調(diào)速,而數(shù)字電阻的元器件價(jià)格比較昂貴。更主要的問(wèn)題在于一般的電動(dòng)機(jī)電阻很小,但電流很大,分壓不僅會(huì)降低效率,而且實(shí)現(xiàn)很困難。
方案三:
采用TB6612FNG電機(jī)驅(qū)動(dòng)芯片輸出控制直流電機(jī)。H型驅(qū)動(dòng)的電路結(jié)構(gòu)和原理簡(jiǎn)單,加速能力強(qiáng)。用單片機(jī)控制MOS管使之工作在占空比可調(diào)的開(kāi)關(guān)狀態(tài)下,精確調(diào)整電動(dòng)機(jī)轉(zhuǎn)速。這種電路由于工作在管子的飽和截止模式下,效率非常高,H型橋式電路保證了簡(jiǎn)單的實(shí)現(xiàn)轉(zhuǎn)速和方向的控制,電子管的開(kāi)關(guān)速度很快,穩(wěn)定性也極強(qiáng),是一種廣泛采用的PWM調(diào)速技術(shù)。本設(shè)計(jì)采用方案三,用TB6612FNG作為整個(gè)系統(tǒng)的驅(qū)動(dòng)器件。
TB6612FNG是一種直流電機(jī)驅(qū)動(dòng)器件,具有點(diǎn)電流MOSFET-H橋結(jié)構(gòu),雙通道電路輸出,可同時(shí)驅(qū)動(dòng)2個(gè)電機(jī)。設(shè)計(jì)使用TB6612FNG直流電機(jī)可以很好地實(shí)現(xiàn)對(duì)智能小車速度和位置的控制[4]。
2.3 循跡模塊
循跡模塊主要實(shí)現(xiàn)光電檢測(cè),即利用各種傳感器對(duì)智能電動(dòng)小車的位置和行車狀態(tài)等進(jìn)行實(shí)時(shí)測(cè)量。智能小車在給定的道路上能夠自主識(shí)別道路并行使的關(guān)鍵問(wèn)題是如何識(shí)別標(biāo)志(探尋黑線)。因此,準(zhǔn)確的尋線系統(tǒng)是智能小車設(shè)計(jì)的最重要的環(huán)節(jié)。現(xiàn)為循跡模塊制定如下備選方案:
方案一:
采用簡(jiǎn)易光電傳感器結(jié)合外圍電路探測(cè),但實(shí)際效果并不理想,對(duì)行駛過(guò)程中的穩(wěn)定性要求很高,且誤測(cè)幾率較大、易受光線環(huán)境和路面介質(zhì)影響。在使用過(guò)程中極易出現(xiàn)問(wèn)題,而且容易因?yàn)樵摬考斐烧麄€(gè)系統(tǒng)的不穩(wěn)定。故最終未采用該方案[5]。
方案二:
采用五只紅外對(duì)管,置于小車車頭前端,根據(jù)光電開(kāi)關(guān)接受到白線與黑線的情況來(lái)控制小車轉(zhuǎn)向來(lái)調(diào)整車向。若中間的光電傳感器檢測(cè)到黑線,則表明智能小車未偏離軌跡,單片機(jī)控制驅(qū)動(dòng)電機(jī)使轉(zhuǎn)向輪不偏轉(zhuǎn);若左(右)邊的光電傳感器檢測(cè)到黑線,則表明智能車的右(左)邊偏離軌跡,越靠近左(右)邊的傳感器檢測(cè)到黑線,表示智能小車向右(左)偏離軌跡的程度越大,單片機(jī)控制驅(qū)動(dòng)電機(jī)使轉(zhuǎn)向輪向左(右)偏轉(zhuǎn),偏離程度越大,則偏轉(zhuǎn)角度越大。若光電傳感器沒(méi)有檢測(cè)到黑線或是其他的檢測(cè)結(jié)果,則表明智能車已脫離軌跡,這時(shí)單片機(jī)應(yīng)控制驅(qū)動(dòng)電機(jī)使轉(zhuǎn)向輪保持原有的角度不變,同時(shí)控制直流電機(jī)使速度下降。測(cè)試表明,只要合理安裝好光電開(kāi)關(guān)的位置就可以很好的實(shí)現(xiàn)循跡的功能。智能電動(dòng)小車的設(shè)計(jì)采用方案二,用紅外光電傳感器來(lái)實(shí)現(xiàn)小車的循跡功能[6]。這種方案誤差較小且不易受路面狀況的限制,是比較理想的選擇。
2.4 機(jī)械系統(tǒng)
智能電動(dòng)小車的機(jī)械系統(tǒng)穩(wěn)定、靈活、簡(jiǎn)單,可選用三輪和四輪式,基于單片機(jī)的智能電動(dòng)小車要求小車具有較好的靈活性,采用三輪式設(shè)計(jì)可使智能電動(dòng)小車在滿足靈活性的同時(shí)又使設(shè)計(jì)簡(jiǎn)單、方便。小車的機(jī)械系統(tǒng)包括電源和驅(qū)動(dòng)兩部分。
驅(qū)動(dòng)部分:采用TB6612FNG電機(jī)驅(qū)動(dòng)芯片驅(qū)動(dòng)直流電機(jī),由TB6612FNG雙通道馬達(dá)驅(qū)動(dòng)模塊驅(qū)動(dòng)兩個(gè)電機(jī),保證基于單片機(jī)的智能電動(dòng)小車的驅(qū)動(dòng)能較好的實(shí)現(xiàn)。
電源模塊:將電池放置在車體的上面,可增加驅(qū)動(dòng)輪的抓地力,減小輪子空轉(zhuǎn)所引起的誤差。用LM2577升壓芯片將四節(jié)電池電壓先升壓到9V給直流電機(jī)的驅(qū)動(dòng)模塊,直流電機(jī)驅(qū)動(dòng)芯片通過(guò)單片機(jī)的控制來(lái)驅(qū)動(dòng)直流電機(jī)的前輪從而控制小車的運(yùn)動(dòng)狀態(tài),然后由AMS1117-5V降壓芯片將電壓降到5V給智能小車的控制系統(tǒng)。
<河南城建學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 第三章 硬件設(shè)計(jì)
第三章 硬件設(shè)計(jì)
基于單片機(jī)的智能電動(dòng)小車控制系統(tǒng)具備自動(dòng)循跡的功能,滿足按預(yù)設(shè)軌道行走并完成給定任務(wù)的要求,其硬件設(shè)計(jì)是實(shí)現(xiàn)循跡功能的基本要求和關(guān)鍵環(huán)節(jié),主要包括單片機(jī)控制電路、直流電機(jī)驅(qū)動(dòng)電路、軌跡識(shí)別電路等。
3.1總體設(shè)計(jì)
智能電動(dòng)小車實(shí)現(xiàn)循跡功能主要依靠軌跡識(shí)別模塊、單片機(jī)控制模塊和電機(jī)驅(qū)動(dòng)模塊完成。智能電動(dòng)小車采用前輪驅(qū)動(dòng),后輪轉(zhuǎn)換方向。循跡紅外發(fā)射與接收管分別裝在車頭下的左中右。當(dāng)車身下左邊的傳感器檢測(cè)到超出黑線時(shí),后輪右轉(zhuǎn),當(dāng)車身下右邊傳感器檢測(cè)到超出黑線時(shí),后輪左轉(zhuǎn),直到小車完全回到黑線。如果轉(zhuǎn)向過(guò)程中中間傳感器也檢測(cè)到超出黑線則說(shuō)明小車以這個(gè)轉(zhuǎn)向角度不能回到黑線,則改變后輪方向并后退。同樣可以起到轉(zhuǎn)向的作用,避免小車離線太遠(yuǎn)最終回不到黑線上。當(dāng)小車完全回到黑線再繼續(xù)向前,在檢測(cè)到下一次出線后再進(jìn)行同樣的調(diào)整。整個(gè)過(guò)程實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)采集、判斷、信號(hào)流程如圖3.1所示。
紅外軌跡識(shí)別模塊
單片機(jī)控制系統(tǒng)
圖3.1 整體設(shè)計(jì)框圖
馬達(dá)驅(qū)動(dòng)模塊
圖3.1 整體設(shè)計(jì)框圖
3.2 STC12C5A60S2單片機(jī)控制電路
單片機(jī)控制電路由單片機(jī)最小系統(tǒng)組成,主要作用是接受紅外光電傳感器探頭傳來(lái)的電壓信號(hào),再通過(guò)程序設(shè)定的邏輯算法給出驅(qū)動(dòng)電路指令驅(qū)動(dòng)電機(jī)控制小車的運(yùn)動(dòng)狀態(tài)。單片機(jī)最小系統(tǒng)包括主控STC12C5A60S2單片機(jī),外部時(shí)鐘電路,復(fù)位電路和電源組成[7]。
STC12C5A60S2單片機(jī)是增強(qiáng)型的8051單片機(jī),即8051單片機(jī)的升級(jí)版,與8051單片機(jī)的管腳完全兼容。STC12C5A60S2單片機(jī)具有60K的超大內(nèi)存,超強(qiáng)抗干擾性,整個(gè)芯片的抗靜電能力較強(qiáng);在系統(tǒng)可編程,無(wú)需編程器,無(wú)需仿真器,可遠(yuǎn)程升級(jí);內(nèi)部集成高可靠復(fù)位電路,外部復(fù)位電路可徹底省掉,超低功耗超快速度等優(yōu)點(diǎn)。
本設(shè)計(jì)采用如圖3.2所示的單片機(jī)最小系統(tǒng)[8]。
圖3.2單片機(jī)主控電路
3.2.1 STC12C5A60S2單片機(jī)的介紹
STC12C5A60S2單片機(jī)的主要功能:
u 高速:1個(gè)時(shí)鐘/機(jī)器周期,增強(qiáng)型8051內(nèi)核,速度比普通8051快8~12倍
u 寬電壓:5.5—3.3V,2.2—3.6V的寬電壓
u 增加第二引腳功能(高可靠復(fù)位,可調(diào)整復(fù)位門檻電壓。頻率小于12MHz時(shí),無(wú)需此功能)
u 增加外部掉電檢測(cè)電路,可在掉電時(shí)及時(shí)將數(shù)據(jù)保存進(jìn)EEPORM,正常工作時(shí)無(wú)需操作EEPORM
u 低功耗設(shè)計(jì):空閑模式(可由任意鍵喚醒),掉電模式(可由外部中斷喚醒,可支持下降沿/上升沿遠(yuǎn)程喚醒)
u 時(shí)鐘:外部晶體或RC振蕩器可選,在ISP下載用戶程序時(shí)設(shè)置
u 60K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器、 10萬(wàn)次以上擦寫周期
u 1028字節(jié)片內(nèi)RAM數(shù)據(jù)存儲(chǔ)器
u ISP/IAP,在系統(tǒng)可編程/在應(yīng)用可編程,無(wú)需編程器/仿真器
u 芯片內(nèi)EEPORM功能,擦寫次數(shù)十萬(wàn)次以上
u 8通道,10位高速ADC,速度可達(dá)25萬(wàn)次/秒,2路PWM還可當(dāng)2路D/A使用
u 2通道捕獲/比較單元,也可用來(lái)再實(shí)現(xiàn)2個(gè)定時(shí)器或2個(gè)外部中斷(支持下降沿/上升沿中斷)
u 4個(gè)16位定時(shí)器,兼容8051的定時(shí)器T0/T1,2路PAC實(shí)現(xiàn)2個(gè)定時(shí)器
u 可編程時(shí)鐘輸出功能,T0在P3.4輸出時(shí)鐘,T1在P3.5輸出時(shí)鐘,BRT在P1.0輸出時(shí)鐘
u 硬件看門狗(WDT)
u 高速SPI串行通信端口
u 全雙工異步串行口(UART),兼容普通8051的串口
u 先進(jìn)的指令集結(jié)結(jié)構(gòu),兼容8051指令集,有硬件乘法/除法指令
u 通用I/O口,復(fù)位后為:準(zhǔn)雙向口/弱上拉(普通8051傳統(tǒng)I/O口)
u 可設(shè)置成四種模式:準(zhǔn)雙向口/弱上拉,推免/強(qiáng)上拉,僅為輸入/高阻,開(kāi)漏
u A/D轉(zhuǎn)換, 10位精度ADC,共8路,轉(zhuǎn)換速度可達(dá)250K/S(每秒鐘25萬(wàn)次)18.通用全雙工異步串行口(UART),由于STC12系列是高速的8051,可再用定時(shí)器或PCA軟件實(shí)現(xiàn)多串口
u 每個(gè)I/O口驅(qū)動(dòng)能力均可達(dá)到20mA,但整個(gè)芯片最大不超過(guò)10mA
u 可設(shè)置成四種模式:準(zhǔn)雙向口/弱上拉,推免/強(qiáng)上拉,僅為輸入/高阻,開(kāi)漏
u 時(shí)鐘源:外部高精度晶體/時(shí)鐘,內(nèi)部R/C振蕩器(溫漂為+/-5%到+/-10%以內(nèi))1用戶在下載用戶程序時(shí),可選擇是使用內(nèi)部R/C振蕩器還是外部晶體/時(shí)鐘,常溫下內(nèi)部R/C振蕩器頻率為:5.0V單片機(jī)為:11MHz~15.5MHz,3.3V單片機(jī)為:8MHz~12MHz,精度要求不高時(shí),可選擇使用內(nèi)部時(shí)鐘,但因?yàn)橛兄圃煺`差和溫漂,以實(shí)際測(cè)試為準(zhǔn)
u 時(shí)鐘源:外部高精度晶體/時(shí)鐘,內(nèi)部R/C振蕩器(溫漂為+/-5%到+/-10%以內(nèi))1用戶在下載用戶程序時(shí),可選擇是使用內(nèi)部R/C振蕩器還是外部晶體/時(shí)鐘,常溫下內(nèi)部R/C振蕩器頻率為:5.0V單片機(jī)為:11MHz~15.5MHz,3.3V單片機(jī)為:8MHz~12MHz,精度要求不高時(shí),可選擇使用內(nèi)部時(shí)鐘,但因?yàn)橛兄圃煺`差和溫漂,以實(shí)際測(cè)試為準(zhǔn)
u A/D轉(zhuǎn)換, 10位精度ADC,共8路,轉(zhuǎn)換速度可達(dá)250K/S(每秒鐘25萬(wàn)次)18.通用全雙工異步串行口(UART),由于STC12系列是高速的8051,可再用定時(shí)器或PCA軟件實(shí)現(xiàn)多串口
u 每個(gè)I/O口驅(qū)動(dòng)能力均可達(dá)到20mA,但整個(gè)芯片最大不超過(guò)10mA
STC12C5A60S2單片機(jī)的引腳介紹:
STC12C5A60S2單片機(jī)有40個(gè)引腳,包括第二串口,A/D轉(zhuǎn)換,PWM功能和內(nèi)部EEPROM. STC12C5A60S2是一種低功耗、高性能CMOS 8位微控制器,使用高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。在單芯片上,擁有靈巧的8位CPU和在線系統(tǒng)可編程Flash,使得STC12C5A60S2為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。另外,STC12C5A60S2可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。
圖3.3為STC12C5A60S2的引腳圖。
圖3.3 STC12C5A60S2引腳示意圖
各引腳功能簡(jiǎn)單介紹如下:
VCC:供電電壓;
GND:接地;
P0口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每個(gè)管腳可吸收8TTL門電流。當(dāng)P1口的管腳寫“1”時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FLASH編程時(shí),P0口作為原碼輸入口,當(dāng)FLASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部電位必須被拉高;
P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入“1”后,電位被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收;
P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳電位被內(nèi)部上拉電阻拉高,且作為輸入。作為輸入時(shí),P2口的管腳電位被外部拉低,將輸出電流,這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉的優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào);
P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入時(shí),由于外部下拉為低電平,P3口將輸出電流(ILL),也是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口:
P3.0 RXD(串行輸入口)
P3.1 TXD(串行輸出口)
P3.2 INT0(外部中斷0)
P3.3 INT1(外部中斷1)
P3.4 T0(記時(shí)器0外部輸入)
P3.5 T1(記時(shí)器1外部輸入)
P3.6 WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)
P3.7 RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)
P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào);
RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高平時(shí)間;
ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令時(shí)ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效;
PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取址期間,每個(gè)機(jī)器周期PSEN兩次有效;
EA/VPP:當(dāng)EA保持低電平時(shí),訪問(wèn)外部ROM;注意加密方式1時(shí),EA將內(nèi)部鎖定為RESET;當(dāng)EA端保持高電平時(shí),訪問(wèn)內(nèi)部ROM。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP);
XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入;
XTAL2:來(lái)自反向振蕩器的輸出;
3.2.2 時(shí)鐘電路
STC12C5A60S2單片機(jī)各功能部件的運(yùn)行都以時(shí)鐘控制信號(hào)為基準(zhǔn),有條不紊的工作,時(shí)鐘頻率直接影響單片機(jī)的速度,時(shí)鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn)定性。XTAL1和XTAL2是獨(dú)立的輸入和輸出反相放大器,它們可以被配置為使用石英晶振的片內(nèi)振蕩器,或者是器件直接由外部時(shí)鐘驅(qū)動(dòng)。圖中采用的是內(nèi)時(shí)鐘模式,即采用利用芯片內(nèi)部的振蕩電路,在XTAL1、XTAL2的引腳上外接定時(shí)元件(一個(gè)石英晶體和兩個(gè)電容),內(nèi)部振蕩器便能產(chǎn)生自激振蕩。一般來(lái)說(shuō)晶振可以在1.2~12MHz之間任選,甚至可以達(dá)到24MHz或者更高,但是頻率越高功耗也就越大,在本設(shè)計(jì)中采用的11.0592M的石英晶振。和晶振并聯(lián)的兩個(gè)電容的大小對(duì)振蕩頻率有微小影響,可以起到頻率微調(diào)作用。當(dāng)采用石英晶振時(shí),電容可以在20~40pF之間選擇;當(dāng)采用陶瓷諧振器件時(shí),電容要適當(dāng)?shù)卦龃笠恍?,?0~50pF之間。通常選取33pF的陶瓷電容就可以了。另外,如果在設(shè)計(jì)單片機(jī)系統(tǒng)的印刷電路板(PCB)時(shí),晶體和電容應(yīng)盡可能與單片機(jī)芯片靠近,以減少引線的寄生電容,保證振蕩器可靠工作。單片機(jī)的時(shí)鐘電路如下所示:
圖3.4時(shí)鐘電路 圖3.5 復(fù)位電路
3.2.3 復(fù)位電路
在單片機(jī)系統(tǒng)中,復(fù)位電路(圖3.5)是非常關(guān)鍵的,當(dāng)程序跑飛(運(yùn)行不正常)或死機(jī)(停止運(yùn)行)時(shí),就需要進(jìn)行復(fù)位。STC12C5A60S2系列單片機(jī)的復(fù)位引腳RST出現(xiàn)2個(gè)機(jī)器周期以上的高電平時(shí),單片機(jī)就執(zhí)行復(fù)位操作。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。復(fù)位操作通常有兩種基本形式:上電自動(dòng)復(fù)位和開(kāi)關(guān)復(fù)位。上電瞬間,電容兩端電壓不能突變,此時(shí)電容的負(fù)極和RESET相連,電壓全部加在了電阻上,RESET的輸入為高,芯片被復(fù)位。隨之+5V電源給電容充電,電阻上的電壓逐漸減小,最后約等于0,芯片正常工作。一般來(lái)說(shuō),只要RST管腳上保持10ms以上的高電平,就能使單片機(jī)有效的復(fù)位。
3.2.4 P0口外接上拉電阻
STC12C5A60S2單片機(jī)的P0端口為開(kāi)漏輸出,內(nèi)部無(wú)上拉電阻。所以在當(dāng)做普通I/O輸出數(shù)據(jù)時(shí),由于V2截止,輸出級(jí)是漏極開(kāi)路電路,要使“1”信號(hào)(即高電平)正常輸出,必須外接上拉電阻。另外,避免輸入時(shí)讀取數(shù)據(jù)出錯(cuò),也需外接上拉電阻[5]。電路圖如下所示:
圖3.4 6 P0端口的1位結(jié)構(gòu)
3.3 TCRT5000黑色軌跡識(shí)別電路
小車循跡原理是小車在貼有黑色膠布作為黑線的白紙“路面”上行駛,由于黑線和白紙對(duì)光線的反射系數(shù)不同,可根據(jù)接收到的反射光的強(qiáng)弱來(lái)判斷“道路”—黑線。本次設(shè)計(jì)規(guī)定正常行駛時(shí)五個(gè)紅外探頭都在黑色軌跡之內(nèi),如果有探頭檢測(cè)到車體開(kāi)始偏離軌道則由控制系統(tǒng)做出相應(yīng)響應(yīng)使車體回到軌道上。此電路模塊就是用于檢測(cè)車體是否超出軌道并反饋給單片機(jī)控制電路,這一方法經(jīng)常被叫做紅外探測(cè)法。紅外探測(cè)法,即利用紅外線在不同顏色的物理表面具有不同的反射性質(zhì)的特點(diǎn)。
圖3.5 7 TCRT5000黑色軌跡識(shí)別電路
在小車行駛過(guò)程中不斷地向地面發(fā)射紅外光,當(dāng)紅外光遇到白色地面時(shí)發(fā)生漫發(fā)射,反射光被裝在小車上的接收管接收;如果遇到黑線則紅外光被吸收,則小車上的接收管接收不到信號(hào)。循跡模塊電路(如圖3.57所示),發(fā)射管不斷地發(fā)射紅外線,接收管與阻值為220歐姆的電阻串聯(lián)。在沒(méi)有接收到反射光線時(shí)接收管截止呈高阻態(tài),TX輸出高電平。當(dāng)接收管接收到反射光線時(shí),接收管被導(dǎo)通,并且電阻遠(yuǎn)小于47K,TX輸出低電平。
3.3.1 TCRT5000的介紹
TCRT5000探測(cè)器(如圖3.68)由光電晶體管組成,具有結(jié)構(gòu)緊湊建設(shè)發(fā)光光源和探測(cè)器排列在同一方向,以感知對(duì)象的存在,從對(duì)象使用反射紅外線光束。TCRT5000作為智能電動(dòng)小車的控制系統(tǒng)的紅外光電傳感器,實(shí)時(shí)監(jiān)測(cè)小車的運(yùn)動(dòng)的路況信息,它的工作波長(zhǎng)為950毫米。工作時(shí)由藍(lán)色發(fā)射管發(fā)射紅外線,紅外線由遮擋物反射回來(lái)被接收管接收。接收反射光線后的接收管呈導(dǎo)通狀態(tài),與電阻串聯(lián)即可組成一個(gè)由發(fā)射管控制的分壓電路,由此可實(shí)現(xiàn)對(duì)遮擋物反射光線強(qiáng)度的檢測(cè)。我們經(jīng)常利用這一特性去實(shí)現(xiàn)顏色識(shí)別。引腳圖如圖3.79所示。
圖3.6 8TCRT5000實(shí)物圖 圖3.7 9 TCRT5000引腳圖
傳感器的紅外發(fā)射二極管不斷發(fā)射紅外線,當(dāng)發(fā)射出的紅外線沒(méi)有被反射回來(lái)或被反射回來(lái)但強(qiáng)度不夠大時(shí),光敏三極管一直處于關(guān)斷狀態(tài),此時(shí)模塊的輸出端為低電平,指示二極管一直處于熄滅狀態(tài);被檢測(cè)物體出現(xiàn)在檢測(cè)范圍內(nèi)時(shí),紅外線被反射回來(lái)且強(qiáng)度足夠大,光敏三極管飽和,此時(shí)模塊的輸出端為高電平,指示二極管被點(diǎn)亮。
3.4 TB6612FNG電機(jī)驅(qū)動(dòng)電路
電機(jī)驅(qū)動(dòng)電路(原理圖如圖3.810)是智能電動(dòng)小車控制系統(tǒng)的主要?jiǎng)恿?lái)源,采用內(nèi)部集成了H橋的TB6612FNG的電機(jī)驅(qū)動(dòng)芯片組成直流電機(jī)驅(qū)動(dòng)電路,通過(guò)單片機(jī)給予TB6612FNG芯片PWM信號(hào)來(lái)控制直流電機(jī)從而控制小車的速度和起停。TB6612FNG直流驅(qū)動(dòng)模塊效率高,工作狀態(tài)穩(wěn)定,由一個(gè)TB6612FNG驅(qū)動(dòng)芯片驅(qū)動(dòng)兩個(gè)電機(jī)控制小車的運(yùn)動(dòng)狀態(tài)。
圖3.8 10 電機(jī)驅(qū)動(dòng)模塊原理圖
3.4.1 TB6612FNG的介紹
TB6612FNG是一種高電壓、大電流電機(jī)驅(qū)動(dòng)芯片。在集成化、小型化的電動(dòng)機(jī)控制系統(tǒng)中,它可以作為理想的驅(qū)動(dòng)器件。TB6612FNG在智能電動(dòng)小車的控制系統(tǒng)中作為直流電機(jī)的驅(qū)動(dòng)芯片,它的每通道輸出最高1.2A的連續(xù)驅(qū)動(dòng)電流,啟動(dòng)峰值電流達(dá)2A/3.2A(連續(xù)脈沖/單脈沖);4種電機(jī)控制模式:正轉(zhuǎn)/反轉(zhuǎn)/制動(dòng)/停止,PWM支持頻率高達(dá)100KHZ;待機(jī)狀態(tài);片內(nèi)低壓檢測(cè)電路與熱停機(jī)保護(hù)電路;它是一種直流電機(jī)驅(qū)動(dòng)器件,具有點(diǎn)電流MOSFET-H橋(如圖3.911)結(jié)構(gòu),雙通道電路輸出,可同時(shí)驅(qū)動(dòng)2個(gè)電機(jī)。
圖3.9 11 H橋式電路
TB6612FNG芯片的引腳圖如下圖,其邏輯功能表見(jiàn)表3.1。
圖3.10 12 TB6612FNG芯片的引腳圖
TB6612FNG芯片的引腳圖如圖3.412所示,TB6612FNG的主要引腳功能:AIN1/AIN2、BIN1/BIN2、PWMA/PWMB為控制信號(hào)輸入端;AO1/AO2、BO1/BO2為2路電機(jī)控制輸出端;STBY為正常工作/待機(jī)狀態(tài)控制引腳;VM(4.5—15V)和VCC(2.7—5.5V)分別為電機(jī)驅(qū)動(dòng)電壓輸入和邏輯電平輸入端[7]。
表3.1 邏輯功能表
Input
Output
IN1
IN2
PWM
STBY
OUT1
OUT2
Mode
H
H
H/L
H
L
L
Short brake
L
H
H
H
L
H
CCW
L
H
L
L
Short brake
H
L
H
H
H
L
CW
L
H
L
L
Short brake
L
L
H
H
OFF
(High impedance)
Stop
H/L
H/L
H/L
L
OFF
(High impedance)
Standby
脈寬調(diào)制方式產(chǎn)生的占空比變化的PWM信號(hào),通過(guò)對(duì)驅(qū)動(dòng)器輸出狀態(tài)的快速切換,實(shí)現(xiàn)電機(jī)的速度控制。PWM占空比的大小決定輸出電壓平均值,進(jìn)而決定電機(jī)的轉(zhuǎn)速。TB6612FNG芯片的邏輯真值表如表3.1所示,該器件工作時(shí)STBY引腳為高電平,IN1和IN2不變,調(diào)整PWM引腳的輸入信號(hào)可進(jìn)行電機(jī)單向速度控制,置PWM引腳為高電平,并調(diào)整IN1和IN2的輸入信號(hào)可進(jìn)行電機(jī)雙向速度控制。表中A、B兩通道的控制邏輯相同。
3.5 升降壓模塊
基于單片機(jī)的智能電動(dòng)小車DE控制系統(tǒng)和驅(qū)動(dòng)模塊需要的電壓不同,這要求整個(gè)設(shè)計(jì)要有電壓轉(zhuǎn)換電路[9]。本系統(tǒng)采用LM2577S升壓芯片將四節(jié)電池電壓先升壓到9V給直流電機(jī),直流電機(jī)通過(guò)單片機(jī)的控制來(lái)驅(qū)動(dòng)前輪從而控制小車的運(yùn)動(dòng)狀態(tài),然后AMS1117-5V降壓芯片將電壓降到5V給智能小車的控制系統(tǒng)[10]。電壓轉(zhuǎn)換電路如圖3.1113所示。
圖3.11 13 電壓轉(zhuǎn)換電路
3.5.1 LM2577的介紹
本設(shè)計(jì)用到的LM2577芯片主要是升壓的作用[11],用LM2577組成的升壓電路來(lái)把電壓升到9V供給電機(jī)用。該LM2577是單片集成電路的升壓提供所有的電源和控制功能(升壓),反激式和正激轉(zhuǎn)換器的開(kāi)關(guān)穩(wěn)壓器[12]。該器件有三種不同的輸出電壓版本:12V、15V和可調(diào)式。它需要的外部元件數(shù)量最少,這些監(jiān)管機(jī)構(gòu)的成本效益和簡(jiǎn)單易用。本設(shè)計(jì)包括在芯片上是一個(gè)3.0ANPN開(kāi)關(guān)及其相關(guān)保護(hù)電路,它有電流、熱限制和欠壓閉鎖等功能。其他功能還包括一個(gè)52千赫固定頻率振蕩器,無(wú)需外部元件,軟啟動(dòng)模式,以降低浪涌電流啟動(dòng)時(shí),以及電流模式控制的改進(jìn)的排斥反應(yīng)輸入電壓和輸出負(fù)載瞬變。LM2577的典型應(yīng)用有:簡(jiǎn)單的升壓穩(wěn)壓器、反激和正向調(diào)節(jié)器和多輸出穩(wěn)壓器等。它的典型應(yīng)用原理圖如下圖所示:
圖3.1214典型升壓電路
LM2577的特性:
1)需要很少的外部元件;
2)NPN輸出開(kāi)關(guān)3.0A,可以站開(kāi)65V;
3)寬輸入電壓范圍:3.5V至40V;
4)對(duì)于改善瞬態(tài)電流模式操作響應(yīng),線路調(diào)節(jié)和限流;
5)52 kHz內(nèi)部振蕩器;
6)軟啟動(dòng)功能降低了啟動(dòng)期間的浪涌電流;
7)輸出通過(guò)開(kāi)關(guān)電流限制保護(hù),欠壓鎖定和熱關(guān)斷;
LM2577的引腳圖如下所示:
圖3.13 15 LM2577引腳圖
<河南城建學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 第三章 硬件設(shè)計(jì)
<河南城建學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 設(shè)計(jì)安裝與調(diào)試
3.6液晶屏模塊
智能電動(dòng)小車采用1602液晶屏實(shí)時(shí)的顯示小車的速度和運(yùn)動(dòng)的路況,便于觀察小車的位置和運(yùn)動(dòng)狀態(tài)。
1602液晶也叫1602字符型液晶(如圖3.13),是一種專門用來(lái)顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊,目前常用16*1、16*2、20*2和40*2行等的模塊。市面上字符型液晶大多是基于HD44780液晶芯片的,其控制原理完全相同,因此基于HD44780寫的控制程序可以很方便的應(yīng)用于市面上的大部分字符型液晶。
圖3.13 1602液晶顯示實(shí)物
圖3.9 1602液晶顯示引腳圖
第四章 軟件設(shè)計(jì)
基于單片機(jī)的智能電動(dòng)小車控制系統(tǒng)具備自動(dòng)循跡的功能,能滿足按預(yù)設(shè)軌道行走并完成給定任務(wù)的要求,其中單片機(jī)是實(shí)現(xiàn)電動(dòng)智能小車控制系統(tǒng)的核心,其軟件設(shè)計(jì)是實(shí)現(xiàn)循跡功能的基本要求和關(guān)鍵環(huán)節(jié)。下面主要對(duì)主程序和循跡部分程序作簡(jiǎn)要的介紹。
4.1主程序流程
開(kāi)始
主程序運(yùn)行時(shí)部分包括先初始化(A/D采樣初始化和電機(jī)初始化)再根據(jù)單片機(jī)I/O口的輸出情況分析判斷并調(diào)用循跡函數(shù)和電機(jī)控制函數(shù)來(lái)調(diào)整小車的運(yùn)動(dòng)[13]。
主程序流程圖如圖4.1所示。
A/D采樣初始化
電機(jī)初始化
根據(jù)A/D轉(zhuǎn)換結(jié)果分析黑線位置
左轉(zhuǎn)
直走
右轉(zhuǎn)
結(jié)束
圖4.1 主程序流程圖
圖5.1 主程序流程圖
主函數(shù):
void main()
{
Uart_init();
//LCD_Init();
//LCD_Clear();
InitADC();
TMOD|=0x02; /* timer 0 mode 2: 8-Bit reload */
TH0=0xff;
TR0=1;
STBY=1;
OPT_EN=1;
//LCD_Write_String(0,0,temp);//顯示第一行
//Uart_Printf(temp);
//LCD_Write_String(0,1,"Car Is Running..");
BUZZER=1;
PWM_clock(1); // PCA/PWM時(shí)鐘源為 定時(shí)器0的溢出(用方式2)做為PCA計(jì)數(shù)累加的標(biāo)志
PWM_start(0,0); // 模塊0,設(shè)置為PWM輸出,無(wú)中斷,初始占空因素為模塊0為25%模塊1為50%
PWM_start(1,0); /// 模塊1,設(shè)置為PWM輸出,無(wú)中斷,初始占空因素為模塊0為25%模塊1為50%
setSpeeds(50, 50);
while(1)
{
if(UART_flag==1)
{
Uart_Printf(str);
check(str);
i=0;
ES=1;
UART_flag=0;
}
adc_hc[0]=GetADCResult(0);
DelayMs(1);
adc_hc[1]=GetADCResult(1);
DelayMs(1);
adc_hc[2]=GetADCResult(2);
DelayMs(1);
adc_hc[3]=GetADCResult(3);
DelayMs(1);
adc_hc[3]=GetADCResult(4);
/////急停
if(RESET_KEY==0)
STBY=~STBY;
check_sensor(&adc_hc[5]);
if(START_KEY==0) ;
///////////////串口測(cè)試
Vin=GetADCResult(6);
Vin=Vin*19*2;
sprintf(temp,"Vin=%dmV\n", Vin);
Uart_Printf(temp);
}
}
4.2循跡子程序流程圖
小車進(jìn)入尋跡模式后,即開(kāi)始不停地掃描與探測(cè)器連接的單片I/O口,一旦檢測(cè)到某個(gè)I/O口有信號(hào)變化,就執(zhí)行相應(yīng)的判斷程序,把相應(yīng)的信號(hào)發(fā)送給電動(dòng)機(jī)從而糾正小車的狀態(tài)[14]。
循跡子程序流程圖如圖4.2所示,表4.1顯示出了小車運(yùn)動(dòng)狀態(tài)和傳感器檢測(cè)結(jié)果的情況。
開(kāi)始
前進(jìn)
是
掃描I/O口,判斷是否檢測(cè)黑線
否
轉(zhuǎn)向
圖4.2 循跡子程序流程圖
圖5.2 循跡子程序流程圖
表4.1 傳感器檢測(cè)結(jié)果和小車運(yùn)動(dòng)狀態(tài)表
光電傳感器輸出引腳檢測(cè)狀態(tài)(1/0)
小車執(zhí)行狀態(tài)
PC0
PC1
PC2
PC3
PC4
0
0
1
0
0
高速直行
0
1
0
0
0
低速左轉(zhuǎn)
1
0
0
0
0
高速左轉(zhuǎn)
0
0
0
1
0
低速右轉(zhuǎn)
0
0
0
0
1
高速右轉(zhuǎn)
0
1
1
0
0
低速左轉(zhuǎn)
1
1
0
0
0
高速左轉(zhuǎn)
0
0
1
1
0
低速右轉(zhuǎn)
0
0
0
1
1
高速右轉(zhuǎn)
1
1
1
0
0
高速左轉(zhuǎn)
0
0
1
1
1
高速右轉(zhuǎn)
0
1
1
1
0
高速直行
1
1
1
1
1
高速直行
0
0
0
0
0
高速停車
循跡函數(shù)
void check_sensor(unsigned char adc_da[]) //將得到的AD轉(zhuǎn)換值導(dǎo)入
{
unsigned char lukou=0; //lukou變量用于路口判斷
//單個(gè)傳感器檢測(cè)到信號(hào)的情況
//2號(hào)傳感器檢測(cè)到信號(hào),其余沒(méi)有檢測(cè)到信號(hào)
if((adc_da[0]<=low)&&(adc_da[1]<=low)&&(adc_da[2]>=high)&&(adc_da[3]<=low)&&(adc_da[4]<=low))
{
zhuanx(6); //調(diào)用高速前行函數(shù)
}
// 1號(hào)傳感器檢測(cè)到信號(hào),其余沒(méi)有檢測(cè)到信號(hào)
if((adc_da[0]<=low)&&(adc_da[1]>=high)&&(adc_da[2]<=low)&&(adc_da[3]<=low)&&(adc_da[4]<=low))
{
zhuanx(3);//調(diào)用低速左轉(zhuǎn)函數(shù)
}
// 0號(hào)傳感器檢測(cè)到信號(hào),其余沒(méi)有檢測(cè)到
if((adc_da[0]>=high)&&(adc_da[1]<=low)&&(adc_da[2]<=low)&&(adc_da[3]<=low)&&(adc_da[4]<=low))
{
zhuanx(1); //調(diào)用高速左轉(zhuǎn)函數(shù)
}
//3號(hào)傳感器檢測(cè)到信號(hào),其余沒(méi)有檢測(cè)到信號(hào)
if((adc_da[0]<=low)&&(adc_da[1]<=low)&&(adc_da[2
收藏