何英昊,鄭鵬輝,李 廣,岳煒茗
(1.大連理工大學(xué)城市學(xué)院,遼寧 大連 116600;2.沈陽(yáng)工業(yè)大學(xué),遼寧 沈陽(yáng) 110000;3.西安大醫(yī)集團(tuán),陜西 西安 710018)
交通燈是城市交通運(yùn)行必不可少的設(shè)備,該設(shè)備通過(guò)紅、黃、綠三種顏色的燈光傳遞信息,進(jìn)而控制路口的交通,使車輛安全快速通過(guò)路口[1-3]。隨著經(jīng)濟(jì)的飛速發(fā)展,道路交通問(wèn)題日趨嚴(yán)重,現(xiàn)有的交通設(shè)施不能完全解決車流量壓力大的現(xiàn)實(shí)交通問(wèn)題,主要表現(xiàn)為交通燈程式化,不能有效緩解擁堵;遇到緊急車輛通過(guò)時(shí)通過(guò)效率低,不能有效避免行人誤闖紅燈等[4-6]。單片機(jī)技術(shù)和傳感器技術(shù)的發(fā)展為新的十字路口智能導(dǎo)流控制系統(tǒng)提供了可靠設(shè)計(jì)方案,能夠優(yōu)化傳統(tǒng)式交通燈的設(shè)計(jì)弊端,讓交通燈的使用更加靈活[7-10]。本文提出一種基于STM32的十字路口智能化導(dǎo)流控制系統(tǒng)設(shè)計(jì)方案。該方案中的十字路口智能導(dǎo)流控制系統(tǒng)設(shè)置有多種模式,包括夜間模式、南北禁行模式、東西禁行模式、緊急模式,可以根據(jù)具體路況進(jìn)行設(shè)置,并且能夠及時(shí)提醒行人紅綠燈變換,減少大意闖紅燈情況的發(fā)生。同時(shí),還可以利用紅外檢測(cè)技術(shù)檢測(cè)車流量,根據(jù)車流量自動(dòng)調(diào)整通行時(shí)間。當(dāng)然,該方案也可手動(dòng)調(diào)節(jié)各車道紅、黃、綠三種燈光的時(shí)間。
十字路口智能導(dǎo)流控制系統(tǒng)共包括七個(gè)模塊,分別是:主控模塊、車流量檢測(cè)模塊、語(yǔ)音報(bào)警模塊、LED顯示模塊、數(shù)碼管顯示模塊、按鍵模塊、電源模塊,具體如圖1所示。STM32F103C8T6單片機(jī)及最小系統(tǒng)作為十字路口智能導(dǎo)流控制系統(tǒng)的主控模塊,負(fù)責(zé)系統(tǒng)的調(diào)度;E18-D80NK-N型紅外光電傳感器構(gòu)成車流量檢測(cè)模塊,負(fù)責(zé)實(shí)時(shí)檢測(cè)車流量信息并傳遞到單片機(jī),這是十字路口智能導(dǎo)流控制系統(tǒng)能夠根據(jù)車流量自動(dòng)調(diào)節(jié)時(shí)間的基礎(chǔ);WT588D語(yǔ)音模塊用來(lái)實(shí)現(xiàn)語(yǔ)音報(bào)警,當(dāng)紅綠燈切換時(shí)語(yǔ)音報(bào)警提示行人注意安全,以此來(lái)避免行人誤闖紅燈;LED顯示模塊顯示通行狀態(tài),用紅、黃、綠三種顏色的燈光傳遞通行信號(hào),這是紅綠燈的基本功能;數(shù)碼管顯示模塊顯示相應(yīng)道路的倒計(jì)時(shí),用來(lái)提醒燈光變化,避免車輛誤闖黃燈,減少交通事故的發(fā)生;按鍵模塊實(shí)現(xiàn)通行模式的選擇及通行時(shí)間設(shè)置,通過(guò)預(yù)先編寫的程序判斷按鍵按下的次數(shù),執(zhí)行相應(yīng)的子程序,實(shí)現(xiàn)通行模式的切換及設(shè)置。
圖1 十字路口智能導(dǎo)流控制系統(tǒng)整體功能框圖
STM32系列微控制器是以ARMCortex_M3為內(nèi)核開發(fā)生產(chǎn)的32位微控制器,專為高性能、低成本、低功耗的嵌入式應(yīng)用設(shè)計(jì)[11-13]。Cortex-M3是首款基于ARMv7-M體系結(jié)構(gòu)的32位標(biāo)準(zhǔn)處理器,具有低功耗、少門數(shù)、短中斷延遲、低調(diào)試成本等眾多優(yōu)點(diǎn)。所采用的STM32F103C8芯片內(nèi)部有十分豐富的外設(shè),如2個(gè)12位模數(shù)轉(zhuǎn)換器、DMA控制器、3個(gè)16位通用定時(shí)器和2個(gè)高級(jí)定時(shí)器以及I2C、LIN等串行總線,有64 KB的FLASH和20 KB的RAM,存儲(chǔ)容量完全可以滿足系統(tǒng)的要求[1]。
直接獨(dú)立按鍵的設(shè)計(jì)是通過(guò)檢測(cè)按鍵端口的電位高低來(lái)判斷按鍵的狀態(tài)。將按鍵的一端接地,另一個(gè)端口接一個(gè)I/O口,程序開始運(yùn)行時(shí)要把I/O置于高電平,平時(shí)按鍵無(wú)操作時(shí)I/O口保持高電平。當(dāng)按鍵有操作時(shí),I/O口置于低電平。由于單片機(jī)內(nèi)部存在的上拉電阻會(huì)使按鍵被釋放后的I/O端口保持高電平,所以本設(shè)計(jì)的程序只需要查詢這個(gè)I/O口的電平狀態(tài)就能夠得知按鍵的狀態(tài)。
獨(dú)立按鍵的軟件設(shè)計(jì)常采用查詢式結(jié)構(gòu),先逐位查詢I/O口線的輸入狀態(tài),當(dāng)I/O口線輸入為低電平時(shí),則能夠知道相應(yīng)的按鍵已經(jīng)被觸發(fā),繼而按鍵再轉(zhuǎn)向功能處理。獨(dú)立按鍵的波形是按下去時(shí)保持低電平,實(shí)際上是在上升沿和下降沿的過(guò)程中,即按下和松開的微小時(shí)間內(nèi)會(huì)出現(xiàn)抖動(dòng)。本文采用軟件消抖的方法來(lái)解決此問(wèn)題。實(shí)現(xiàn)此方法的第一步是查詢按鍵,當(dāng)出現(xiàn)低電平時(shí)即延長(zhǎng)10 ms時(shí)間,結(jié)束后再讀取I/O的值。當(dāng)讀出電平值為低電平則有按鍵按下,當(dāng)為高電平時(shí)則視為干擾信號(hào)。
本設(shè)計(jì)采用四個(gè)獨(dú)立按鍵,代號(hào)分別為K1、K2、K3、K4,其中K1為時(shí)間設(shè)置按鍵,K2為時(shí)間加鍵,K3為時(shí)間減鍵,K4為模式選擇按鍵。硬件電路如圖2所示。
圖2 按鍵電路原理
E18-D80NK-N型是E18-D80NK 的升級(jí)版,是一種集發(fā)射和接收于一體的光電傳感器,相較于E18-D80NK內(nèi)部電路板和外部連線做了改動(dòng)。傳感器外部接線,在末端增加了杜邦線插口,更方便用戶使用。
紅外線光電開關(guān)是利用被檢測(cè)物體對(duì)被調(diào)制的紅外光束的遮擋或反射來(lái)檢測(cè)有無(wú)被檢物體的。當(dāng)被檢測(cè)物體經(jīng)過(guò)檢測(cè)區(qū)域時(shí),紅外光電開關(guān)的輸出狀態(tài)就會(huì)翻轉(zhuǎn),以達(dá)到自動(dòng)檢測(cè)目的。紅外光電開關(guān)的檢測(cè)體不限于金屬,對(duì)其他對(duì)紅外光有反射和遮擋能力的物體均能檢測(cè)。
由于E18-D80NK-N有透鏡,使得E18-D80NK-N的檢測(cè)距離能夠達(dá)到80 cm,對(duì)于不同的光,其檢測(cè)距離也不盡相同,距離最遠(yuǎn)的是白色物體,距離最近的是黑色物體,并且可以根據(jù)需要通過(guò)旋轉(zhuǎn)尾部的電位器旋鈕調(diào)節(jié)檢測(cè)障礙物的距離。
紅外車流量檢測(cè)電路依靠?jī)蓚€(gè)漫反射光電紅外感應(yīng)接近開關(guān)實(shí)現(xiàn)此功能,將兩個(gè)開關(guān)分別置于東西和南北兩個(gè)方向,當(dāng)有車輛經(jīng)過(guò)時(shí),光電傳感器通過(guò)檢測(cè)不透明物體,采集到信號(hào),車輛越多采集到的信號(hào)就越多,于是數(shù)值加1,用這種方式來(lái)監(jiān)測(cè)車流量,用以控制紅綠燈時(shí)長(zhǎng)。
語(yǔ)音模塊采用的是WT588D20SS模塊[14]。圖3為該模塊的引腳。
圖3 WT588D20SS引腳
本文方案有兩組顯示電路:一組是采用四組兩位共陰極七段數(shù)碼管顯示東西和南北兩個(gè)方向的倒計(jì)時(shí)時(shí)間,如圖4所示;另一組是用紅、黃、綠三色發(fā)光二極管分別表示紅、綠、黃燈,如圖5所示。
圖4 數(shù)碼管顯示電路
圖5 LED顯示電路
方案采用C語(yǔ)言進(jìn)行編程,程序的核心部分是紅外光電傳感器對(duì)車流量的檢測(cè)以及按鍵切換模式。程序框圖如圖6所示。
圖6 十字路口智能導(dǎo)流控制系統(tǒng)程序框圖
上電后系統(tǒng)開始初始化,交通燈進(jìn)入基本功能,即東西方向紅燈亮25 s,黃燈亮5 s,報(bào)警模塊語(yǔ)音報(bào)警,南北方向綠燈亮30 s;然后南北方向紅燈亮25 s,黃燈亮5 s,報(bào)警模塊語(yǔ)音報(bào)警,東西方向綠燈亮30 s,之后循環(huán)運(yùn)行。接下來(lái)判斷是否有按鍵按下,如果有按鍵按下則判斷K1、K2、K3、K4中的哪個(gè)按鍵按下,然后執(zhí)行相應(yīng)按鍵的功能;如果沒(méi)有按鍵按下,返回繼續(xù)運(yùn)行基本功能。之后判斷紅外光電傳感檢測(cè)的車流量是否到達(dá)預(yù)定車流量數(shù),沒(méi)到達(dá)的話返回繼續(xù)執(zhí)行基本功能。如果到達(dá)預(yù)定車流量閾值,相應(yīng)車道延時(shí)10 s。
圖7為系統(tǒng)控制電路原理。對(duì)系統(tǒng)部分功能進(jìn)行調(diào)試,結(jié)果如圖8~圖12所示,圖11是車流量過(guò)多時(shí)系統(tǒng)運(yùn)轉(zhuǎn)時(shí)間加長(zhǎng)的情況,圖12是車流量正常時(shí)系統(tǒng)正常工作的情況。
圖7 系統(tǒng)控制電路原理
圖8 全部禁行狀態(tài)
圖11 車流量多時(shí)運(yùn)行情況
圖12 車流量正常時(shí)運(yùn)行情況
本文提出一種基于STM32單片機(jī)的十字路口智能導(dǎo)流控制系統(tǒng)方案。該方案克服了傳統(tǒng)交通燈的弊端,增加了語(yǔ)音報(bào)警功能、車流量檢測(cè)功能、通行模式選擇以及通行時(shí)間手動(dòng)調(diào)節(jié)功能,更加具備實(shí)用性和操作性,更能夠滿足實(shí)際應(yīng)用需求。具體如下:
(1)十字路口智能導(dǎo)流控制系統(tǒng)在已有的交通規(guī)則和傳統(tǒng)的交通燈技術(shù)下繼續(xù)使用紅、綠、黃三色信號(hào)燈,分別模擬禁止、通行和安全等待信號(hào),紅綠燈切換時(shí)間可以通過(guò)四個(gè)兩位共陰極數(shù)碼管倒計(jì)時(shí)的方式進(jìn)行顯示。
圖9 東西通行、南北禁行狀態(tài)
圖10 東西禁行、南北通行狀態(tài)
(2)模式切換可以通過(guò)按鍵的形式進(jìn)行操控,分別有夜間模式、緊急通行模式、南北方向通行、東西方向通行、通行時(shí)間增加和減少、系統(tǒng)復(fù)位等功能??梢园凑詹煌膶?shí)時(shí)路況人工選擇交通模式。
(3)通過(guò)語(yǔ)音播報(bào)模塊來(lái)提醒行人紅綠燈切換,與傳統(tǒng)交通燈相比,避免了行人誤闖紅燈,保證了行人能夠安全通過(guò)十字路口。
(4)根據(jù)十字路口的交通規(guī)則,設(shè)置兩組紅外光電傳感器完成對(duì)車流量的實(shí)時(shí)監(jiān)測(cè),并根據(jù)實(shí)時(shí)車流量的大小自動(dòng)調(diào)整綠燈通行的時(shí)間,與傳統(tǒng)的程式化交通燈相比更具有靈活性和實(shí)用性。
(5)考慮到節(jié)能緣故,可以采用一塊太陽(yáng)能板進(jìn)行供電,保證交通燈在戶外用電,不會(huì)因?yàn)槠У胤讲环奖愎╇姸S媒煌簟?/p>