毕业设计智能公交小车系统的设计与实现Word格式.docx
《毕业设计智能公交小车系统的设计与实现Word格式.docx》由会员分享,可在线阅读,更多相关《毕业设计智能公交小车系统的设计与实现Word格式.docx(44页珍藏版)》请在冰豆网上搜索。
Instructor:
【Abstract】89C52RCmicrocontrollerisaMicrocontrolleroftheSTC,it,seasytouseandversatile,whichispraisedbythemajorityofusers.Thisdesignwasbaseon889c52rcforthesystemoperatormicrocontrollerandcontrolcenter,thesoftwareadoptModulardesign.Theideais:
detectingtheblack-linewithfivePhotoelectricsensor,andprovidingtheacquisitionsignaltoMCU,thesignal,afterprocessing,providetothedrivingmodularL298N.,anddrivethetwoDCmotorsofthecarchassis.besides,adjustedthemotorspeedbythePWMpulsewidth,sothatcontrolthespeedofthecar.
Themainelementsofthedesign:
First,whenthecararrivethestopallowthebuzzertocall,thenstartthecarafterfiveseconds.Second,whenthecararrivethestation(allPhotoelectricsensordetecttheblack-lineroad),letthecartostop.Third,whenthecararrivethecorner,thecarcouldsmoothlythrough.
Themaininnovationofthedesign:
First,whenthesmartcararrivethestopallowthebuzzercallforfiveseconds,thenstartthecar.Second,thesmartcarcanautomatictrackingtheblackline.Third,whenthesmartcararrivetheterminalstation,letthecarstop.
【Keyword】89C52RCTracingPhotoelectricsensorL298NSmartvehicle
2.5信息采集系统10
3.2宏定义函数16
3.3初始化子程序设计16
3.6扫描子程序设计21
3.7报警子程序设计26
3.8电机控制子程序设计27
绪论
伴随着科学技术的发展,智能系统在社会各领域的作用越来越大,对智能机器人、智能小车系统的研究已成为热门课题。
现如今世界上已有许多国家都积极地在智能系统的制造领域投入大量物力和精力,很多专业组织和人士纷纷想建造一个平台,互相交流各国智能系统技术和发展方向和水平,其中亚广联组织的智能小车电视大赛就迎合了大多数人对智能系统的热爱。
对于竞赛中使用的智能系统,其控制器是整个智能控制系统的核心,直接关系到系统工作的效率和性能。
对于控制器的选型要遵循以下原则:
控制器必须具有有较强的抗干扰能力,具有较快的运算速度和具备很强的数据处理能力;
小型化功能强大;
内置不小于32kB的程序存储空间;
内置不小于2kB的数据存储空间;
具备足够的I/O端口;
具备至少3个定时器/计数器;
灵活方便的编程调试方式;
另外要具有常见的封装形式。
基于以上这些原则和分析了设计任务和要求,确定了该设计基于单片机设计而来。
根据导师的指示,充分研究分析智能公交小车循迹系统,结合设计要求和任务进行设计开发。
该项目可完成小车寻迹、停车、小车速度控制等。
根据设计要求,确定了如下的设计方案:
通过改装购买来的小车,在小车底盘的基础上加装寻迹模块(光电传感器)、PWM调制模块(控制电机转速)、电源模块、单片机、蜂鸣器。
这样便能实现小车寻迹、报站、停止等一系列动作。
该方案通对电机进行实时控制,以达到精准控制的目的。
在本设计中采用89C52RC单片机作为运算和控制核心,使用光电传感器对黑线进行寻迹,将采集的信号处理后作为PID的入口参数,通过PID运算产生控制信号,再将控制信号传送给L298N从而实现对电机控制,使用五个光电传感器采集信号,通过分析采集到的信号,产生控制信号,控制电机实现左大转、左小转、右大转、右小转、刹车、惰行、反转。
另外,通过PWM模块实现对速度的调制;
本设计就是采用的是通用89C52RC单片机作为智能小车公交系统的控制和运算中枢,89C52RC单片机是一款通用的8位CMOS微控制器,功耗小性能好,易于编程。
1.方案设计与论证
设计任务要求:
设计并制作一智能公交小车系统。
要求该智能小车系统能按设定的速度稳定地在引导线上行驶。
在设定的位置停止设置的时间,到达引导线末端自动停止前进。
引导线黑色宽度2.5cm,每站停留时间5秒并鸣笛。
1.1系统原理
分析设计任务要求该智能小车公交系统应该包括这些模块:
控制模块、驱动模块、比较器模块、信息采集模块、LED显示模块、电机。
通过红外光电传感器采集小车行驶时路面状况(循迹),然后将采集到的信号通过单片机分析处理后产生控制信号,控制小车调速、转弯、报站、刹车等;
由于单片机输出电流不能驱动电机,所以需要外加驱动电路模块来驱动电机。
另外通过LED显示小车状态。
系统框图如图1.1所示
控制
处理器
89C52RC
驱动电路
比较器
信息采集模块
LED显示
电
机
图1.1系统框图
1.2方案比较和选择
根据设计要就,智能小车公交系统的控制模块可以采用如下方案:
方案一:
采用89C52RC单片机,它是一款通用性的低功耗、高性能CMOS,8位微控制器。
使用了STC公司的高密度非易失性存储器制造技术。
89C52RC具有以下标准功能:
8k字节程序存储器Flash(闪存),256字节数据存储器RAM,三个16位定时器/计数器,四个八位可编程并行输入输出口,看门狗定时器,2两个数据指针,八个两级(0和1)中断源,全双工串行口,片内晶振以及时钟电路。
另外,89C52RC可降至0Hz静态逻辑操作,支持两种模式。
在空闲模式下,CPU工作停止,允许RAM、定时器/计数器、串口、中断继续工作。
掉电模式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
使得89C52RC单片机为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
方案二:
选用AVR单片机Atmega128L,Atmega128L是一款高性能、低功耗的单片机,运算速度快,Atmega128L是八位微处理器,管脚数为64。
采用的是先进的精简指令集结构,其指令系统133条指令,大多数单条指令为单周期指令。
Atmega128L有两个相互独立的预分频器和比较器,Atmega128L具有八位定时器/计数器和两个预分频器、16位定时器/计数器具有比较功能和捕捉功能,Atmega128L具有实时时钟计数器。
Atmega128L内部带有模拟电压比较器。
具有上电自动复位以及可编程的掉电检测功能。
Atmega128L片内资源丰富,具有:
六个外部二级中断源,4个八位定时计数器,53个(I/O)输入输出口,I/O口多。
Atmega128L的引脚大多数都有具有第二功能,可实现更多功能,功能非常的强大。
.
方案三:
采用FPGA(现场可编辑门列阵)作为智能小车公交系统的控制器。
使用FPGA器件来设计电路,其设计不仅过程简单,可采用至上而下的设计方法,而且设计出来的系统的体积小。
采用FPGA设计的系统功能异常强大,而且不像传统制造集成电路那样需要花费大量时间和精力来设计开发。
采用FPGA设计灵活强、器件的密集度高、产品的可靠性强、缩短了产品的开发周期、工作速度快、系统的保密性能强。
采用FPGA可以实现复杂的逻辑功能要求,可实现大规模设计要求、高集成度、小体积、很好的稳定性,采用的是至上而下的设计思路。
另外FPGA采用的是并行工作方式,流水线处理技术,四级流水线操作。
每条指令周期完成四个操作,提高了系统的处理速度,通常应用于大规模和实时性处理系统。
方案比较:
由三种方案可以看出,以Atmega128L核心可以方便地实现对各个部分的控制和外接,但相对于89C52RC价格贵,内部资源没有得到充分利用,而且Atmega128L指令系统采用的是精简指令结构,程序开发编写相对比较难,不通用。
FPGA的高速处理能力得不到充分发挥且价格较贵,而89C52RC通用性强,价格便宜并且能满足设计需要,所以我们选择方案一。
2.硬件设计
2.189C52RC单片机控制模块
2.1.189C52RC主要性能:
与MCS-51单片机产品兼容
8K字节在系统可编程Flash存储器
1000次擦写周期
全静态操作:
0Hz~33Hz
三级加密程序存储器
四个八位可编程I/O口
三个16位定时器/计数器
六个二级中断源
全双工UART串行通道
低功耗空闲和掉电模式
掉电后中断可唤醒
看门狗定时器
双数据指针
掉电标识符
2.1.2最小应用系统设计
该系统中用89C52RC芯片作为控制和运算中心构成的单片机最小系统,其系统特点是:
简单﹑可靠。
其构成部分包括:
电源接口和地、晶振、时钟电路、复位电路、蜂鸣器、排针构成。
单片机最小系统如图2.1所示。
其应用特点:
(1)可方便供用户任意的使用各口的每一位。
(2)其内部存储器容量有限。
(3)应用系统的蜂鸣器可做报警使用。
(4)复位电路采用上电复位和按键复位。
图2.189C52RC单片机最小系统
2.1.3时钟电路
该设计中时钟信号用来提供给单片机内各种指令操作的时间基准,该时钟电路用于89C52RC工作所需要的时钟信号。
单片机的时钟信号通常有两种方式得到:
1内部振荡方式2外部振荡方式。
该设计采用内部时钟方式,利用89C52RC单片机内的反向放大器,单片机的XTAL1和XTAL2端用于外接石英晶体振荡器和微调电容(c1和c2),这样便构成了一个稳定的自激振荡器,将其产生的脉冲输入给单片机。
本设计采用最常用的内部时钟方式,即用外接晶体和电容组成的并联谐振回路。
振荡晶体可在1.2MHZ到12MHZ之间选择。
C1、C2可在20pF到100pF之间取值,但在20pF到40pF时振荡器有较高的频率稳定性。
所以本设计中,未涉及单片机得串行口通信,所以振荡晶体选择12MHZ,电容选择30pF,若需要进行串行口通信,则一般采用振荡频率为11.0592MHZ晶振。
2.1.4复位电路
复位是用作单片机的初始化操作,当单片机复位时程序计数器PC的值变为0000H,使单片机的程序指针指在0000H单元,即从0000H单元开始执行程序。
除了系统的正常初始化外,另外当单片机系统在运行出错或操作错误使系统处于死锁状态时,也可以通过持续按下复位键,使单片机工作从0000H单元重新工作。
其中单片机复位的条件是:
当按下复位键时,必须使RST复位信号引脚持续2个机器周期以上的高电平。
复位电路通常采用上电自动复位和按钮复位两种方式,如图2.2所示。
(a)上电自动复位(b)按键电平复位(c)按键脉冲复位
图2.2单片机常见的复位电路
该设计采用上电自动复位和手动复位两种方式,其中上电自动复位电路,其原理是当系统上电时,电容充电到高电平并持续一段时间(两个机器周期以上)来实现单片机复位。
时钟频率用12MHZ时所以C取22uF,R取1KΩ。
按键复位其原理是,当按键按下时,R1接入电路,R1和R2分压,由于R1<
<
R2,所以可以认为R2两端的电压为5V(高电平),即RST端为高电平,当按下去的时间持续2个机器周期以上,便可实现单片机的复位。
时钟频率选用6MHZ时,C取10uF,R1取1K,R2取10KΩ。
复位电路如图2.3所示。
图2.389C52RC复位电路
2.2直流调速系统
直流调速系统静差率小、稳定性好、具有良好的动态性能。
通过改变电枢电压调速是直流调速系统采用的主要方法,调节电枢供电电压或者改变励磁磁通,都需要专门的可控电流电源,常用的可控直流电源有以下三种:
(1)旋转变流机组。
用交流电动机和直流电动机组成机组,以获得可调的电流电压。
旋转变流系统由交流发电机拖动直流电动机实现变流,由发电机给需要调速的直流电动机供电,调节发电机的励磁电流即可改变其输出电压,从而调节电动机的转速。
改变励磁电流的方向则输出电压的极性和电动机的转向都随着改变,所以G-M系统的可逆运行是很容易实现的。
该系统需要旋转变流机组,至少包含两台与调速电动机容量相当的旋转电机,还要一台励磁发电机,设备多、体积大、费用高、效率低、维护不方便等缺点。
且技术落后,因此搁置不用。
(2)静止可控整流器。
用静止的可控整流器产生可调的直流电压。
V-M系统是当今直流调速系统的主要形式。
它可以是单相、三相或更多相数,半波、全波、半控、全控等类型,可实现平滑调速。
V-M系统的缺点是晶闸管的单向导电性,它不允许电流反向,给系统的可逆运行造成困难。
它的另一个缺点是运行条件要求高,维护运行麻烦。
最后,当系统处于低速运行时,系统的功率因数很低,并产生较大的谐波电流危害附近的用电设备。
(3)直流斩波器或脉宽调制变换器。
其原理是利用直流斩波或脉宽调制的方法来产生可调的直流平均电压,可用做对电机的速度控制。
脉冲宽度调制是通过对模拟信号的电平进行控制。
由控制系统控制,可以通过设定脉冲宽度调制器的定时器初值来设置周期,在PWM控制寄存器中设置接通时间和关断时间,这样通过改变方波的占空比来实现对模拟信号的电平进行控制。
整流电路其工作原理是:
根据输出的模拟信号的高低使二极管处于导通或截止状态,实现整流。
PWM调制后,通过驱动电路控制电机的转速,即实现对系统的速度控制。
根据以上综合比较,本次设计采用PWM调制来实现对小车的速度的调制。
由于单片机输出电流小,不足以驱动电机,还需要经过一驱动电路,再加在电机上。
为顺利实现改变小车速度的控制,该设计使用软件编程产生PWM脉冲,通过调节脉冲占空比来达到调节电机转或不转的时间,从而控制小车的速度。
2.3驱动
该设计的驱动模块采用的是L298N芯片,用作驱动智能小车的两个直流电机。
L298N具有两个使能控制端,可以设置在不接受输入信号的情况下允许或禁止器件工作,在该硬件设计中将使能端接为固定的高点平,使驱动芯片在未接收信号输入信号时也处于工作状态;
L298N内部有4通道的二相和四相电机的专用驱动器。
该硬件设计中通过P3口的低4位控制这四个通道(其中左边的电机对应IN1、IN2,右边的电机对应IN3、IN4),从而实现对两电极的控制。
在该设计的软件部分,通过改变IN1、IN2、IN3、IN4四通道的输入电平,来实现对电机电机的控制。
另外,L298N其内还有二个H桥的高电压大电流双全桥式驱动器。
L298N驱动芯片的主要特点是:
1工作电压高,最高的工作电压可达46V。
2输出的电流大,瞬间峰值电流可达到3A,持续稳定的工作电流为2A。
3驱动能力强。
L298N对直流电机控制的逻辑真值表如表2.4所示
其中C、D分别为IN1、IN2或IN3、IN4,L为低电平H为高电平*表任意
表2-1L298N对直流电机控制的逻辑真值
输入
输出
Ven=H
C=H;
D=L
正传
C=L;
D=H
反转
Ven=L
C=D
制动
C=*;
D=*
没有输出,电机不工作
图2.4电机驱动模块
2.4比较器
比较器的功能是比较两个电压的大小,如图2.5所示,将一个信号电压Ui和一个参考电压Ur进行比较,若Ui>
Ur时,即负向输入端大于正向输入端,输出端U0输出一低电平。
若Ui<
Ur时,即负向输入端小于正向输入端,比较器的输出端输出一个高电平。
+5V
Ui
U0
Ur
—5V
图2.5比较器电路
比较器可以分为以下类型:
1过零电压比较器2电压比较器3窗口比较器4迟滞比较器。
在本设计中,光电传感器采集的信号通常伴有外界噪声信号,可以在光电传感器后面接一个低通滤波器,将噪声信号滤除,因为噪声信号通常是高频信号,若要做到保证采集的信号的准确性和提高系统的抗干扰性,还应该尝试采用了滞回比较器,滞回比较器有两个阈值电压,当输入发生变化时,只要电压值变化处于两个阈值电压之间,滞回比较器的输出电压就不会来回跳变。
所以当输入信号由于外界干扰或其他原因造成信号发生改变,但变化处于两阈值电压之间,就不会产生影响,这样增强了抗干扰能力。
而该设计为了简化设计,采用的是简单电压比较器。
因为简单电压比较器结构简单,硬件电路搭建简单,而且灵敏度高,但它的抗干扰能力差,也就是说如果输入信号因受干扰在阈值附近变化,则比较器输出电平就会反复从一个电平跳到另一个电平。
本设计要求要求并不高,所以本设计采用简单的比较器就能达到要求。
2.5信息采集系统
检测模块主要采用光电检测,即利用5个光电感应器对轨迹(黑色引导线)检测。
将采集到的信号通过LM324搭建的比较器放大反向后,输入给单片机,通过运算分析,产生控制信号,输出给驱动模块,控制电机。
从而实现对智能小车行驶过程中的前进、到站、到终点站、转弯的控制。
2.5.1循迹电路原理分析
本系统采用反射式红外线光电传感器用于检测路面的情况,地面铺上一层白纸(便于反射光线),在白纸上画上一个椭圆型的轨迹(宽约1.5厘米)作为循迹轨道,在轨道的上标记一处宽约10厘米的线(垂直于轨道)作为小车终点站,另外标记三处宽约6厘米的线(垂直于轨道)作为小车行驶过程中的三个站点。
图2.6光电感应器
信息采集电路(见图2.6光电感应器)采用红外反射接收的原理,包括一个红外线发射器、一个红外接收传感器。
其中采用红外发光二极管产生红外线,若红外线照射到反光强的物体上(如白色物体),红外线就会被反射回来,被接收器接收到,若照射到反光性不好的物体上时(如黑色的物体),红外线就会被吸收,几乎不能反射红外线光被接收器接收到。
其原理如图2.6所示:
1.没有检测到黑线,则H4发射器发射红外线照射在白纸上,红外线被反射回来被H4接收器接收到,H4接收端导通,导通则T1输出低电平,T1=0。
2.有检测到黑线,则H4发射器发射红外线照射在黑线上,红外线几乎被黑线全部被吸收,红外线被不能反射回来被H4接收器接收到,因为H4不导通(截止),则T1输出高电平,T1=VCC。
在本设计中将循迹电路中的T1信号做为LM324的2管脚输入,当T1=0,比较端3管脚=3V时,输出端OUT1输出1,当T1=5V,比较端3管脚=3V时,输出端OUT1输出0。
光电传感器固定在底盘前端贴近地面。
当正常行驶时,传感器输出低电平信号后送给LM324运放搭建的比较器(如图2.7),经倒向处理后的信号传输给89C52RC单片机进行分析处理,判断小车目前处于什么状态,需要向小车发出什么样的控制信号,通过执行什么子程序来控制玩具车的行驶状态。
当需要调节小车行驶速度时。
图2.7LM324比较器电路
通过单片机控制进行PWM变频,即通过软件改变脉冲调宽波形的占空比,实现对小车的速度的调制。
最后经反接制动实现停车。
前行与倒车控制电路的核心是桥式电路和继电器。
本方案采用两块LM324来搭建电压比较器(因为该设计方案采用了五个光电感应器采集信号,而每片LM324内部有4个运放)。
LM324它采用14管脚双列直插塑料封装,如图2.8所示。
图2.8LM324封装
2.6显示电路设计
本设计中将单片机的P0^0到P0^4五位作为采集到的信号的入口,并用五个LED管来显示采集的到目前小车的状态,如图2.9所示,LED管的亮灭,可便于编写程序时分析和测试过程中采集的信号是否正确。
其中P1^3对应于最左边光电感应器采集来的信号经过LM324后的值,其中P1^7对应于最右边光电感应器采集来的信号经过LM324后的值。
图2.9LED显示
3.软件设计
该智能小车系统能按设定的速度稳定地在引导线上行驶。
引导线黑色宽度2.5cm,每站停留时间5秒。
为了实现完成论文题目的要求,本系统软件部分将包含以下几个功能模块:
(1)初始化:
用于设置小车启动时向前行驶,设置TMOD,确定定时器0方式,以及初始化一些运行过程用到的全局变量,打开中断。
(2)软件延时:
用于设置小车短暂减速时间和一些地方的简单延时。
(3)定时:
用于小车到站后准确停留五分钟,后在启动。
(4)信息采集:
使用五个光电感应器采集小车行驶状态信息,以便准确实时反映小车行驶的状态,作为分析运算的参数。
(5)宏定义:
定义一些程序运算时要用到的中间变量,和对一些口的位定义,以便程序修改和阅读。
(6)电机驱动控制:
通过信息采集模块采集的信息,通过分析运算产生控制信号,通过驱动芯片控制电机,达到实时控制改变小车状态。
(7)报警装置:
当小车到站后,小车需要鸣笛,所以通过使用蜂鸣器达到到站鸣笛的效果。
综合上述的几个功能模块,本系统的软件部分结构如图3.1所示:
主程序
软件延时程序
宏定义程序
初始
化程序
报警程序
定时五秒程序
信息采集程序
电机驱动控制程序
图3.1控制软件结构图
3.1主程序设计
图3.2主程序流程图
该设计的