红外传感智能劝导系统

一、项目简介:目前交通安全,文明出行是热点话题。交通方面的诸多设施都有待解决及改善,本项目以交通信号灯为研究背景,从行人的角度,节能安全为目的,来设计一个交通信号灯控制系统。




二、系统主要模块及作用:红外检测模块,噪声检测模块,语音提示模块,上位机控制模块。
*多对红外传感器检测人流量的大小;


**对周围环境中的声音强度进行检测;


***语音提示行人不要闯红灯;


****上位机matlab串口通信设置手动和自动检测模式,及采集噪声数据,并储存,供以后分析。


三、问题解决及目标实现:
1.能够根据人是否闯红灯,控制闯红灯提示音播报【相比较没有语音提示,或一直语音提示,有着惊醒、节能两方面的优点


2.能够根据交通信号灯周围环境大小,来控制语音播报声音大小【优点在于节能及智能化】


3.上位机能够让交通管理员手动控制语音播报,并能够实现采集信号灯周围噪声环境数据,供相关人员分析以天为周期的交通信号灯环境下人员的心理变化,环境变化。


四、总体图
图片不好上传,略。








五、工程实现
项目的所有文件已上传至我的资源




六、问题及建议
1.工程
对于硬件开发,涉及到诸多模块,每个模块必须要写成.c,.h形式方便后续调用,及裁剪


2.全局变量
全局变量一般不建议使用,但对于控制系统,模块间的信号耦合是无法避免的,而且许多全局变量的值必须要在中断里改变
volatile 关键词可以避免编译器对全局变量的使用进行优化,防止全局变量的值在中断里成功修改,而在其他模块并没有改变。
在此次项目中遇到个问题:即使加了关键词volatile ,中断里还是无法修改全局变量的值,最终经过排查,发现是由于我在两处中断里将全局变量的值分别致0,1而这两个中断服务程序的执行并不一致。
还有建议将所有的全局变量单独弄个文件,进行调用






3.时钟
对于51单片机这个单一时钟,不存在这种问题,但是对于msp430或arm等多时钟的,时钟设置尤为重要,甚至可以说如果在项目开始初没有进行很好的预制,对后续的开发及调试有着致命的影响,而且有些时钟源可以提供不同的时钟,而在不同模块中使用同一时钟源的不同时钟,相互之间是会有影响的。比如串口通信,可能会造成接收字符的不完整性。




4.程序框图
对于小的c语言文件,不画程序框图,好像不影响什么,但是对于有着诸多文件的c工程。没有程序框图,会使得后续开发缺失宏观把握,对于mcu有限的资源,不能充分利用,导致需要外接模块。各模块之间、模块与主程序之间缺乏预定的逻辑连接。




5.资源利用
在画完程序框图后,应当接着将各个模块之间所需的构件列出,比如需要定时、计数器否?采用什么方式通信。
然后在实现相应代码文件中注释好占用的管脚,内部资源,等一系列与mcu内部有关的东西











posted @ 2013-03-31 20:48  stoneFang  阅读(126)  评论(0编辑  收藏  举报