【摘要】本文是實現基于MC9S12XS128單片機智能賽車的設計,它是一種以規定的汽車模型為載體,采用16位微控制器XS128為核心控制模塊,通過自主設計電源電路,電機驅動電路、道路光電傳感器電路,硬件部分合理布局,同時編寫配套程序,使其能夠自主識別路徑的模型賽車。
【關鍵詞】智能車;MC9S12XS128;傳感器;PID控制;直流伺服控制;PWM技術
1.緒論
MC9S12XS128單片機智能賽車的設計,它是以規定的汽車模型為載體,采用16位微控制器XS128為核心控制模塊,通過自主設計電源電路,電機驅動電路、道路光電傳感器電路,硬件部分合理布局,同時編寫配套程序,使其能夠自主識別路徑的模型車。它能在規定賽道上,以最短時間跑完全程,該設計主要包括機械設計,電路設計,軟件設計三大部分。
1.1 國外智能車的發展歷史
伴隨內燃機的誕生,在公路上行駛的汽車,經過一百多年持續發展,汽車技術已經有了很大的提高,人們在享受汽車的便利和舒適的同時,也發現汽車給社會的進步帶來了許多麻煩,甚至危及到了人們的生命及財產安全。同時,交通擁擠和環境污染問題也給城市的發展帶來了嚴重后果。因此,迫使我們不斷采用高、新技術裝備汽車,以提高車輛的安全性、可靠性并迅速解決公路交通的公害問題。
未來汽車概念將發生根本性的變化?!捌嚒睂⑥D變為帶有一些輔助機械的機電一體化裝置,汽車不再是個機械裝置,它正向大眾消費類電子產品轉移。智能汽車也就是人們常說的無人駕駛汽車, 它的研制最早目的是為了前線戰爭和后方刑事需要,使它能夠在危害場合代替人執行任務,從而減少人員傷亡以及財產損失。現在這項智能技術主要有兩方面的應用,首先是應用在民用汽車上,使計算機代替人成為汽車司機,將人們從大量的駕車時間中解放出來,并向新能源汽車以及更智能的方向發展,比如在主動安全、駕駛安全和行人安全方面等。其次應用還是在軍事方面,通過使用無人或遙控智能的武器平臺來完成搶險救災、排爆等工作,甚至還包括一些更危險的軍事環境。
20世紀70年代晚期,西方發達國家分別開始進行無人駕駛汽車的研制,由于當時技術的局限和預期目標過高,舉步維艱,發展緩慢,到20世紀90年代初,由于高速公路的出現,使的智能汽車在高速公路上的行駛復雜程度相對降低,因此各國都將研究重點轉移到高速公路上的民用車輛的輔助駕駛項目上,目前在可行性和實用化方面都取得了突破性的進展。美國是世界上研究無人駕駛車輛最早、水平最高的國家之一。1995年,卡耐基梅隆大學研制的無人駕駛汽車Navlab2V,以平均50~60km/h的速度,完成了橫穿美國東西部的無人駕駛試驗。此外,Google公司正在研發的自動駕駛汽車,已經基本具備自動操作和行駛能力,在車上裝有激光探測器、雷達傳感器和攝像頭等電子設備,行進過程之只需借助地圖來導航,并通過大量的電子傳感裝置來感知公路的交通標志,以及車輛車子周圍的環境情況。在德國,科研人員推出命名為“德國制造”的無人駕駛汽車,你可以用自己的手機來打“無人的士”,駕駛員不需緊握方向盤,腳踩油門和剎車眼睛緊盯前方,甚至可以悠閑的在車內上網、看報和聊天。
1.2 我國智能車的發展概況
國內在智能車方面的研究從上世紀80年代后開始進行,起步較晚,主要是一些大學和研究所。清華大學、國防科技大學、上海交通大學、西安交通大學、吉林大學、同濟大學等都進行無人駕駛汽車的研究項目。我國智能車研究同國外相比還有一些距離,但也是取得了一些可喜的成績,第一輛智能小車于1989年在國防科技大學研制成功,它包含了車體結構、配電系統、路徑規劃及運動控制系統、視覺及傳感器系統、計算機系統、定位定向系統、自動駕駛儀系統、還有無線電通信系統。我國第一輛真正意義上的無人駕駛汽車于1992年在國防科技大學研制成功,使用國產的汽車改造而成,由計算機及其配套的液壓控制系統和檢測傳感器組成的汽車計算機自動駕駛系統,使該車不但能夠用計算機控制下,進行自動駕駛行車,又保持了原有的人工駕駛性能。國防科技大學在2000年6月,成功完成了第4代無人駕駛汽車試驗,最高速達76km,在當時創下國內最高紀錄。最近,中國第一汽車集團公司和國防科技大學機電工程與自動化學院聯合研發的紅旗旗艦無人駕駛轎車,其總體技術指標和性能已經接近世界先進水平。該車裝備了雷達、攝像機,可以自己對道路環境、障礙物進行判斷識別、自動調整速度實現自動導航。它與GPS導航、電子巡航不同的是,它轉彎和遇到復雜情況也不需要人來控制,定位更加精確。在正常交通情況下,在高速公路上行駛的最高穩定速度為130km/h,最高峰值速度為170km/h。
1.3 “飛思卡爾杯”智能車大賽起源
“飛思卡爾杯”智能車大賽起源于韓國,是在飛思卡爾半導體公司資助下,由韓國漢陽大學舉辦的大學生課外科技活動。競賽方法是;組委會提供統一的汽車模型,包含可充電式電池和直流電機,參賽隊伍要制作一個能夠在專門設計的跑道上自主識別路徑,自動識別道路行駛的智能車,誰最快跑完全程而沒有沖出跑道并且技術報告評分最高,誰就是優勝者。
該競賽融觀賞性,科學性和趣味性為一體,以迅猛發展、以前景廣闊的汽車電子為背景,涵蓋電子、計算機、傳感技術、電氣、自動控制、模式識別、機械與汽車等多學科專業的創意性比賽,有利于師生的社會實踐及動手能力鍛煉和課堂知識綜合應用,并對對高校汽車電子學科學術水平及自動控制技術水平的提高,具有長遠的促進作用。
1.4 我國“飛思卡爾”杯全國智能車競賽情況
由教育部主辦全國大學生“飛思卡爾”杯全國智能車競賽智,該競賽是以智能汽車為研究對象的創意性科技競賽,是面向全國大學生的一項具有探索性工程實踐活動,競賽目的是為加強大學生創新能力、實踐能力和團隊合作精神的培養,促進高等教育,教學改革。
競賽過程包括理論設計、實際制作、整車調試、現場比賽等主要環節。要求學校組成師生團隊,協同工作,體會一個工程性的研究開發項目開發的全過程。該競賽規則透明,評分標準客觀,堅持了公開、公平、公正的比賽原則,力求健康、普及、可持續發展。
以飛思卡爾半導體公司為協辦方的該競賽,目前已發展成全國各省、市、自治區近幾百所高校參與的全國大學生智能汽車競賽。2008年起被教育部批準列入國家教學質量與教學改革工程資助項目中科技人文競賽。我國于2006年8月舉辦了第一屆“飛思卡爾”杯全國智能車競賽,今年智能車大賽已經是第八屆,競賽是在規定的模型汽車平臺上,使用飛思卡爾半導體公司的16位微控制器作為核心控制模塊,通過增加電機驅動電路、道路傳感器以及編寫相應軟件,在專門設計的封閉跑道上設計制作一款能夠自主辨識路線并能夠自主行駛的智能車,以完成時間最短者為優勝。
賽道介紹:
賽道用專用白色基板制作,限定了跑道寬度50cm和拐角最小半徑50cm跑道表面為白色,中間或兩邊有連續黑線作為引導線,黑線寬25mm。跑道可以交叉,交叉角為90o,賽直線部分可以有坡度15o之內的坡面道路,包括上坡與下坡道路。賽道還有一個長1m賽道的出發區,計時起始點兩邊分別有一個長度10cm黑色計時起始線,賽車前端通過起始線作為比賽計時開始或者結束時刻。當然每屆賽道設計略有不同,大賽根據車模檢測路徑方案不同分為電磁、光電與攝像頭三個賽題組。
2.系統總體方案設計
2.1 系統總體方案的設計
該智能汽車選用競賽B車車模,參加光電組競賽。該車模使用DC 7.2V ND380馬達,轉速為5000轉/分,其最大功率26.5W,控制系統采用飛思卡爾的16位微控制MC9S12XS128單片機作為控制單元,負責接收賽道采集的數據、賽車速度等反饋信息,并對這些信息進行恰當的處理,形成合適的控制量來對舵機與驅動電機進行控制。并使用C語言編寫控制程序,通過組委會提供的CodeWarrior IDE編譯軟件的在線調試,自主構思設計控制方案,包括系統設計,光電傳感器信號采集處理、控制算法及執行、動力電機驅動、轉向舵機控制等。該賽車設計主要包含三大部分,六大模塊。
2.1.1 系統總體結構方框圖設計
采用光電傳感器識別賽道黑線(路徑),賽車的位置信號由車體前方的光電傳感器采集,經XS128 MCU(主控制單元)的I/O口接收后,用于賽車的運動控制決策,同時PWM模塊發出PWM(脈寬調制調速)波,驅動直流電機對智能汽車進行加速、減速、制動控制,以及伺服電機對賽車進行轉向控制,達到小車的智能控制。
2.1.2 XS128 MCU(主控制單元)介紹
MC9S12DG128B單片機屬于MOTOROLA公司的MC9S12系列之一。它80個引腳封裝,是以運算速度很快的CPU12內核為核心的單片機,總線速度可以達到25MHz,擁有2組各8路10位A/D、16路I/O口,有功能強大的8位PWM輸出共8路,以及8路16位增強型定時器(ECT)。該設計要用4個單片機基本功能模塊:時鐘模塊,PWM輸出模塊、ECT模塊、AD轉換模塊。作自動控制小車的檢測、控制、顯示、計算的核心。
2.1.3 最小系統板的選用
由于單片機80引腳封裝引腳密度高,引腳間距小,如果使用導線直接連接,就不可避免造成各個端口之間,信號相互干擾,搭錫短路,給運行、檢測、維修帶來困難,為了整個提高系統的穩定性,克服這些缺點,S12在設計時,直接選用了最小系統母板。
2.2 主控板設計
主控板設計,由于制作PCB印刷版條件限制,只好采用PCB雙面萬能實驗板來制作,這樣性能比較穩定,電路設計靈活,元件焊接、連線、組裝、方便,PCB板的大小形狀按照賽車位置空間大小制作自由。
3.車模機械部分調整及改造
智能車的機械結構處在一個完整的智能車系統的最底層,所有的硬件電路,傳感器,執行機構等都是架在車體機械結構上的,可以說機械結構對車模運行性能的影響是極其重要的。一個好的機械結構可以使智能車的控制算法部分變的更簡單。因此,對可以調整部分進行了必要的的調整,例如;小車重量輕,重心低,結構穩定牢固,舵機打角犀利,各種齒輪咬合恰到好處,重量在四個車輪上的分配基本均勻等。
3.1 車模介紹
模型車:
由組委會統一提供,車架長28.75cm,寬16.6cm,高7.cm,底盤采用2.5mm厚的玻璃纖維板。全車滾珠軸承。前后輪軸高度可調,雙滾珠差速,使用DC 7.2V ND380馬達,轉速為5000轉/分,其最大功率可達26.5W,是一款帶有差速器的后輪驅動模型車。
馬達:DC 7.2V ND380馬達,轉速20000r/min,內裝散熱風扇。
伺服器:S-D5數碼伺服器,最佳工作電壓6V,帶堵轉保護電路,力矩5.0kg,動作速度≤0.14±0.02sec/60。
3.2 車模安裝
車模安裝,嚴格遵守比賽對車模所做要求,照著安裝步驟對車模進行細致安裝,并對可改造部分做了一些必要的調整和改裝。
3.3 車身重心調整
車身重心的前后方向調整,對智能車行駛性能有很大的影響。車身重心前移會增加轉向,但會降低轉向的靈敏度,同時降低后輪 的抓地力;重心后移會減少轉向,但會增大轉向靈敏度,后輪抓地力也會增加。因而調整合適的車體重心,讓智能車更加適應跑道是很關鍵的。根據實際試車實踐,將車重心前移,增加轉向靈活性。
3.4 齒輪傳動機構調整
齒輪傳動機構是決定車模的驅動能力強弱的關鍵。兩傳動齒輪軸保持平行, 齒輪間的配合間隙要合適,過松會影響齒輪使用壽命,過緊又會增加傳動阻力,出現響聲。因此傳動部分要安裝的輕松、順暢,容易轉動,不能有卡住或遲滯現象。
3.5 減輕重量得必要性
車模在整個競賽時,加速度將直接決定車模在全程中的平均速度,要想提高車速就必須提高加速度。在硬件系統確定的情況下,欲提高車模的加速度,最直接的辦法就是降低車模的重量。在減輕重量方面的操作原則為在不違反比賽規則和不影響正常行駛的情況下,減輕所用材料的重量,拆除所有多余零件,如去掉前后的減震器,在電路板的設計過程中,采用最簡單的電路和最少的元器件。在布局上,使用的雙面緊湊布局的方法,最大限度減小電路板的面積,減輕重量。
3.6 底盤高度的調整
合理的底盤剛度和底盤高度調節會提高智能汽車的加速性能。智能汽車前后輪軸高度可調,它的的重心應該越低越好,在保證激光傳感器前瞻和上下坡的情況下,降低地盤,是實現重心下降的較為直接的方式。
3.7 防撞系統的安裝
當速度過大時可能來不及轉彎直接沖出賽道而撞墻,造成賽車損壞,因此在車子的最前端裝了輕質防撞板,有效的防止了賽車橦墻損壞,延長賽車的使用壽命。
3.8 前輪定位
它包含主銷后傾角,主銷內傾角,前輪外傾角,前輪前束一般不做大的調整。
以上所做的這些調整,都是為使小車重量輕,重心低,結構穩定牢固,舵機打角犀利,各種齒輪咬合恰到好處,重量在四個車輪上的分配合理,車輪抓地力好,小車開動起來時順滑流暢。
4.硬件電路部分設計
硬件電路是智能汽車系統不可或缺的重要組成部分。只有穩定的硬件電路才能保證程序的正確控制,是智能車高速運動的必要條件。
硬件電路的設計思想;是在保證正確檢測信號的前提下,盡可能精簡電路。
智能汽車硬件電路設計方法;是采用自主設計,先模塊化后集成,手工組裝,最后統調的設計方法。
4.1 電源管理模塊設計
電源模塊為整個系統工作提供充足的能源,全部硬件電路的電源來自于組委會指定的7.2V 2000mAh Ni-cd充電電池。電源模塊的基本要求是;穩定的提供多路工作電壓,提供電流足夠大,電源轉換效率高,自身功耗要小,噪聲低,抗干擾能力強,電路設計簡單,模塊面積小等。因此在設計控制系統時應選好合適的電源模塊。
4.1.1 電源管理模塊方框圖設計
穩壓集成芯片選用;電源模塊設計中,有多種穩壓集成芯片可直接選用,電路設計簡單,他們克服了分立式電路元件多,焊點多,調試麻煩的缺點。它的作用將電池電源進行轉換,輸出不同的電壓,以滿足電路的要求。
采用壓差為0.5V左右,額定電流1A的低壓降大電流的LM2940串聯穩壓芯片一片,分別對單片機、傳感器和速度檢測模塊提供5V直流電源。選用LM2941串聯可調穩壓芯片一片,對舵機獨立提供6V直流電源。電機驅動模塊供電則直接取自電池7.2v的直流電源??紤]到由于電機驅動所引起的電源瞬間不穩定,在電源輸入、輸出端,都加入了適量濾波電路。
4.1.2 直流穩壓電路設計
用LM2940低壓差穩壓芯片芯片,封裝形式:TO-220(國產)。輸出電壓5V,輸出電流1A時,壓差0.8V,內含靜態電流降低電路、電流限制、過熱保護、電池反接和反出入保護。用它分別對單片機、傳感器和速度檢測三大模塊提供所需的提供5V直流電源,用LM2941串聯可調穩壓芯片一片,對舵機供電6V左右直流電源。為了防止電機啟動引起電壓波動對模塊工作帶來影響,穩壓電路和總電源都并聯有適量的濾波電容器。
4.1.2.1 LM2940 5V穩壓電路原理圖設計(選用LM2940 1片,濾波電容器3個)
LM2940串聯穩壓芯片是塑封立式三腳元件,1腳IN為輸入,2腳GND為公共端,三腳OUT為輸出。電池7.2伏通過C5濾波輸入到LM2940 1腳IN,2腳GND公共端接地,3腳OUT輸出經C6,C7濾波后輸出5V直流電,對單片機、傳感器和速度檢測三大模塊供電。
4.1.2.2 LM2941 6V穩壓電路原理圖設計(選用LM2941 1片,電容器4個,電位器1個)
LM2941是四腳塑封立式串聯可調穩壓芯片,1腳ADJ是取樣調整端,3腳GND是公共端,5腳OUT是輸出端,4腳IN是輸入端。電池7.2伏通過C1,C2濾波后輸入到LM2941 4腳IN,3腳GND是公共端接地,1腳ADJ通過電位器R1取樣調整輸出電壓高低,5腳OUT經過C3,C4濾波輸出6V左右直流電對舵機供電。
4.2 電機驅動模塊設計
電機驅動模塊它完成對模型車上的電機進行驅動,控制電機的速度大小,控制電機旋轉方向。各半導體廠商推出了許多直流電機控制專用集成電路,無需驅動便可以與MCU接口,且無需另外添加電機電流檢測電路,外圍器件少,電機控制簡單,如飛思卡爾公司的33886芯片。
4.2.1 20腳33886 型芯片引腳圖
飛思卡爾公司的集成H橋33886型20腳封裝芯片性能較為出色,具有過流、欠壓、過溫保護等功能,內部MOSFET導通電阻為120毫歐,具有最大5A的連續工作電流,因此選用它做電機驅動模塊很理想。
4.2.2 33886 型芯片工作電路原理圖
MC33886橋式驅動電路。MCU產生兩路PWM 波通過I N1,I N2引腳輸入,以調節OUT1 OUT2 的輸出電壓,構成OUT1與OUT2之間的電壓差。通過改變PWM的占空比來改變電機的轉速的快慢,通過控制電壓的大小,正負來控制電機的正反轉,從而進行加速,剎車,制動控制。通過控制輸入的信號,可以控制兩個半橋的通斷來實現電機的順轉與倒轉。由于在賽車中不需要倒車,為了擴大芯片的驅動能力,把兩個半橋并聯使用。考遇到驅動能力,當然兩片并聯使用甚至四片更好。
4.3 舵機驅動模塊設計
舵機驅動模塊,通過單片機MC9S12XS128產生PWM信號對模型車上的舵機,單片機MC9S12XS128中有8路獨立的PWM輸出端口,可以將其中相鄰的2路PWM輸出級聯成一個16位PWM輸出。改變PWM占空比常數可以改變輸出脈沖的寬度。而脈沖信號的寬度決定舵機輸出舵盤的角度。達到快速準確控制賽車方向。
舵機選用;舵機選S3010,它集成了直流電機、電機控制器和減速器等。并封裝在一個便于安裝的外殼里的伺服單元。能夠利用簡單的輸入信號比較精確的轉動給定角度的電機系統。微型伺服電機有三條控制線:電源線、地線及控制信號。電源線與地線用于提供內部的直流馬達及控制線路所需的能源。
舵機的主體結構;主要有幾個部分:外殼、減速齒輪組、電機、電位器、控制電路。它有堵轉保護功能,舵機在堵轉后3秒后開始保護,降低電流,保護馬達以及電路板,正常工作電流200mA,堵轉電流800mA,頻率是300HZ。
舵機工作原理;是控制電路接收信號源的控制信號,并驅動電機轉動;齒輪組將電機的速度成大倍數縮小,并將電機的輸出扭矩放大響應倍數,然后輸出;電位器和齒輪組的末級一起轉動,測量舵機軸轉動角度;電路板檢測并根據電位器判斷舵機轉動角度,然后控制舵機轉動到目標角度或保持在目標角度。所加電壓與其反應速度,轉矩成正比,即電壓越高反應越快轉矩越大。
4.4 速度檢測模塊設計
速度檢測模塊由于智能車運行過程中電機負載情況時時都在改變,開環控制很難達到快速精確,所以我們需要使用一個速度測量裝置來反饋智能車的實時速度,這樣才能對速度實現比較準確的閉環控制。設計選用歐姆龍E6A2-CW5C光電編碼器,對模型車的速度進行檢測,實現閉環控制,以便調整彎道和直道的速度,從而提高平均速度,使小車更快跑完全程。
調速工作原理;速度調節主要通過改變電樞電壓的大小來實現。經常采用晶閘管相控整流調速或大功率晶體管脈寬調制調速兩種方法,后者簡稱PWM,常見于中小功率系統,它采用脈沖寬度調制技術,其工作原理是:通過改變“接通脈沖”的寬度,使直流電機電樞上的電壓的“占空比”改變,從而改變電樞電壓的平均值,控制電機的轉速。測速時,通過齒輪與后輪驅動咬合,后輪一轉動,ECT模塊就在脈沖累加模式下對編碼器產生的脈沖進行累加,而后在一定時長的定時中斷中將脈沖數轉變為后輪的轉速。
速度檢測的方法;選用光電編碼器,它每轉動一圈都會輸出若干個脈沖,通過在單位時間內測量到的脈沖數,可以得到電機的轉速。
光電編碼器及編碼盤安裝方法;安裝在后輪,且安裝在光碼盤上。同時安裝時必須保證速度傳感器能有效的檢測到不斷跳變的脈沖信號。
4.5 傳感器模塊設計
光電組的小車需要有足夠的前瞻,(所謂“前瞻”,是指前輪兩邊與探測位置的距離)。才能夠對賽道進行提前判斷,從而便于加減速,提高速度。因此追求傳感器又遠又穩成為傳感器的最基本也是最重要的目標選擇了大前瞻的ST118對管尋跡,ST188是一個四端口元件,包括了一只紅外發射管和紅外接收管,用塑料外殼將對管封裝起來,傳感器是智能汽車的“眼睛”和“耳朵”。通過一定的前瞻性,提前感知前方的路面信息,為S12做出判斷和決策提供必要的依據。
4.5.1 光電傳感器檢測路面信息的原理
光電傳感器檢測路面信息的原理,它是由發射管發射一定波長的紅外線,經地面反射到接收管。由于在黑色和白色上反射系數不同,在黑色上大部分光線被吸收,而白色上可以反射回大部分光線,所以接收到的反射光強是不一樣,進而導致接收管的特性曲線發生變化程度不同,而從外部觀測可以近似認為接收管兩端輸出電阻不同,進而經分壓后的電壓就不一樣,就可以將黑白路面區分開來。激光傳感器與普通的光電傳感器原理都是一樣,但是其前瞻能力遠大于普通的光電傳感器,可以達到40-50厘米,對于智能汽車來說很理想。光電組的傳感器目前已經由紅外傳感器升級至激光傳感器。
4.5.2 單對紅外傳感器電路圖
當小車在白色地面行駛時,裝在車下的紅外發射管發射紅外線信號,經白色反射后,被接收管接收,一旦接收管接收到信號,那么光敏三極管將導通,比較器輸出為低電平;當小車行駛到黑色引導線時,紅外線信號被黑色吸收后,光敏三極管截止,比較器輸出高電平,從而實現了通過紅外線檢測信號的功能。將檢測到的信號送到單片機I/O口,當I/O口檢測到的信號為高電平時,表明紅外光被地上的黑色引導線吸收了,表明對應紅外線傳感器的位置處在黑色的引導線上;同理,當I/O口檢測到的信號為低電平時,表明小車行駛在白色地面上。
安裝方法;為了檢測車子行進的路徑,因而傳感器必須安裝在車子的最前端。采用6個激光傳感“一”字排列方式,間距10mm,中間兩個傳感器間距為,此時可以有效防止車體的震動使得在直道的調整量更小。
5.智能汽車控制軟件部分設計
主程序是一個大循環體,循環中對車模各部分硬件進行有效控制。
5.1 總體流程圖
初始化過程,系統所有功能的實現都最終依賴于底層硬件的設置。通電以后,讓系統做的第一件事情便是 將底層硬件初始化成自己需要的模式。
5.2 軟硬件初始化
軟硬件初始化,此次設計總共有I/O端口模塊,PWM模塊,ATD模塊,ECT模塊,時鐘模塊五個模塊分別對選用的模塊進行初始化。
5.3 算法設計
當增加積分時間常數Ti的值時,系統超調量減小,而系統的響應速度將變慢。因此,積分環節的主要作用是消除系統的穩態誤差,其作用的強弱取決于積分時間常數Ti的大小。當增加微分時間常數Td時,系統的響應速度增加,同時響應的幅度也增加。因此,微分環節的主要作用是提高系統的響應速度。由于該環節產生的控制量與信號變化速率有關,因此對于信號無變化,或者變化緩慢的系統不起作用。
在本項目中智能小車位置信號為y(t),由傳感器采集得到;小車期望的運行位置r(t)為事先設置好的產量;輸出信號u(t)即為舵機控制信號。
6.系統調試
在完成軟硬件設計后,進行系統調試,以檢查系統的完整性及有效性,調試順序為;應硬件調試后軟件調試。
6.1 硬件調試
硬件調試步驟為:機械調試——電路調試——通調。
先對電機驅動電路,速度檢測電路進行調試;再對傳感器調試,舵機進行調試;然后對直流電機進行調試。
傳感器調試分為機械調試和電路調試,機械調試的目的,是讓6個傳感器和賽道保持合適距離、高度、和角度;電路調試的目的是使各個傳感器的電壓輸出值均保持在一定值附近,其操作過程是將傳感器電路放于白紙上一定高度處,調節電位器使傳感器的電壓輸出為一定值左右。單步執行程序,觀察各個寄存器、變量、數組的變化是否正確。
舵機進行調試;可以先不使用直流電機,將小車放于白紙上,用25MM黑線在傳感器下移動,看舵機的轉向與設置是否一致,然后在跑道上,用手推小車,讓車經過符合比賽規則中要求的不同曲率半徑的軌跡。對于不同的傳感器會檢測到不同的信號。記下針對不同傳感器對不同方向檢測到信號的情況,讓其中較為理想的舵機轉角,作為一組經驗值,待軟件設計時使用。
對直流電機進行調試;將電機接入電路,在白紙上稍微將后輪懸空,用黑線在下面移動,用示波器觀測電機兩端的PWM信號是否按要求改變,確定無誤后可以拿到跑道上進行試車。讓小車在一段直道行駛后,然后進入一曲率半徑為最大值的曲線。反復試驗,就可得出小車不駛出軌道的最大占空比。
最后對對整車進行通調;讓車以某一較低的速度行駛,通過彎道時保證有合適的舵機轉角,在舵機轉角調試過程中得到的經驗值的基礎上進行修改。利用軟件對參數進行修改,提高小車直流電機的轉速和修改舵機轉角。如此反復進行,直到得到較為合適的經驗值。先讓小車行駛穩定,在此基礎上逐步提高小車速度。
排查故障的技巧方法為:
首先確定故障的線范圍,抓住主要線索,一查到底;并且線索不能中斷,中斷了便不能深入下去。
在排除故障時,還應遵循“由表及里”、“先易后難”、“先電源后負載”、“先靜態后動態”的原則。
首先利用人體的感覺器官直觀判斷;“看”:眼睛看元件有無明顯的機械損壞,如破裂、燒黑、變形等;耳朵“聽”:聽工作聲音是否正常,是否存在異響。 鼻子“聞”:檢查是否有異味,如是否存在燒焦的氣味、電容電解液的味道等。 手“摸”:用手試探器件的溫度是否正常,如器件太熱或太涼。一些功率器件,工作起來會發熱,若手摸上去為涼的感覺,基本可以判定該器件沒有工作。
電路檢查,調試的方法:利用儀器、儀表對電路進行開路和在路測試,使用下列方法;
波型分析法;電壓測量法;電流測量法;電阻測量法;信號注入法。詳細檢查找出故障元器件,分析原因,修復電路。在反復試車過程中得到的經驗值的基礎上利用軟件對參數進行修改,如此反復進行,先讓小車行駛穩定,在此基礎上逐步提高小車速度。
6.2 軟件調試
軟件設計中,要用到ECT模塊、ATD模塊、PWM模塊、電源模塊等。要先對各個模塊分別進行調試,并編寫各部分的子程序。根據系統電路板的資源,本設計方案中,使用PAD03-PAD15對傳感器采樣,PWM2和PWM3口級聯后控制直流電機正轉,PWM6和PWM7級聯后控制直流電機正轉,PWM0和PWM1級聯后控制舵機轉角。調試ATD模塊時,先使用BDM模塊將子程序下載到芯片內,然后分別在ATD入端利用穩壓源產生0-+5V的電壓,觀察CodeWarrior的Memory窗口中各個輸入的電壓值在誤差允許范圍內相等,說明該子程序正確。
調試ECT模塊時,可以通過系統電路板上PT0口外接不同頻率的固定脈沖信號,利用軟件產生一定時間,在該時間段內讀取脈沖數,將PT0口在該段時間內讀取的脈沖數送到B口顯示,通過讀取B口顯示的狀態,來檢測定時器和脈沖累加器的設置是否正確。
為檢驗PWM模塊子程序,可以編寫輸出一定占空比的PWM波形子程序,從PWM端口接入示波器,通過示波器觀察輸出波形是否與設定值相同,若相同則程序正確。
在每一部分子程序調試通過后,結合外圍電路對所有子程序進行整合,根據小車工作原理,編寫出完整的。在CodeWarrior界面完成程序編譯后,通過BDM工具,將程序下載到MC9S12DG128微處理器中,然后進行小車的調試。