基于51单片机循迹小车的设计.docx
《基于51单片机循迹小车的设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机循迹小车的设计.docx(16页珍藏版)》请在冰豆网上搜索。
基于51单片机循迹小车的设计
基于51单片机寻迹小车的设计
摘要:
本寻迹小车采用铝合金为车架,STC89C52单片机为控制核心,加以直流电机、光电传感器和电源电路以及其他电路的设计思路。
系统由STC89C52通过I/O口控制小车的前进后退以及转向。
寻迹由ST188型光电对管完成。
关键词:
STC89C52 直流电机 光电传感器 自动寻迹电动车
一、绪论
1.1立项背景及课题研究的目的及意义
1.1.1立项背景
目前,在企业生产技术不断提高、对自动化技术要求不断加深的环境下,智能车辆以及在智能车辆基础上开发出来的产品已成为自动化物流运输、柔性生产组织等系统的关键设备。
世界上许多国家都在积极进行智能车辆的研究和开发设计。
移动机器人是机器人学中的一个重要分支,出现于20世纪06年代。
当时斯坦福研究院(SRI)的NilsNilssen和charlesRosen等人,在1966年至1972年中研制出了取名shakey的自主式移动机器人,目的是将人工智能技术应用在复杂环境下,完成机器人系统的自主推理、规划和控制。
从此,移动机器人从无到有,数量不断增多,智能车辆作为移动机器人的一个重要分支也得到越来越多的关注。
智能小车,是一个集环境感知、规划决策,自动行驶等功能于一体的综合系统,它集中地运用了计算机、传感、信息、通信、导航及白动控制等技术,是典型的高新技术综合体。
智能车辆也叫无人车辆,是一个集环境感知、规划决策和多等级辅助驾驶等功能于一体的综合系统。
它具有道路障碍自动识别、自动报警、自动制动、自动保持安全距离、车速和巡航控制等功能。
智能车辆的主要特点是在复杂的道路情况下,能自动地操纵和驾驶车辆绕开障碍物并沿着预定的道路(轨迹)行进。
智能车辆在原有车辆系统的基础上增加了一些智能化技术设备:
(1)计算机处理系统,主要完成对来自摄像机所获取的图像的预处理、增强、分析、识别等工作;
(2)摄像机,用来获得道路图像信息;
(3)传感器设备,车速传感器用来获得当前车速,障碍物传感器用来获得前方、侧方、后方障碍物等信息。
智能车辆技术按功能可分为三层,即智能感知/预警系统、车辆驾驶系统和全自动操作系统团。
上一层技术是下一层技术的基础。
三个层次具体如下:
(1)智能感知系统,利用各种传感器来获得车辆自身、车辆行驶的周围环境及驾驶员本身的状态信息,必要时发出预警信息。
主要包括碰撞预警系统和驾驶员状态监控系统。
碰撞预警系统可以给出前方碰撞警告、盲点警告、车道偏离警告、换道/并道警告、十字路口警告、行人检测与警告、后方碰撞警告等.驾驶员状态监控系统包括驾驶员打吨警告系统、驾驶员位置占有状态监测系统等。
(2)辅助驾驶系统,利用智能感知系统的信息进行决策规划,给驾驶员提出驾驶建议或部分地代替驾驶员进行车辆控制操作。
主要包括:
巡航控制、车辆跟踪系统、准确泊车系统及精确机动系统。
(3)车辆自动驾驶系统,这是智能车辆技术的最高层次,它由车载计算机全部自动地实现车辆操作功能。
目前,主要发展用于拥挤交通时低速自动驾驶系统、近距离车辆排队驾驶系统等。
这种智能小车的主要应用领域包括以下几个方面:
(1)军事侦察与环境探测
现代战争对军事侦察提出了更高的要求,世界各国普遍重视对军事侦察的建设,采取各种有效措施预防敌方的突然袭击,并广泛应用先进科学技术,不断研制多用途的侦察器材和探测设备,在车上装备摄像机、安全激光测距仪、夜视装置和卫星全球定位仪等设备,通过光缆操纵,完成侦察和监视敌情、情报收集、目标搜索和自主巡逻等任务,进一步扩大侦察的范围,提高侦察的时效性和准确性。
(2)探测危险与排除险情
在战场上或工程中,常常会遇到各种各样的意外。
这时,智能化探测小车就会发挥很好的作用。
战场上,可以使用智能车辆扫除路边炸弹、寻找和销毁地雷。
民用方面,可以探测化学泄漏物质,可以进行地铁灭火,以及在强烈地震发生后到废墟中寻找被埋人员等。
(3)安全检测受损评估
在工程建设领域,可对高速公路自动巡迹,进行道路质量检测和破坏分析检测;对水库堤坝、海岸护岸堤、江河大坝进行质量和安全性检测。
在制造领域,可用于工业管道中机械损伤,裂纹等缺陷的探寻,对输油和输气管线的泄漏和破损点的查找和定位等。
(4)智能家居
在家庭中,可以用智能小车进行家具、远程控制家中的家用电器,控制室温等等。
对这种小车的研究,将为未来环境探测术上的有力支持。
1.1.2课题研究的目的和意义
目前,国内外的许多大学及研究机构都在积极投入人力、财力研制开发针对特殊条件下的安全监测系统。
其中包括研究使用远程、无人的方法来进行实现,如机器人、远程监控等。
无线传输的发展使得测量变得相对简单而且使得处理数据的速度变得很快甚至可以达到实时处理”。
该智能小车可以作为机器人的典型代表。
它可以分为三大组成部分:
传感器检测部分、执行部分、CPU。
机器人要实现自动避障功能,还可以扩展循迹等功能,感知导引线和障碍物。
可以实现小车自动识别路线,选择正确的行进路线,并检测到障碍物自动躲避。
通过构建智能小车系统,培养设计并实现自动控制系统的能力。
在实践过程中,熟悉以单片机为核心控制芯片,设计小车的检测、驱动和显示等外围电路,采用智能控制算法实现小车的智能循迹。
灵活应用机电等相关学科的理论知识,联系实际电路设计的具体实现方法,达到理论与实践的统一。
在此过程中,加深对控制理论的理解和认识。
本设计就是在这样的背景下提出的,指导教师已经有充分的准备。
本题目结合科研项目而确定的设计类课题。
1.2设计任务与设计要求
1.2.1设计任务
1.熟悉51单片机集成开发环境,运用C语言编写工程文件;
2.熟练应用所选用单片机的内部结构、资源,以及软硬件调试设备的基本方法;
3.自行构建基于单片机的最小系统,完成相关硬件电路的设计实现;
4.了解电机、路面检测的原理和实现方法。
1.2.2设计要求
1.完成单片机最小系统设计;
2.完成外围应用电路(包括系统供电单元、运动控制单元、循迹检测单元)的设计和实现;
3.完成软件对硬件检测和调试工作;
4.查阅国内外的研究动态和发展前沿信息,阅读相关外文文献。
1.3设计思路
为了适应机电一体化的发展在汽车智能化方向的发展要求,提出简易智能小车的构想,目的在于:
通过独立设计并制作一辆具有简单智能化的简易小车,获得项目整体设计的能力,并掌握多通道多样化传感器综合控制的方法。
根据题目要求,确定如下方案:
在现有的玩具电动车的基础上,加装光电对管、传感器,实现对电动车位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的智能控制。
这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠、精度高,可以满足对系统的各项要求。
此项设计是在以俞学兰老师提供的小车的基础上,采用STC89C52单片机为控制核心,实现能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶。
二、总体方案设计
2.1模块方案比较与论证
根据设计要求,本系统主要由控制器模块、电源模块、寻迹传感器模块、直流电机及其驱动模块、电压比较模块等模块构成。
为了较好的实现各模块的功能,我们分别设计了几种方案并分别进行了论证。
2.1.1车体设计
方案1:
购买玩具电动车。
购买的玩具电动车具有组装完整的车架车轮、电机及其驱动电路。
但是一般的说来,玩具电动车具有如下缺点:
首先,这种玩具电动车由于装配紧凑,使得各种所需传感器的安装十分不方便。
其次,这种电动车一般都是前轮转向后轮驱动,不能适应该题目的方格地图,不能方便迅速的实现原地保持坐标转90度甚至180度的弯角。
再次,玩具电动车的电机多为玩具直流电机,力矩小,空载转速快,负载性能差,不易调速。
而且这种电动车一般都价格不菲。
因此我们放弃了此方案。
方案2:
自己制作电动车。
经过反复考虑论证,我们制定了左右四轮分别驱动的方案。
即左右轮分别用两个转速和力矩基本完全相同的直流电机进行驱动。
这样,当两个直流电机转向相反同时转速相同时就可以实现电动车的原地旋转,由此可以轻松的实现小车坐标不变的90度和180度的转弯。
在安装时我们保证两个驱动电机同轴。
当小车前进时,左右两组驱动轮形成了四点结构。
这种结构使得小车在前进时比较平稳,动力也比较足。
对于车架材料的选择,我们经过比较选择了铝合金。
用铝合金做的车架比塑料车架更加牢固,比铁制小车更轻便,美观。
综上考虑,我们选择了方案2。
2.1.2控制器模块设计
方案1:
采用可编程逻辑器件CPLD 作为控制器。
CPLD可以实现各种复杂的逻辑功能、规模大、密度高、体积小、稳定性高、IO资源丰富、易于进行功能扩展。
采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模控制系统的控制核心。
但本系统不需要复杂的逻辑功能,对数据的处理速度的要求也不是非常高。
且从使用及经济的角度考虑我们放弃了此方案。
方案2:
采用宏晶公司的STC89C52单片机,它是16位控制器,具有体积小、驱动能力高、集成度高、易扩展、可靠性高、功耗低、结构简单、中断处理能力强等特点。
处理速度高,尤其适用于语音处理和识别等领域。
本系统主要是进行寻迹运行的检测以及电机的控制。
使用STC89C52单片机,完全能够胜任,且价格低廉,使用方便。
从经济的角度考虑,我们选择了方案2。
2.1.3电源模块设计
由于本系统需要电池供电,我们考虑了如下几种方案为系统供电。
方案1:
采用10节1.5V干电池供电,电压达到15V,经7812稳压后给支流电机供电,然后将12V电压再次降压、稳压后给单片机系统和其他芯片供电。
但干电池电量有限,使用大量的干电池给系统调试带来很大的不便,因此,我们放弃了这种方案。
方案2:
采用3节4.2V可充电式锂电池串联共12.6V给直流电机供电,经过7812的电压变换后给直流电机供电,然后将12V电压再次降压、稳压后给单片机系统和其他芯片供电。
锂电池的电量比较足,并且可以充电,重复利用,因此,这种方案比较可行。
但锂电池的价格过于昂贵,使用锂电池会大大超出我们的预算,因此,我们放弃了这种方案。
方案3:
采用12V蓄电池为直流电机供电,将12V电压降压、稳压后给单片机系统和其他芯片供电。
蓄电池具有较强的电流驱动能力以及稳定的电压输出性能。
虽然蓄电池的体积过于庞大,在小型电动车上使用极为不方便,但由于我们的车体设计时留出了足够的空间,并且蓄电池的价格比较低。
因此我们选择了此方案。
综上考虑,我们选择了方案3。
2.1.4稳压模块设计
方案1:
采用两片7812将电压稳压至12V后给直流电机供电,然后采用一片7809将电压稳定至9V,最后经7805将电压稳至5V,给单片机系统和其他芯片供电,但7809和7805压降过大,使7809和7805消耗的功率过大,导致7809和7805发热量过大,因此,我们放弃了这种方案。
方案2:
采用两片7812将电压稳压至12V后给直流电机供电,然后采用2576将电压稳至5V。
2576的输出电流最大可至3A,完全满足系统要求。
综上考虑,我们选择了方案2。
2.1.5寻迹传感器模块设计
方案1:
用光敏电阻组成光敏探测器。
光敏电阻的阻值可以跟随周围环境光线的变化而变化。
当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。
因此光敏电阻在白线和黑线上方时,阻值会发生明显的变化。
将阻值的变化值经过比较器就可以输出高低电平。
但是这种方案受光照影响很大,不能够稳定的工作。
因此我们考虑其他更加稳定的方案。
方案2:
用3组光电发射管和接收管自己制作光电对管寻迹传感器。
红外发射管发出红外线,当发出的红外线照射到白色的平面后反射,若红外接收管能接收到反射回的光线则检测出白线继而输出低电平,若接收不到发射管发出的光线则检测出黑线继而输出高电平。
因此我们选择了方案2。
2.1.6电机模块设计
本系统为智能电动车,对于电动车来说,其驱动轮的驱动电机的选择就显得十分重要。
由于本实验要实现对路径的准确定位和精确测量,我们综合考虑了一下下列两种方案。
方案1:
采用步进电机作为该系统的驱动电机。
由于其转过的角度可以精确的定位,可以实现小车前进路程和位置的精确定位。
虽然采用步进电机有诸多优点,步进电机的输出力矩较低,随转速的升高而下降,且在较高转速时会急剧下降,其转速较低,不适用于小车等有一定速度要求的系统。
经综合比较考虑,我们放弃了此方案。
方案2:
采用直流减速电机。
直流减速电机转动力矩大,体积小,重量轻,装配简单,使用方便。
由于其内部由高速电动机提供原始动力,带动变速(减速)齿轮组,可以产生较大扭力。
我们所选用的直流电机减速比为1:
74,减速后电机的转速为100r/min。
我们的车轮直径为6cm,因此我们的小车的最大速度可以达到V=2πrv=2*3.14*0.03*100/60=0.314m/s能够较好的满足系统的要求,因此我们选择了此方案。
2.1.7电机驱动模块设计
方案1:
采用专用芯片L298N作为电机驱动芯片。
L298N是一个具有高电压大电流的全桥驱动芯片,它相应频率高,一片L298N可以分别控制两个直流电机,而且还带有控制使能端。
用该芯片作为电机驱动,操作方便,稳定性好,性能优良。
方案2:
对于直流电机用分立元件构成驱动电路。
由分立元件构成电机驱动电路,结构简单,价格低廉,在实际应用中应用广泛。
但是这种电路工作性能不够稳定。
因此我们选用了方案1。
2.2最终选取方案
经过反复论证,我们最终确定了如下方案:
(1)车体采用铝合金车架手工制作。
(2)采用STC89C52单片机作为主控制器。
(3)采用蓄电池经7812稳压后为直流电机供电,将12V电压经2576降压、稳压后为单片机系统和其他芯片供电。
(4)采用光电对管进行寻迹。
(5)采用L298N作为直流电机的驱动芯片。
系统的结构框图如图
(1)所示。
图
(1)
三、硬件实现及单元电路设计
3.1微控制器模块
我们在开发过程中使用开发版,方便程序的调试和整机的测试,待系统调试完成后,将单片机从开发板上取下,安装在小车系统板的单片机座中,由于本次设计要求中,小车需要完成的任务比较简单,因此我们只在小车系统板的单片机系统中保留了晶振和复位电路。
如图
(2)所示。
图
(2)
3.2光电对管电路
可调电阻R7可以调节比较器的门限电压,经示波器观察,输出波形相当规则,可以直接够单片机查询使用。
而且经试验验证给此电路供电的电池的压降较小。
因此我们选择此电路作为我们的传感器检测与调理电路。
如图(3)所示。
图(3)
考虑到设计要求,本次设计仅用3对光电传感器就能完成设计要求。
将3对光电传感器并排安装在车头位置,中间一对传感器用来校正小车的寻迹路线,保证小车运行的直线性。
两侧的传感器用来检测小车过线,可以实现小车的转弯。
3.3电机驱动电路的设计
我们采用电机驱动芯片L298N作为电机驱动,驱动电路的设计如图(4)所示。
图(4)
L298N的5、7、10、12四个引脚接到单片机上,通过对单片机的编程就可以实现两个直流电机的PWM调速以及正反转等功能。
3.4电源模块设计
3.4.112V稳压电源设计
如图(5)所示。
图(5)
3.4.25V稳压电源设计
如图(6)所示。
图(6)
3.5原理图整合图
如图(7)所示。
图(7)
3.6整合电路板(PCB)图
3.6.1顶层图
如图(8)所示。
图(8)
3.6.2底层图
如图(9)所示。
图(9)
3.6.3整体图
如图(10)所示。
图(10)
四、软件实现
4.1主程序流程图
我们所设计的软件的主程序流程图如图(11)所示。
图(11)
4.2软件实现主程序(C语言)
我们所设计的软件的主程序源代码:
/*小车在白色地面沿黑色路线行走
单片机晶振为12MHz
探头检测到黑色经过电压比较输出1
探头检测不到黑色经过电压比较输出0*/
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharx3,x4;
sbitP20=P3^6;//L298N使能端ENA
sbitP21=P3^7;//L298N使能端ENB
sbitP22=P1^3;//左电机A1
sbitP23=P1^4;//左电机A2
sbitP24=P1^5;//右电机B1
sbitP25=P1^6;//右电机B2
sbitP10=P1^0;//左边探头
sbitP11=P1^1;//中间探头
sbitP12=P1^2;//右边探头
voidds(ucharx1,ucharx2)
{
TMOD=0X01;//定时器0,工作方式1
TH0=x1;//赋高8位初值
TL0=x2;//赋低8位初值
x3=x1;
x4=x2;//保存计数初值
EA=1;ET0=1;//开总中断,开定时器0中断
TR0=1;//定时器0开始计数
}
voidxunji()
{
if(P10==1&&P11==1&&P12==1)//左、中、右探头都检测到黑色
{
P22=1;//停止
P23=1;
P24=1;
P25=1;
}
if((P10==0&&P11==0&&P12==0)||(P10==0&&P11==1&&P12==0))
//全检测不到黑色或中间探头检测到黑色
{
ds(0xff,0xff);//计数初值65535
}
if((P10==1&&P11==0&&P12==0)||(P10==1&&P11==1&&P12==0))
//左边探头检测到黑线或左、中探头检测到黑线
{
ds(0xff,0xe1);//计数初值65505
}
if((P10==0&&P11==0&&P12==1)||(P10==0&&P11==1&&P12==1))
//右边探头检测到黑线或右、中探头检测到黑线
{
ds(0xff,0xe1);//计数初值65505
}
}
voidmain()
{
while
(1)
{
xunji();
P20=1;
P21=1;//ENA和ENB同时为高电平时,L298N芯片正常工作
P22=1;
P23=1;
P24=1;
P25=1;
}
}
voidtime0()interrupt1
{
TH0=x3;
TL0=x4;//重新赋计数初值
if((P10==0&&P11==0&&P12==0)||(P10==0&&P11==1&&P12==0))
//全检测不到黑色或中间探头检测到黑色
{
P23=0;//全速前进
P25=0;
}
if((P10==1&&P11==0&&P12==0)||(P10==1&&P11==1&&P12==0))
//延时30us左边探头检测到黑线或左、中探头检测到黑线
{
P23=0;//小车右拐
P25=1;
}
if((P10==0&&P11==0&&P12==1)||(P10==0&&P11==1&&P12==1))
//延时30us右边探头检测到黑线或右、中探头检测到黑线
{
P23=1;//小车左拐
P25=0;
}
}
五、结论
小车能够较好的完成实验的基本要求,寻迹误差较小。
通过这次设计,我们熟练掌握了Proteus、DXP、KeiL51等软件的使用方法,并了解了更多关于单片机的知识。
本系统基本能够满足设计要求,能够较快较平稳的是小车沿引导线行驶,但由于经验能力有限,该系统还存在着许多不尽人意的地方有待于进一步的完善与改进。
六、结束语
此方案选择的器件比较简单,实际中也很容易实现。
经过多次测试,结果表明在一定的弧度范围内,小车能够沿着黑线轨迹行进,达到了预期的目标。
不足之处,由于小车采用直流电机,其速度控制不够精确和稳定,导致小车循迹时行走不是很流畅;其次,由于车身比较重,导致小车拐弯时候比较吃力,有时候会卡死不动。
我们的寻迹小车在完成设计要求的前提下,充分考虑了外观、成本等问题。
在性能和价格之间做了比较好的平衡。
由于设计要求并不复杂,我们没有在电路中增加冗余的功能,但是我们保留了各种硬件接口和软件子程序接口,方便以后的扩展和进一步的开发。
另外,我们的车体底盘经过充分的论证和设计,兼顾了美观、廉价、稳固、可靠等各方面的因素,具有较高的稳定性和推广意义。
通过两周的努力,即将完成设计,当然由于本组精力和时间有限,本设计中或多或少会存在一些缺点,所设计的软硬件难免会存在一些不足,还恳请各位老师和同学给予批评和指正。
七、参考文献
1.周坚。
单片机轻松入门(第二版)。
北京:
北京航空航天大学出版社,2003
2.马忠梅、张凯等。
单片机的C语言应用程序设计(第四版)。
北京:
北京航空航天大学出版社,2007
3.郭天祥。
十天学会51单片机。
视频资料,2007
4.XX。
XX文库