智能小车环保公交车系统_第1页
智能小车环保公交车系统_第2页
智能小车环保公交车系统_第3页
智能小车环保公交车系统_第4页
免费预览已结束,剩余13页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目 录一、方案论证 .1( 一 ) 方案的选择与比较.1(二)系统组成框图.3二、设计实现4(一)硬件电路图.4(二)软件设计.5三、调试与应用7(一 ) 测试仪器清单.7( 二 ) 功能测试 .7四、结束语7参考文献8附录:程序代码 .8智能小车环保公交车系统摘要:本系统采用 STC89C52单片机为控制核心,设计了具有自动寻迹、到站检测、自动靠站、语音播报、液晶显示等功能的智能公交车系统,为充分体现当前的环保需求, 本系统采用了非电池电源进行供电。 在系统设计中运用了红外检测、大容量电容电池、 ISD4004 语音播报系统、 LCD12864液晶显示等技术,具有一定的先进性。关键词 :智能

2、公交车; STC89C52;自动寻迹;语音播报一、方案论证( 一 ) 方案的选择与比较1、 控制模块方案一:采用凌阳61 板,它是 16 位的控制器,体积小,驱动能力高、结果简单、中断处理能力强,尤其适用于语音处理和识别部分,但价格比较贵。方案二: STC89C52是一种低电压、高性能的COMS 8为单片机,片内8K 程序存储器是FLASH工艺的,这种工艺的存储器用户可以用电的方式瞬间擦除、改写,对开发设备的要求很低,开发时间也大大缩短。且价格比较低廉,市场供应充足。从价格方面考虑,我们选择方案二。2、 电机选择方案一: 直流电机。 直流电机的控制方法比较简单,只需给电机的两根控制线加上适当的

3、电压即可使电机转动起来,电压越高则电机转速越高。对于直流电机的速度调节,可以采用改变电压的方法,也可采用PWM调速方法。 PWM调速就是使加在直流电机两端的电压为方波形式,通过改变方波的占空比实现对电机转速的调节。方案二: 步进电机。 由于其转过的角度可以精确的定位,可以实现小车前进路程和位置的精确定位。 虽然采用步进电机有诸多优点,步进电机的输出力矩较低,随转速的升高而下降,且在较高转速时会急剧下降,其转速较低,不适用于小车等有一定速度要求的系统。所以我们放弃了本方案。综上所述,我们选择方案一。13、 电机驱动模块方案一:采用专用芯片L298N 作为电机驱动芯片。L298N 是一个具有高电压

4、大电流的全桥驱动芯片, 它相应频率比较高,一片 L298N 可以分别控制两个直流电机,而且还带有控制使能端。且可用PWM进行调速,用该芯片作为电机驱动,操作方便,稳定性好,性能优良。方案二: 采用 H型全桥式驱动电路,由分立元件构成电机驱动电路,很方便的实现直流电机的四象限运行,分别对应正转、正转制动、反转、反转制动。其结构简单,价格低廉,但是性能不稳定,所以我们放弃用分立元件H 桥作为驱动电路。综上所述,我们选择方案一。4、 寻迹模块方案一: 采用反射式红外发射接收对管,检测路面的黑色引导线。当发出的红外线照到白线上时,光线被反射,接收管接收到光线的照射,输出为低电平;当发出的红外线照到黑线

5、上时,光线被吸收,接收管接收不到光线,输出高电平。且红外对管对黑线的识别率较高,且不易受外界光线的影响,能可靠的实现线路检测。方案二:采用光敏电阻实现对黑线引导线的识别。此方案电路结构简单,成本较低,但光敏电阻极易受外界光线的影响,容易造成误判,使小车失去控制。所以我们放弃本方案。综上所述,我们选择方案一。5、 站台检测模块方案一: 采用超声波传感器,反应速度灵敏, 距离远, 受外界干扰小, 但外界电路复杂。所以我们放弃了选择超声波传感器。方案二:采用成品红外发射接收探头,其使用方便,实现简单。综上所述,我们选择方案二。6、 语音模块方案一:选择专门的语音存储芯片ISD1420 ,通过单片机进

6、行录放音的控制。用这种方法比较简单方便,但地址模式占用的IO 端口比较多,存储空间较小,智能存储总计20S 的语音,无法进行语音识别。为了更好的识别语音功能,所以我们放弃了本方案。方案二: 选用 ISD4004 芯片实现语音播报,特点是记录声音没有段长度限制,并且声音记录不要A/D 转换和压缩的, 其采用 FLASH作为存储介质, 不要电源可保持数据长,可重复使用多次。综上所述,我们选择方案二。27、 显示模块方案一:使用传统的数码管作为显示部分,数码管具有低能耗,低损耗等特点,但本设计要求显示汉字和符号,所以我们放弃了选择数码管作为显示部分。方案二:采用12864 液晶显示屏。液晶屏具有轻薄

7、短小,耗电量低,无辐射危险可视面积大,能够显示汉字和符号,画面效果好,分辨率高,并且能够满足本设计的要求。所以我们选择了液晶显示屏。综上所述,我们选择方案二。8、 电源模块由于本设计要求非电池供电,所以我们选择运用电容作为电源。通过电容的充放电来给小车提供电压。9、 电子公交站由于本设计要求我们设计两个电子公交站,我们选择用发光二极管制作公交站,制作方便,电路简单。(二)系统组成框图根据本设计的要求,我们最终确定用STC89C52单片机作为控制核心,采用直流电机,并且 L298 作为电机的驱动电路,利用C语言编程来实现电机的调速;寻迹模块采用红外对管,运用ISD4004 来进行语音报站,用液晶

8、显示屏显示站名。总体组成框图如图1 所示。显示模块站台检测模块语音播报模块寻迹模块STC89C52电机驱动模块电源电路图 1系统组成框图3二、设计实现(一)硬件电路图1、电机驱动电路把 L298 的 5、 7、 10、 12 引脚接到单片机上,2、 3、 13、 14 分别接左右两电机,电路中的二极管起保护电路的作用,通过对单片机的编程来实现对电机的正反转的控制,还可以实现两个直流电机的PWM的调速。电路图如图2 所示。图 2电机驱动电路2、 语音播报电路ISD4004 系列工作电压3V, 单片录放时间8 至 16 分钟 , 音质好 , 适用于移动电话及其他便携式电子产品中。芯片采用CMOS技

9、术 , 内含振荡器、防混淆滤波器、平滑滤波器、音频放大器、 自动静噪及高密度多电平闪烁存贮陈列。芯片采用多电平直接模拟量存储技术,每个采样值直接存贮在片内闪烁存贮器中, 因此能够非常真实、自然地再现语音、音乐、音调和效果声 , 避免了一般固体录音电路因量化和压缩造成的量化噪声和" 金属声 " 。采样频率可为 4.0,5.3,6.4,8.0kHz, 频率越低 , 录放时间越长 , 而音质则有所下降 , 片内信息存于闪烁存贮器中 , 可在断电情况下保存 100 年 ( 典型值 ), 反复录音 10 万次。4图 3 语音播报电路图3. 寻迹电路图 4寻迹电路图(二)软件设计1.

10、程序流程图5开始初始化开始寻迹判断是否遇到障碍是显示减速语音播报判断小车底部寻迹传感器的状态停止寻迹显示否加到全速结束图 5 程序流程图2. 寻迹算法用单片机T1 中断检测寻迹状态,当中间探头在线时直走,当中间和左边或者左边探头在线时左转,当中间和右边或者右边探头在线时右转。63. 站台检测算法当红外探头检测到站台时,返回给单片机0 信号。 T0 中断执行PWM 减速,同时执行放音程序并显示。三、调试与应用( 一 ) 测试仪器清单仪器名称用途台式 PC下载程序数字万用表测量相关端点的电压、电流秒表计时( 二) 功能测试测 试项到 B 站到 C 站小车中心目语音播靠站停止时间与站台标识偏(s)报

11、时间 (s)时间 (s)时间 (s)移距离( cm)次数1245301100.3cm2235301150.2cm3225301120.1cm四、结束语通过各种方案的讨论与测试,经过多次的软硬件的调试,不断地对系统的优化,我们最终能够实现小车能够按照规定的路线寻迹,并且能够实现在到站前检测到站台,同时语音播报,在播报后停止30S 后再走。 在方案实施过程中我主要负责软件编写,同时与本组其他配合进行软硬件联调,了解掌握的相关芯片的使用,受益匪浅!7参考文献1郭天祥:新概念51 单片机 C 语言教程 - 入门、提高、开发、拓展全攻略M ,电子工业出版社, 2009.1 ;2胡永庆,田日才:闪速存储器

12、硬件接口和程序设计中的关键技术J, 电子技术应用2001(11) ;3 何立民: MCS-51系列单片机应用系统设计 M, 北京 , 北京航空航天大学出版社;4 孙育才: MCS- 51 系列单片微型计算机及其应用M, 东南大学出版社1999 出版。附录:程序代码#include<reg52.h>#include<math.h>#include<intrins.h>#include<stdlib.h>#define uint unsigned int#define uchar unsigned char#define data P0sbit P1

13、0=P10;/小车最左循迹传感器sbit P11=P11;/小车中间循迹传感器sbit P12=P12;/小车最右循迹传感器sbit P13=P13;/小车底部左边传感器sbit E_A=P15;sbit E_B=P16;sbit P17=P17;sbit P20=P20;/电机右正sbit P21=P21;/电机右负sbit P22=P22;/电机左正sbit P23=P23;/电机左负sbit cs_4004=P30;sbit mosi_4004=P31;sbit sclk=P32;sbit P27=P33;sbit e=P24;sbit rs=P25;sbit psb=P26;uchar

14、 dis1="前方到达 B!"uchar dis2="前方到达 C!"uchar dis3="车辆行驶中 !"uchar dis4="停靠站台 !"uchar dis5=""uchar t=0,tmp1,m2=0,tmp2,m1=0,a=0,b;void delay_1s()uint i,j;8for(i=0;i<255;i+)for(j=0;j<257;j+);void delay(uint j)for(j;j>0;j-);void write_com(uchar com)r

15、s=0;e=0;P0=com;delay(5);e=1;delay(5);e=0;void write_data(uchar dat)rs=1;e=0;P0=dat;delay(5);e=1;delay(5);e=0;void pos(uchar X,uchar Y)uchar pos;if(X=0)X=0X80;else if(X=1)X=0X90;else if(X=2)X=0X88;else if(X=3)X=0x98;pos=X+Y;write_com(pos);void write_com_4004(uchar com)9uchar m,i,j;sclk=0;m=com;for(i=

16、0;i<8;i+)m=_cror_(m,1);j=m<<1;mosi_4004=CY;sclk=1;sclk=0;void write_add_4004(uint add)uchar i;uint m,j;sclk=0;m=add;for(i=0;i<16;i+)m=_iror_(m,1);j=m<<1;mosi_4004=CY;sclk=1;sclk=0;void stopmode()cs_4004=1;sclk=0;cs_4004=0;write_com_4004(0x30);cs_4004=1;void powerup()cs_4004=1;sclk=

17、0;cs_4004=0;write_com_4004(0x20);cs_4004=1;10void set_play(uint add)uint m;cs_4004=1;sclk=0;m=add;cs_4004=0;write_add_4004(m);write_com_4004(0xe0);cs_4004=1;void play()cs_4004=1;sclk=0;cs_4004=0;write_com_4004(0xf0);cs_4004=1;void play_4004(uint add)uint m;m=add;powerup();delay(5118);set_play(m);pla

18、y();void zuo()P20=1;P21=0;P22=0;P23=1;void you()P20=0;P21=1;P22=1;P23=0;void zhi()11P20=1;P21=0;P22=1;P23=0;void ting()P20=0;P21=0;P22=0;P23=0;void motor(uchar index, char speed)if(speed>=-100 && speed<=100)if(index=1)m1=abs(speed);if(speed<0)P20=0;P21=1;elseP20=1;P21=0;if(index=2)m

19、2=abs(speed);if(speed<0)P22=0;P23=1;elseP22=1;P23=0;12void init()psb=1;write_com(0x30);delay(5);write_com(0x0c);delay(5);write_com(0x01);delay(5);TMOD=0x12;TH0=0x9B;TL0=0x9B;TH1=(65536-1000)/256;TL1=(65536-1000)%256;EA=1;ET0=1;ET1=1;TR1=1;void timer0() interrupt 1if(t=0)tmp1=m1;tmp2=m2;if(t<tm

20、p1) E_A=1; else E_A=0;if(t<tmp2) E_B=1; else E_B=0;t+;if(t>=100) t=0;void timer1() interrupt 3TH1=(65536-1000)/256;TL1=(65536-1000)%256;if(P10=1&&P11=0&&P12=1) zhi();if(P10=1&&P11=1&&P12=0) zuo();if(P10=0&&P11=1&&P12=1) you();if(P10=1&&P11=1&&P12=0) zuo();13if(P10=1&&P11=1&&P12=1) zhi();if(P10=0&&P11=0&&P12=1) you();if(P10=1&&P11=0&&P12=0) zuo();if(P10=0&&P11=0&&P12=0) zhi();void main()uchar i,k;init()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论