梅明杰,肖 波,韓 濤,楊袁江,李 斌,王 憬
(湖北師范大學電氣工程與自動化學院,黃石 435002)
隨著社會經濟發展,交通服務逐漸智能化,智能交通在提升交通效率、保障安全、服務公眾等方面成效顯著,是未來交通發展的重要方向[1]。目前大多數停車場缺乏停車引導裝置,駕駛員在需要停車時無法及時獲取區域準確停車資源信息,導致時間大多浪費在尋找車位和等待車位上[2]。傳統停車引導裝置使用AR 識別技術,其價格昂貴且檢修維護復雜,需要上位PC機處理數據。
本文使用STM32 作主控芯片,并使用成本較低的光電傳感器為主采集模塊,能大幅降低停車引導裝置的成本,使停車引導裝置更好地普及,從而提升通行效率,增強出行幸福感,并讓停車場有了更大的車流量承載能力,一定程度上改善城市交通。
本系統設計了以STM32 為主控芯片的智能停車引導系統,主要由光電傳感器模塊、攝像頭模塊、STM32F103 主控芯片、一級引導顯示屏、二級引導顯示燈組成,系統總體設計框圖如圖1所示。其原理是通過光電傳感器模塊、攝像頭模塊采集停車場實況信息,顯示屏和指示燈顯示實時空閑車位余量和空閑車位分布情況,給駕駛員提供分級引導。其中光電傳感器安裝在各個停車位上,攝像頭懸掛,實施方式如圖2所示。

圖1 系統總體設計框圖

圖2 采集模塊方位示意圖
本系統硬件部分包括STM32F103主控芯片、傳感器采集模塊和顯示模塊。
本系統采用STM32F103芯片作為主控制器,該芯片是一種基于ARM Cortex-M3 內核的單片機,具有高性能、低成本、低功耗嵌入式等特點[3]。對于停車引導系統,采用STM32 作為主控芯片能帶來更高的性價比和豐富的外設資源,其集成了I/O 系統,適用于停車場內多車位光信號的采集,以及引導顯示屏的控制。主控芯片在工作時,會實時接收傳感器模塊采集的車位實況信息,處理后控制顯示模塊顯示正確引導信息。
本系統采用光電傳感器模塊進行停車場內光信號的采集,如圖3所示,該模塊集成了光敏電阻、可調電位器、LM393 電壓比較芯片、輸出指示燈等元件。傳感器安裝于停車場各個車位上,并根據不同位置的光照強度調節電位器,以改變接在反相端INA-端的閥值翻轉電壓,使傳感器準確判斷車位的遮光情況。

圖3 光電傳感器模塊原理圖
其中LM393 電壓比較器作模數轉換芯片,將光敏電阻接收光照時產生的電阻值變化變成電壓信號傳遞給電壓比較器的同相輸入端INB+,變化的電壓信號與電壓比較器的反相輸入端INA-端的基準電壓相比較,當同相端INB+電壓大于反相端INA-端電壓時,電壓比較器的輸出端OUT 輸出高電平電壓;當同相端INB+電壓小于反相端INA-端電壓時,電壓比較器的輸出端OUT輸出低電平電壓。
在車位占用的遮光狀態時,光敏電阻的電阻值很大,電阻R1 與該光敏電阻組成的分壓點電壓升高,使同相端INB+電壓大于反相端INA-端電壓,電壓比較器的輸出端OUT 輸出高電平電壓,表示車位占用。在車位空余有光照時,光敏電阻的電阻值很小,電阻R1 與該光敏電阻組成的分壓點電壓下降,使同相端INB+電壓小于反相端INB-端電壓,電壓比較器的輸出端OUT 輸出低電平電壓,表示車位空余[4]。從而將光信號轉換為數字量信號,并實現車位是否占用的判斷。
攝像頭采集模塊采用OV5640 攝像頭,該攝像頭具有最高500 萬的像素,通過DVP 接口與主控芯片進行連接。可輸出彩圖、灰度等格式,并自動對焦,調節圖像的飽和度及白平衡。在本系統中與光電傳感器配合使用,判斷停車位上的遮光物體是否為車輛,將識別結果傳輸到主控芯片,從而提高車位余量計算的準確性。
本系統顯示模塊包括一級引導顯示屏和二級車位顯示燈,一級引導顯示屏置于停車場道路交匯口處,顯示相鄰停車分區的車位余量,二級車位顯示燈顯示本分區所有車位的占用情況,實現對車輛的分級引導。其中一級引導顯示屏采用LCD12864 顯示屏,該屏幕由128 列64行的矩陣顯示點構成,可顯示中文漢字和英文字符,為駕駛員提供更直觀的停車信息,實施方式如圖4所示。一級引導顯示屏只顯示相鄰分區的車位余量,為了給駕駛員提供完善的停車引導服務,需配合二級車位顯示燈。

圖4 一級引導顯示屏
二級車位顯示燈通過LED 燈的亮滅表示各個車位的占用情況,其中LED 燈串聯在傳感器輸出端,亮起表示該車位占用,如圖5 所示,LED 指示燈配合車位分布平面圖,可直觀地將本分區空余車位分布情況提供給駕駛員,幫助駕駛員選擇適合的停車位,完成停車引導。

圖5 二級車位顯示燈
本系統軟件設計主要由采集程序設計和顯示器控制程序設計兩部分組成,其中采集程序將光電傳感器和攝像頭采集的數據處理并計算得出各分區車位余量,并由顯示器控制程序控制輸出到顯示屏中,完成分級停車引導[5]。
本系統需要讓STM32 主控芯片實時處理光電傳感器和攝像頭采集到的車位實況數據,判斷各車位占用情況,并計算各個分區的車位余量,通過并行口通信將各分區車位余量信息輸出到顯示屏,控制顯示屏顯示相鄰分區的車位余量信息。當車位實況發生變化時,系統能檢測到并及時更新顯示屏上的引導信息,確保系統提供正確的停車引導服務。系統主程序流程如圖6所示,初始化后開始第一個周期的車位余量檢測,計算出各分區的車位余量,通過顯示屏控制程序將指定分區的車位余量數據輸出顯示,完成本周期的停車引導任務,并以50 ms為周期循環進行車位余量檢測和顯示,實時更新車位余量信息的顯示。

圖6 系統主程序流程圖
主控芯片STM32 接收光電傳感器處理后的車位實況信息,并通過各個車位對應引腳接收到的電平信號判斷該車位是否被占用。以A分區為例,定義整型變量NumA,依次判斷各車位占用情況,若車位空余,則NumA++,判斷完A區所有車位后得出A區剩余車位NumA,并將NumA數據輸出到顯示屏控制程序中進行顯示,輸出本輪結果后延時,以50 ms為周期進行下一輪數據的采集和處理,采集程序流程如圖7所示[6]。

圖7 光電傳感器采集流程圖
本系統采用OV5640 攝像頭采集車位實況照片,通過車牌字模的模糊匹配算法識別車位上是否有車牌號,若未識別到車牌,則該車位可能被非車輛的其他物體遮光,并判斷為該車位處于空余狀態,流程如圖8 所示。攝像頭以QVGA 分辨率采集圖像后,對圖片進行灰度處理,存入主控芯片STM32 的RAM 中,完成初始化。隨后檢測圖片中的車牌邊緣并進行圖像矯正,使車牌字符規整。矯正圖像后捕捉圖像中的字符圖像,并分割車牌圖像使字符獨立,將字符圖片與預存車牌號字體的字符模板比對并匹配,重合度達到設定值表示本次識別結果為車牌,并判斷該車位被占用;若識別不到車牌,則表示該停車位被其他物體、灰塵等遮光,或傳感器故障,判斷為車位空余。

圖8 攝像頭控制流程圖
LCD12864 液晶顯示器是一種點陣型的液晶顯示器,其形式是128×64 個顯示單元,通過設定的初始化程序對LCD12864 顯示屏進行初始化,以此來開啟顯示屏的液晶顯示,顯示屏控制流程如圖9所示。初始化完成后調用漢字顯示編碼,逐行完成漢字內容的顯示,該內容為固定內容,不隨車位實況而變動。隨后調用車位余量的計算結果,并調用對應數字的字模編碼,顯示該車位余量數字,車位余量數字以50 ms為周期實時更新。其中漢字字模和數字字模均為16×16 像素的宋體,以32 個十六進制數儲存于數組中,對應一個漢字或數字的256 bit 字模編碼,在顯示程序中被調用[7]。

圖9 顯示屏控制流程圖
本系統使用Keil 軟件對程序進行編譯,并在Proteus 軟件中進行仿真調試,仿真效果如圖10 所示,該顯示內容會隨著傳感器采集的信號變化實時更新車位余量數字,顯示內容與車位實況一致,且二級引導顯示燈正確顯示剩余車位分布情況。

圖10 仿真顯示效果
在實物調試中,本系統使用SPI串行口通信控制OLED屏作為一級引導顯示屏,二級引導顯示燈中,紅色LED 燈亮起表示該車位占用,顯示效果如圖11 所示。經驗證,顯示模塊根據車位占用實時更新引導內容,實現停車引導。

圖11 實物運行效果圖
本文在停車需求與汽車總量比例失調,且停車引導設施不完善的背景下,設計了智能停車引導系統,此次設計完成了停車場各分區實時車位余量信息的顯示、車位占有情況的指示與停車引導。其中以STM32 為主控芯片,并采用了光電傳感器作為信息采集模塊,可大幅減少停車引導設備的生產與維護成本,并且STM32 主控芯片具有一定的擴展性,可為停車場提供后續升級空間;光電傳感器相較于傳統的AR 智能識別技術具有更高的穩定性和經濟性,適合使用在形如地下停車場的光照強度固定場所,也為停車引導信息的顯示提供了便利。