賀東方 賀偉 賀一夢 張一博 許珺穎



摘 要:本文主要介紹第十屆全國智能車大賽設計的智能車系統方案。該系統以“飛思卡爾”32位單片機Kinetis MK60DN512ZVLQ10作為系統控制處理芯片,采用野火智能車陀螺儀ENC 03MB+加速度MMA7361CL二合一模塊獲取直立車姿態信息,并控制2個直立驅動馬達使車模直立,同時借助于線性CCDTSL1401的圖像采樣模塊獲取賽道圖像信息,通過軟件算法提取賽道邊界,識別當前所處賽道位置,算出小車與黑線間的位置偏差,采用PID算法對2個驅動馬達進行差速控制,實現了車模的轉向控制。通過光電編碼器實時獲取小車速度,形成速度閉環控制。
關鍵詞:光電智能小車;飛思卡爾芯片;算法設計
中圖分類號:U463 文獻標識碼:A 文章編號:1003-5168(2018)02-0119-03
Design of Optoelectronic Balancing Intelligent Car Based on K60
HE Dongfang HE Wei HE Yimeng ZHANG Yibo XU Junying
(School of Electrical and Information Engineering, Henan University of Urban Construction, Pingdingshan Henan 467036)
Abstract: This paper mainly introduced the design of intelligent vehicle system for the Tenth National Smart car competition. The system used "Freescale" 32-bit microcontroller kinetis MK60DN512ZVLQ10 as the system control processing chip, and control two vertical drive motor cars upright upright vehicle attitude information to obtain by wildfire intelligent vehicle gyro enc 03MB+ acceleration MMA7361CL combo module. At the same time, by means of linear CCDTSL1401 image sampling module access to the track image information, track boundary was extracted by the software algorithm, recognition of the current track position, the position deviation of calculated between the car and the black line by PID algorithm of two driving motor differential speed control, the realization of the models of steering control. The speed of the car was acquired through the photoelectric encoder, and the speed of the closed-loop control was formed.
Keywords: photoelectric intelligent car;carle chip;algorithm design
現代智能汽車是一個融合環境探知、路線選擇、人車交互和多等級輔助駕駛等功能于一體的綜合性系統,其集中運用了現代計算機處理、模式識別、傳感器技術、信息融合、實時通信和智能控制等技術,是現代的高新技術綜合體[1]。與此同時,“飛思卡爾智能”小車,越來越受到大家的關注和青睞。光電智能小車用單片機作為處理器,用傳感器采集自己所需的信息并將信息傳遞給處理器,處理器對采集到的信息進行分析和處理,由處理器發出指令驅動執行元件執行命令[2]。整個系統是一個閉環控制,通過硬件和軟件的結合,利用硬件和軟件算法,使小車在預定的跑道上前行。
本文以Kinetis MK60DN512ZVLQ10作為智能小車的控制核心,制作出了“光電平衡小車”。該小車借鑒智能汽車設計原理,在實驗環境下順利實現智能循跡和避障行駛等功能。
1 機械系統設計
光電平衡智能小車系統的機械設計對小車的系統穩定性有著較為直接的影響,是整個系統設計中較為關鍵的環節。
1.1 重心的穩定設計
系統的設計要保持小車重心的穩定,這對小車在前行的過程中保持平衡并進行自主調節有很大的影響。在系統設計的過程中力求降低重心,為此把電路板放在前面,把電池放在后面,并用扎帶進行固定,其余的硬件分布在小車的兩邊,這樣可以保證重心平穩,為智能小車的穩定前行打下基礎[3]。
1.2 輪胎的打磨
小車輪胎與賽道之間的摩擦力對小車在賽道上的穩定前行有著一定的影響。摩擦力太大會讓小車在賽道上轉彎不夠快速,摩擦力太小會讓小車在轉彎的過程中出現側滑,這樣的結果都不是預期想要的。為了保證小車無論是直行還是在轉彎的過程中都可以平滑地進行,使設計的小車性能更加完善,對小車進行了打磨處理。
2 硬件設計
智能小車硬件電路是整個控制系統的基礎核心部分,關乎智能小車的性能。在系統整體設計中,為智能小車提供了一個穩定、可靠、開放、方便調試和系統改進的硬件平臺,該平臺由Kinetis MK60DN512ZVLQ10最小系統模塊、電機驅動模塊、電源管理模塊、線性CCD模塊、陀螺儀和加速度模塊等組成[4]。這些模塊在一起組成一個閉環系統,系統的整體框圖如圖1所示。
2.1 Kinetis MK60DN512最小系統板
該模塊包括MK60DN512ZVLQ10芯片、晶振電路、復位電路、PORT模塊、GPIO模塊、UART模塊、I2C模塊和PIT定時中斷模塊等。
2.2 電源管理模塊
電源管理模塊是智能小車各個控制模塊所需的穩定性能電源的有效保障。智能小車依靠功率較大的一個直流電機驅動2個輪子前行,在路面工況良好的情況下車輛加速時電機的瞬時電流將會大于10A。這種情況的發生勢必會對整個供電系統造成較為明顯的沖擊。為了抑制電機的瞬時電流,減小沖擊電流對系統造成的影響,對整個系統采用多路供電的模式,這樣可以使系統內各個模塊之間的相互干擾降至最低。系統中所用的電源主要有+7.2V和+5V 2種,供電電池產生的7.2V電壓直接供給電機,7.2V電壓經過器件LM1048轉換后的電壓為+5V,給驅動板、編碼器、線性CCD、陀螺儀等模塊進行供電。
2.3 驅動電機模塊
2個驅動電機為系統整車提供前進力源,控制著光電智能小車的行駛速度。驅動電機模塊選用4片BTN7971驅動芯片構成4個半橋電路,電機驅動已經用MOS管做好信號隔離,以免對系統的整體運行產生影響。驅動芯片利用K60單片機輸出的PWM信號,把蓄電池輸出的驅動電機的7.2V電壓調制為頻率f一定、占空比q可變的電壓序列。為了防止電機在運行的過程中遇到突發或極端情況,對電機自身產生不良影響,對芯片輸出的PWM波進行限幅處理,作為對電機驅動模塊的保護。
在整個系統控制的過程中,需要各個模塊的共同配合對電機進行驅動。陀螺儀和加速度計傳感器采集到的信息用來控制直立過程;線性CCD采集到的信息用來識別道路,直行或者拐彎。各個模塊的精準配合,使電機正常運轉。該模塊的接口電路如圖2所示。
2.4 陀螺儀與加速度計模塊
陀螺儀與加速度計傳感器為方案提供直立過程所需的參數。光電平衡智能小車只有2個輪子,要保證2個輪子可以在賽道上前行,就必須保證小車在2個輪子的情況下可以“站著”,就是小車在直立的時候具有自動調節功能,保證小車“自己”在不倒下的前提下穩定下來。
陀螺儀能夠感應小車在Z軸上的變化,加速度計MMA7361會采集到此時直立的參數,然后對采集到的信息進行處理,用PID算法使設計的小車可以在不斷調試之后進行直立不動,達到智能小車控制的基本要求。
2.5 線性CCD模塊
線性CCD是光電平衡組小車獲取賽道信息的主要傳感器,根據競賽規則要求,線性CCD領選用TSL1401系列線性CCD傳感器。
線性CCD相當于智能小車的“眼睛”,用來判斷小車前進過程中的道路。線性CCD傳感器會采集到賽道上不同的地方的亮度進而轉化為電壓值,在芯片中采用二值化算法進行處理,這種算法就是把電壓值高的作為白色處理,電壓值低的作為黑色處理,這樣小車就可以識別賽道不同地方的差別,進而可以找到整個賽道的邊界。小車在前行的過程中,不斷采集賽道上的信息,同時芯片可以在任何地方處理當時的信息,保證小車可以在預定的軌道前行。因為不同的賽道需要的速度以及是否需要轉彎是不同的,所以小車在不同的元素軌道內需要采用不同的控制算法來保證小車不偏離賽道,直至跑完全程。因此,線性CCD在小車的前進過程中發揮了很大的作用。線性CCD的連接圖如圖3所示。
2.6 車速檢測模塊
光電智能小車在設計過程中為了實現車速的閉環控制,系統要實時監測該智能車的前進速度。系統設計中采用歐姆龍編碼器E6A2-CW3C進行測速,該編碼器轉動一圈,可以輸出500個脈沖。采集到的編碼器數值信息送給單片機,單片機按照預設的程序要求進行數據處理,保證小車按照設定的程序要求運行。
3 系統軟件、算法設計
系統算法的設計是智能小車整個系統的核心,決定著小車是否能夠穩定運行以及能否快速前行。軟件系統設計時首先需要對Kinetis MK60DN512ZVLQ10芯片中的PWM模塊、GPIO模塊、I/O模塊等進行初始化。PWM模塊的功能是用來控制驅動電機的轉速,PWM越大,驅動電機的轉速也越快[5]。I/O模塊的功能是用于信息的發射和各種數據的接收。然后,在軟件算法設計過程中采用濾波算法、PID算法等。
在自動控制理論中,閉環系統的穩定性要強于開環控制。軟件系統設計也采用閉環控制,這樣的閉環系統通過不斷地采集信息和反饋信息,使小車的性能越來越完善,同時也趨近設計要求[6]。系統程序流程圖如圖4所示。
4 結論
本文以光電智能小車為研究對象,設計了基于飛思卡Kinetis MK60DN512ZVLQ10單片機的智能小車控制系統。在整個系統中,線性CCD采集道路信息,陀螺儀和加速度計傳感器采集自身偏離信息,編碼器實現實時檢測車速。在單片機中對采集到的信息進行處理,采用一系列閉環控制算法實現小車的起跑、直行、轉彎、停止等一系列動作,通過不斷地進行調試和修改參數,使小車可以在賽道上穩定、快速、準確地跑完全程。
參考文獻:
[1]童詩白,華成英.模擬電子技術基礎[M].北京:高等教育出版社,2012.
[2]閻石.數字電子技術基礎[M].北京:高等教育出版社,2013.
[3]周立功,陳明計.RM嵌入式系統基礎教程[M].北京:北京航空航天大學出版社,2008.
[4]譚浩強.C程序設計[M].4版.北京:清華大學出版社,2005.
[5]賀偉,侯寧,劉增力,等.智能循跡小車控制系統設計[J].貴州大學學報(自然科學版),2015(3):89-92.
[6]邵貝貝.單片機嵌入式應用的在線開發方法[M].北京:北京航空航天大學出版社,2008.