简易智能电动车.docx
- 文档编号:10157536
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:41
- 大小:706.73KB
简易智能电动车.docx
《简易智能电动车.docx》由会员分享,可在线阅读,更多相关《简易智能电动车.docx(41页珍藏版)》请在冰豆网上搜索。
简易智能电动车
电子赛培训设计报告
简易智能电动车
实验人员:
罗有仁邓勇平严亚
指导老师:
曾祥志黄隆胜老师
完成时间:
2011年8月
(2)系统测试及结果分析……………………………………………22
摘要:
简易智能电动车系统可划分为控制部分和信号检测部分。
本设计采用Atmel公司的AT89C51和AT89C2051作为系统控制器的双单片机方案。
两片单片机分别对九个模块进行检测和控制,这样减轻了单个单片机的负担,提高了系统的工作效率,同时,通过单片机之间分阶段的互相控制,减少外围设备。
信号检测部分包括金属探测模块、障碍物探测模块、路程测量模块、路面检测模块和光源探测模块;控制部分包括电动机驱动模块、显示模块、控制器模块、计时模块和状态标志模块。
关键词:
AT89C51单片机、AT89C2051单片机、控制器、传感器
Abstract:
Simple、easyandintelligentelectrifiablecandividedintocontrolsectionandsignaldetection.Thisdesignisrealizedbasedontwochips,AT89C51andAT89C2051whichisproducedbyAtmelcompany.Twopiecesofsinglechiprespectivelydetectandcontrolninemodule.Thusthissystemcanlightensinglesinglechip’sloadandimprove
Systematicworkefficiency,atsametime,thiscanreduceperipheralequipmentthroughsinglechipstagedcontrolbyeachother.Signaldetectionconsistsofmetaldetectionmodule、roadblockdetectionmodule、distancetravelledmeasuremodule、pavementdetectionmoduleandlightsourcedetectionmodule.Controlsectionconsistsofmotordrivemodule、displaymodule、controllermodule、keeptimemoduleandstatementmarkmodule.
Keywords:
AT89C52SCM、AT89C2051SCM、controller、sensor
一、引言
1.设计任务
设计并制作一个简易智能电动车,其行驶路线示意图如图1所示。
图1行驶路线示意图
2.基本要求
(1)基本要求
1 电动车从起跑线出发(车体不得超过起跑线),沿引导线到达B点。
在“直道区”铺设的白纸下沿引导线埋有1-3块宽度为15cm、长度不等的薄铁片。
电动车检测到薄铁片时需立即发出声光指示信息,并实时存储、显示在“直道区”检测到的薄铁片数目。
2 电动车到达B点以后进入“弯道区”,沿圆弧引导线到达C点(也可脱离圆弧引导线到达C点)。
C点下埋有边长为15cm的正方形薄铁片,要求电动车到达C点检测到薄铁片后在C点处停车5秒,停车期间发出断续的声光信息。
3 电动车在光源的引导下,通过障碍区进入停车区并到达车库。
电动车必须在两个障碍物之间通过且不得与其接触。
4 电动车完成上述任务后应立即停车,但全程行驶时间不能大于90秒,行驶时间达到90秒时必须立即自动停车。
3发挥部分
1 电动车在“直道区”行驶过程中,存储并显示每个薄铁片(中心线)至起跑线间的距离。
2 电动车进入停车区域后,能进一步准确驶入车库中,要求电动车的车身完全进入车库。
3 停车后,能准确显示电动车全程行驶时间。
4 其它。
4、说明
1)跑道上面铺设白纸,薄铁片置于纸下,铁片厚度0.5~1.0mm。
2)跑道边线宽度5cm,引导线宽度2cm,可以涂墨或粘黑色胶带,示意图中的虚线和尺寸标注线不要绘制在白纸上。
3)障碍物1、2可由包有白纸的砖组成,其长、宽、高约为50cm、12CM、6两个障碍物分别放置在障碍区两侧的任意位置。
4)电动车允许用玩具车改装,但不能由人工遥控,其外围尺寸(含车体上附加装置)的限制为:
长度≤35cm,宽度≤15cm。
5)光源采用200W白炽灯,白炽灯泡底部距地面20cm,其位置如图所示。
6)要求在电动车顶部明显标出电动车的中心点位置,即横向与纵向两条中心线的交点。
二、方案论证与比较
1方案比较
根据自动往返小车的题目设计的要求,提出以下设计方案:
1.1单片机部
1.1.1方案一(见图1所示)
此方案采用最新的PLD(可编程逻辑器件)技术,单片机的绝大多数扩展电路均可以一片PLD芯片来替换,可降低电路的焊接工作(在本次比赛设计没有充分体现出它的优势),为比赛赢得宝贵的时间。
更改电路极为方便。
但PLD只能代替一些数字逻辑器件,而不能替代模拟电子元件和单片机,以及单片机某些扩展芯片(如8279)。
图1PLD设计方案
PLD芯片在此主要是用来译码和驱动数码管(见图2)。
图2PLD芯片内部电路图
1.1.2方案二(如图3所示)
图3单片机设计方案
1.1.3方案比较与结论
考虑到以上两个方案各自的优缺点,采用方案二以后功能扩展较为方便;而采用方案一对以后的电路较为方便,但在这次比赛设计中却不能很好得发挥其自身所特有优势。
因考虑到以后功能扩展,固我们采用方案二来设计此题。
1.2光电检测元件
红外线探测器从工作原理上,可分为两类,一类是热探测器,另一类是光子探测器(又称光电探测器)。
1.2.1方案一(采用热探测器)
热探测器是利用所接收到的红外辐射后,会引起温度的变化,温度的变化引起电信号输出,且输出的电信号与温度的变化成比例,温度变化是因为吸收热辐射能量引起的,与吸收红外辐射的波长没有关系,即对红外辐射吸收没有波长的选择。
1.2.2方案二(采用光电探测器)
光电探测器接收红外辐射后,由于红外光子直接把材料的束缚态电子激发成传导电子,由此引起电信号输出,信号大小与所吸收的光子数成比例。
且这些红外光子的能量的大小(即红外光还必须满足一定的波长范围),必须满足一定的要求,才能激发束缚电子,起激发作用。
1.2.3方案比较与结论
以上两个方案它们的工作原理不同。
但比较其特性,再与我们设计电路中的工作环境与工作条件,选择使用光电探测器比热探测器在抗干扰能力上要好。
因为热探测器对其吸收的红外辐射波长没有选择性,受外界环境的影响比较大;而光电探测器吸收的光子必须满足一定的波长,否则不能被吸收,所以受外界影响比较小,抗干扰能力比较强。
固选择方案二,即采用光电探测器。
1.3稳压电源(+5V)
由于本次设计中用来驱动小车的电源为9V,而单片机工作电源为5V,所以需要稳压,这里有两种方案。
1.3.1方案一(见图4)
用固定式三端稳压器,例如7805系列稳压器输出固定的正电压5V,输入端接电容C1可以进一步滤除纹波,输出端接电容C2能改变负载的瞬态影响,使电路稳定工作C1、C2最好采用漏电流小的钽电容。
如果采用电解电容,则电容要比图中数值增加10倍。
图4固定式三端稳压器
1.3.2方案二(见图5)
虽然7805三端集成稳压管内部有过流、过热和安全区的保护电路,但其输出仍有可能发生过压的危险。
因此本电路加了过压保护电路,该电路由稳压管VD3、电阻R3和晶闸管VS组成。
另外由于7805的最大输出电流为1.5A,可以通过在7805的1脚与VT1的基极相连,7805的2脚与VT1的集电极相连,这样就可输出1.6A~2A的电流。
如需更大的电流,可再并联几个大功率三极管。
图5可扩流过压保护5V稳压电源
1.3.3方案比较与结论
基于本设计中只是使用到5V电源,所以不必考虑再去调节它的稳压值,再加上第二种方案所用元件较多,性能价格比就不高,因此我们采用了第一种方案。
2设计与论证
根据设计要求,要根据路面上的黑线来判断小车的行驶情况。
需光电探测器对路面进行数据采集,并且还需用单片机来判断数据和计数、计时。
但对于小车的左右转弯可直接由一个单独电路来实现,不需单片机来控制。
(总体设计方案框图见图6)
图6总体设计框图
三、系统电路设计与分析
1.固定式三端稳压器(原理图见图4)
使用7805稳压器把9V直流电源稳定在5V,输入端接电容C1可滤除纹波,输出端接电容C2可以减轻负载的瞬态影响,使电路更稳定工作。
2.光电检测电路
因为要对小车行驶经过的固定地点进行判断,并做出相应的动作。
必须将小车经过固定地点时标记转换成电信号。
考虑到小车是在白色路轨上行驶,固定地点有黑色标记,我们可以采用光电检测对管来检测是否到达黑色标志处。
同时,还必须检测跑道两侧,适当的调整前轮,以防撞墙,
电路原理图如下图8所示。
一体化红外发射接收IRT中的发射二极管导通,发出红外光线,经反射物体反射到接收管上,使接收管的集电极与发射极间电阻变小,输入端电位变低,输出端为高电平,三极管导通C极为低电平,再经斯密特反相器后为高电输入到89C51单片机的INT0口。
当红外光线照射到黑色条纹时,反射到IRT中的接收管上的光量减少,接收管的集电极与发射极间电阻变大,三极管截止,固三极管的C极为高电平,再经反相器后输入到单片机的信号为低电平。
在三极管的B极和E极接一个0.1Uf的电容,减少电路中的“毛刺”,以减轻电路的干扰。
图7光电检测电路
3.电机驱动电路
因为要求小车前进后退,加速、减速,并且由单片机控制,所以要求设计的驱动电路时可控制电机的正反转。
设计的电路如图9所示。
图中的六个三极管是这个电路的关键,这六个三极管的导通与否关系到电机的停和正反转。
由于这个电路是由单片机控制,所以与单片机的接口相接时,必须用光偶隔开。
另外考虑到单片机的输入输出口驱动能力很差,所以在进光偶之前,加两个施密特反向器,来增加其驱动灵敏度。
若P1.0输出高,接到的是电路的左边输入;p1.1输出高,接到的是电路的右边输入。
这时,左边光偶导通,右边的不通,U1、U4、U5导通,另外几个截止电机正转,前进。
反过来的话,P1.0为低,P1.1为高,反转,后退。
图8电机驱动电路
4.障碍物探测电路
在电动车行驶的线路中有两个障碍物,电动车要避开障碍物行驶,避免与
碍物相撞。
为探测障碍物并确定障碍物的距离,在电动车的前部安置了两个超声波传感器,一个用于发射;一个用于接收。
超声波传感器的振荡频率为38KHz的超声波信号(38KHz信号由单片机输出给三极管的输入端),三极管用于放大信号以增加驱动能力,传感器发出脉冲超声波信号,并以365m/s的速度子在空气中传播。
同时检测系统开始计时。
如果超声波在传播途中碰到障碍物就会反射回来,超声波接收器接到的反射波经三极管放大后经过一个选频电路输出,连接到单片机口,通知单片机停止计时。
5.光源探测电路
电动车在光源的引导下,通过障碍区进入停车去并到达车库。
由于光源会发出光线,考虑到光敏电阻能感测到光明暗的变化,因此在设计中采用光敏电阻传感器。
由于采用的是白炽灯,光线是散射的,为了便于电动车能在偏离光源一定角度的情况下仍能检测到光线,使用了3个互成角度的传感器组,这样增加了电动车的检测范围。
如图10所示。
图9障碍物探测电路
图10光源探测电路
6.金属探测电路
在电动车行驶的轨道上放置了金属片,在弯道区也有一块金属片,要求电动车在行驶过程中对轨道上的金属片进行探测,并且检测到C点上的金属片后停车。
本设计中采用电感谐振测量法。
电感谐振测量技术探测电路如图所示电容C1、C2、C3和电感构成LC振荡回路,经三极管放大后输出信号,经过整流滤波电路输出给单片机口。
图11金属探测电路
7.循迹检测电路
为了检测路面黑线,在车底的前部安装了三组反射式红外传感器。
其中左右两旁各有一组传感器,由三个传感器组成“品”字形排列,中轴线上为一个传感器。
因为若采用中部的一组传感器的接法,有可能出现当驶出拐角时将无法探测到转弯方向。
若有两旁的传感器,则可以提前探测到哪一边有轨迹,方便程序的判断。
采用传感器组的目的是防止地面上个别点引起的误差。
组内的传感器采用并联形式连接,等效为一个传感器输出。
取组内电压输出高的值为输出值。
这样可以防止黑色轨迹线上出现的浅色点而产生的错误判断,但无法避免白色地面上的深色点造成的误判。
因此在软件控制中进行计数,只有连续检测到若干次信号后才认为是遇见了黑线。
同时,采用探测器组的形式,可以在其中一个传感器失灵的情况下继续工作。
中间的一个传感器在寻光源阶段开启,用于检测最后的黑线标志。
在实验场地上测试时发现中路传感器的功能完全可由左右两路传感器结合软件来实现,故采用此法来实现。
每个寻迹传感器由三个ST178反射式红外光电传感器组成,内由高发射功率红外光电二极管和高灵敏度光电晶体管组成,具体电路如图
8.图12循迹检测电路
四、系统软件设计与分析
1、整体设计
软件设计采用了原子模块循环法,原子模块循环法的原理简述为:
整个程序体即为最小循环体,不断进行循环执行,直至任务结束。
程序体分为采集模块、处理模块、判断模块、存储模块、输出模块。
传感器的个数改变时可相应改变判断模块的输入的数据即可,且这种方法使程序可靠,策略执行效率较高。
整体方框图如图12所示。
图13系统主程序流程
2.模块软件分析
模块子程序设计主要包括12864液晶显示模块、黑线探测模块、光源探测模块。
图14
12864液晶显示模块子程序设计图15黑线寻轨流程
图16寻找光源程序流程图
图17绕障碍物程序流程图
图18超声波收发程序流程图
图19金属检测程序流程图1
图20金属检测程序流程图2
五、测试方案与测试结果
1、系统调试
(1)偶然发现寻迹失灵
现象:
在寻迹走阶段若在探地传感器发出调整信号时正好金属传感器发出中断信号,MCU在处理中断时车偏离轨迹,则寻迹行驶有失灵。
解决方案:
对探测到金属片后的操作不放在中断程序中执行,而是改设一全局布尔变量,在外部程序中进行后续操作。
成功解决此问题。
2.系统测试及结果分析
(1)测试条件
室内测试,室温30题目给定标准场地
(2)测试仪器
示波器函数发生器直流电源数字式万用表秒表
(3)测试结果及分析
a、基本要求一:
到达B点,途中探测到金属。
表一
次数
是否到达B
途中有无探测到金属
1
是
有
2
是
有
3
是
有
4
是
有
b、基本要求二:
到达C点,探测到金属并停车5s。
表二
次数
是否到达C
有无停车延时(时间)
有无探测到金属
1
是
有(5s)
有
2
是
有(5s)
有
3
是
有(5s)
有
4
是
有(5s)
有
c、基本要求三:
从障碍物间通过,进入停车区并进入车库。
表三
次数
是否进入停车区
是否进入车库
是否从障碍物间通过
与障碍物碰撞次数
1
是
是
是
0
2
是
是
是
1
3
是
是
是
0
4
是
是
是
0
d、基本要求四:
入库后停车,行驶时间小于90s。
表四
次数
入库后是否停车
行驶时间(秒表测量)
1
是
25s
2
是
25s
3
是
26s
4
是
26s
由上述测试可以看出,本智能车完全实现了题目的基本要求。
六、结束语
本设计系统以单片机AT89C52芯片为核心控制,用各种传感器来进行循迹,探测金属、障碍物和光源。
由最后测试实验,智能小车实现了题目的基本要求。
在系统的设计过程中,力求硬件简单实效,充分发挥了软件编程方便、灵活的特点,并最大限度地挖掘单片机的资源,来满足系统的设计要求。
因实验器材存在一定的误差,所以给设计带来与理论一定的偏差,但功能基本上是能实现的。
本实验还存在需要改进的地方。
参考文献
[1]王港元.电工电子实践指导[M].南昌:
江西科学技术出版社,2006
[2]第五届全国大学生电子设计竞赛获奖作品选编.北京:
北京理工大学出版社,2001
[3]第五届全国大学生电子设计竞赛获奖作品选编.北京:
北京理工大学出版社,2001
[4]全国大学生电子设计竞赛组委会.第六届全国大学生电子设计竞赛获奖作品选编。
北京:
北京理工大学出版社,2005
[5]黄智伟,王彦,陈文光等.全国大学生电子设计竞赛训练教程.北京:
电子工业出版社,2005
[6]谢自美,电子线路设计·实验·测试(第三版)武汉:
华中理工大学出版社,2006
[7]童诗白,华成英.模拟电子技术基础[M].北京:
高等教育出版社,2001
[8]陈永真,宁武,蓝和慧,新编全国大学生电子设计竞赛试题精解选.北京:
电子工业出版社,2009.4
附录1原理图
附录2源程序
主函数:
#include
#include"delay.h"
#include"lcd.h"
#include"motor.h"
#include"ir.h"
#include"distc.h"
#include"metal.h"
Uchar8codestr1[][16]={"简易智能小车","年月日","行驶s,cm","金属数量片cm"};
voidmain()
{
LCDInit();
stringDisp(1,str1[0]);
Delay_50us(5);
stringDisp(2,str1[1]);
Delay_50us(5);
stringDisp(3,str1[2]);
Delay_50us(5);
stringDisp(4,str1[3]);
Delay_50us(5);
blinkContrl(0);
TimerInit();/*初始化定时器计数*/
while
(1)
{
keyContrl(scanIR());/*循迹程序*/
Distance();/*路程测量*/
metalCount();/*金属探测*/
}
}
/***********************************
函数名称:
Delay
功能描述:
微秒级延时函数
入口参数:
t值越大,延时时间越长
出口参数:
无
**********************************/
#include"delay.h"
voidDelay(Uint16i)
{
while(i--);
}
/*************************************
函数名称:
Delay_50us
功能描述:
12M晶振下50微秒级延时函数
入口参数:
t值越大,延时时间越长
出口参数:
无
**************************************/
voidDelay_50us(Uint16t)
{
Uchar8j;
for(;t>0;t--)
for(j=19;j>0;j--);
}
/**************************************
函数名称:
delay_50ms
功能描述:
12M晶振下50毫秒级延时函数
入口参数:
t值越大,延时时间越长
出口参数:
无
***************************************/
voidDelay_50ms(Uint16t)
{
Uchar8j;
for(;t>0;t--)
for(j=6245;j>0;j--);
}
/*******************************
函数名称:
sendByte
功能描述:
串行模式下写入函数
入口参数:
byte即指令或数据
出口参数:
无
********************************/
#include"lcd.h"
#include"delay.h"
voidsendByte(Uchar8byte)
{
Uchar8i;
for(i=0;i<8;i++)
{
CLK=0;
byte=byte<<1;/*左移一位,先发送高位的数据*/
SID=CY;/*移出的位给SID*/
CLK=1;/*上升沿触发发送*/
CLK=0;
}
}
/********************************
函数名称:
LCDWriteCom
功能描述:
给LCD12864写指令
入口参数:
com即command
出口参数:
无
*********************************/
voidLCDWriteCom(Uchar8com)
{
Delay_50us(20);//因为串行的不支持读操作,用个延时
sendByte(0xf8);//11111,RW(0),RS(0),0
sendByte(0xf0&com);
//高四位数据分两次发送,而且把数据放在高四位上发送
sendByte(0xf0&com<<4);//低四位(先执行<<)
}
/********************************
函数名称:
LCDWriteData
功能描述:
给LCD12864写数据
入口参数:
dat即data
出口参数:
无
**********************************/
voidLCDWriteData(Uchar8dat)
{
Delay_50us(20);
sendByte(0xfa);//11111,RW(0),RS
(1),0
sendByte(0xf0&dat);//高四位
sendByte(0xf0&dat<<4);//低四位(先执行<<)
}
/*******************************
函数名称:
LCDInit
功能描述:
给LCD12864初始化
入口参数:
无
出口参数:
无
********************************/
voidLCDInit(void)
{
Delay_50ms
(2);
LCDWriteCom(0x30);
Delay_50us(4);
LCDWriteCom(0x30);
Delay_50us
(2);
LCDWriteCom(0x0f);
LCDWriteCom(0x01);
Delay_50ms(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 智能 电动车