一種智能交通橫道路口管理系統(tǒng)中單片機(jī)的工作方法
【專利摘要】一種智能交通橫道路口管理系統(tǒng)中單片機(jī)的工作方法,屬智能交通控制【技術(shù)領(lǐng)域】。包括計(jì)算機(jī)圖像處理部分和單片機(jī),通過單片機(jī)實(shí)現(xiàn)各個(gè)狀態(tài)的判斷和轉(zhuǎn)換,經(jīng)圖像處理技術(shù)將復(fù)雜的圖像轉(zhuǎn)變?yōu)楹唵蔚臄?shù)據(jù),使復(fù)雜問題簡化,將簡單數(shù)據(jù)與單片機(jī)進(jìn)行通信,實(shí)現(xiàn)計(jì)算機(jī)圖像處理與單片機(jī)協(xié)同操作,達(dá)到智能化處理。本發(fā)明優(yōu)點(diǎn)是:數(shù)據(jù)吞吐率高,可減緩系統(tǒng)在功耗和處理速度之間的矛盾;在保障行車道暢通的前提下,使行人安全;通過智能控制車流與人流,最大程度上減少目前定時(shí)交通信號燈無行人時(shí)汽車仍然等待的情況,進(jìn)而減少了汽車的尾氣排放,減少能源的無謂消耗。
【專利說明】一種智能交通橫道路口管理系統(tǒng)中單片機(jī)的工作方法
[0001]本申請為申請?zhí)柺?01110372185.5的分案申請【技術(shù)領(lǐng)域】
[0002]本發(fā)明涉及一種智能交通橫道路口管理系統(tǒng)中單片機(jī)的工作方法,屬智能交通控制【技術(shù)領(lǐng)域】。
【背景技術(shù)】:
[0003]在郊區(qū),由于人少,公路的某些路口處常常出現(xiàn)沒行人過馬路但卻亮紅燈的情況。這時(shí),過往的車輛不得不停下來,司機(jī)們焦急的等待著。這不僅浪費(fèi)了能源、污染了空氣,更可能誘發(fā)司機(jī)闖紅燈行為,造成交通事故。為了應(yīng)對這種狀況,在國外出現(xiàn)了人行橫道按鈕裝置,在有行人時(shí),按動(dòng)按鈕,則可以使人行道綠燈亮,車行道紅燈亮,保障行人安全通行。但此種設(shè)計(jì)方案有一個(gè)很大的瑕疵,如果在一路段出現(xiàn)多個(gè)此種行人按鈕路口,會(huì)有礙于城市交通的暢通,車輛不得不停下來等待行人的通過。雖然保障了行人的安全,但無法兼顧車道的暢通無阻。鑒于此種情況,智能交通信號燈系統(tǒng)成為一新研究熱點(diǎn)。隨著城市交通智能化設(shè)計(jì)理念的提出,此項(xiàng)研究又引起了高度的關(guān)注?!秶怆娮訙y量技術(shù)》雜志2010-11-22作者為吳慎將、李黨娟所寫的論文”智能交通信號燈控制器的設(shè)計(jì)”即屬于此列。
【發(fā)明內(nèi)容】
[0004]為了達(dá)到城市交通智能化的要求,本發(fā)明提供了一種智能交通橫道路口的管理系統(tǒng),采用新型設(shè)計(jì)理念為交通橫道路口設(shè)置多種狀態(tài),通過單片機(jī)實(shí)現(xiàn)各個(gè)狀態(tài)的判斷和轉(zhuǎn)換,以同時(shí)兼顧車道暢通和行人安全。
[0005]本發(fā)明的技術(shù)方案如下:
[0006]一種智能交通橫道路口的管理系統(tǒng),包括計(jì)算機(jī)圖像處理部分和單片機(jī),計(jì)算機(jī)圖像處理部分包括計(jì)算機(jī)和攝像頭,其特征在于攝像頭和計(jì)算機(jī)相連接,計(jì)算機(jī)通過單片機(jī)的串口和單片機(jī)相連接,單片機(jī)通過其接口和人行道按鈕及交通信號燈相連接;所述的攝像頭是USB攝像頭。
[0007]所述的單片機(jī)為ATmegal6單片機(jī)。
[0008]所述的交通信號燈包括車行道交通信號燈和人行橫道交通信號燈,車行道交通信號燈為紅綠黃三個(gè),人行橫道交通信號燈為紅綠兩個(gè),交通信號燈直接與單片機(jī)相連,通過設(shè)置單片機(jī)I/o 口控制其亮滅。
[0009]上述的人行道按鈕是一種按鈕式開關(guān)。
[0010]一種上述管理系統(tǒng)中計(jì)算機(jī)進(jìn)行圖像處理的方法,步驟如下:
[0011]A.USB攝像頭對準(zhǔn)行車道,采集的視頻信息經(jīng)OpenCV庫函數(shù)CvCaptureFromCAM以15幀圖片一秒讀入圖像處理系統(tǒng);
[0012]B.用OpenCV庫中的cookbook背景學(xué)習(xí)方法對行車道環(huán)境不斷學(xué)習(xí)建模,產(chǎn)生二值化的前景目標(biāo)(汽車等運(yùn)動(dòng)的物體)圖像;
[0013]C.使用cvFindContours函數(shù)對二值化圖中的有效區(qū)域進(jìn)行分割,通過提取各有效區(qū)域的形狀、大小信息判斷出是否有車輛靠近;
[0014]D.當(dāng)識(shí)別出有車輛靠近時(shí),調(diào)用系統(tǒng)函數(shù),以串口通信方式將該信息發(fā)送給單片機(jī)。
[0015]一種上述管理系統(tǒng)中單片機(jī)的工作方法,步驟如下:
[0016]a.單片機(jī)采用內(nèi)部4MHz振蕩器,然后聲明中斷變量Buffer_Array ;
[0017]b.延時(shí)子函數(shù),以秒為單位進(jìn)行精確延時(shí);
[0018]c.串口初始化,設(shè)置UCSRB寄存器,置位RXEN, TXEN和RXCIE位,使接收串口接收和接收中斷使能,設(shè)置UCSRC寄存器,置位URSEL,UCSZl和UCSZ0,設(shè)置數(shù)據(jù)格式為8位數(shù)據(jù)位、I位停止位和不保留校檢位,設(shè)置UBRRL和UBRRH寄存器,設(shè)置波特率為9600,
[0019]UBRRL= (F_CPU/9600/16-l)%256 ;UBRRH= (F_CPU/9600/16-l) /256 ;
[0020]d.主函數(shù),設(shè)置
[0021]DDRB=OxOO ;P0RTB=0xFF ;
[0022]P0RTC=0xFF ;DDRC=OxFF ;
[0023]DDRD=OxOO ;P0RTD=0xFF ;
[0024]PB 口為輸入口,設(shè)為電阻內(nèi)部上拉,PC 口為輸出口,設(shè)為電阻內(nèi)部上拉,H) 口為輸入口,設(shè)為電阻內(nèi)部上拉,然后設(shè)置MCUCR寄存器,MCUCR=0x08,設(shè)為外部中斷下降沿產(chǎn)生異步中斷請求,設(shè)置GICR,置位INT1,開INTl中斷,然后開全局中斷,開始進(jìn)入while (I)循環(huán):判斷中斷變量Buffer_Array的值,如果為31H,則i=0,如果為32H,則i=l,對PC 口進(jìn)行數(shù)據(jù)輸出,點(diǎn)亮PCl和PC5控制的交通信號燈,即人行道紅燈和車行道綠燈,然后返回判斷中斷變量Buffer_Array的值,循環(huán)執(zhí)行此流程;式中中斷變量Buffer_Array的值由步驟e中給出;
[0025]e.USART中斷函數(shù),使用單片機(jī)的USART串口通信口,接收從計(jì)算機(jī)傳出的數(shù)據(jù),單片機(jī)自動(dòng)判斷計(jì)算機(jī)是否傳出數(shù)據(jù),傳出數(shù)據(jù),立刻存入M)R寄存器,然后將UDR寄存器的值賦予中斷變量Buffer_Array變量,判斷計(jì)算機(jī)是否傳出數(shù)據(jù),單片機(jī)判斷傳出數(shù)據(jù),返回步驟e,沒有傳出數(shù)據(jù),返回步驟d ;
[0026]f.1NTl中斷函數(shù),觸發(fā)通過按下連接單片機(jī)的按鈕實(shí)現(xiàn),表明為有行人狀態(tài),如果觸發(fā),則跳出主函數(shù),進(jìn)入中斷函數(shù)執(zhí)行,通過設(shè)置PC 口的高低電平,確定燈的亮滅,判斷此時(shí)變量i的值,如果i的值為0,則進(jìn)入狀態(tài)S2,立刻人行道紅燈滅,車行道綠燈滅,人行道綠燈亮,車行道紅燈亮,延時(shí)30s,然后車行道黃燈亮,人行道紅燈亮,延時(shí)5s,然后車行道綠燈亮,人行道紅燈亮,退出中斷函數(shù),如果i的值不為0,則進(jìn)入狀態(tài)SI,車行道綠燈亮,人行道紅燈滅,延時(shí)20s,然后車行道黃燈亮,人行道紅燈亮,延時(shí)5s然后人行道綠燈亮,車行道紅燈亮,延時(shí)30s,然后車行道黃燈亮,人行道紅燈亮,延時(shí)5s,然后車行道綠燈亮,人行道紅燈亮,退出中斷函數(shù),返回步驟d。
[0027]DDRB, DDRC, DDRD, PORTB, PORTC, PORTD 是本領(lǐng)域通用 IO 口控制寄存器。
[0028]本發(fā)明智能交通橫道路口管理系統(tǒng)可以檢測一個(gè)橫道路口的車流與行人情況,并做出適當(dāng)?shù)臓顟B(tài)切換。將攝像頭設(shè)置在交通橫道路口處,車輛的檢測由攝像頭自動(dòng)采集圖像實(shí)現(xiàn),對行人的檢測由裝在人行橫道兩側(cè)的人行道按鈕來實(shí)現(xiàn)。系統(tǒng)自動(dòng)根據(jù)車輛與行人的狀態(tài)判斷交通信號燈下一時(shí)刻進(jìn)入何種狀態(tài),實(shí)現(xiàn)智能化控制。交通信號燈系統(tǒng)狀態(tài)設(shè)置有以下三種:
[0029]狀態(tài)SO:總是行車道暢通,人行橫道截止;(方便汽車在沒有行人的情況下暢通無阻)
[0030]狀態(tài)S1:行車道暢通一段時(shí)間,而后人行道暢通一段時(shí)間;(有車、有行人時(shí)的情況)
[0031]狀態(tài)S2:人行道暢通一段時(shí)間,而后行車道暢通一段時(shí)間;(有行人、無車時(shí)的情況)
[0032]本發(fā)明系統(tǒng)通過圖像處理技術(shù)將復(fù)雜的圖像轉(zhuǎn)變?yōu)楹唵蔚臄?shù)據(jù),將復(fù)雜問題簡單化,將簡單數(shù)據(jù)與單片機(jī)進(jìn)行通信,實(shí)現(xiàn)計(jì)算機(jī)圖像處理與單片機(jī)協(xié)同操作,達(dá)到智能化處理。
[0033]本發(fā)明智能交通橫道路口管理系統(tǒng)較其他系統(tǒng)有以下優(yōu)點(diǎn):
[0034]1、單片機(jī)的選取,ATmegal6是基于增強(qiáng)的AVR RISC結(jié)構(gòu)的低功耗8位CMOS微控制器,由于其先進(jìn)的指令集以及單時(shí)鐘周期指令執(zhí)行時(shí)間,ATmegal6的數(shù)據(jù)吞吐率高達(dá)lMIPS/MHz,從而可以減緩系統(tǒng)在功耗和處理速度之間的矛盾,ATmegal6具有節(jié)能和對環(huán)境要求低的優(yōu)勢,在交通橫道路口這種電磁環(huán)境復(fù)雜的狀況下工作,有其得天獨(dú)厚的優(yōu)勢。
[0035]2、智能交通信號燈管理系統(tǒng)可以在最大限度的保障行車道暢通的前提下,保障了行人的安全,較以往以犧牲車道暢通換取行人安全的方法有了很大的改進(jìn)。
[0036]3、通過智能控制車流與人流,最大程度上減少目前定時(shí)交通信號燈無行人時(shí)汽車仍然等待的情況,進(jìn)而減少了汽車的尾氣排放,減少能源的無謂消耗。
【專利附圖】
【附圖說明】
[0037]圖1是本發(fā)明系統(tǒng)的連接結(jié)構(gòu)示意圖。
[0038]其中:1、計(jì)算機(jī)圖像處理部分,2、攝像頭,3、計(jì)算機(jī),4、人行道按鈕,5、單片機(jī),6、
交通信號燈。
[0039]圖2是本發(fā)明系統(tǒng)的單片機(jī)電路連接示意圖。其中:7、外部晶振模塊,8、單片機(jī)芯片ATmegal6,9、交通信號燈,與單片機(jī)的PC 口連接,顯示效果,10、人行道按鈕。單片機(jī)芯片連接外部晶振模塊,有較高的抗外界干擾的能力,而且可以提高單片機(jī)運(yùn)行速度,單片機(jī)處理速度無法滿足要求時(shí),采用外部晶振可以提高處理速度。
[0040]圖3是本發(fā)明系統(tǒng)中計(jì)算機(jī)進(jìn)行圖像處理的方法的流程圖;其中A-D為其各個(gè)步驟。
[0041]圖4是本發(fā)明系統(tǒng)中單片機(jī)的工作方法的流程圖;其中a_f為其各個(gè)步驟?!揪唧w實(shí)施方式】
[0042]下面結(jié)合附圖和實(shí)施例對本發(fā)明做進(jìn)一步說明,但不限于此。
[0043]實(shí)施例1:
[0044]本發(fā)明實(shí)施例1如圖1所示,包括計(jì)算機(jī)圖像處理部分I和單片機(jī)5,計(jì)算機(jī)圖像處理部分I包括計(jì)算機(jī)3和攝像頭2,其特征在于攝像頭2和計(jì)算機(jī)3相連接,計(jì)算機(jī)3通過單片機(jī)5的串口和單片機(jī)5相連接,單片機(jī)5通過其接口和人行道按鈕4及交通信號燈6相連接;所述的攝像頭2是USB攝像頭。
[0045]所述的單片機(jī)5為ATmegal6單片機(jī)。
[0046]所述的交通信號燈6包括車行道交通信號燈和人行橫道交通信號燈,車行道交通信號燈為紅綠黃三個(gè),人行橫道交通信號燈為紅綠兩個(gè),交通信號燈6直接與單片機(jī)5相連,通過設(shè)置單片機(jī)51/0 口控制其亮滅。
[0047]實(shí)施例2:
[0048]一種上述管理系統(tǒng)中計(jì)算機(jī)進(jìn)行圖像處理的方法,如圖3所示,步驟如下:
[0049]A.USB攝像頭對準(zhǔn)行車道,采集的視頻信息經(jīng)OpenCV庫函數(shù)cvCaptureFromCAM以15幀圖片一秒讀入圖像處理系統(tǒng);
[0050]B.用OpenCV庫中的cookbook背景學(xué)習(xí)方法對行車道環(huán)境不斷學(xué)習(xí)建模,產(chǎn)生二值化的前景目標(biāo)(汽車等運(yùn)動(dòng)的物體)圖像;
[0051]C.使用cvFindContours函數(shù)對二值化圖中的有效區(qū)域進(jìn)行分割,通過提取各有效區(qū)域的形狀、大小信息判斷出是否有車輛靠近;
[0052]D.當(dāng)識(shí)別出有車輛靠近時(shí),調(diào)用系統(tǒng)函數(shù),以串口通信方式將該信息發(fā)送給單片機(jī)。
[0053]一種上述管理系統(tǒng)中單片機(jī)的工作方法,如圖4所示,步驟如下:
[0054]a.單片機(jī)采用內(nèi)部4MHz振蕩器,然后聲明中斷變量Buffer_Array ;
[0055]b.延時(shí)子函數(shù),以秒為單位進(jìn)行精確延時(shí);
[0056]c.串口初始化,設(shè)置UCSRB寄存器,置位RXEN, TXEN和RXCIE位,使接收串口接收和接收中斷使能,設(shè)置UCSRC寄存器,置位URSEL,UCSZl和UCSZ0,設(shè)置數(shù)據(jù)格式為8位數(shù)據(jù)位、I位停止位和不保留校檢位,設(shè)置UBRRL和UBRRH寄存器,設(shè)置波特率為9600,
[0057]UBRRL= (F_CPU/9600/16_l) %256 ;UBRRH= (F_CPU/9600/16_l) /256 ;
[0058]d.主函數(shù),設(shè)置
[0059]DDRB=OxOO ;P0RTB=0xFF ;
[0060]P0RTC=0xFF ;DDRC=OxFF ;
[0061]DDRD=OxOO ;P0RTD=0xFF ;
[0062]PB 口為輸入口,設(shè)為電阻內(nèi)部上拉,PC 口為輸出口,設(shè)為電阻內(nèi)部上拉,H) 口為輸入口,設(shè)為電阻內(nèi)部上拉,然后設(shè)置MCUCR寄存器,MCUCR=0x08 ;
[0063]設(shè)為外部中斷下降沿產(chǎn)生異步中斷請求,設(shè)置GICR,置位INT1,開INTl中斷,然后開全局中斷,開始進(jìn)入while (I)循環(huán):判斷中斷變量Buffer_Array的值,如果為31H,則i=0,如果為32H,則i=l,對PC 口進(jìn)行數(shù)據(jù)輸出,點(diǎn)亮PCl和PC5控制的交通信號燈,即人行道紅燈和車行道綠燈,然后返回判斷中斷變量Buffer_Array的值,循環(huán)執(zhí)行此流程;式中中斷變量Buffer_Array的值由步驟e中給出;
[0064]e.USART中斷函數(shù),使用單片機(jī)的USART串口通信口,接收從計(jì)算機(jī)傳出的數(shù)據(jù),單片機(jī)自動(dòng)判斷計(jì)算機(jī)是否傳出數(shù)據(jù),傳出數(shù)據(jù),立刻存入M)R寄存器,然后將UDR寄存器的值賦予中斷變量Buffer_Array變量,判斷計(jì)算機(jī)是否傳出數(shù)據(jù),單片機(jī)判斷傳出數(shù)據(jù),返回步驟e,沒有傳出數(shù)據(jù),返回步驟d ;
[0065]f.1NTl中斷函數(shù),觸發(fā)通過按下連接單片機(jī)的按鈕實(shí)現(xiàn),表明為有行人狀態(tài),如果觸發(fā),則跳出主函數(shù),進(jìn)入中斷函數(shù)執(zhí)行,通過設(shè)置PC 口的高低電平,確定燈的亮滅,判斷此時(shí)變量i的值,如果i的值為O,則進(jìn)入狀態(tài)S2,立刻人行道紅燈滅,車行道綠燈滅,人行道綠燈亮,車行道紅燈亮,延時(shí)30s,然后車行道黃燈亮,人行道紅燈亮,延時(shí)5s,然后車行道綠燈亮,人行道紅燈亮,退出中斷函數(shù),如果i的值不為0,則進(jìn)入狀態(tài)SI,車行道綠燈亮,人行道紅燈滅,延時(shí)20s,然后車行道黃燈亮,人行道紅燈亮,延時(shí)5s然后人行道綠燈亮,車行道紅燈亮,延時(shí)30s,然后車行道黃燈亮,人行道紅燈亮,延時(shí)5s,然后車行道綠燈亮,人行道紅燈亮,退出中斷函數(shù),返回步驟d。
【權(quán)利要求】
1.一種智能交通橫道路口管理系統(tǒng)中單片機(jī)的工作方法,該系統(tǒng)包括計(jì)算機(jī)圖像處理部分和單片機(jī),計(jì)算機(jī)圖像處理部分包括計(jì)算機(jī)和攝像頭,攝像頭和計(jì)算機(jī)相連接,計(jì)算機(jī)通過單片機(jī)的串口和單片機(jī)相連接,單片機(jī)通過其接口和人行道按鈕及交通信號燈相連接;所述的攝像頭是USB攝像頭,該步驟如下: a.單片機(jī)采用內(nèi)部4MHz振蕩器,然后聲明中斷變量Buffer_Array; b.延時(shí)子函數(shù),以秒為單位進(jìn)行精確延時(shí); c.串口初始化,設(shè)置UCSRB寄存器,置位RXEN,TXEN和RXCIE位,使接收串口接收和接收中斷使能,設(shè)置UCSRC寄存器,置位URSEL,UCSZl和UCSZO,設(shè)置數(shù)據(jù)格式為8位數(shù)據(jù)位、I位停止位和不保留校檢位,設(shè)置UBRRL和UBRRH寄存器,設(shè)置波特率為9600,
UBRRL=(F_CPU/9600/16-l)%256 ;UBRRH=(F_CPU/9600/16-l) /256 ; d.主函數(shù),設(shè)置
DDRB=OxOO ;P0RTB=0xFF ;
P0RTC=0xFF ;DDRC=0xFF ;
DDRD=OxOO ;P0RTD=0xFF ; PB 口為輸入口,設(shè)為電阻 內(nèi)部上拉,PC 口為輸出口,設(shè)為電阻內(nèi)部上拉,PD 口為輸入口,設(shè)為電阻內(nèi)部上拉,然后設(shè)置MCUCR寄存器,MCUCR=0x08,設(shè)為外部中斷下降沿產(chǎn)生異步中斷請求,設(shè)置GICR,置位INT1,開INTl中斷,然后開全局中斷,開始進(jìn)入while (I)循環(huán):判斷中斷變量Buffer_Array的值,如果為31H,則i=0,如果為32H,則i=l,對PC 口進(jìn)行數(shù)據(jù)輸出,點(diǎn)亮PCl和PC5控制的交通信號燈,即人行道紅燈和車行道綠燈,然后返回判斷中斷變量Buffer_Array的值,循環(huán)執(zhí)行此流程;式中中斷變量Buffer_Array的值由步驟e中給出; e.USART中斷函數(shù),使用單片機(jī)的USART串口通信口,接收從計(jì)算機(jī)傳出的數(shù)據(jù),單片機(jī)自動(dòng)判斷計(jì)算機(jī)是否傳出數(shù)據(jù),傳出數(shù)據(jù),立刻存入U(xiǎn)DR寄存器,然后將UDR寄存器的值賦予中斷變量Buffer_Array變量,判斷計(jì)算機(jī)是否傳出數(shù)據(jù),單片機(jī)判斷傳出數(shù)據(jù),返回步驟e,沒有傳出數(shù)據(jù),返回步驟d ; f.1NTl中斷函數(shù),觸發(fā)通過按下連接單片機(jī)的按鈕實(shí)現(xiàn),表明為有行人狀態(tài),如果觸發(fā),則跳出主函數(shù),進(jìn)入中斷函數(shù)執(zhí)行,通過設(shè)置PC 口的高低電平,確定燈的亮滅,判斷此時(shí)變量i的值,如果i的值為0,則進(jìn)入狀態(tài)S2,立刻人行道紅燈滅,車行道綠燈滅,人行道綠燈亮,車行道紅燈亮,延時(shí)30s,然后車行道黃燈亮,人行道紅燈亮,延時(shí)5s,然后車行道綠燈亮,人行道紅燈亮,退出中斷函數(shù),如果i的值不為0,則進(jìn)入狀態(tài)SI,車行道綠燈亮,人行道紅燈滅,延時(shí)20s,然后車行道黃燈亮,人行道紅燈亮,延時(shí)5s然后人行道綠燈亮,車行道紅燈亮,延時(shí)30s,然后車行道黃燈亮,人行道紅燈亮,延時(shí)5s,然后車行道綠燈亮,人行道紅燈亮,退出中斷函數(shù),返回步驟d。
【文檔編號】G06F13/24GK103489311SQ201310393419
【公開日】2014年1月1日 申請日期:2011年11月21日 優(yōu)先權(quán)日:2011年11月21日
【發(fā)明者】馬丕明, 梁博濤 申請人:山東大學(xué)