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