智能交通灯课程设计报告.docx

上传人:牧羊曲112 文档编号:2085911 上传时间:2023-01-08 格式:DOCX 页数:30 大小:111.47KB
返回 下载 相关 举报
智能交通灯课程设计报告.docx_第1页
第1页 / 共30页
智能交通灯课程设计报告.docx_第2页
第2页 / 共30页
智能交通灯课程设计报告.docx_第3页
第3页 / 共30页
智能交通灯课程设计报告.docx_第4页
第4页 / 共30页
智能交通灯课程设计报告.docx_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《智能交通灯课程设计报告.docx》由会员分享,可在线阅读,更多相关《智能交通灯课程设计报告.docx(30页珍藏版)》请在三一办公上搜索。

1、嵌入式课 程 设 计 报 告题目: 智能交通灯 专 业:计算机 班 级: 学 号: 姓 名: 指导教师: 完成日期: 2 计算机信息工程学院课程设计报告 目 录一、前言211 课题研究背景212 课程研究目的和意义2二 、需求分析3三、开发环境及系统结构431 开发环境432 系统结构5四、详细设计541 程序框架设计542 3秒程序的控制642 8秒程序的控制7五、 结论851实验截图9附件112 28一、前言11 课题研究背景交通是城市经济活动的命脉,对城市经济发展、人民生活水平的提高起着十分重要的作用。城市交通问题自人类进入21世纪以来,道路交通一直是困扰城市发展、制约城市经济建设的重要

2、因素。而使用合理的交通灯可以合理的规划城市交通,从而为城市的快速运输和发展提供最优化的交通解决方案。可以肯定的说,城市道路增长的有限与车辆增加的无限这一对矛盾是导致城市交通拥挤的根本原因。对于减轻交通拥塞及其副作用特别是对于大的交通网络而言,仍然缺乏一种真正的交通响应控制策略。计算机硬件能力与控制软件能力很不相符,由此造成的影响是很多交通控制策略根本不能实现。在少数几个例子中,一些新的控制策略确实能得以实现,但他们却没能对早期的控制策略进行改进。由于缺乏能提高交通状况、特别是缺乏拥塞网络交通状况的实时控制策略,几乎可以说真正成熟的控制策略仍然不存在.智能化和集成化是城市交通信号控制系统的发展趋

3、势和研究前沿,而针对交通系统规模复杂性特征的控制结构和针对城市交通瓶颈问题并代表智能决策的阻塞处理则是智能交通控制优化管理的关键和突破口。12 课程研究目的和意义车辆的不断增多,表明车辆对道路容量的要求仍然很高,短期内还不可能改变。自从开始使用计算机控制系统后,不管在控制硬件里取得什么样的实际进展,交通控制领域的控制逻辑方面始终没能取得重大突破。因此,研究基于智能集成的城市交通信号控制系统具有相当的学术价值和实用价值。把智能控制引入到城市交通控制系统中,未来的城市交通控制系统才能适应城市交通的发展。从长远来看该研究具有巨大的现实意义。二 、需求分析城市交通信号控制系统的管理是保障城市交通高效有

4、序运行的一个重要组成部分,如何实时有效的对交通信号进行控制,优化城市交通车流是目前国内外学者研究的热点。对交通信号控制系统的优化,现阶段主要体现在对城市交叉路口相位中的绿信比的调节,通过调节绿信比来形成各个车道的路阻,改变交通车流量。随着数字智能技术与通信和控制领域的结合,交通信号控制系统的优化逐渐的由孤立路口的控制向大规模区域网络控制、定时控制向自适应控制、集中控制向分布式协同控制的方向发展,传统城市交通网也将被智能交通网络所取代。1、城市交通信号控制系统的优化交通信号灯的控制是城市交通网络中一个最主要的控制手段。通过优化交通岔路口交通灯的红绿灯配时方案,设计有效的交通信号优化控制策略,可提

5、高城市交通资源的利用率,缓解道路拥堵。目前,设计一个实时可靠并且实际可行的交通信号控制系统仍然有诸多的问题需要解决。这些问题集中在以下几个方面:a)绿灯转换是一个离散变化过程,其优化组合往往是一个NP困难问题;b)城市交通规模巨大,除了要处理大量交通数据外,一定范围内相邻路口交通车流量存在相关性,故相邻路口应有一定的协调特性才能达到整体优化;c)交通中面临着许多的不可知以及难以测量的扰动因素(如:交通事故,非法停车,行人穿行等);d)交通状态的测量信息往往是局部信息,并且测量的准确度受许多因素的影响。针对以上问题,国内外研究学者提出了交通信号控制系统的解决方案,按几何拓扑可分为交叉路口控制、城

6、市主干道控制和网络控制三类。2、智能交通系统与分布式协同优化控制智能交通系统的提出为全面解决城市交通运输问题提供了一个有效的路径。智能交通系统涵盖了交通领域中的许多方面,包括信息服务系统、交通管理系统、电子收费系统等,是高度综合化、智能化的交通控制系统。在交通管理方面,智能交通系统采用先进的车辆检测技术和计算机信息处理技术,获取实时交通路况信息,并根据收集到的信息对交通进行控制,信息的收集一方面提高了交通控制的准确性,但同时大量的数据也增加了消息处理的复杂性。三、开发环境及系统结构31 开发环境Linux操作系统 从 1991 年问世到现在,短短十几年的时间已经发展成为功能强大、设计完善的操作

7、系统之一。作为最能体现互联网自由和开放精神的代表,Linux 自诞生以来就以软件源代码开放、可自主开发和高效灵活等特点迅速得到众多软件开发者的推崇。并且,随着互联网的迅猛发展,Linux 正取代 Windows 成为全球增长最快的操作系统。随着 Linux 应用的普及,Linux 下的软件开发无疑会成为 IT业发展的又一次高潮。Linux 操作系统主要有以下特点:自由软件;完全兼容 POSIX1.0 标准;支持多用户和多任务;良好的用户界面;支持多种文件系统;丰富的网络功能;可靠的系统安全;良好的可移植性;正是由于以上特点,Linux 在短时间内获得了飞速的发展,已在各个行业得到了广泛的应用。

8、同时,Linux 嵌入式系统具有优秀的可移植性,利用 Linux 系统来进行软件开发已经成为一种趋势12。可以想象,Linux 的发展前景非常可观。32 系统结构本系统以单片机为核心,系统硬件电路由状态灯,LED显示,按键,组成。其具体的硬件电路总图如图3.1所示。 其中P0用于送显两片LED数码管,P1用于控制红绿黄发光二极管,XTAL1和XTAL2接入晶振时钟电路,REST引脚接上复位电路,P2.6P2.7对数码管进行片选,P3.2即INT0紧急情况处理按键,P3.3即INT1接时间调整中断按键。四、详细设计41 程序框架设计本文介绍的智能交通灯有普通交通灯的功能(此处设置时间为3秒)和监

9、测到震动后调整时间(本文设置为8秒)的功能。程序流程图如图4.1所示:开始初始化硬件初始化软件配置执行8秒程序执行3秒程序Y有震动N图1程序流程图42 3秒程序的控制3秒中的程序是在车流量较少时即未检测到震动时执行的程序,其流程图如图4.2所示:N开始执行3秒代码i=3延时点亮数码管Y结束i=0点亮点阵图2 3秒程序流程图42 8秒程序的控制N开始执行3秒代码i=8延时点亮数码管Y结束i=0点亮点阵8秒中的程序是在车流量较多时即检测到震动时执行的程序,其流程图如图4.3所示图3 8秒程序流程图五、 结论51实验截图(1)程序刚启动时,执行3秒中的红灯。终端上显示的结果如图5-1所示:图4 3秒

10、红灯实验截图(2)红灯过后执行3秒的绿灯,终端显示结果如图5-2所示:图5 3秒绿灯实验截图(3)监测到震动,交通灯切换到8秒的时间,终端执行结果如图5-3所示:图6 8秒绿灯实验截图附件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#de

11、fine STEPPER_START 0#define STEPPER_STOP 1#define DCMOTOR_START0#define 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

12、_fd;int speed_arr = B230400, B115200, B57600, B38400, B19200, B9600, 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 spee

13、d)int i;int status;struct termios Opt;/struct termios oldOpt;tcgetattr(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);r

14、eturn 0;float ScanADdata(char byte9)float ADdata;if(byte9 0xf0)ADdata = 0;else if(byte9 0x80)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

15、 0;float WaterData(char byte13)float WaterData;if(byte13 0)WaterData = (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 =

16、0)printf(%s Failed (len = %d)!n, str, len);return ptr;char XorVerify(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 = 0x2

17、)PacketLen = RecbuffsFirstPosition + 1+3;/printf(PacketLen : %dn,PacketLen);if(PacketLen = sRecDataLen -sFirstPosition)/printf(PacketBuff=);int i;for(i = 0; i =0;j-)if(byte17=0x01)break;sleep(3);js(j);sleep(1);ting();/sleep(1);fmq();for(j=3;j=0;j-)if(byte17=0x01)break;sleep(3);js(j);sleep(1);zou();/

18、if(byte17=0x01)break;fmq();if(byte17 = 0x01)printf( Vibration 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 = 0x00)printf( :n);if(byte18 = 0x01)printf( :n);*/*if(byte10 & 0x7

19、)=0x1)printf( A/D: %.2f Vn 2530: %d n : %dn : %dn : %d n : %dn ,ScanADdata(byte11),byte12,byte13,byte14,PressData(byte15),byte16);if(byte10 & 0x7)=0x2)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 & 0x7

20、)=0x3)printf( A/D: %.2f Vn 2530: %d n,ScanADdata(byte11),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 & 0x7)=0x4)printf( A/D: %.2f Vn 2530: %d n,ScanADdata(

21、byte11),byte12);/printf( : %02x %02x n,byte11, byte12);if(byte13 = 0x05 & byte14 = 0x00)printf( n);printf( : %02x %02x %02x %02xn,byte13,byte14,byte15,byte16);elseprintf( n);/if(byte11=0x01 & byte12 = 0x01)*/*if(byte10 & 0x7)=0x6)save_byte4 = byte4;save_byte5 = byte5;/printf(save_stepbyte4: %02xn sa

22、ve_stepbyte5: %02xn,save_byte4,save_byte5);buffer_has_item = 1;buffer_has_send = 0;printf( 1n);printf( A/D: %.2f Vn 2530: %d n,ScanADdata(byte11),byte12);if(byte10 & 0x7)=0x7)save_byte4 = byte4;save_byte5 = byte5;/printf(save_ledbyte4: %02xn save_ledbyte5: %02xn,save_byte4,save_byte5);buffer_has_ite

23、m = 2;buffer_has_send = 0;printf( 2n);printf( 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(0x%02x ,buffi);RecbuffsRecDataLen + i = buffi;/printf(n);/printf(Recbuffread_last=);for(i=0;isR

24、ecDataLen;i+)/printf(%02x,Recbuffi);/printf(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 BytesCMD1+1; i+)checksum = B

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号