基于STM32的汽車入庫輔助儀的設計
摘 要:
摘 要:國內外目前比較普及的汽車泊車系統(tǒng)為自動泊車輔助系統(tǒng)[1]和汽車倒車雷達影像系統(tǒng),但是這兩種系統(tǒng)都沒有把汽車入庫和泊車的直觀影像傳遞給司機。本文提出了一種通過在液晶屏上繪制汽車入庫時的俯視平面圖來輔助駕駛人員完成入庫的思想,在原有入庫輔助系統(tǒng)基礎上,給司機一種更加直觀的入庫視覺體驗。
關鍵詞:
關鍵詞:泊車 液晶屏 平面圖
目前,汽車泊車入庫輔助技術伴隨著科技的進步也在與時俱進的發(fā)展。汽車倒車影像雷達系統(tǒng)在國內外很普遍,它是通過在車身后面安裝攝像頭,在車身后視鏡或其他位置安裝超聲波測距模塊,達到司機方便觀測車尾部分的情況和提醒司機危險信息的目的。本文在現(xiàn)有輔助技術基礎上提出了一種改進思想——平面顯示汽車入庫形態(tài)圖。
1 系統(tǒng)設計方案的分析
本文提出設計方案主要任務為以下幾個方面:在單片機上移植uC/OS-II操作系統(tǒng)和uC/GUI圖形開發(fā)界面;驅動測距模塊和地磁傳感器,獲得距離和方位參;在LCD上繪制汽車入庫形態(tài)圖。
輔助儀工作效果概念圖如圖1所示。
圖1 輔助儀功能概念圖
1.1 單片機的選擇
由于我們需要運行操作系統(tǒng)uC/OS-II,再考慮到功耗和資源利用率問題,,最終使用STM32F103VET6單片機作為本系統(tǒng)的主控器。該單片機采用ARM公司的 M3內核,擁有512KB的flash程序存儲器和64K字節(jié)的SRAM存儲器,最高工作頻率72MHz,且?guī)в袃陕酚布蘒IC總線,能夠運行uC/OS操作系統(tǒng)。
1.2 MAG3110地磁傳感器
飛思卡爾半導體推出首款磁力計M AG 3110是一款小體積、低功耗的三軸數字磁力計,它提供增強型數字電子羅盤功能。它兼容標準IIC串行接口,能夠測量高達10高斯的所在位置磁場,輸出數據率最高可達80赫茲。本設計使用它來測量車身地磁方位。
2 系統(tǒng)的移植開發(fā)
2.1 uC/OS-II移植
uC/OS-II絕大部分代碼是用標準的ANSI C編寫的,但是在讀/寫處理器寄存器時,uC/OS-II仍需要通過匯編語言來實現(xiàn),移植工作主要集中在與處理器相關的三個文件:os_cpu.h、os_cpu_a.asm、os_cpu_c.c。
2.2 uC/GUI移植
本設計采用內置ILI9341控制器和XPT2046觸摸芯片的液晶顯示屏,顯示屏的控制模式采用16位并口模式,uC/GUI 移植過程應將uC/GUI文件與其它文件分離,本設計使用Keil MdK編譯環(huán)境下的uC/GUI的移植主要移植和修改文件為:LCDConf.h文件、GUIConf.h 文件、GUITouchConf.h文件。
2.3 MAG3110的驅動
(1)I2C總線讀寫測試。上電之后讀 WHO_AM_I (0x07)寄存器,返回值應為 0xC4。如果返回錯誤值:檢查有無ACK,若無ACK,則MAG3110可能沒有正常工作;檢查時序及SCL時鐘是否大于最小時間要求。
。2)MAG3110初始化。先將MAG3110設為STANDBY模式(CTRL_REG1寄存器低兩位00),配置OSR、ODR將MAG3110設為ACTIVE模式(CTRL_REG1寄存器低兩位01),傳感器開始轉化數據。
。3)讀數據。讀DR_STATUS(0x00)狀態(tài)寄存器,如果DR_STATUS&0x08=1,一次轉換已經完成,此時可以讀取數據;讀OUT_X_MSB(0x01)、OUT_X_LSB(0x02)、OUT_Y_MSB(0x03)、OUT_Y_LSB(0x04)、OUT_Z_MSB(0x05)、OUT_Z_LSB(0x06)寄存器,分別得到X、Y、Z三軸十六位的數據;此時轉動MAG3110,三軸數據會發(fā)生變化。
。4)數據處理?紤]到只是當做電子指南針使用,默認是水平放置的,所以只需要處理X、Y軸的數據。
2.4 主進程程序流程概述
在系統(tǒng)主進程中檢測輔助儀軟件圖標button按鈕是否按下,當檢測到button按下后,開啟子進程,進入軟件繪制了簡潔的軟件界面,系統(tǒng)界面建立的窗口有兩個button按鈕,同時顯示出MAG3110和超聲波模塊返回的數據信息接口。
子進程阻塞等待檢測“CarPark”button是否按下,當按下左邊CarPark按鈕時,系統(tǒng)進入入庫界面,在軟件主界面開了一個窗口,白色框代表的是車庫,藍色線條繪制的圖形表示汽車后部分車身,Mag3110和HC-SR04開始工作,獲取汽車方位和距離信息,當檢測到信息采集完成時,界面開啟窗口,繪制汽車動態(tài)圖。然后獲取超聲波和地磁傳感器信息顯示出來。
汽車形態(tài)數據計算部分,使用的是枚舉列表法。把舵機旋轉180度分成20份,當舵機旋轉的時候,把超聲波采集的20個距離值存進表Csb_table中;然后把地磁方位分成20份,中心值為庫的方位值,即車身正入庫時的方位值,方位表為Fw_table。當舵機旋轉一遍時,采集到Csb_table數據后,根據MAG3110返回的數值,和Fw_table(方位數據)進行比較,得到當前方位位于表中的位置序號,然后根據序號,取Csb_table中的相應序號的值作為庫最里面墻壁和車尾的距離,然后再通過方位差為90度的值的序號,從Csb_table中取出左邊墻壁和右邊墻壁與車尾相應的距離數值。最后便可得到車尾與車庫里墻、車庫左墻和車庫右墻的三個距離值。然后,通過左右距離值和車身寬度相加計算出車庫的寬度,讓它和LCD上開的白色窗口寬度比較得出圖例Bili,便可以很輕松地繪制出車身與車庫的關系了。
3 系統(tǒng)測試與驗證
搭建好硬件系統(tǒng)后,移植uC/OS-II和uC/GUI到STM32上,測試結果如圖2所示。
圖2 輔助儀實際效果圖
設計效果基本實現(xiàn)了輔助儀的功能。但由于在設計中存在著超聲波分辨率精度的影響和地磁儀穩(wěn)定性的問題,數據漂移較大,造成了最終繪制出來的圖形有所扭曲和漂移,但是本設計提出的“平面化“思想得到可行性驗證。
4 結論
未來發(fā)展的趨勢是汽車入庫輔助儀將廣泛用于各種情況下的泊車和入庫,具有高適應性、準確性和安全性,為司機創(chuàng)造更好的停車環(huán)境。本文提出的平面繪制汽車入庫的動態(tài)形態(tài)圖思想,將便于司機更加直觀的觀測汽車入庫時和車庫的相對形態(tài),從而利于司機做出準確的車身修正和危險規(guī)避。
參考文獻:
[1]張海亮等.汽車底盤技術發(fā)展趨勢[J].上海汽車,2011(4):32-35.
[2]石億,黃輝先,趙娟,徐建閩.uC/OS-Ⅱ與uC/GUI在Cortex-M3上的移植研究與實現(xiàn)[J].微計算機信息,2012(9):159-161.
[3]劉火良,楊森.STM32庫開發(fā)實戰(zhàn)指南[M].北京:機械工業(yè)出版社,2013.
[4]Jean J.Labrosse.嵌入式實時操作系統(tǒng)μC/OS-III[M].北京:北京航空航天大學出版社,2012.
本文編號:14572
本文鏈接:http://www.lk138.cn/kejilunwen/jisuanjikexuelunwen/14572.html