精密黑線運動的小車_第1頁
精密黑線運動的小車_第2頁
精密黑線運動的小車_第3頁
精密黑線運動的小車_第4頁
精密黑線運動的小車_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

智能小車的黑線運動摘要隨著電子信息技術(shù)的飛速發(fā)展,現(xiàn)代電子技術(shù)將會在汽車上得到越來越多的運用,并且這一方向的最終目標將會是實現(xiàn)智能化、無人駕駛汽車。本次要求設計的模擬小車,基于電子技術(shù)應用、傳感器、自動控制、單片機應用、電機傳動等原理實現(xiàn)小車準確沿黑線運動。采用黑色膠布鋪設在淺色紙張中心,作為小車運動時的模擬黑線跑道。在凌陽公司單片機SPCE061A的支持下,通過反射式光電傳感器判斷小車運動時的路面信息,經(jīng)過算法處理,送出控制信號到小車電機,從而控制小車左轉(zhuǎn)、右轉(zhuǎn)、前進和后退,使小車能夠準確跟蹤黑線跑道,實現(xiàn)小車的簡易智能化。同時在小車運動時,利用SPCE061A內(nèi)部的中斷計數(shù)功能,同步的實時顯示小車運動時間。關(guān)鍵詞SPCE061A單片機,反射式光電傳感器,自控小車,時間顯示ABSTRACTAlongwiththeelectronicinformationtechnologyrapiddevelopment,themodernelectronictechnologywillbeabletoobtainmoreandmoreutilizationontheautomobile,andthisdirectionultimateobjectivecouldrealizetheintellectualization,nodriverautomobile.Therequestofdesignasimulationcarbasedontheprincipleofelectronictechnologyapplication,sensor,automaticcontrol,singlechipcomputerapplication,electricalmachinerytransmissionandsoontheoriestoletthesimulationcaraccuratelyfollowtheblacklinesport.Usingtheblackadhesiveplasterlocatesonthecenterofthewhitepaper,asthecar’ssimulationlinerunway.UnderthesupportofLingyangsinglechipmircocomputerSPCE061A,throughthereflectiontypeelectro-opticalsensorjudgmenttheroadsurfaceinformationwhenthecarbegintomove,accordingprocedure’sprocessing,sendsoutthecontrolsignaltothecarelectricalengineering,andcontrolsthesimulationcar’sright,left,advanceandthebacktoenablethesimulationcaraccuratelytotracktherunwaytoattainsystemofsimpleintellectualization.Meanwhilewhencarmove,makinguseofthecountfunctionoftheSPCE061Ainteriorseverance,synchronouslydisplaythecar’smovementtime.KeywordsTheSPCE061Asinglechipmircocomputer,Thereflectiontypeelectro-opticalsensor,Automaticcontrolsimulationcar,Timedisplay目錄摘要 IABSTRACT II1緒論 11.1課題背景 11.1.1當前智能汽車發(fā)展背景 11.1.2本次畢業(yè)設計情況 21.2畢業(yè)設計要求 32系統(tǒng)基本方案確定 42.1控制模塊選擇 42.1.1采用FPGA作為系統(tǒng)的控制器 42.1.2MCS-51與SPCE061A的比較 42.2電機位置選擇 82.2.1電機位置的選取 82.3電機控制方案 112.3.1勵磁控制法 112.3.2電樞電壓控制法 112.3.3V—M控制法 112.3.4直流脈寬調(diào)制 122.3.5凌陽公司的配套小車 132.4路面檢測模塊選擇 142.5顯示模塊 153單元電路設計 163.1單片機設定 163.1.1系統(tǒng)時鐘設定 163.1.2定義引腳 163.1.3開啟中斷 173.2電機驅(qū)動電路 173.3光電傳感電路設計 193.4顯示模塊 203.5系統(tǒng)框圖 214系統(tǒng)軟件設計 224.1小車運動子程序 224.1.1運動設計 224.1.2讀取數(shù)據(jù)設計 234.2光電檢測子程序 244.3顯示模塊子程序 264.3.1計數(shù)程序設計 264.3.2時間顯示設計 264.4中斷使用設計 274.5延時程序設計 284.6清看門狗設計 284.7系統(tǒng)流程圖 295系統(tǒng)調(diào)試 305.1測試工具 305.2單片機引腳電平測試 305.2.1對IOB口的測量 305.2.2對IOA口的測量 315.3對光電傳感電路的調(diào)試 325.4運動時間的測試 335.5誤差分析 335.5.1運動誤差分析 345.5.2運動時間誤差分析 345.5.3解決措施 34結(jié)論 35附錄A:主程序清單 36附錄B:延時子程序 40附錄C:數(shù)字顯示代碼 41參考文獻 42致謝 43PAGE431緒論1.1課題背景1.1.1當前智能汽車發(fā)展背景智能化電器及汽車電子業(yè)快速發(fā)展呈現(xiàn)出兩大特點:一、產(chǎn)品智能化:交通法規(guī)和市場需求大力推動汽車電子信息技術(shù)的發(fā)展。目前,能源、排放、噪聲、安全法規(guī)日趨嚴格,客戶對舒適性的要求不斷提高,都是推動汽車電子信息技術(shù)發(fā)展的重要因素。隨著我國汽車排放標準、汽車安全性能的不斷提高,安全帶、安全氣囊、ABS、ASR等產(chǎn)品都將實現(xiàn)智能化。二、產(chǎn)品集成化:隨著汽車和發(fā)動機系統(tǒng)微處理器的規(guī)模越來越大,汽車微處理器越來越多,有的車型達60個,并采用LIN、CAN網(wǎng)絡控制。據(jù)統(tǒng)計,目前,汽車電子產(chǎn)品已占汽車總成本的1/3,軟件部分占4%,今后一個時期,預計將超過10%。隨著制造技術(shù)的不斷提高,IC將趨于集成化。由一個IC實現(xiàn)相當于以前多個IC的功能。目前,汽車ITS正在迅速興起,包括汽車的智能化、公路的自動化和導航系統(tǒng)等,綜合控制成為汽車電子信息技術(shù)發(fā)展趨勢,遠程信息處理系統(tǒng)使藍牙技術(shù)廣泛應用于汽車,汽車整體智能化水平將不斷提升。在電子技術(shù)迅速發(fā)展的今天,人們對汽車駕駛的要求也會有相應的提高,都希望汽車在首先作為駕駛工具的時候能提供高性能的駕駛特性,這些駕駛要求就是能夠滿足駕駛的安全性、以及駕駛時候的舒適性。在這些要求都能得到滿足的時候,就希望汽車還能作為我們駕駛的時候一種娛樂或者體驗高科技的載體,并且能夠?qū)崿F(xiàn)所謂自動化的功能,這就是當今流行的智能汽車。隨著電子信息技術(shù)的飛速發(fā)展,形形色色的汽車智能技術(shù)在汽車上得到推廣應用,充分體現(xiàn)出其安全、可靠、舒適、方便及快捷的優(yōu)越性能。智能汽車是一種能夠自動導航的新型汽車,車內(nèi)安裝有導航顯示屏,可以在駕駛員鍵入目的地地名后顯示出行車路線,當汽車接近某個需要拐彎的路口時,語言裝置通過人工合成的聲音發(fā)出提示,當遇到交通堵塞的情況時,導航系統(tǒng)將引領(lǐng)駕駛員繞道而行,并且可以隨機應變,依據(jù)不同的道路狀況和速度變化的狀況自動進行啟動,加速或剎車制動。智能汽車由一部道路圖像識別裝置,一部小型電子計算機和一套用電信號控制的自動操作系統(tǒng)組成。道路圖像識別裝置用來識別復雜的路況。其中比較核心的部分就是智能導航系統(tǒng):該技術(shù)將很受駕車者歡迎,尤其是長途開車和外出旅行,你不必擔心方向和路徑,預先輸入的指令將保證車子按最佳路線行駛。同時,自動控制系統(tǒng)將讓你不必一直將腳放在踏板上,該系統(tǒng)通過雷達使汽車同前面的一輛車保持安全的距離。隨著一種利用全新的衛(wèi)星導航系統(tǒng)——也就是GPS的廣泛應用。GPS(GlobalPilotSystem)全球?qū)Ш较到y(tǒng)也稱全球衛(wèi)星定位系統(tǒng)。它是依靠地球周圍的24顆定位衛(wèi)星,不斷的對地面發(fā)射三維位置、三維速度的電子信息,然后通過地球上安裝的相應的接收設備接收到這些信息,并用中轉(zhuǎn)幀繼續(xù)設備進行分析,從而判定發(fā)射提供信息的物體所處方位的一種定位系統(tǒng)。GPS的主要功能是:實時顯示汽車在預先制定的電子地圖中的位置、行駛速度,以及與目的地之間的距離。輸入目的地后自動生成一條去目的地的最佳行駛路線,并在轉(zhuǎn)彎時用語言提醒用戶,使用戶去任何地方都不用問路,便可直接到達。開發(fā)一種無需駕駛員的智能型汽車的任務,也提到了議事日程上來。開發(fā)這種汽車的技術(shù)關(guān)鍵有二:一是要研制能正確選擇車道、感應障礙物、自動避免沖撞的技術(shù)。如德、法等國研制的“自動智能巡航控制(ATCC)系統(tǒng)”,就是這樣一種裝置,它可以用來選擇最佳行車路線,防止與前面的車靠得太近,在能見度很差的情況下可以安全地行駛。這種裝置能自動控制本車相對于其他車輛的速度。一種傳感器在不斷地測量前面車輛的速度,并據(jù)此調(diào)節(jié)加速器,確定自己的合理車速。車上的紅外激光不斷地掃描車前的道路,尋找障礙物,同時把所獲數(shù)據(jù)在汽車的擋風玻璃上顯示出來;遇有危險情況時,會自動降低車速,或緊急剎車,處理時間為300毫秒。二是必須鋪設專用道路。這種道路的靈魂和核心是各種信息設備和傳輸技術(shù),它通由監(jiān)測器、數(shù)據(jù)搜集器、中心電腦、電子顯示牌和閃光燈等構(gòu)成。監(jiān)測器設置在公路兩旁或上方,汽車駛過時它會把車流信息通知路旁的數(shù)據(jù)搜集器,進而傳至中心電腦,由中心電腦自動調(diào)節(jié)紅綠燈時間,使車輛的停留時間減至最小。同時,路旁的電子顯示牌會顯示交通堵塞的程度,范圍以及其他交通情況;或啟動閃光燈,提醒乘車人收聽當?shù)亟煌ㄇ闆r廣播。1.1.2本次畢業(yè)設計情況上面是有關(guān)于當今流行的智能汽車的簡單介紹,這次的畢業(yè)設計沒有上面的難度。只是能夠代表一定的以后智能汽車的發(fā)展方向。鑒于現(xiàn)在智能汽車發(fā)展的趨勢,因此這次的畢業(yè)設計的題目有一定實用性。這次的畢業(yè)設計題目是在2001年以及2003全國大學生電子競賽的基礎(chǔ)上而得來的,鑒于全國大學生電子競賽對前沿科技有一定的預見性,因此在這里也借鑒了以前兩次的全國大學生電子競賽的題目要求,并且在此基礎(chǔ)上進行了一些比較,在對以前的題目要求做了一些改進和刪除的基礎(chǔ)上,提出了本次畢業(yè)設計題目的要求。這次畢業(yè)設計的題目是智能小車的黑線運動,小車可以選擇玩具車,或者自己動手買電動機以及所需的器件自制。在小車車身上面安裝一定的傳感器件,能夠檢測出路面信息,并且送出相應的信號到控制模塊去進行判斷,通過光電傳感器對路面信息檢測的信號輸入,以及控制模塊中的算法處理,對小車的運動做出調(diào)整,使小車能沿鋪設的黑線準確行駛。最后一項功能就是,根據(jù)單片機系統(tǒng)內(nèi)的計數(shù)模塊功能計算出小車行駛的總時間,并在任一時刻實時地變化顯示小車運動時間。這次的畢業(yè)設計是對我們大學四年所學知識一個大的綜合,其中就包括對電子技術(shù)的基本應用、傳感器件的使用、單片機的熟練應用如:編程、外圍電路接口的使用、對電機傳動方式的原理運用以及對物體的整體布局等等的一個綜合應用。這次的畢業(yè)設計是對機電一體化、自動控制、單片機和電子技術(shù)使用等綜合能力水平的體現(xiàn)。1.2畢業(yè)設計要求本次畢業(yè)設計的題目是智能小車的黑線運動,采用凌陽公司的SPCE061A單片機作為控制核心,利用反射式光電傳感器作為路面信息判斷的標準,通過內(nèi)部算法的調(diào)整,使小車能夠按照自動跟蹤黑線運動,特別是在彎度幅度比較大的時候不會發(fā)生錯誤而能繼續(xù)跟蹤黑線;同時采用顯示集成電路實時顯示小車運動時間。因此所設計出的小車應該具有以下功能:①光電傳感器能夠識別黑色膠布與白色紙張的區(qū)別,并能傳送到單片機引腳;②小車在運動時能對路面信息進行算法處理,調(diào)整運動方向,自動地跟蹤黑線運動,使小車能很準確地沿黑線運動;③能夠?qū)崟r地顯示小車運動時間。2系統(tǒng)基本方案確定該畢業(yè)設計是基于自動控制的基本原理;采用多個傳感器協(xié)調(diào)配合;單片機中采用高效算法作為中心控制,設計一輛具有自適應能力的簡易智能電動車。根據(jù)題目要求,本次設計中應具有:控制模塊、電機驅(qū)動模塊、路面信號檢測模塊、時間顯示模塊。以下是對各模塊理論方案分析論證的詳細陳述:2.1控制模塊選擇根據(jù)題目要求,整個系統(tǒng)只需要幾個光電傳感器的協(xié)調(diào)作用,經(jīng)過控制模塊的調(diào)整就能達到要求。其中控制部分起到了調(diào)節(jié)和控制小車運動的功能。2.1.1采用FPGA作為系統(tǒng)的控制器FPGA是英文FieldProgrammableGateArray的縮寫,即現(xiàn)場可編程門陣列,它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點。FPGA采用了邏輯單元陣列LCA(LogicCellArray)這樣一個新概念,內(nèi)部包括可配置邏輯模塊CLB(ConfigurableLogicBlock)、輸入輸出模塊IOB(InputOutputBlock)和內(nèi)部連線(Interconnect)三個部分。FPGA的基本特點主要有:①采用FPGA設計ASIC電路,用戶不需要投片生產(chǎn),就能得到合用的芯片。②FPGA可做其它全定制或半定制ASIC電路的中試樣片。③FPGA內(nèi)部有豐富的觸發(fā)器和I/O引腳。④FPGA是ASIC電路中設計周期最短、開發(fā)費用最低、風險最小的器件之一。⑤FPGA采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容??梢哉f,F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。FPGA可以實現(xiàn)各種復雜的邏輯功能,即將所有的器件集成在一塊芯片上,它采用的是并行的輸入輸出方式,適合大規(guī)模事實系統(tǒng)的控制核心。但是由于其集成度高,使其成本偏高;在編寫程序方面有較大的難度;同時由于芯片的引腳較多,使硬件電路板布線復雜,加重了電路設計和實際焊接的難度。2.1.2MCS-51與SPCE061A的比較MCS-51是美國芯片公司Intel的產(chǎn)品,作為世界上運用最為廣泛的芯片之一,它具有很多優(yōu)點:比如說可靠性高、程序設計簡單、集成度高、易于使用、價格便宜、可用類型多等等優(yōu)點,已經(jīng)在日常生活中廣泛被運用。MCS—51系列是Intel公司于1980年推出,它是一種高性能的8位單片機,一般封裝為40引腳。其內(nèi)部有一個八位的微處理器(CPU),一個4K的程序存儲器和一個128K的數(shù)據(jù)存儲器用于存放用戶的程序等等,另外還有64K的片外程序和數(shù)據(jù)的存儲器尋址能力,以便在系統(tǒng)空間不夠時可以用于擴展MCS—51的引腳,還有一個用于通信的全雙工的異步串行口,以及用于計數(shù)的2個定時/計數(shù)器和32位的輸入/輸出總線。而SPCE061A是我國臺灣的一家著名芯片公司凌陽科技公司的產(chǎn)品。它是“凌陽大學計劃”專為大學生、電子愛好者等進行電子實習、課程設計、畢業(yè)設計、電子制作以及電子競賽設計而專門生產(chǎn)的一個型號的芯片,它具有體積小、集成度高、可靠性好且易于擴展、較強的中斷處理能力、高性能的價格比、功能強、效率高的指令系統(tǒng)和低電壓、低功耗等等優(yōu)點。61板除了具備單片機最小系統(tǒng)電路外,還包括有電源電路、音頻電路(含MIC輸入部分和DAC音頻輸出部分)、復位電路等,采用電池供電,方便隨身攜帶。表2.1兩者的特點比較比較SPCE061AMCS—51核心16位ü’nsp核心8位8051核心I/O輸出端口32位:A(16)、B(16);可以按位單獨定義其狀態(tài)32位:P0(8)、P1(8)、P2(8)、P3(8);不可以按位單獨定義其狀態(tài)中斷結(jié)構(gòu)14個中斷源,兩個優(yōu)先級5個中斷源,兩個優(yōu)先級存儲器32K字FLASH,2K字SRAM4KROM,128K字節(jié)RAMCPU時鐘32768Hz—49.152MHz(可軟件選)2—8MHz位操作無有由于本次畢業(yè)設計對單片機內(nèi)部資源要求較高,在使用引腳方面由于凌陽的單片機具有32位引腳,還具有位定義的特點,而在很多的時候都是分別利用引腳完成不同的功能;另外在內(nèi)部存儲器上,SPCE061A有更大的存儲空間以便于程序的編寫和調(diào)試,而MCS—51的存儲空間相對就小了很多,因此一片MCS—51單片機很難滿足要求。另外SPCE061A還具有2通道10位DAC;7通道ADC和1通道MIC輸入;觸鍵喚醒功能;可調(diào)PWM輸出;看門狗的外圍電路大大減化。SPCE061A還具有豐富的時基信源和時基中斷,并且提供了非常精確的時基計數(shù),很方便完成的顯示小車行駛時間的要求。如圖2.1為SPCE061A的基本原理圖。圖2.1SPCE061A結(jié)構(gòu)框圖61板上有調(diào)試器接口(Probe接口)以及下載線(EZ_Probe)接口,分別可接凌陽科技的在線調(diào)試器、簡易下載線,配合unSPIDE,可方便地在板上實現(xiàn)程序下載、在線仿真調(diào)試。以下是SPCE061A的基本特點以及功能:1)16位ü’nSP微處理器;2)工作電壓:VDD為2.4——3.6V(CPU),VDDH為2.4——5.5V(I/O);3)CPU時鐘:32768Hz——49.152MHz;4)內(nèi)置2K字SRAM、內(nèi)置32KFLASH;5)可編程音頻處理;6)32位通用可編程輸入/輸出端口;7)32768Hz實時時鐘,鎖相環(huán)PLL振蕩器提供系統(tǒng)時鐘信號;8)2個16位可編程定時器/計數(shù)器(可自動預置初始計數(shù)值);9)2個10位DAC(數(shù)-模轉(zhuǎn)換)輸出通道;10)7通道10位電壓模-數(shù)轉(zhuǎn)換器(ADC)和單通道語音模-數(shù)轉(zhuǎn)換器;11)聲音模-數(shù)轉(zhuǎn)換器輸入通道內(nèi)置麥克風放大器自動增益控制(AGC)功能;12)系統(tǒng)處于備用狀態(tài)下(時鐘處于停止狀態(tài))耗電小于2mA@3.6V;13)14個中斷源:定時器A/B,2個外部時鐘源輸入,時基,鍵喚醒等;14)具備觸鍵喚醒的功能;15)使用凌陽音頻編碼SACM_S240方式(2.4K位/秒),能容納210秒的語音數(shù)據(jù);16)具備異步、同步串行設備接口;17)具有低電壓復位(LVR)功能和低電壓監(jiān)測(LVD)功能;18)內(nèi)置在線仿真電路接口ICE(In-CircuitEmulator);

19)具有保密能力;具有WatchDog功能(由具體型號決定)。表2.2SPCE061A引腳功能使用說明IOA0-IOA15I/O口A共16位IOB0-IOB15I/O口B共16位OSC32I振蕩器輸入。在石英晶振模式下是石英元件的一個輸入腳,而在阻容模式下RC是振蕩器的輸入腳OSC32O振蕩器輸出。在石英晶振模式下是石英元件的一個輸入腳或是外部脈沖的輸入腳XRESB復位輸入。若這個腳輸入低電平時會使控制器被重置復位ICE_ENICE使能端ICE_SCKICE時鐘端ICE_SDAICE數(shù)據(jù)端PVIN程序保密設定端PFUSE程序保密設定端DAC1音頻輸出通道1DAC2音頻輸出通道2X32O晶振輸出X32I晶振輸入VREF22V參考電壓輸出端AGC語音輸入自動增益控制端OPIMicrophone的第二運放輸入端MICOUTMicrophone的第一運放輸出端MICNMicrophone的正向輸入端MICPMicrophone的負向輸入端VRT外部A/D最高參考電壓,即A/D轉(zhuǎn)換輸入電壓上限值輸入端;如該端輸入一個5V的參考電壓,則A/D轉(zhuǎn)換電壓輸入范圍為0-5VVCMADC參考電壓輸出端VMICMicrophone電源SLEEP睡眠狀態(tài)指示端,當CPU進入睡眠狀態(tài)時,該端輸出一個高電平VDDHI/O電平參考。該端輸入一個5V的參考電壓,則I/O輸入輸出高電平為5VVDDIOI/O電源VSSIOI/O地VDD(第7腳)鎖相環(huán)電源VSS(第9腳)PLL地VDD(第15腳)數(shù)字電源VSS(第24腳)模擬地VSS(第38、49、50、62腳)數(shù)字地VDD(第15、36腳)數(shù)字電源SPCE061A共有84位引腳,其中15個引腳懸空未用由于該小車系統(tǒng)可以簡單的分為控制系統(tǒng)、檢測系統(tǒng)和顯示部分三大部分,在本次設計中傳感器也只用到了反射式光電傳感器。因此綜合實際情況、成本優(yōu)勢、制作的方便性和整個電路簡潔性等因素:本著簡單、實用、廉價、易操作等設計理念,對整個模塊進行了充分的理論分析和方案論證,在控制模塊上選擇凌陽單片機SPCE061A作為整個系統(tǒng)的控制模塊。2.2電機位置選擇本次畢業(yè)設計的運動模塊系統(tǒng)作為設計中另一個重要的模塊,是小車運動的前提,其電機位置的選取將影響到小車的運動方式;其電機轉(zhuǎn)動的精度關(guān)系到小車沿黑線運動的準確性。2.2.1電機位置的選取方案一:選用前后輪分別控制的小車,用普通微型直流電機作為驅(qū)動裝置,用來驅(qū)動后輪;在前輪,采用步進電機來驅(qū)動前輪,做更精確的調(diào)整。在前輪,采用步進電機的一個最大特點就是利用步進電機來調(diào)整小車的運動方向,給步進電機以不同的計數(shù)脈沖來使小車按照要求沿黑線準確運動。同時,車上裝載用來檢測路面信息的光電傳感器通過后向反饋通道將檢測到的路面信號及時的傳給車載凌陽SPCE061A單片機,經(jīng)過算法處理,單片機根據(jù)送來的信號對小車的行駛方向做不同的調(diào)整,從而構(gòu)成閉環(huán)系統(tǒng),以達到題目要求。圖2.2為系統(tǒng)框圖。單片機最小系統(tǒng)速度控制單片機最小系統(tǒng)速度控制方向控制功率驅(qū)動直流電機步進電機行車狀態(tài)調(diào)整傳感器信號采集處理功率驅(qū)動后向反饋通道前向控制通道方案二:選用左右輪分別控制的小車,分別用一個普通的玩具用微型直流電機來控制小車的左右輪,用直流電機控制就是使用它的驅(qū)動電路簡單、調(diào)速范圍寬廣以及調(diào)速特性平滑等優(yōu)點。通過使用適當?shù)尿?qū)動電路分別對小車的左右輪的電機進行控制,達到不同的運動方式。同時車上裝載的用來檢測路面信息的光電傳感器通過后向反饋通道將檢測到的不同路面信息及時的傳給車載凌陽SPCE061A單片機,采用高效算法處理后單片機根據(jù)送來的信號對小車的行駛方向做出不同的調(diào)整,最終實現(xiàn)小車能夠準確、誤差小地沿黑線運動,從而構(gòu)成閉環(huán)系統(tǒng),達到設計要求。系統(tǒng)框圖如圖2.3所示。左輪速度控制左輪速度控制右輪速度控制功率驅(qū)動功率驅(qū)動直流電機直流電機行車狀態(tài)調(diào)整單片機最小系統(tǒng)傳感器信號采集處理后向反饋通道前向控制通道圖2.3方案二系統(tǒng)框圖相比較兩種方案而言,方案一中所采用的系統(tǒng)對小車的調(diào)速以及方向判斷控制能夠更加的準確。但是由于采用了步進電機就會使電機的驅(qū)動變得比較的復雜,也同樣使整個系統(tǒng)變得不夠簡潔,由于步進電機的價格比較的昂貴,也增加了成本因素。同時,采用該方案時,對小車的前輪的改造比較的困難,因為要采用不同的驅(qū)動電路給小車前輪的步進電機和小車后輪的直流電機,特別是對小車的前輪提供不同的計數(shù)脈沖,也增加了程序設計方面的困難。同時前輪在轉(zhuǎn)彎時也會有轉(zhuǎn)彎不靈等情況出現(xiàn),另外在直道區(qū)直線行駛時由于本身結(jié)構(gòu)的因素,其運動軌跡將會是曲線。在方案二中由于使用兩個普通的直流電機來分別控制小車的左右輪,對于小車的改裝比較方便,可以采用相同的驅(qū)動,只要給小車的電機相同的電壓就可以做直線運動;另一方面也會使小車的轉(zhuǎn)向控制非常方便,并且還可以實現(xiàn)小車的原地打轉(zhuǎn)功能。本次設計要求使得小車校正方向的靈敏度比較高,適合小車穩(wěn)定、高效、安全的要求,并且價格也較低,選擇直流電機的另外一個重要原因就是可以使用SPCE061A單片機自帶的電池盒作為電源,或者采用簡便的直流電源而省去電源設計。因此綜合以上因素,選擇方案二作為電機位置選取的標準。在方案二中小車的運動狀態(tài)如表2.3所示(圖示為小車勻速運動)。表2.3小車運動狀態(tài)表左輪右輪小車運動狀態(tài)正轉(zhuǎn)正轉(zhuǎn)前進反轉(zhuǎn)反轉(zhuǎn)后退停止停止停止正轉(zhuǎn)反轉(zhuǎn)急向右拐正轉(zhuǎn)停止右拐反轉(zhuǎn)正轉(zhuǎn)急向左拐停止正轉(zhuǎn)左拐反轉(zhuǎn)停止右后退停止反轉(zhuǎn)左后退2.3電機控制方案同樣,電機的控制方法對小車的運動也是至關(guān)重要的,這關(guān)系到小車運動時候的轉(zhuǎn)向以及方向調(diào)整的準確度。直流電動機可以大致分為勵磁控制法和電樞電壓控制法這兩種,在這里將會對這兩種方法分別進行簡單的介紹。2.3.1勵磁控制法勵磁控制法是通過控制直流電機中線圈的磁通量大小從而達到控制目的。雖然這種控制方法的控制功率比較的小。但是在直流電機轉(zhuǎn)速比較低的時候容易受到磁飽和的限制,在高速運轉(zhuǎn)時也容易受到換向火花和換向器結(jié)構(gòu)強度的限制。在這次的畢業(yè)設計中,所采用的小車的行駛速度不會很大,動態(tài)變化范圍也比較的小,一般在轉(zhuǎn)速比較小的情況下行駛,因此容易受到磁飽和的限制,會對電機造成一定的影響。因此不會采用勵磁控制法控制電機。2.3.2電樞電壓控制法由于勵磁控制在很多方面都有限制,因此這種方法隨著科技的發(fā)展而使用的越來越少了,另外一種方法就是采用改變電樞兩端電壓調(diào)速的電樞電壓控制法。所謂電樞,實際上就是在電機中裝有線圈的鐵質(zhì)圓柱體。通過改變電樞兩端電壓的大小從而改變電機不同的轉(zhuǎn)速,這種方法就叫做電樞電壓控制法。電樞電壓控制法一般可以概括為V——M法和PWM法,下面將分別介紹。2.3.3V—M控制法V—M控制,即晶閘管—電動機直流調(diào)速系統(tǒng),利用晶閘管關(guān)斷的切換對小車行駛狀態(tài)進行調(diào)整。該方法一直以來都是被用作直流調(diào)速的主要形式,其技術(shù)成熟、應用廣泛。如圖2.4所示為V—M控制系統(tǒng)的示意圖??梢钥刂凭чl管的導通時間即導通角從而改變輸出端電壓的大小,即調(diào)節(jié)提供給電樞端電壓的大小或勵磁電流,達到平滑調(diào)速的目的,從而控制電機轉(zhuǎn)速。圖2.4V——M控制系統(tǒng)主回路2.3.4直流脈寬調(diào)制PWM也就是PulseWidthModulation的英文簡稱,翻譯成中文就是脈沖寬度調(diào)制。隨著全控型電力電子器件的出現(xiàn)和迅速發(fā)展,PWM控制技術(shù)才真正得到應用,它主要利用器件的開關(guān)作用,這些器件如:采用門極可關(guān)斷晶閘管GTO,全控電力晶體管GTR、P—MOSFET等全控式電力電子器件組成實現(xiàn),將直流電源電壓轉(zhuǎn)換為一定頻率的方波電壓加在直流電動機的電樞上,對方波脈沖寬度的控制來改變加在電樞上的平均電壓,從而實現(xiàn)對電機轉(zhuǎn)動速度的控制,可以通過這種方法對小車運動時的轉(zhuǎn)向、行進的范圍做出調(diào)整。現(xiàn)在簡單的以一個不可逆PWM變換器的主電路為例,說明PWM的工作原理。變換器原理圖如圖2.5所示,這里采用了全控式的電力晶體管VT作為控制,以代替必須進行強迫關(guān)斷的晶閘管,在這種情況下其開關(guān)頻率可以達到1—4KHz,比晶閘管時差不多提高了一個數(shù)量級。電源電壓一般由不可控整流電源提供,也可以采用一些恒定的電壓源提供,采用一個大電容C濾除較低頻率噪聲,二極管VD作為續(xù)流二極管,在VT關(guān)斷的時候為電樞回路提供釋放電感儲能的續(xù)流回路。VTVTCMEVDUbtUbUsid—+—+圖2.5PWM變化器電路在圖2.5中:E——電機反動電勢;——電機的電感線圈在充、放電情況下的電流,以脈動形式出現(xiàn);電力晶體管VT的基極由脈寬可調(diào)整的脈沖電壓驅(qū)動。在一個開關(guān)周期內(nèi),當時,(為脈沖電壓的開通時間),為正,由于VT是一個NPN型的電力三極管,可以知道,此時的正電壓會使VT飽和導通,電源電壓通過三極管的集電極在經(jīng)過發(fā)射極加到電機的電樞兩端,當時,(T—為脈沖電壓的一個周期),為負,此時VT截止,電樞失去電源,經(jīng)續(xù)流二極管VD續(xù)流。通過計算,在電動機得到的平均端電壓為:可以知道,改變()即可實現(xiàn)調(diào)速。2.3.5凌陽公司的配套小車凌陽公司為小車設計愛好者提供了其公司的產(chǎn)品——具有功能很強的配套小車。如圖2.6所示,分為三大部分:①車體部分:小車車體主要為兩個電機帶動的四輪驅(qū)動裝置,在其車內(nèi),布置了兩組普通的微型直流電機,采用了左右輪分別控制的形式。在車體下面有一個可以安裝4節(jié)AA電池的電池盒,整個小車的電源就是由它來提供。在小車的尾部有一個紅色的小開關(guān),它負責控制整個小車電源的開通與關(guān)斷;②61板:61板是小車的核心部分,它負責整個小車控制信號的產(chǎn)生;③控制板:控制板負責將來自61板的控制信號轉(zhuǎn)化為能夠驅(qū)動電機的驅(qū)動信號。另外在控制板上面預留了很多的傳感器接口,可以直接把型號合適的傳感器接到傳感器接口上使用。圖2.6小車實物圖在連接控制板與車體時需要注意的幾個地方:①車體與控制板的電源連接,在車體的尾部有一個紅色的小開關(guān),開關(guān)的前端為電源輸出,后端與控制板的J13相連接。在連接時要注意J13(圖2.6中的A)的1端接正電源,2端接地。②控制板與61板的電源連接,61板的供電是經(jīng)過穩(wěn)壓之后由J14(圖2.6的B)輸出,在連接時要注意J14的1端與61板的正電源相接,2端與61板的地相接。③電機與控制板的連接,兩路電機分別接到控制板的J1和J3,圖2.6中C為J3,D為J1。J1接左側(cè)電機,J3接右側(cè)電機,電機的白色(或紅色)端子接1端,藍色端子接2端。在連接時要注意左右不能接反,1、2端子也不能接反。在電機控制方面,利用單片機的IOB10和IOB11兩個引腳控制左邊電機的轉(zhuǎn)動,而同樣利用IOB12和IOB13引腳來控制小車右邊電機的轉(zhuǎn)動,這些都在其內(nèi)部同驅(qū)動電路已經(jīng)連接好,不需要外加電路的驅(qū)動,只要給這四個引腳相應的控制信號就可以讓小車實現(xiàn)不同的運轉(zhuǎn)組合。這里要注意一點就是IOB10和IOB11、IOB12和IOB13都不能同時為高電平,以免燒壞電機。為了設計制造的方便和簡單,這里就選擇凌陽公司提供的小車作為設計中的運動載體。表2.4控制電機引腳分配說明IOB13控制小車右邊電機的前進IOB11控制小車左邊電機的前進IOB12控制小車右邊電機的后退IOB10控制小車左邊電機的后退2.4路面檢測模塊選擇在本次畢業(yè)設計中,只是對路面信息進行檢測,而沒有其他的信息需要檢測,在這種情況下,一般使用一種裝置就能夠檢測出來。方案一:反射式光電傳感器檢測在這種方法中,可以在小車前面的左右兩端分別安裝光電傳感器,安裝的寬度至少要大于黑線的寬度??紤]到實際情況,這里采用反射式光電傳感器,型號為LTH1550—01,所謂反射式就是指光電二極管導通時發(fā)出的光經(jīng)過地面或物體反射到光電傳感器的光敏三極管上,使光敏三極管導通,而不是采取直接傳遞的方式。其工作示意圖如圖2.7所示:小車運動的路面是在白色的紙張上面鋪設黑DDQ100R1+5v+5v4.7KR3OUT74HC1434121KR2圖2.7反射式光電傳感器原理圖色膠布作為中心,這主要基于光電傳感器在檢測到白色和黑色時兩種不同的電平狀態(tài)的原理,當光電傳感器面對黑線時,發(fā)出的光被吸收,不能發(fā)生發(fā)射,此時Q不能導通,輸出為低電平;當面對白線時,光電二極管發(fā)出的光經(jīng)過白線反射到達光敏三極管Q,使Q導通從而輸出高電平,再經(jīng)觸發(fā)非門74HC14的兩次觸發(fā)反相,消除干擾,把信號送到單片機相應的引腳。由此可以在小車行進的時候,讓系統(tǒng)的控制模塊同時監(jiān)視兩個光電傳感器的狀態(tài),并送到單片機的相應引腳,經(jīng)過程序算法處理后送到電機控制引腳,根據(jù)不同的信號組合實現(xiàn)不同的運動調(diào)整方式,完成小車的黑線運動。方案二:紅外探測法紅外探測法:即利用紅外線在不同顏色的物體表面具有不同的反射性質(zhì)的特點,在小車行駛過程中不斷地向地面發(fā)射紅外光,當紅外光遇到白色紙質(zhì)地板時發(fā)生漫反射,反射光被裝在小車上的接收管接收;如果遇到黑線則紅外光被吸收,小車上的接收管接收不到紅外光。單片機就是否收到反射回來的紅外光為依據(jù)來確定黑線的位置和小車的行走路線。相比較于兩種方案,雖然都能完成小車跟蹤黑線的任務,但是采用紅外探測法時,容易受到外界環(huán)境的影響,特別是在外界光線充足的時候;其發(fā)射和接收紅外線探頭的制作使電路復雜化;同時采用這種方法至少需要安裝4個這樣的裝置,才能很好的完成任務。采用兩個光電傳感器,再加上簡單的外圍電路和內(nèi)部算法的處理,就能使小車比較準確的完成跟蹤黑線運動。綜合上面的因素,采用方案一作為路面檢測裝置。2.5顯示模塊在本次畢業(yè)設計中,另一個要求就是利用單片機里的中斷計數(shù)功能計算出小車行駛的總時間,并對小車運動時間進行實時地變化顯示。方案一:采用傳統(tǒng)的8位數(shù)碼管LED動態(tài)掃描顯示小車運動時間。方案二:采用16位字符型液晶(LCD)動態(tài)掃描顯示時間。以上兩種方案比較中,方案一的軟件驅(qū)動簡單,硬件電路調(diào)試方便,其小容量的數(shù)據(jù)顯示已經(jīng)足以滿足本題數(shù)據(jù)顯示需求,其簡單的軟件驅(qū)動為本設計節(jié)省了軟件空間,且不易受其它電路的干擾。而方案二的軟件運行比較復雜,本次設計所需要的大容量信息對于凌陽SPCE061A的32K內(nèi)存來說,沒有足夠的空間。凌陽公司提供了配套的6位集成數(shù)碼顯示電路,它還具有時鐘冒號,因此能形象地顯示時間,并且不需要外加驅(qū)動電路,只需要在控制引腳上接上相應的控制信號就可以實現(xiàn)顯示時間的要求。因此我們選擇方案一變化顯示小車運動時間。3單元電路設計在本次的畢業(yè)設計中,由于所采用凌陽公司的SPCE061A單片機的集成度非常的高,在其內(nèi)部已經(jīng)具有數(shù)據(jù)線、存儲器,數(shù)據(jù)接口等。因此在單元電路設計中,只需要對單片機設定和設計光電傳感器等電路就可以。因此這里將分別對單片機的引腳、光電傳感部分以及其他單元的設定進行介紹。3.1單片機設定3.1.1系統(tǒng)時鐘設定由前面的介紹可以知道,SPCE061A的CPU時鐘在32768Hz—49.152MHz之間可通過軟件選取,它的CPU默認時鐘為24.576MHz,這個頻率的系統(tǒng)時鐘已經(jīng)能夠提供比較高的運算速度,因此采用默認的CPU時鐘,可以不用對它的控制字進行設計。3.1.2定義引腳SPCE061A有32位引腳,分別是IOA0——IOA15和IOB0——IOB15,每一位都可以被單獨定義用于輸入或輸出數(shù)據(jù)。其中B口的10—13引腳已被用與小車的電機相連接,由于只使用了兩個傳感器,因此使用IOB0和IOB1引腳作為兩個光電傳感器的輸入口。由于將會使用到15位引腳來顯示時間,因此在這里我們使用A口的15位引腳作為顯示。引腳詳細使用見表3.1(其中沒有標出的引腳沒有使用,因而懸空)。因此在這里就需要把A口設置為輸出,通過寫A端口的控制字,我們把它設置為帶數(shù)據(jù)緩存的低電平/高電平輸出。而B口有輸入也有輸出,以示區(qū)別,把它的高八位設置成輸出,把低八位設置成輸入,同理,通過寫B(tài)口的控制字,把高八位設置成帶數(shù)據(jù)緩存的高電平輸出,把低八位設置成帶上拉電阻的輸入,即輸入低電平有效。表3.1端口使用說明端口用途設置端口狀態(tài)IOA0—7顯示數(shù)字信息低電平輸出IOA8—13判斷被選的位數(shù)低電平輸出IOA15顯示時鐘冒號低電平輸出IOB0左光電信號輸入口上拉電阻輸入IOB1右光電信號輸入口上電阻輸入IOB10—13用作控制電機運動高電平輸出3.1.3開啟中斷本次設計中使用了系統(tǒng)提供的多個中斷源為系統(tǒng)功能服務。中斷是指計算機在執(zhí)行某一程序的過程中,由于計算機系統(tǒng)內(nèi)、外部的某種原因,必須終止原程序的執(zhí)行,而轉(zhuǎn)去執(zhí)行相應的處理程序,待處理結(jié)束后,再回來繼續(xù)執(zhí)行被終止的原程序過程。在單片機中,中斷技術(shù)主要用于實時控制,就是要求單片機能及時地響應被控制對象提出的分析、計算和控制等請求,使被控對象保持在最佳工作狀態(tài),以達到預定的控制效果。由于這些控制參量的請求都是隨機發(fā)出的,而且要求單片機必須快速響應并及時處理,因此,只有靠中斷技術(shù)才能實現(xiàn)。考慮到小車所要完成的任務的復雜性,比如讓小車在運動中實時顯示運動時間;在運動的同時讀取B口數(shù)據(jù)等,因此在編程的過程中只有采用中斷才能完成任務。從前面的介紹可以知道,SPCE061A共有14個不同類型的中斷源,兩個優(yōu)先級,經(jīng)過分析,啟用3個中斷就能完成任務。在使用時,只需要在中斷控制字寫入相應信息即可。中斷使用情況如表3.2所示。表3.2中斷使用說明中斷使用情況用途2Hz系統(tǒng)時間變量計數(shù)所用2KHz讀取B口數(shù)據(jù),提供判斷信息1KHz變化顯示運動時間3.2電機驅(qū)動電路采用凌陽公司提供的配套小車,在它的接板上,它已經(jīng)將SPCE061A的IOB10、IOB11、IOB12、IOB13這四個引腳與小車的左右電機相連接,只需要提供給相應的高電平就可以實現(xiàn)它不同的運動組合。圖3.1為小車的電機方向控制示意圖。方向控制是通過一個H橋電路完成的,該H橋電路主要由三極管Q2、Q3、Q7、Q8組成,把Q2、Q3歸為一組,Q7、Q8歸為一組。另外還有兩個輔助三極管Q1、Q6,Q1負責Q2、Q3的導通與關(guān)斷,Q1導通激發(fā)Q2、Q3導通,Q1關(guān)斷的同時Q2、Q3也關(guān)斷。Q6負責Q7、Q8的導通與關(guān)斷,其工作過程同Q1。4KR24KR24KR6Q1NPN9014Q6NPN9014Q2NPN5609Q7NPN5609100R1100R45V5V12J1CON2MOT1MOT2121231123123123121231123Q3PNP5610Q8PNP5610H橋的工作原理:H橋有四個臂分別為B1、B2、B3、B4,分別對應圖3.2中Q2、Q3、Q7、Q8。分為兩組Q2、Q3和Q7、Q8,每一組的兩個臂都同時導通,同時光斷。如果讓Q2、Q3導通Q7、Q8關(guān)斷,電流會經(jīng)過Q3、負載、Q2組成的回路,加在負載Load兩端的電壓左正右負,如圖3.2所示,則電機正傳;如果讓Q2、Q3關(guān)斷Q7、Q8導通,電流會經(jīng)Q8、負載、Q7組成的回路,在負載Load兩端的電壓左負右正,如圖3.2所示,電機反轉(zhuǎn),另外讓Q2、Q3、Q7、Q8都關(guān)斷,負載懸空,此時電機停止。而Q1、Q6導通和關(guān)斷是通過(MOT1)IOB10和(MOT2)IOB11控制的。另外一個由IOB12、IOB13控制的H電橋工作原理也一致。2231S1231S2MMLoad++———B1B2B3B4Q2Q3Q7Q8圖3.2H橋電路原理說明由H橋的工作原理可知,H橋的四個臂不能同時導通,一旦導通將會出現(xiàn)類似短路的現(xiàn)象出現(xiàn),燒毀電機,因此IOB13與IOB12、IOB11與IOB10都不能同時為1,以免燒毀電機。通過前面的介紹可知,兩組電機的控制方法一致,可以通過對IOB10、IOB11、IOB12、IOB13這四個引腳寫入不同的控制信號,就能夠控制小車的運動狀態(tài),使小車呈現(xiàn)不同的運動狀態(tài),從而完成設計的要求。小車運動與引腳的狀態(tài)關(guān)系見表3.3(1——高電平;0——低電平)。表3.3運動關(guān)系示意圖IOB13IOB12IOB11IOB10小車運動狀態(tài)1010前進0101后退0000停止0110急向右拐0100右拐1001急向左拐1000左拐0001右后退0100左后退3.3光電傳感電路設計在本次畢業(yè)設計中,是在白色的紙張上鋪設一定寬度的黑色膠布作為中心,利用光電傳感器對黑色膠布的檢測,使小車自動跟蹤黑線運動。光電傳感器的輸入信號是小車運動的標準,因此對于光電傳感器部分的電路設計就顯得至關(guān)重要,需要設計出的電路至少要具備以下功能:①能夠很準確的分別黑色與白色紙張,并傳到單片機的控制引腳上;②不會產(chǎn)生干擾,而引起誤動作,輸出正確的路面信號。其電路示意圖如圖3.3所示(僅以左邊光電傳感電路為例,右邊同理)。電路基本工作原理:當小車的光電傳感器所面對的部分是白色紙張時,光電二極管發(fā)出的光被白色紙張反射,到達其中的光敏三極管,使其導通,從而使整個U1導通,+5v的電源電壓經(jīng)過電阻、通過U1內(nèi)部的光敏三極管的集電極到達發(fā)射極,輸出高電平;當小車的光電傳感器所面對的部分是黑色膠布時,光電二極管發(fā)出的光被吸收,不會產(chǎn)生反射作用,因此光電傳感器U1不會導通,沒有輸出,然后經(jīng)過兩個觸發(fā)非門74HC14的作用,送出低電平到單片機的接口IOB0。當小車正常運動時,輸出是高電平,由于IOB0是低電平有效,因此不會引起單片機的對小車的調(diào)整;當小車發(fā)生偏離時,此時光電傳感器接觸到光電傳感器,輸出低電平有效,單片機就能夠根據(jù)情況對小車的運動狀態(tài)進行調(diào)整,使其回到正常的軌道中。這里使用了兩個施密特觸發(fā)非門,由觸發(fā)非門的原理可以知道,施密特輸入只是使得上跳沿和下降沿變得比原始輸入信號的上升和下降更加陡峭一些,也就是在數(shù)字電路起整形作用,如果后續(xù)電路是需要一序列脈沖觸發(fā)的則沒有影響,因此可以很大程度的避免干擾,以免引起小車誤動作,采用兩個觸發(fā)非門就能夠保持原來信號不變,使到達單片機IOB0口的信號變成類似的標準方波。從圖中可知,當小車面對白線時,能使光電傳感器U1導通,通過改變可變電阻R2的大小,就可以改變流過光電二極管電流的大小,從而使它的發(fā)光強度發(fā)生變化,使光敏三極管能在不同的高度接收到光電二極管發(fā)出的信號,從而使它的靈敏度發(fā)生變化,改變光電傳感器所能檢測的有效范圍。1KR21001KR2100R11KR34.7KR4+5v12IOB074HC1434DQ3.4顯示模塊根據(jù)要求,由中斷設計一個系統(tǒng)時鐘,在小車開動的時候開始同步顯示運動時間,每秒變化一次。采用凌陽公司提供的集成顯示塊,它有6位的LED數(shù)碼顯示管,每一位LED數(shù)碼管都有8位顯示段,采用共陰極接法,因此只需要在相應的控制引腳上面輸入高電平就可以進行組合顯示,發(fā)出的光為紅色。綜合實際情況,采用右邊帶有時鐘冒號的四位顯示時間,如圖3.4所示。在圖中可以看到,在時鐘冒號右邊的兩位用于顯示秒數(shù),左邊兩位用于顯示分數(shù)。調(diào)用中斷顯示運動時間,在時鐘冒號右邊的秒數(shù)顯示中,每隔60秒向分進一次位,然后自動清零??紤]到小車實際的運動時間,采用4位的LED數(shù)碼管已經(jīng)足夠顯示時間。時鐘冒號時鐘冒號顯示秒數(shù)XX顯示分數(shù)XXXX顯示秒數(shù)XX顯示分數(shù)XXXX②顯示時間示意圖②顯示時間示意圖①LED8段顯示示意圖初始化;初始化;設置端口;開啟中斷;圖3.4顯示時間示意圖X——代表每一位LED數(shù)碼管都有8位顯示段:3.5系統(tǒng)框圖通過前面對各個部分的介紹,綜合就可以得出整個系統(tǒng)框圖,如圖3.5所示。IOB10—IOB13調(diào)整小車運動方式IOB0IOB10—IOB13調(diào)整小車運動方式IOB0光電左SPCE061A系統(tǒng)光電右IOB1光電右IOB1IOA0—IOA15IOA0—IOA15A口實時A口實時顯示時間圖3.5系統(tǒng)框圖4系統(tǒng)軟件設計系統(tǒng)的軟件設計采用凌陽獨有的C語言和匯編合用對單片機進行編程以實現(xiàn)各項功能。程序是在凌陽的語言環(huán)境IDE1.16.1下編寫,它是集程序的編輯、編譯、鏈接、調(diào)試以及仿真等功能為一體,具有友好的交互界面、下拉菜單、快捷鍵和快速訪問命令列表等,使編程、調(diào)試工作方便且高效。此外,他的軟件仿真功能可以在不連接仿真板的情況下模擬硬件的各項功能來調(diào)試程序。為了讓小車能夠準確的沿黑線運動,所設計的程序就應該讓控制系統(tǒng)實時地監(jiān)視光電傳感器地狀態(tài),當小車在正常狀態(tài)下,光電傳感器不會作用,小車正常運動,當小車偏離到左側(cè)時,此時右側(cè)光電傳感器將會起作用,經(jīng)過連續(xù)調(diào)整小車運動一直到回到正常軌跡為止;同理,當小車偏離到右側(cè)時,左邊光電傳感器將起作用,調(diào)整小車運動一直回到正常運動狀態(tài)中。在凌陽特有的語言環(huán)境設計出的C語言和匯編共同組成的程序應該能夠?qū)崿F(xiàn)系統(tǒng)的要求,這其中至少就應該包括:①控制小車左轉(zhuǎn)、右轉(zhuǎn)、前進、后退,使小車能正常運動,使小車能實現(xiàn)沿黑線準確地運動;②能夠處理從光電傳感器送來的信號,并送出相應的控制信號去控制小車運動;③輸出正確的信號到顯示模塊,能正確的顯示小車運動時間。并最終能實現(xiàn)小車的智能化。其中,對主程序的設計就比較重要,因為主程序主要起到一個導向和決策功能。而子程序就應該包括小車運動子程序、光電檢測的子程序、顯示時間的子程序、清看門狗子程序等,這里將分別介紹。4.1小車運動子程序4.1.1運動設計小車的運動子程序就包括四個部分,分別是小車的前進、后退、左轉(zhuǎn)和右轉(zhuǎn)這四部分。這四部分的運動程序?qū)崿F(xiàn)小車跟蹤黑線運動非常重要,因此對這部分的設計就顯得很重要。在調(diào)用子程序時,只需要根據(jù)光電傳感器傳送到引腳上的不同電平,而調(diào)用相應的運動模塊即可。在設計中,首先應該實時地監(jiān)視IOB0、IOB1兩個引腳的狀態(tài),并讀取數(shù)據(jù)送到單片機內(nèi)部,經(jīng)過程序處理后把IOB10、IOB11、IOB12、IOB13這四個引腳相應的部分設置高電平即可,這樣就能夠根據(jù)光電傳感引腳的不同狀態(tài)而做出與之適應的運動組合。在具體設計時就需要首先讀取IOB0和IOB1兩個引腳的狀態(tài),根據(jù)信號判斷出小車應該調(diào)用哪部分的運動程序,在調(diào)用時應該把相應的電機運動控制信號寫入B口的數(shù)據(jù)寄存器P_IOB_DATA,為了避免在寫入控制信號時出現(xiàn)錯誤,通常先讀取B口數(shù)據(jù),然后保持低8位數(shù)據(jù)不變,再把高8位的數(shù)據(jù)清零,然后寫入控制信號到B口,在程序設計中采用IOB=IOB&0x00FF處理就能達到效果(0x代表16進制數(shù))。具體程序流程圖如圖4.1所示。初始化端口初始化端口讀取IOB0、IOB1數(shù)據(jù)并判斷開始對IOB0、IOB1信號處理,讀取IOB口數(shù)據(jù),經(jīng)IOB=IOB&0x00FF處理,送控制信號到B口chu前進寫0x1800寫0x2400寫0x1400寫0x2800后退左拐右拐進入延時后清看門狗圖4.1小車運動示意圖在程序中,為了小車運動能夠準確地判斷出當前所處的運動狀態(tài),讓單片機及時地讀取B口低8位的數(shù)據(jù)。為了小車運動的連貫性和準確性,在流程圖中使用了延時程序。同時,為了避免出現(xiàn)單片機系統(tǒng)自動復位,對小車的運動造成影響,清看門狗也是程序的必須部分。4.1.2讀取數(shù)據(jù)設計小車運動時,將會以一定的時間間隔來讀取B口低8位的數(shù)據(jù),然后判斷出應該怎樣行駛。因此這個時間間隔就比較的重要,關(guān)系到小車行進時對路面信息判斷的準確性,太長:就會明顯影響小車運動的精確度;太短:就會讓小車還在執(zhí)行前面的指令時,不能識別或者產(chǎn)生誤動作??紤]到系統(tǒng)的資源分配應該合理,因此就需要采用中斷的方式讀取B口低8位的數(shù)據(jù),在凌陽單片機眾多的中斷源中,我們選用了2KHz的中斷源,即0.0005秒中斷一次。由于采用系統(tǒng)時鐘為24.576M,因此每條程序執(zhí)行的時間很短,而0.0005秒的時間對于小車讀取B口數(shù)據(jù)來說太過頻繁,會造成小車搖擺地運動。因此,在程序中采用計數(shù)的方式,通過比較選擇,當2KHz中斷50次的時候讀取一次B口數(shù)據(jù),就能讓小車比較精確的判斷出當前信息,并且運動時也呈現(xiàn)出連貫性。其流程圖如圖4.2所示。初始化端口初始化端口開啟2KHz中斷開啟2KHz中斷N判斷中斷是否到達50次N判斷中斷是否到達50次YY讀取B口數(shù)據(jù)讀取B口數(shù)據(jù)相應控制相應控制讀取B口數(shù)據(jù)讀取B口數(shù)據(jù)清看門狗清看門狗圖4.2中斷流程示意圖4.2光電檢測子程序在上圖中,可以知道B口低8位數(shù)據(jù)是判斷小車運動的唯一標準。小車的運動是根據(jù)傳送到IOB0和IOB1兩個引腳的光電傳感器信號而做出不同的運動方式,因此讀取B口的信號對于小車的運動是一個很重要的流程。通過前面的介紹可知,讀取B口的數(shù)據(jù)是在中斷下進行,由于經(jīng)常會讀取B口數(shù)據(jù),為了讀取方便,設一個全局變量(b_input)來代表B口的值,以后判斷時只需要對它進行處理。在設計中只采用了兩個光電傳感器,B口也只用到了IOB0、IOB1兩個引腳作為信號輸入。為了讀取數(shù)據(jù)的準確性,需要把其它位的數(shù)據(jù)屏蔽掉,首先讀取B口的數(shù)據(jù),然后再放到全局變量(b_input)中,處理后保持最后兩位數(shù)據(jù)不變,之后返回主程序,傳給相應的判斷部分。在程序設計時,可以采用這樣的處理:b_input=—IOB(—表示取反);b_input=b_input&0x003;即可只保留IOB0、IOB1的數(shù)值,最后由程序讀取全局變量(b_input)的值,回到主程序中進行判斷,最后根據(jù)它不同的值來控制小車做相應的運動。其流程圖如圖4.3所示。開始開始設置端口設置端口讀取B口數(shù)據(jù)讀取B口數(shù)據(jù)賦值給b賦值給b—input并處理Y前進是否為0Y前進是否為0NNY左拐是否為1Y左拐是否為1NN右拐右拐進入延時后清看門狗進入延時后清看門狗圖4.3光電傳感流程圖由于IOB0、IOB1不能同時為1,就只有同時為0和分別為1共3種情況出現(xiàn),因此在該流程圖中可以看到,只用兩次判斷語句就可以將三種不同的情況分別開。在IOB0為1的時候小車實現(xiàn)左拐;在IOB1為1的時候小車實現(xiàn)右拐;而在IOB0和IOB1同時為0的時候說明小車的光電傳感器沒有接受到轉(zhuǎn)彎信號,因此執(zhí)行前進,這也正是按照要求執(zhí)行。同理,這里也使用了延時程序使小車運動連貫;使用清看門狗程序,避免單片機系統(tǒng)自動復位對小車的影響。4.3顯示模塊子程序4.3.1計數(shù)程序設計本次畢業(yè)設計的另外一個要求就是能夠?qū)崟r的顯示小車的運動時間,每隔一秒鐘顯示模塊變化一次。SPCE061A系統(tǒng)中包含了多種中斷源,并且每個中斷源都能獨立的使用。在SPCE061A的眾多中斷源中,經(jīng)過比較選取了2Hz這個中斷,可以知道它的中斷時間是0.5秒,也就是每隔0.5秒中斷一次。由于要準確的每秒鐘變化顯示運動時間,可以采用每兩次中斷后對時間變量加一次數(shù)的方法,然后對這個時間變量進行處理后在顯示,因此選用2Hz這個中斷就能夠達到比較精確的地步。其流程圖見圖4.4所示。設置端口設置端口定義g_time、disp定義g_time、disp開啟2Hz中斷開啟2Hz中斷判斷g_time是否為2判斷g_time是否為2NNYY清g_time為0,disp自動加1清g_time為0,disp自動加1對disp處理,送到A口顯示運動時間對disp處理,送到A口顯示運動時間圖4.4時間計數(shù)流程圖g_time:為中斷標志符,初值為0,每中斷一次加1,當為2時自動清0;disp:時間變量,初值為0,當g_time為2時,自動加1,處理后送到A口被顯示;4.3.2時間顯示設計從前面的介紹可知,IOA0—IOA7用于顯示數(shù)字信息,IOA8—IOA13用作從左到右六位LED顯示管的位選信號,比如顯示第四位,就只需要將IOA11引腳輸出高電平到相應控制腳;要在第四位上顯示數(shù)字5,則把0x086d寫到A口(6d為5的顯示代碼),由A口送到集成顯示電路的控制腳上,其他情況可以依次類推。對于小車運動時間,如果采用直接顯示,將會進入顯示循環(huán),而其他功能不能完成。因此為了避免因為顯示時間而占用太多的資源,這里對四位數(shù)字的顯示也需要采用中斷顯示:由于中斷時間的長短將會影響到觀察LED數(shù)碼顯示管的連續(xù)性,因此開啟SPC061A系統(tǒng)內(nèi)部提供的14個中斷源中的1KHz,即0.001秒中斷,然后顯示一次,這個時間已經(jīng)不能被肉眼所識別。也就是說,從秒到分的顯示是每次中斷的時候進行四位輪流顯示:先顯示秒的個位,然后十位;然后分的個位,最后分的十位依次輪流顯示。由于它中斷的時間非常短,人的肉眼不能察覺出LED的熄滅變化,因此直接觀察時,將會以連續(xù)顯示的形式出現(xiàn)。顯示流程圖如圖4.5所示。開啟1KHz中斷開啟1KHz中斷中端到達對時間變量進行處理輪流顯示YN圖4.5顯示流程圖4.4中斷使用設計中斷技術(shù)能實現(xiàn)CPU與外部設備的并行工作,提高CPU的利用率以及數(shù)據(jù)的輸入、輸出效率;中斷技術(shù)也能對計算機運行過程中突然發(fā)生的故障及時發(fā)現(xiàn)并進行自動處理。通過前面對系統(tǒng)子程序的介紹,在系統(tǒng)中,使用了3個中斷,這些中斷都能獨立地被使用,分別完成程序要求,最后達到系統(tǒng)目的。開啟中斷時,只要在中斷控制字里寫入相應的控制信息,就能夠?qū)崿F(xiàn)目的,中斷控制寄存器的內(nèi)容如下表所示。從前面的介紹中,可以知道,程序使用了3種中斷,分別是IRQ5_2Hz、IRQ4_1KHz、IRQ4_2KHz,開啟中斷時,只要在代表這3種中斷的控制位b5、b4、b2上面分別寫入1就代表這3種中斷被開放,其他位置0不用,當有該中斷申請時,CPU就會響應。表4.1(P_INT_Ctrl)中斷寄存器控制字b7b6b5b4b3b2b1b0IRQ3_KEYIRQ4_4KHzIRQ4_2KHzIRQ4_1KHzIRQ5_4HzIRQ5_2HzIRQ6_TMB1IRQ6_TMB2b15b14b13b12b11b10b9b8FIQ_fosc/1024IRQ0_fosc/1024FIQ_TMB1IRQ1_TMAFIQ_TMBIRQ2_TMBIRQ3_EXT2IRQ3_EXT14.5延時程序設計在程序中,為了指令有必須的執(zhí)行時間,而使小車運動連貫一致,多處使用了延時子程序。為了調(diào)用方便,采用匯編語言(ASM)編寫,延時的原理就是通過一些空操作語句在程序內(nèi)部的嵌套循環(huán)調(diào)用,而占用一定的時間,以達到延時的目的。通過計算每條指令的執(zhí)行時間就可以計算出總的延時時間,也可以通過改變循環(huán)次數(shù),達到改變延時時間。其流程圖如圖4.6所示,具體程序見附錄B。入棧入棧延時是否完成壓數(shù)據(jù)入棧出棧清看門狗YN圖4.6延時流程圖4.6清看門狗設計所謂的看門狗電路是指獨立于單片機系統(tǒng)的電路,在一個時間周期內(nèi)沒有對它清除,它就會輸出一個復位信號到單片機的復位腳,使單片機自動復位。在SPCE061A系統(tǒng)內(nèi),其看門狗外圍電路已經(jīng)被簡化,因此實際使用時只需要寫入命令到它的控制字,就可以清除看門狗,為了避免出現(xiàn)自動復位影響小車的正常運動,因此應該經(jīng)常清除看門狗電路。4.7系統(tǒng)流程圖前面分別介紹了幾個重要子程序的流程圖以及設計過程,它們都是為主程序而服務的。由這些流程圖就可以構(gòu)成主程序的框架,程序順序執(zhí)行,到相應的部分只需要調(diào)用與之配合的子程序就能夠達到要求。系統(tǒng)流程圖如圖4.7所示。開始開始初始化,設置端口,開啟中斷初始化,設置端口,開啟中斷讀取B口數(shù)據(jù),并處理讀取B口數(shù)據(jù),并處理光電傳感器是否動作光電傳感器是否動作NNYY前進相應控制,調(diào)整小車運動前進相應控制,調(diào)整小車運動延時后,清看門狗延時后,清看門狗N是否能夠顯示時間N是否能夠顯示時間YY調(diào)用中斷,輪流顯示運動時間調(diào)用中斷,輪流顯示運動時間返回返回圖4.7系統(tǒng)流程圖5系統(tǒng)調(diào)試在前面設計的基礎(chǔ)上,整個智能小車系統(tǒng)已經(jīng)形成,已經(jīng)能夠完成論文的基本要求。為了能讓小車能很準確沿黑線運動,就需要對小車的各部分進行調(diào)試,這些調(diào)試就應該包括對單片機引腳電平的測試;對光電傳感器輸入信號的檢測;和對顯示時間的測量等。如有誤差的存在,還應該分析來源、并盡量把誤差減小。5.1測試工具測試時使用的儀器如下表5.1所示。表5.1測試工具表序號名稱、規(guī)格數(shù)量備注1萬用表1無2YB4320示波器1無3秒表1精度0.01(s)5.2單片機引腳電平測試在前面的介紹中,對所用到的單片機引腳都有定義。為了表示程序是否正確,就需要對所設定的引腳進行測量,判斷這些引腳的輸出是否按照程序的意愿執(zhí)行??梢灾垒敵鲇蠭OB10——IOB13、IOA0——IOA13和IOA15這些引腳,可以采用萬用表的電壓檔在相應的引腳上測量輸出的電平。5.2.1對IOB口的測量對IOB口的測量,采用+5v電源,人為的在它四個引腳上面加上高低電平,然后觀察小車左右兩邊電機的運轉(zhuǎn)情況,它的測量情況見表5.2(1—表示高電平,0相反)。表5.2測試說明引腳示意電機轉(zhuǎn)動小車狀態(tài)IOB13IOB12IOB11IOB10右電機左電機1010正轉(zhuǎn)正轉(zhuǎn)前進0101反轉(zhuǎn)反轉(zhuǎn)后退1001正轉(zhuǎn)反轉(zhuǎn)左拐0110反轉(zhuǎn)正轉(zhuǎn)右拐0000停止停止停止通過表5.2上面所顯示的數(shù)據(jù)和結(jié)論可知,在人為的加控制信號到相應的引腳后,小車的運動狀態(tài)是正確的。因此對于這部分的程序設計能夠滿足要求。5.2.2對IOA口的測量對時鐘冒號的檢測:由其提供的集成顯示電路使用說明書,可以知道,只需要滿足集成塊上面的引腳D_dp和DIG8接入高電平即可,因此把D_dp和DIG8與其上面的VDD相連就能滿足要求,如果時鐘冒號發(fā)光,則證明連接正確,以后只要按照這樣的連接方式就可以確保時鐘冒號正常發(fā)光。IOA口主要是為顯示時間所用,其中只有IOA14引腳沒有用到。所采用凌陽公司配套的顯示集成電路有6位的LED數(shù)碼管,因此使用IOA0—IOA7用于顯示數(shù)字信息;而IOA8—IOA13引腳作為從左到右6位LED數(shù)碼顯示管的位選信號;IOA15用于顯示時鐘冒號,只選用右邊的四位就能夠顯示小車運動時間。因此在檢測的時候屏蔽掉運動模塊的子程序,在顯示的子程序中編寫顯示數(shù)字的程序,通過A口輸出信號在顯示模塊上面顯示出來,通過判斷顯示數(shù)據(jù)是否按照程序要求執(zhí)行,從而來判斷顯

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論