欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

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

    • 资源ID:2085911       资源大小:111.47KB        全文页数:30页
    • 资源格式: DOCX        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    嵌入式课 程 设 计 报 告题目: 智能交通灯 专 业:计算机 班 级: 学 号: 姓 名: 指导教师: 完成日期: 2 计算机信息工程学院课程设计报告 目 录一、前言211 课题研究背景212 课程研究目的和意义2二 、需求分析3三、开发环境及系统结构431 开发环境432 系统结构5四、详细设计541 程序框架设计542 3秒程序的控制642 8秒程序的控制7五、 结论851实验截图9附件112 28一、前言11 课题研究背景交通是城市经济活动的命脉,对城市经济发展、人民生活水平的提高起着十分重要的作用。城市交通问题自人类进入21世纪以来,道路交通一直是困扰城市发展、制约城市经济建设的重要因素。而使用合理的交通灯可以合理的规划城市交通,从而为城市的快速运输和发展提供最优化的交通解决方案。可以肯定的说,城市道路增长的有限与车辆增加的无限这一对矛盾是导致城市交通拥挤的根本原因。对于减轻交通拥塞及其副作用特别是对于大的交通网络而言,仍然缺乏一种真正的交通响应控制策略。计算机硬件能力与控制软件能力很不相符,由此造成的影响是很多交通控制策略根本不能实现。在少数几个例子中,一些新的控制策略确实能得以实现,但他们却没能对早期的控制策略进行改进。由于缺乏能提高交通状况、特别是缺乏拥塞网络交通状况的实时控制策略,几乎可以说真正成熟的控制策略仍然不存在.智能化和集成化是城市交通信号控制系统的发展趋势和研究前沿,而针对交通系统规模复杂性特征的控制结构和针对城市交通瓶颈问题并代表智能决策的阻塞处理则是智能交通控制优化管理的关键和突破口。12 课程研究目的和意义车辆的不断增多,表明车辆对道路容量的要求仍然很高,短期内还不可能改变。自从开始使用计算机控制系统后,不管在控制硬件里取得什么样的实际进展,交通控制领域的控制逻辑方面始终没能取得重大突破。因此,研究基于智能集成的城市交通信号控制系统具有相当的学术价值和实用价值。把智能控制引入到城市交通控制系统中,未来的城市交通控制系统才能适应城市交通的发展。从长远来看该研究具有巨大的现实意义。二 、需求分析城市交通信号控制系统的管理是保障城市交通高效有序运行的一个重要组成部分,如何实时有效的对交通信号进行控制,优化城市交通车流是目前国内外学者研究的热点。对交通信号控制系统的优化,现阶段主要体现在对城市交叉路口相位中的绿信比的调节,通过调节绿信比来形成各个车道的路阻,改变交通车流量。随着数字智能技术与通信和控制领域的结合,交通信号控制系统的优化逐渐的由孤立路口的控制向大规模区域网络控制、定时控制向自适应控制、集中控制向分布式协同控制的方向发展,传统城市交通网也将被智能交通网络所取代。1、城市交通信号控制系统的优化交通信号灯的控制是城市交通网络中一个最主要的控制手段。通过优化交通岔路口交通灯的红绿灯配时方案,设计有效的交通信号优化控制策略,可提高城市交通资源的利用率,缓解道路拥堵。目前,设计一个实时可靠并且实际可行的交通信号控制系统仍然有诸多的问题需要解决。这些问题集中在以下几个方面:a)绿灯转换是一个离散变化过程,其优化组合往往是一个NP困难问题;b)城市交通规模巨大,除了要处理大量交通数据外,一定范围内相邻路口交通车流量存在相关性,故相邻路口应有一定的协调特性才能达到整体优化;c)交通中面临着许多的不可知以及难以测量的扰动因素(如:交通事故,非法停车,行人穿行等);d)交通状态的测量信息往往是局部信息,并且测量的准确度受许多因素的影响。针对以上问题,国内外研究学者提出了交通信号控制系统的解决方案,按几何拓扑可分为交叉路口控制、城市主干道控制和网络控制三类。2、智能交通系统与分布式协同优化控制智能交通系统的提出为全面解决城市交通运输问题提供了一个有效的路径。智能交通系统涵盖了交通领域中的许多方面,包括信息服务系统、交通管理系统、电子收费系统等,是高度综合化、智能化的交通控制系统。在交通管理方面,智能交通系统采用先进的车辆检测技术和计算机信息处理技术,获取实时交通路况信息,并根据收集到的信息对交通进行控制,信息的收集一方面提高了交通控制的准确性,但同时大量的数据也增加了消息处理的复杂性。三、开发环境及系统结构31 开发环境Linux操作系统 从 1991 年问世到现在,短短十几年的时间已经发展成为功能强大、设计完善的操作系统之一。作为最能体现互联网自由和开放精神的代表,Linux 自诞生以来就以软件源代码开放、可自主开发和高效灵活等特点迅速得到众多软件开发者的推崇。并且,随着互联网的迅猛发展,Linux 正取代 Windows 成为全球增长最快的操作系统。随着 Linux 应用的普及,Linux 下的软件开发无疑会成为 IT业发展的又一次高潮。Linux 操作系统主要有以下特点:自由软件;完全兼容 POSIX1.0 标准;支持多用户和多任务;良好的用户界面;支持多种文件系统;丰富的网络功能;可靠的系统安全;良好的可移植性;正是由于以上特点,Linux 在短时间内获得了飞速的发展,已在各个行业得到了广泛的应用。同时,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秒)和监测到震动后调整时间(本文设置为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秒红灯实验截图(2)红灯过后执行3秒的绿灯,终端显示结果如图5-2所示:图5 3秒绿灯实验截图(3)监测到震动,交通灯切换到8秒的时间,终端执行结果如图5-3所示:图6 8秒绿灯实验截图附件1#include <sys/types.h>#include <sys/stat.h>#include <sys/time.h>#include <signal.h>#include <fcntl.h>#include <termios.h>#include <errno.h>#include <ctype.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>#include <unistd.h>#include"pthread.h"#include <stddef.h>#include "wsnserial.h"#define LED 1#define PWM 1#define SEG 1#define 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_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 speed)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 < sizeof(speed_arr)/sizeof(int); i+)if(speed = name_arri)tcflush(fd, TCIOFLUSH);cfsetispeed(&Opt, speed_arri);cfsetospeed(&Opt, speed_arri);status = tcsetattr(fd, TCSANOW, &Opt);if(status != 0)perror("tcsetattr fd1");return;tcflush(fd, TCIOFLUSH);int set_Parity(int fd,int databits,int stopbits,int parity)struct termios options;/struct termios oldoptions;if(tcgetattr(fd, &options) != 0)perror("SetupSerial 1");return(FALSE);/options.c_cflag |= (CLOCAL|CREAD);options.c_cflag &=CSIZE;/printf("serialread.databits is %dn",serialread.databits);switch(databits)case 7:options.c_cflag |= CS7;break;case 8:options.c_cflag |= CS8;break;default:fprintf(stderr,"Unsupported data sizen");return(FALSE);/printf("serialread.parity is %cn",serialread.parity);switch(parity)case 'n':case 'N':options.c_cflag &= PARENB;options.c_iflag &= INPCK;break;case 'o':case 'O':options.c_cflag |= (PARODD | PARENB);options.c_iflag |= INPCK;break;case 'e':case 'E':options.c_cflag |= PARENB;options.c_cflag &= PARODD;options.c_iflag |= INPCK;break;case 'S':case 's': /*as no parity*/options.c_cflag &= PARENB;options.c_cflag &= CSTOPB;break;default:fprintf(stderr, "Unsupported parityn");return(FALSE);/printf("serialread.stopbits is %dn",serialread.stopbits);switch(stopbits)case 1:options.c_cflag &= CSTOPB;break;case 2:options.c_cflag |= CSTOPB;break;default:fprintf(stderr,"Unsupported stop bitsn");return(FALSE);if(parity != 'n'&& parity != 'N')options.c_iflag |= INPCK;options.c_cflag &= CRTSCTS;options.c_iflag &= IXOFF;options.c_iflag &= IXON;if(parity != 'n'&& parity != 'N') options.c_iflag |= INPCK;tcflush(fd, TCIOFLUSH);/options.c_iflag |= IGNPAR|ICRNL;options.c_lflag &= (ICANON|ECHO|ECHOE|ISIG);/options.c_oflag |= OPOST; options.c_oflag &= OPOST;options.c_iflag &= (ICRNL|IGNCR); /options.c_iflag &= (IXON|IXOFF|IXANY);options.c_ccVTIME = 0; /150; /15 seconds options.c_ccVMIN = 0;tcflush(fd, TCIFLUSH);if(tcsetattr(fd, TCSANOW, &options) != 0)perror("SetupSerial 3");return(FALSE);return(TRUE);int OpenDev(char *Dev)int fd = open(Dev, O_RDWR);if(-1 = fd)perror("Can't Open Serial Port");return -1;elsereturn fd;int serial_init(void)char *Dev = "/dev/s3c2410_serial1"int i;serial_fd = OpenDev(Dev);if(serial_fd > 0)set_speed(serial_fd,115200);elseprintf("Can't 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 > 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 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 = 0)printf("%s Failed (len = %d)!n", str, len);return ptr;char XorVerify(char BytesCMD)char checksum = BytesCMD1;int i;for (i = 1; i < BytesCMD1+1; i+)checksum = BytesCMDi+1;return checksum;void js();void ting();void zou();void fmq();void scan()int source_addr,father_addr;char byte4,byte5,byte6,byte7,byte8,byte9,byte10,byte11,byte12,byte13,byte14,byte15,byte16,byte17,byte18,byte19;char test,byteCheck;char PacketBuff50;int PacketLen;int j;struct wsn_comm_pkg *pkt = 0;if(sRecDataLen > 0)/printf("sRecDataLen : %dn",sRecDataLen);int sFirstPosition = 0;while(sFirstPosition < sRecDataLen)/printf("sFirstPosition: %dn",sFirstPosition);if(RecbuffsFirstPosition = 0x2)PacketLen = RecbuffsFirstPosition + 1+3;/printf("PacketLen : %dn",PacketLen);if(PacketLen <= sRecDataLen -sFirstPosition)/printf("PacketBuff=");int i;for(i = 0; i < PacketLen; i+)PacketBuffi = RecbuffsFirstPosition + i;/printf("%02x ",PacketBuffi);printf("n");if(PacketBuff7=0x1)byte10 = PacketBuff10;byte11 = PacketBuff11;byte12 = PacketBuff12;byte13 = PacketBuff13;byte14 = PacketBuff14;byte15 = PacketBuff15;byte16 = PacketBuff16;byte17 = PacketBuff17;byte18 = PacketBuff18;if(byte10 & 0x7)=0x0)/*printf(" A/Dµçѹ: %.2f V n 2530ζÈ: %d ¡æn °åζÈ: %d ¡æn ÎÂʪ¶ÈζÈ: %d ¡æn ÎÂʪ¶Èʪ¶È: %d %n ¹âÕÕ¶È: %dn",ScanADdata(byte11),byte12,byte13,byte14,byte15,byte16);*/if(byte17 = 0x00)printf(" Vibration sensors: NO vibrationn"); for(j=3;j>=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();/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)=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)=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(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 save_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_item = 2;buffer_has_send = 0;printf(" ¿ØÖÆÄ£¿é2n");printf(" A/Dµçѹ: %.2f Vn 2530ζÈ: %d ¡æn",ScanADdata(byte11),byte12);printf("n");*/for(i = 0; i < sRecDataLen - sFirstPosition - PacketLen; i+)Recbuffi = RecbuffsFirstPosition + PacketLen+i;sRecDataLen -= PacketLen + sFirstPosition;return;elsesFirstPosition+;sRecDataLen = 0;void serial_rw()int i;char buff1024;while(1)pthread_mutex_lock(&mutex);if(nread = read(serial_fd,buff,1024)>0)buffnread = '0'/printf("nrecv:%dn",nread);/printf("nread=");for(i=0;i<nread;i+)/printf("0x%02x ",buffi);RecbuffsRecDataLen + i = buffi;/printf("n");/printf("Recbuffread_last=");for(i=0;i<sRecDataLen;i+)/printf("%02x",Recbuffi);/printf("n");/printf("Recbuffread_new=");for(i=0;i<nread;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

    注意事项

    本文(智能交通灯课程设计报告.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开