楊學成 沈陽工程學院
?
基于wifi的手機控制智能尋跡車的研制
楊學成 沈陽工程學院
摘 要:本智能車系統設計以MC9S12DG128微控制器為核心,通過一個CMOS攝像頭檢測小車的運動位置和運動方向,光電編碼器檢測模型車的速度,PID控制算法調節驅動電機的轉速和舵機的方向,完成對小車運動速度和運動方向的閉環控制,通過手機上的APP,以wifi無線傳輸技術,實現對本智能車的控制。
關鍵詞:微控制器 攝像頭 PID 手機 WIFI控制
本智能車以MC9S12DG128為核心控制,外加CMOS視頻傳感器、無線wifi接口及APP應用程序構建完整的自主循跡智能小車系統。通過高清攝像頭采集道路信息送入微控制器,在單片機中對輸入的圖像信息進行處理,計算提取道路特征信息,選擇最佳行進路線并進行速度的控制,通過手機APP以無線wifi傳輸控制信息完成對小車姿態、速度的最優控制。整個系統設計包括車體機械結構設計和軟/硬件系統設計。車體機械結構設計主要包括:底盤的加固、車身輕量化處理及前后輪的調節使其符合車身動力學,圖像傳感器、舵機以及速度編碼器的安裝和無線傳輸模塊的加固安裝等。硬件電路設計部分主要包括:電源穩壓電路,為系統的各功能模塊提供了穩定、可靠的工作電源;圖像傳感器跑道信息采集電路,編碼器速度測量監視電路;電機驅動電路,驅動電機穩定快速的運行;wifi無線收發模塊。軟件系統設計完成了各功能模塊的控制算法及程序設計,包括手機控制APP軟件設計及無線傳輸協議的實現算法,圖像采集及濾波算法設計、黑線提取及黑線中心求解算法設計以及舵機和電機的PID算法設計。
智能車主要包括四個部分組成:手機wifi無線收發系統、道路信息檢測系統、自主控制決策系統、能源動力系統。采用手機APP控制軟件和無線wifi傳輸模塊收發控制命令,對小車的進行無線啟停控制及運行姿態的監視。在道路檢測系統中,采用數字高清攝像頭采集跑道和路況信息,并且利用濾波算法提取賽道的特征信息,采用光電編碼器測量車體實時速度信息。自主控制決策系統采用MC9S12DG128作為主控芯片,接受并解釋手機來的命令做出相應的啟停動作,運行過程中,主控芯片依據檢測到的路況信息自主設定適合的速度和運行的角度。能源動力系統主要包括電源和小車的執行機構(直流電機),主要是將cpu發出的速度和運行角度信息作用在直流電機上去控制舵機的轉角和直流電機的轉速,實現速度和方向的控制。小車的四個部分構成智能車的有機系統,通過各個部分協調合作實現小車穩定安全運行在跑道上。
小車的硬件系統主要包括七個部分:無線WIFI傳輸模塊、MC9S12DG128核心系統板,電源管理模塊,圖像采集處理模塊,舵機驅動模塊,速度檢測電路,電機驅動電路和輔助調試模塊。手機APP通過無線WIFI通信模塊完成命令的發送和接收功能,是智能小車的“監視系統”。MC9S12DG128核心系統板是系統的中樞部分,司職采集接收賽道圖像數據和賽車速度等反饋信息,并對這些信息進行恰當的處理,形成精確的控制量來對舵機與驅動電機模塊進行控制。電源管理模塊為整個系統提供能源,保障系統安全穩定運行。圖像采集處理模塊采用數字攝像頭OV7620,用于獲取前方道路情況以供單片機處理,是智能小車的“視覺系統”。速度檢測電路采用歐姆龍公司的500線光電編碼器。電機驅動電路采用BTN7970半橋驅動并聯搭建全橋,可以實現電機的正反轉。舵機驅動模塊控制舵機的轉向。輔助調試模塊有BDM、串行通信等,主要用于賽車系統的程序燒寫、功能調試、賽車狀態監控等方面,主要包括BDM、撥碼開關、LED指示及串口通訊等。
軟件算法則是賽車的核心部分,決定著賽車的運行質量。程序的主流程是:手機APP上的指令通過無線WIFI傳輸模塊發出命令,CPU接收攝像頭上的視頻行中斷和視頻場中斷采集程序對攝像頭的視頻信號進行間隔采樣,并同時完成對數據進行濾波處理及計算并給出控制量,周期采樣間隔為4ms。
(一)圖像信息的處理算法
1.圖像二值化濾波算法。二值化就是對圖像數據的每一行每一個像素點按照相應的閾值進行比較判別,若像素點的像素值小于閾值時置0,表示其為黑色,否則置1,表示白色。本設計采用的動態閾值法對采集的圖像進行二值化處理。動態閾值是指判別閾值可以隨車行駛的光線環境進行動態調整,使得二值化的圖像信息更加真實可靠。二值化的圖形包含大量的雜波,需要進行濾波處理,設計中采用限幅平均濾波濾波效果很好。
2.黑線的提取。二值化濾波算后的賽道信息存儲在內存緩沖區里,緩沖區的容量是16行、177列。將緩沖區的數據為“0”作為賽道的軌跡信息,根據這些信息計算小車的的位置以及賽道的狀況。
(二)控制算法
主要是運用PID控制算法,其中包括電機控制是通過編碼器返回的實時速度完成閉環控制,舵機算法公式如下:
pwm=ster_mid+(int)(steer_kp*(colm_max/2-center1))+(int) (ster_kd*(Center[15]-Center[0])),其中ster_mid是舵機中心常量,colm_max是最大列坐標,Center[n]數組是用來存放路中心列坐標數據,center1是當前幀的列坐標中心值,pwm舵機控制量。
(三)手機APP軟件的開發
我們基于語音識別自動尋跡小車的語音接收和處理是利用在上位機上開發簡單的應用軟件來完成的,運用了微軟語音庫,完成的過程如圖5.7所示。
智能車自動化程度高,運行穩定,軟件功能完善,獲得了遼寧省挑戰杯三等獎。
參考文獻:
[1]Freescale.CPU12/CPU12X Reference Mnual.
[2]安鵬,馬偉,使用S12單片機控制舵機,清華大學工程物理系,2007
[3]Tinku Acharya 等.數字圖像處理—原理與應用.清華大學出版社.2007
[4]李剛.飛思卡爾8位單片機實用教程.電子工業出版社出版.2009
[5]胡壽松.自動控制原理.(第四版)科學出版社.2001