基于線性CCD圖像識別智能小車的設計與開發
目前,具有自動駕駛功能的智能車越來越引起人們的重視。智能車裝備了各種傳感器來采集路況信息,通過計算機的控制可以實現自適應巡航,并且又快又穩、安全可靠。智能車不僅能在危險、有毒、有害的環境里工作,而且能通過計算機的控制實現安全駕駛,能大幅度降低車禍的發生率。智能車的設計關鍵是路況信息的采集,傳統的方案多采用紅外光電傳感器,此方案不僅噪聲較大,而且與主控CPU的連接電路復雜,傳輸速率慢。本文研究的智能小車系統選用了TSL1401CL線性CCD圖像采集模塊,該模塊采用串行通信方式與主控CPU連接,不僅電路簡單、性能穩定,而且采集速率快。通過實驗測試,本文設計的智能車能根據采集到的圖像分析前方路徑及障礙而實現智能駕駛,具有極強的實用價值和市場前景。
本文引用地址:http://www.j9360.com/article/201710/368423.htm1 系統設計思想
經過調研與分析,我們采用了MC9S12XS128單片機、TSL1401CL線性CCD圖像采集模塊、穩壓芯片以及液晶OLED等外圍器件設計與開發出這套智能小車系統。MC9S12XS128高速單片機為Freescale公司新推出的16位高性能高速單片機,其接口豐富、功耗低、信息處理能力強大,能對小車前方路徑及障礙進行及時分析,處理迅速、性能穩定。為了提高路面圖像采集的速度與質量,我們選用了TSL1401CL線性CCD圖像傳感器。TSL1401CL具有功耗小、性能穩定、靈敏度高、響應速度快等優點,其工作過程是先將路況光學信號轉換為模擬電流,模擬電流放大后再進行A/D轉換變成數字信號,最后通過串口送至主控CPU。智能小車的CPU根據CCD采集到的信息進行分析和處理,從而實現系統的自動控制與障礙處理、路徑探測。在軟件設計中我們采用了先進的PID(比例、積分、微分)算法,其運算參數可以根據過程的動態特性及時整定。通過PID算法,模糊PID算法來實現智能車的轉向、控速等精確自動控制,另外還有很好的避障功能,實現了全智能的安全控制。
2 系統硬件設計
本項目采用模塊化設計與開發,主要有CCD采集模塊、電源模塊、電機驅動模塊、車速控制模塊和轉圖1系統總體設計框圖。
2.1 CCD采集模塊
該模塊采用TSL1401CL線性CCD圖像傳感器,其內部由一個128×1的光電二極管陣列、相關的電荷放大器電路和一個內部的像素數據保持功能組成,它提供了同時集成起始和停止時間的所有像素。對于TSL1401CL線性傳感器的驅動與使用,本項目利用MC9S12XS128的PA0和PA1引腳對其CLK和SI兩個引腳按特定的時序發出方波信號,TSL1401CL的AO引腳就會依次輸出128個像素點的模擬信號給MC9S12XS128,其電路如圖2所示。我們通過測試發現,該傳感器的輸出信號和環境光線密切相關,白天AO輸出值比晚上高很多,對光和背光相差也很大,白熾光和日光燈光線條件下差異很大。同一鏡頭或信號放大倍數,必然無法適應各種環境,經常會出現過弱或信號飽和,對環境的適應性很弱,對此可通過軟件使用動態曝光時間或通過單片機動態改變運放的放大倍數。
2.2 電源模塊
系統由不同的模塊組成,每個模塊工作的電壓不同,設計時還要考慮各模塊所需的功率。另外還需設計電池檢測系統,以便直觀了解電池的情況。智能車需要的電源要求包括5V、7.2V等。對于5V供電設計我們選擇了LM2940-5,對比7805,2940的優點是低壓差穩壓,其穩壓差小于500mV,這樣保證電池在低電壓的情況下仍能使單片機和傳感器正常工作,同時,LM2940的輸出電流可以達到1A,足夠供應放大電路和鍵盤顯示電路的工作。LM2940模塊電路設計圖如圖3所示。
2.3 電機驅動模塊
驅動電路為智能車驅動電機提供控制和驅動,這部分電路的設計要求以能夠通過大電流為主要指標。驅動電路的基本原理是H橋驅動原理,目前流行的H橋驅動電路有:H橋集成電路,如MC33886;集成半橋電路,如BTS7970以及MOS管搭建的H橋等電路。對于本系統的設計,我們選擇了性能較好的BTS7970作為電機驅動模塊的主芯片,其工作電路圖如圖4所示。
2.4 速度控制模塊
智能車的車速主要采用增量式PID控制和位置式PID控制,將模糊控制與PID控制相結合,使智能車能夠在賽道上平穩快速地行駛。智能小車速度控制系統以XS128單片機為核心,由單片機給電機一個給定速度即理論速度,建立模糊PID控制器,利用模糊PID控制器來控制電機的轉速,即控制智能小車的實際速度。再利用光電編碼器來測量智能小車的實際車速,并將實際車速反饋給模糊PID控制器,形成閉環負反饋回路。
2. 5 轉向控制模塊
智能車的舵機SD-5采用位置式PD控制,因為舵機的控制精度高,不同的PWM占空比對應舵機的不同轉角,所以采用開環控制。當小車位于直道時,將舵機擺正;當小車位于彎道時,彎道的曲率越大則舵機的轉角擺角越大,利用圖像的加權平均偏差與圖像中心之差作為控制量。
3 系統軟件設計
系統軟件采用C語言編寫,通過Code Warrior IDE編譯。軟件設計的思想是驅動線性CCD光學器件采集單線圖像信息,通過處理采集到的圖像來判斷小車所處的位置和確定小車行進時前進方向上的路線情況,然后將處理后的信息轉化成變化的PWM量發送到舵機和電機以及編碼器處理模塊,從而達到對小車行走方向及車速的控制。系統流程圖如圖5所示。
4 總結
對于本項目智能小車系統的設計與開發,我們選用了MC9S12XS128高速單片機為控制核心,通過A/D轉換方法獲取TSL1401CL線性CCD采集信息以及角度測量信息,運用模糊PID算法實現對車模直行、轉向以及速度控制的方案。其中MC9S12XS128為整個系統信息處理和控制命令的核心,線性CCD傳感器用來識別小車的運行路徑,采集的信息在單片機上進行實時比較,通過PID控制算法來控制小車速度、轉向,從而實現小車的智能自動駕駛。本方案的優點是電路簡單、系統性能穩定。經測試,本智能小車能在復雜的路況下實現智能自動駕駛。
評論