




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、嵌入式課 程 設(shè) 計(jì) 報 告題目: 智能交通燈 專 業(yè):計(jì)算機(jī) 班 級: 學(xué) 號: 姓 名: 指引教師: 完畢日期: 2 目 錄TOC o 1-3 u 一、前言 PAGEREF _Toc h 211 課題研究背景 PAGEREF _Toc h 212 課程研究目的和意義 PAGEREF _Toc h 2二 、需求分析 PAGEREF _Toc h 3三、開發(fā)環(huán)境及系統(tǒng)構(gòu)造 PAGEREF _Toc h 431 開發(fā)環(huán)境 PAGEREF _Toc h 432 系統(tǒng)構(gòu)造 PAGEREF _Toc h 5四、具體設(shè)計(jì) PAGEREF _Toc h 541 程序框架設(shè)計(jì) PAGEREF _Toc h
2、542 3秒程序的控制 PAGEREF _Toc h 642 8秒程序的控制 PAGEREF _Toc h 7五、 結(jié)論 PAGEREF _Toc h 851實(shí)驗(yàn)截圖 PAGEREF _Toc h 9附件1 PAGEREF _Toc h 12 TOC o 1-3 h z 一、前言11 課題研究背景交通是都市經(jīng)濟(jì)活動的命脈,對都市經(jīng)濟(jì)發(fā)展、人民生活水平的提高起著十分重要的作用。都市交通問題自人類進(jìn)入21世紀(jì)以來,道路交通始終是困擾都市發(fā)展、制約都市經(jīng)濟(jì)建設(shè)的重要因素。而使用合理的 HYPERLINK o 交通燈 交通燈可以合理的規(guī)劃都市交通,從而為都市的迅速運(yùn)送和發(fā)展提供最優(yōu)化的交通解決方案。可
3、以肯定的說,都市道路增長的有限與車輛增長的無限這一對矛盾是導(dǎo)致都市交通擁擠的主線因素。對于減輕交通擁塞及其副作用特別是對于大的交通網(wǎng)絡(luò)而言,仍然缺少一種真正的交通響應(yīng)控制方略。計(jì)算機(jī)硬件能力與控制軟件能力很不相符,由此導(dǎo)致的影響是諸多交通控制方略主線不能實(shí)現(xiàn)。在少數(shù)幾種例子中,某些新的控制方略的確能得以實(shí)現(xiàn),但她們卻沒能對初期的控制方略進(jìn)行改善。由于缺少能提高交通狀況、特別是缺少擁塞網(wǎng)絡(luò)交通狀況的實(shí)時控制方略,幾乎可以說真正成熟的控制方略仍然不存在.智能化和集成化是都市交通信號控制系統(tǒng)的發(fā)展趨勢和研究前沿,而針對交通系統(tǒng)規(guī)模復(fù)雜性特性的控制構(gòu)造和針對都市交通瓶頸問題并代表智能決策的阻塞解決則是
4、智能交通控制優(yōu)化管理的核心和突破口。12 課程研究目的和意義車輛的不斷增多,表白車輛對道路容量的規(guī)定仍然很高,短期內(nèi)還不也許變化。自從開始使用計(jì)算機(jī)控制系統(tǒng)后,不管在控制硬件里獲得什么樣的實(shí)際進(jìn)展,交通控制領(lǐng)域的控制邏輯方面始終沒能獲得重大突破。因此,研究基于智能集成的都市 HYPERLINK 交通信號控制系統(tǒng)具有相稱的學(xué)術(shù)價值和實(shí)用價值。把智能控制引入到都市交通控制系統(tǒng)中,將來的都市交通控制系統(tǒng)才干適應(yīng)都市交通的發(fā)展。從長遠(yuǎn)來看該研究具有巨大的現(xiàn)實(shí)意義。二 、需求分析都市交通信號控制系統(tǒng)的管理是保障都市交通高效有序運(yùn)營的一種重要構(gòu)成部分,如何實(shí)時有效的對交通信號進(jìn)行控制,優(yōu)化都市交通車流是目
5、前國內(nèi)外學(xué)者研究的熱點(diǎn)。對交通信號控制系統(tǒng)的優(yōu)化,現(xiàn)階段重要體目前對都市交叉路口相位中的綠信比的調(diào)節(jié),通過調(diào)節(jié)綠信比來形成各個車道的路阻,變化交通車流量。隨著數(shù)字智能技術(shù)與通信和控制領(lǐng)域的結(jié)合,交通信號控制系統(tǒng)的優(yōu)化逐漸的由孤立路口的控制向大規(guī)模區(qū)域網(wǎng)絡(luò)控制、定期控制向自適應(yīng)控制、集中控制向分布式協(xié)同控制的方向發(fā)展,老式都市交通網(wǎng)也將被智能交通網(wǎng)絡(luò)所取代。1、都市交通信號控制系統(tǒng)的優(yōu)化交通信號燈的控制是都市交通網(wǎng)絡(luò)中一種最重要的控制手段。通過優(yōu)化交通岔路口交通燈的紅綠燈配時方案,設(shè)計(jì)有效的交通信號優(yōu)化控制方略,可提高都市交通資源的運(yùn)用率,緩和道路擁堵。目前,設(shè)計(jì)一種實(shí)時可靠并且實(shí)際可行的交通信
6、號控制系統(tǒng)仍然有諸多的問題需要解決。這些問題集中在如下幾種方面:a)綠燈轉(zhuǎn)換是一種離散變化過程,其優(yōu)化組合往往是一種NP困難問題;b)都市交通規(guī)模巨大,除了要解決大量交通數(shù)據(jù)外,一定范疇內(nèi)相鄰路口交通車流量存在有關(guān)性,故相鄰路口應(yīng)有一定的協(xié)調(diào)特性才干達(dá)到整體優(yōu)化;c)交通中面臨著許多的不可知以及難以測量的擾動因素(如:交通事故,非法停車,行人穿行等);d)交通狀態(tài)的測量信息往往是局部信息,并且測量的精確度受許多因素的影響。針對以上問題,國內(nèi)外研究學(xué)者提出了交通信號控制系統(tǒng)的解決方案,按幾何拓?fù)淇煞譃榻徊媛房诳刂啤⒍际兄鞲傻揽刂坪途W(wǎng)絡(luò)控制三類。2、智能交通系統(tǒng)與分布式協(xié)同優(yōu)化控制智能交通系統(tǒng)的提
7、出為全面解決都市交通運(yùn)送問題提供了一種有效的途徑。智能交通系統(tǒng)涵蓋了交通領(lǐng)域中的許多方面,涉及信息服務(wù)系統(tǒng)、交通管理系統(tǒng)、電子收費(fèi)系統(tǒng)等,是高度綜合化、智能化的交通控制系統(tǒng)。在交通管理方面,智能交通系統(tǒng)采用先進(jìn)的車輛檢測技術(shù)和計(jì)算機(jī)信息解決技術(shù),獲取實(shí)時交通路況信息,并根據(jù)收集到的信息對交通進(jìn)行控制,信息的收集一方面提高了交通控制的精確性,但同步大量的數(shù)據(jù)也增長了消息解決的復(fù)雜性。三、開發(fā)環(huán)境及系統(tǒng)構(gòu)造31 開發(fā)環(huán)境Linux操作系統(tǒng) 從 1991 年問世到目前,短短十幾年的時間已經(jīng)發(fā)展成為功能強(qiáng)大、設(shè)計(jì)完善的操作系統(tǒng)之一。作為最能體現(xiàn)互聯(lián)網(wǎng)自由和開放精神的代表,Linux 自誕生以來就以軟件
8、源代碼開放、可自主開發(fā)和高效靈活等特點(diǎn)迅速得到眾多軟件開發(fā)者的推崇。并且,隨著互聯(lián)網(wǎng)的迅猛發(fā)展,Linux 正取代 Windows 成為全球增長最快的操作系統(tǒng)。隨著 Linux 應(yīng)用的普及,Linux 下的軟件開發(fā)無疑會成為 IT業(yè)發(fā)展的又一次高潮。Linux 操作系統(tǒng)重要有如下特點(diǎn):自由軟件;完全兼容 POSIX1.0 原則;支持多顧客和多任務(wù);良好的顧客界面;支持多種文獻(xiàn)系統(tǒng);豐富的網(wǎng)絡(luò)功能;可靠的系統(tǒng)安全;良好的可移植性;正是由于以上特點(diǎn),Linux 在短時間內(nèi)獲得了飛速的發(fā)展,已在各個行業(yè)得到了廣泛的應(yīng)用。同步,Linux 嵌入式系統(tǒng)具有優(yōu)秀的可移植性,運(yùn)用 Linux 系統(tǒng)來進(jìn)行軟件
9、開發(fā)已經(jīng)成為一種趨勢12??梢韵胂?,Linux 的發(fā)展前景非??捎^。32 系統(tǒng)構(gòu)造本系統(tǒng)以單片機(jī)為核心,系統(tǒng)硬件電路由狀態(tài)燈,LED顯示,按鍵,構(gòu)成。其具體的硬件電路總圖如圖3.1所示。 其中P0用于送顯兩片LED數(shù)碼管,P1用于控制紅綠黃發(fā)光二極管,XTAL1和XTAL2接入晶振時鐘電路,REST引腳接上復(fù)位電路,P2.6P2.7對數(shù)碼管進(jìn)行片選,P3.2即INT0緊急狀況解決按鍵,P3.3即INT1接時間調(diào)節(jié)中斷按鍵。四、具體設(shè)計(jì)41 程序框架設(shè)計(jì)本文簡介的智能交通燈有一般交通燈的功能(此處設(shè)立時間為3秒)和監(jiān)測到震動后調(diào)節(jié)時間(本文設(shè)立為8秒)的功能。程序流程圖如圖4.1所示:開始開始初
10、始化硬件初始化軟件配備執(zhí)行8秒程序執(zhí)行3秒程序Y有震動N圖1程序流程圖42 3秒程序的控制3秒中的程序是在車流量較少時即未檢測到震動時執(zhí)行的程序,其流程圖如圖4.2所示:NN開始執(zhí)行3秒代碼i=3延時點(diǎn)亮數(shù)碼管Y結(jié)束i=0點(diǎn)亮點(diǎn)陣圖2 3秒程序流程圖42 8秒程序的控制N開始執(zhí)行3秒代碼N開始執(zhí)行3秒代碼i=8延時點(diǎn)亮數(shù)碼管Y結(jié)束i=0點(diǎn)亮點(diǎn)陣圖3 8秒程序流程圖五、 結(jié)論51實(shí)驗(yàn)截圖(1)程序剛啟動時,執(zhí)行3秒中的紅燈。終端上顯示的成果如圖5-1所示:圖4 3秒紅燈實(shí)驗(yàn)截圖(2)紅燈過后執(zhí)行3秒的綠燈,終端顯示成果如圖5-2所示:圖5 3秒綠燈實(shí)驗(yàn)截圖(3)監(jiān)測到震動,交通燈切換到8秒的時間
11、,終端執(zhí)行成果如圖5-3所示:圖6 8秒綠燈實(shí)驗(yàn)截圖附件1#include #include #include #include #include #include #include #include #include #include #include #include #include #includepthread.h#include #include wsnserial.h#define LED 1#define PWM 1#define SEG 1#define STEPPER_START 0#define STEPPER_STOP 1#define DCMOTOR_START0#d
12、efine DCMOTOR_STOP 0int nread=0;char Recbuff1024;int sRecDataLen = 0;char save_byte4;char save_byte5;pthread_mutex_t mutex;int buffer_has_item =0;int buffer_has_send =0;int SendNum = 0;struct serial_config serialread;static int serial_fd;int speed_arr = B230400, B115200, B57600, B38400, B19200, B960
13、0, B4800, B2400, B1200, B300, B38400, B19200, B9600, B4800, B2400, B1200, B300;int name_arr = 230400, 115200, 57600, 38400, 19200, 9600, 4800, 2400, 1200, 300, 38400, 19200, 9600, 4800, 2400, 1200, 300;/void set_speed(int fd,int speed)int i;int status;struct termios Opt;/struct termios oldOpt;tcgeta
14、ttr(fd, &Opt);/printf(serialread.speed is %dn,serialread.serial_speed);for( i = 0; i 0)set_speed(serial_fd,115200);elseprintf(Cant Open Serial Port!n);exit(0);if(set_Parity(serial_fd,8,1,N) = FALSE)printf(Set parity Errorn);exit(1);return 0;float ScanADdata(char byte9)float ADdata;if(byte9 0 xf0)ADd
15、ata = 0;else if(byte9 0 x80)ADdata = 3.3;else ADdata = (3.3/127)*byte9;return ADdata;int PressData(char byte)int temp = 0;if(byte 36)temp = (byte-34)*200/18;elsetemp = 0;return temp;int RainData(char byte)if(byte 11)return 1;elsereturn 0;float WaterData(char byte13)float WaterData;if(byte13 0)WaterD
16、ata = (byte13+3)/7.5;elseWaterData = 0;return WaterData;float ultrasonicData(char byte11)float ultrasonicData;ultrasonicData = 0.0544*byte11;return ultrasonicData;void * fbl_malloc(int len, char * str)void * ptr = malloc(len);if(ptr = 0)printf(%s Failed (len = %d)!n, str, len);return ptr;char XorVer
17、ify(char BytesCMD)char checksum = BytesCMD1;int i;for (i = 1; i 0)/printf(sRecDataLen : %dn,sRecDataLen);int sFirstPosition = 0;while(sFirstPosition sRecDataLen)/printf(sFirstPosition: %dn,sFirstPosition);if(RecbuffsFirstPosition = 0 x2)PacketLen = RecbuffsFirstPosition + 1+3;/printf(PacketLen : %dn
18、,PacketLen);if(PacketLen = sRecDataLen -sFirstPosition)/printf(PacketBuff=);int i;for(i = 0; i =0;j-)if(byte17=0 x01)break;sleep(3);js(j);sleep(1);ting();/sleep(1);fmq();for(j=3;j=0;j-)if(byte17=0 x01)break;sleep(3);js(j);sleep(1);zou();/if(byte17=0 x01)break;fmq();if(byte17 = 0 x01)printf( Vibratio
19、n sensors, vibration, traffic lights to start!n);for(j=8;j=0;j-)sleep(3);js(j);sleep(1);ting();/sleep(1);fmq();for(j=8;j=0;j-)sleep(3);js(j);sleep(1);zou();fmq();/*if(byte18 = 0 x00)printf( :n);if(byte18 = 0 x01)printf( :n);*/*if(byte10 & 0 x7)=0 x1)printf( A/D: %.2f Vn 2530: %d n : %dn : %dn : %d n
20、 : %dn ,ScanADdata(byte11),byte12,byte13,byte14,PressData(byte15),byte16);if(byte10 & 0 x7)=0 x2)printf( A/D: %.2f Vn 2530: %d n : %.4f n X: %dn Y: %dn Z: %dn ,ScanADdata(byte11),byte12,ultrasonicData(byte13),byte14,byte15,byte16);if(byte10 & 0 x7)=0 x3)printf( A/D: %.2f Vn 2530: %d n,ScanADdata(byt
21、e11),byte12);if(byte13= 0)printf( :n);if(byte13 = 1)printf( :n);if(RainData(byte14) = 0)printf( :n);if(RainData(byte14) = 1)printf( :n);printf( :%.1f /n :%dn,WaterData(byte15),byte16);if(byte10 & 0 x7)=0 x4)printf( A/D: %.2f Vn 2530: %d n,ScanADdata(byte11),byte12);/printf( : %02x %02x n,byte11, byt
22、e12);if(byte13 = 0 x05 & byte14 = 0 x00)printf( n);printf( : %02x %02x %02x %02xn,byte13,byte14,byte15,byte16);elseprintf( n);/if(byte11=0 x01 & byte12 = 0 x01)*/*if(byte10 & 0 x7)=0 x6)save_byte4 = byte4;save_byte5 = byte5;/printf(save_stepbyte4: %02xn save_stepbyte5: %02xn,save_byte4,save_byte5);b
23、uffer_has_item = 1;buffer_has_send = 0;printf( 1n);printf( A/D: %.2f Vn 2530: %d n,ScanADdata(byte11),byte12);if(byte10 & 0 x7)=0 x7)save_byte4 = byte4;save_byte5 = byte5;/printf(save_ledbyte4: %02xn save_ledbyte5: %02xn,save_byte4,save_byte5);buffer_has_item = 2;buffer_has_send = 0;printf( 2n);prin
24、tf( A/D: %.2f Vn 2530: %d n,ScanADdata(byte11),byte12);printf(n);*/for(i = 0; i 0)buffnread = 0;/printf(nrecv:%dn,nread);/printf(nread=);for(i=0;inread;i+)/printf(0 x%02x ,buffi);RecbuffsRecDataLen + i = buffi;/printf(n);/printf(Recbuffread_last=);for(i=0;isRecDataLen;i+)/printf(%02x,Recbuffi);/prin
25、tf(n);/printf(Recbuffread_new=);for(i=0;inread;i+) /printf(%02x,RecbuffsRecDataLen + i); /printf(n);sRecDataLen = sRecDataLen + nread;scan();pthread_mutex_unlock(&mutex);/close(serial_fd);unsigned char XorVerifySend(unsigned char BytesCMD)unsigned char checksum = BytesCMD1;int i;for (i = 1; i BytesC
26、MD1+1; i+)checksum = BytesCMDi+1;return checksum;void js(i)if(SEG)int nwrite;/?y?1printf( The remaining%dsn,i);printf(n);unsigned char SBuff21;SBuff0 = 0 x02;SBuff1 = 0 x12;SBuff2 = 0 xB9;SBuff3 = 0 x46;SBuff4 = 0 xF1;SBuff5 = save_byte4;SBuff6 = save_byte5;SBuff7 = 0 x01;SBuff8 = 0 x07;SBuff9 = 0 x
27、01;SBuff10 = 0 x0+i;SBuff11 = 0 x0;SBuff12 = 0 x0;SBuff13 = 0 x0;SBuff14 = 0 x0;SBuff15 = 0 x0;SBuff16 = 0 x0;SBuff17 = 0 x0;SBuff18 = 0 x0;SBuff19 = 0 x0;SBuff20 = 0 x0;SBuff20 = XorVerifySend(SBuff);nwrite = write(serial_fd,SBuff,sizeof(SBuff);/printf(nwrite1=%dn,nwrite);buffer_has_send = 1;/sleep
28、(2);/*i+;if(i=4)i=0;*/void ting()if(LED)int nwrite;printf( Its a red light,nothroughfare!n);printf(n);/?LED?unsigned char SBuff21;SBuff0 = 0 x02;SBuff1 = 0 x12;SBuff2 = 0 xB9;SBuff3 = 0 x46;SBuff4 = 0 xF1;SBuff5 = save_byte4;SBuff6 = save_byte5;SBuff7 = 0 x01;SBuff8 = 0 x07;SBuff9 = 0 x04;SBuff10 =
29、0 x0;SBuff11 = 0 x0;SBuff12 = 0 x10;SBuff13 = 0 x08;SBuff14 = 0 x7a;SBuff15 = 0 x05;SBuff16 = 0 x7a;SBuff17 = 0 x08;SBuff18 = 0 x10;SBuff19 = 0 x00;if(SendNum = 8)SendNum = 0;SBuff20 = 0 x0;SBuff20 = XorVerifySend(SBuff);nwrite = write(serial_fd,SBuff,sizeof(SBuff);/printf(nwrite1=%dn,nwrite);buffer
30、_has_send = 1;void zou()if(LED)int nwrite;printf( Now is the green,can passn);printf(n);/?LED?unsigned char SBuff21;SBuff0 = 0 x02;SBuff1 = 0 x12;SBuff2 = 0 xB9;SBuff3 = 0 x46;SBuff4 = 0 xF1;SBuff5 = save_byte4;SBuff6 = save_byte5;SBuff7 = 0 x01;SBuff8 = 0 x07;SBuff9 = 0 x04;SBuff10 = 0 x0;SBuff11 =
31、 0 x0;SBuff12 = 0 x00;SBuff13 = 0 x00;SBuff14 = 0 x7e;SBuff15 = 0 x00;SBuff16 = 0 x00;SBuff17 = 0 x7e;SBuff18 = 0 x00;SBuff19 = 0 x00;if(SendNum = 8)SendNum = 0;SBuff20 = 0 x0;SBuff20 = XorVerifySend(SBuff);nwrite = write(serial_fd,SBuff,sizeof(SBuff);/printf(nwrite1=%dn,nwrite);buffer_has_send = 1;void fmq()int nwrite;/控制蜂鳴器printf(Control buzzern);printf(n);unsigned char SBuff21;SBuff0 = 0 x02;SBuff1 = 0 x12;SBuff2 = 0 xB9;SBuff3 = 0 x46;SBuff4 = 0 xF1;SBuff5 = save_byte4;SBuff6 = save_byte5;SBuff7 = 0 x01;SBuff8 = 0 x07;SBuff9 = 0 x02;SBuff10 = 0 x0;SBuff11 = 0 x1f+SendNum;SendNum+;SBuff12
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廠區(qū)混凝土道路施工方案
- 6年級下冊英語陜旅版第1單元
- 2025年銀行設(shè)計(jì)崗面試題及答案
- 2025年鄉(xiāng)鎮(zhèn)行政管理試題及答案
- 低保工作集中整治群眾身邊不正之風(fēng)和腐敗問題整改報告
- 地質(zhì)災(zāi)害計(jì)價定額
- 地球核心能量提取議案
- 工程制圖 第2版 教案 上 李茗 1緒論-5. 4看組合體的視圖
- 2025年鄭州財(cái)稅金融職業(yè)學(xué)院單招職業(yè)技能測試題庫必考題
- 2025年伊犁職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫帶答案
- 光催化分解水制氫
- 工程勘察設(shè)計(jì)收費(fèi)標(biāo)準(zhǔn)使用手冊
- 高速鐵路設(shè)計(jì)規(guī)范(最新版)
- 25種全球最流行的管理工具
- 道德與法治-五年級(下冊)-《建立良好的公共秩序》教學(xué)課件
- 初中英語教學(xué)設(shè)計(jì)Its-time-to-watch-a-cartoon
- 2022年安徽高校教師崗前培訓(xùn)結(jié)業(yè)統(tǒng)考試題及參考答案
- 城市社區(qū)建設(shè)概論資料
- 數(shù)學(xué)-九宮數(shù)獨(dú)100題(附答案)
- 蘇教版四年級下冊科學(xué)全冊知識點(diǎn)總結(jié)
- 第三方單位考核管理辦法
評論
0/150
提交評論