基于单片机的智能寻迹小车控制系统.docx
《基于单片机的智能寻迹小车控制系统.docx》由会员分享,可在线阅读,更多相关《基于单片机的智能寻迹小车控制系统.docx(19页珍藏版)》请在冰豆网上搜索。
基于单片机的智能寻迹小车控制系统
东北石油大学
课程设计
课程单片机课程设计
题目基于单片机的智能循迹小车控制系统
院系电气信息工程学院测控技术与仪器系
专业班级
学生姓名
学生学号
指导教师
2013年7月8日
东北石油大学课程设计任务书
课程单片机课程设计
题目基于单片机的智能循迹小车控制系统
专业姓名学号
一、任务
以AT89C51单片机为控制核心,利用三路红外传感器对路面上的黑色引导线进行检测。
二、设计要求
[1]当三路传感器其中一路检测到路面上的黑线后,该路红外传感器处理电路输出一个低电平信号。
[2]操作过程见以下表格:
电机A
电机B
传感器“左”
转动
停止
传感器“中”
转动
转动
传感器“右”
停止
转动
[3]基本电路包括:
单片机最小系统、电机驱动电路等;
[4]提交设计报告、电路图及程序源码。
三、参考资料
[1]张毅刚,单片机原理及应用[J],北京:
高等教育出版社,2003.
[2]黄贤武,郑莜霞,传感器原理与应用[J],成都:
电子科技大学出版社,2004.
[3]周润景,蔡雨恬,PROTEUS入门实用教程[M],北京:
机械工业出版社,2011.
[4]楼然苗,李光飞,单片机课程设计指导[J],北京:
北京航空航天大学出版社2007.
[5]万光毅.单片机实验与实践教程[M].北京:
北京航空航天大学出版社.2005.1.
[6]朱清慧,Proteus电子技术虚拟实验室[M],北京:
中国水利水电出版社,2010.
完成期限2013.7.1-2013.7.10
指导教师
专业负责人
2013年6月29日
第1章绪论
智能小车,是一个集环境感知、规划决策、自动行驶和多等级辅助驾驶等功能于一体的综合系统,集中地运用了计算机、传感、信息、通信、导航及白动控制等技术,是典型的高新技术综合体。
它具有道路障碍自动识别、自动报警、自动制动、自动保持安全距离、车速和巡航控制等功能。
智能车辆的主要特点是在复杂的道路情况下,能自动地操纵和驾驶车辆绕开障碍物并沿着预定的道路(轨迹)行进。
1.1AT89C51单片机的概述
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51提供以下标准功能:
4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
1.2关于路线轨迹检测
循迹过程由红外传感器完成。
红外传感器多对红外收发管组成,通过检测接收到的反射光强,判断黑白线。
红外发射管发出红外线,当发出的红外线照射到白色的平面后反射,若红外接收管能接收到反射回的光线则检测出白线继而输出低电平,若接收不到发射管发出的光线则检测出黑线继而输出高电平。
红外对管输出的模拟电压通过电压比较器转换成数字电平输出到单片机。
该智能车采用3组红外传感器对赛道进行道路检测,单片机根据采集到的信号的不同状态判断小车当前状态,通过电机驱动芯片L298N发出控制命令,控制电机的工作状态以实现对小车姿态的控制。
1.3本设计任务
智能作为现代的新发明,是以后的发展方向,它可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等用途。
本设计任务要求设计一个小车,以AT89C51单片机为控制核心,通过红外传感器自动识别路面上的黑白线,并把结果转换为电信号传到单片机中,由单片机对电信号进行分析计算,控制电机做出正确的反应,并沿着黑线轨迹行驶。
第2章总体方案论证与设计
本系统采用单片机AT89C51为智能寻迹小车的控制核心,系统主要包括电源模块、单片机系统模块、自动循迹模块、电动机驱动模块等。
下面对各模块的设计逐一进行论证比较。
2.1电源模块
由于本系统需要电池供电,我们考虑了如下几种方案为系统供电。
方案一:
采用10节1.5V干电池供电,电压达到15V,经7812稳压后给支流电机供电,然后将12V电压再次降压、稳压后给单片机系统和其他芯片供电。
但干电池电量有限,使用大量的干电池给系统调试带来很大的不便。
方案二:
采用3节4.2V可充电式锂电池串联共12.6V给直流电机供电,经过7812的电压变换后给直流电机供电,然后将12V电压再次降压、稳压后给单片机系统和其他芯片供电。
锂电池的电量比较足,并且可以充电,重复利用,因此,这种方案比较可行。
但锂电池的价格过于昂贵,使用锂电池会大大超出我们的预算。
方案三:
采用12V蓄电池为直流电机供电,将12V电压降压、稳压后给单片机系统和其他芯片供电。
蓄电池具有较强的电流驱动能力以及稳定的电压输出性能。
虽然蓄电池的体积过于庞大,在小型电动车上使用极为不方便,但由于我们的车体设计时留出了足够的空间,并且蓄电池的价格比较低。
比较以上三种方案,方案三具有更大的有点,因此,我们选择了第三种方案。
2.2单片机系统模块
方案一:
采用可编程逻辑器件CPLD 作为控制器。
CPLD可以实现各种复杂的逻辑功能、规模大、密度高、体积小、稳定性高、IO资源丰富、易于进行功能扩展。
采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模控制系统的控制核心。
但本系统不需要复杂的逻辑功能,对数据的处理速度的要求也不是非常高。
且从使用及经济的角度考虑我们放弃了此方案。
方案二:
采用宏晶公司的STC89C52单片机,它是16位控制器,具有体积小、驱动能力高、集成度高、易扩展、可靠性高、功耗低、结构简单、中断处理能力强等特点。
处理速度高,尤其适用于语音处理和识别等领域。
本系统主要是进行寻迹运行的检测以及电机的控制。
使用STC89C52单片机,完全能够胜任,且价格低廉,使用方便。
从经济的角度考虑,我们选择了方案二。
2.3自动循迹模块
方案一:
用光敏电阻组成光敏探测器。
光敏电阻的阻值可以跟随周围环境光线的变化而变化。
当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。
因此光敏电阻在白线和黑线上方时,阻值会发生明显的变化。
将阻值的变化值经过比较器就可以输出高低电平。
但是这种方案受光照影响很大,不能够稳定的工作。
因此我们考虑其他更加稳定的方案。
方案二:
红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,用3组光电发射管和接收管自己制作光电对管寻迹传感器。
红外发射管发出红外线,当发出的红外线照射到白色的平面后反射,若红外接收管能接收到反射回的光线则检测出白线继而输出低电平,若接收不到发射管发出的光线则检测出黑线继而输出高电平。
单片机就是通过接收到的高低电平为依据来确定黑线的位置和小车的行走路线。
对于发射和接收红外线的红外探头,可以自己制作或直接采用集成式红外探头。
经测试,此种方法简单可靠。
经反复对比后,采用方案二。
2.4电动机驱动模块
方案一:
采用传统的功率三极管作为功率放大器的输出控制直流电机。
线性型驱动的电路结构和原理简单,成本低,加速能力强,但功率损耗大,特别是低速大转距运行时,通过电阻R的电流大,发热厉害,损耗大。
方案二:
采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整.此方案的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,寿命较短,可靠性不高。
方案三:
采用专用芯片L298N作为电机驱动芯片。
L298N是一个具有高电压大电流的全桥驱动芯片,它相应频率高,一片L298N可以分别控制两个直流电机,而且还带有控制使能端。
用该芯片作为电机驱动,操作方便,稳定性好,性能优良。
且由L298N结合单片机可实现对小车速度的精确控制。
这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。
对以上三个方案进行比较,出于能耗、性能和使用寿命等方面的考虑,我们选择第三种方案,使用L298N芯片控制直流电机。
2.5总体硬件组成框图
图2-1总体硬件组成框图
系统框图如图2-1所示,系统主要由四大模块组成即电源模块、单片机系统模块、自动循迹模块、电动机驱动模块。
第3章系统硬件设计
为使该模块化智能循迹小车控制系统具有更加方便和灵活性,我们对系统的硬件做了精心设计。
硬件电路包括稳压电源、单片机最小系统、电机驱动电路、传感器电路等四大模块。
3.1单片机最小系统
在本次设计任务中,我们使用AT89C51单片机作为智能系统的控制核心。
AT89C51单片机拥有4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
3.1.1AT89C51单片机的引脚
AT89C51单片机共有四十个引脚(如图3.1所示),其中:
Vcc、Vss分别为电源引脚;PSEN、ASE、EA、RESET(即RST)为控制引脚;P0、P1、P2和P3为4个8位I/O口外部引脚。
3.2.2单片机最小系统
本系统采用AT89S51单片机作为中央处理器。
其主要任务是在小车行走过程中不断读取传感器采集到的数据,将得到的数据进行处理后,作出反应控制小车按照指定的路线行驶。
由于单片机完成的工作较为简单,所以在最小系统中,我们只保留了晶振和复位电路。
单片机最小系统的电路如图3.2所示。
图3.1AT89C51单片机引脚图
图3.2单片机最小系统原理图
3.2电机驱动电路
我们采用电机驱动芯片L298N作为电机驱动。
3.2.1L298芯片的概述
电机驱动芯片L298N是SGS公司的产品,内部包含4通道逻辑驱动电路。
是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。
其引脚排列如图3.3所示,1脚和15脚可单独引出连接电流采样电阻器,形成电流传感信号。
L298可驱动2个电机,OUT1、OUT2和OUT3、OUT4之间分别接2个电动机。
5、7、10、12脚接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机的停转。
也利用单片机产生PWM信号接到ENA,ENB端子,对电机的转速进行调节。
L298N的5、7、10、12四个引脚接到单片机上,通过对单片机的编程就可以实现两个直流电机的PWM调速以及正反转等功能;2、3引脚和13、14引脚分别连接一个电机,可以同时控制两个电机的工作方式。
图3.3L298N芯片引脚图
3.2.2电机驱动电路
驱动电路的设计如图3.4所示。
图3.4电机驱动电路原理图
3.3传感器电路设计
光电寻线方案一般由多对红外收发管组成,通过检测接收到的反射光强,判断黑白线。
原理图由红外对管和电压比较器两部分组成,红外对管输出的模拟电压通过电压比较器转换成数字电平输出到单片机。
本次设计任务中,我们用3组红外收发管对路面进行检测,采用LM324对红外收发管传回来的信号进行分析比较,并把比较结果送入单片机中。
传感器电路图如图3.5所示。
图3.5传感器连接电路图
第4章系统软件设计
软件是该智能寻迹小车控制系统的重要组成部分,在系统的软件设计中我们也才用了模块化设计,将系统的各部分功能编写成子模块的形式,这样增强了系统软件的可读性和可移植性。
4.1主程序设计
系统的主程序即小车的控制系统,小车按照检测结果行进。
图4.1主程序流程图
4.2赛道检测程序设计
由三路红外收发管对赛道进行检测,当检测到黑线时发出一个低电平信号。
图4.2循迹系统流程图
第5章系统调试与测试结果分析
5.1使用的设备及软件
计算机
仿真系统Proteus
单片机仿真系统KeilC
5.2系统调试
根据系统设计方案,本系统的调试共分为三大部分:
硬件调试,软件调试和软硬件联调。
由于在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试:
稳压电源模块、单片机系统模块、电机控制模块、自动循迹模块的调试等,最后将各模块组合后进行整体测试。
5.2.1硬件调试
分别对稳压电源模块、单片机系统模块、电机控制模块、自动循迹模块四个模块的功能进行调试,主要调试各模块能否实现指定的功能。
5.2.2软件调试
软件调试采用单片机仿真器KeilC及计算机,将编好的程序进行调试,主要是检查语法及语句错误,如果有错误则改正后重新调试,直到程序完全正确为止。
5.2.3硬件软件联调
将调试好的硬件和软件程序进行联调,主要调试系统的实现功能。
若不能实现任务功能,则对硬件系统和软件系统修正,直到实现功能为止。
5.3测试结果
此次系统设计结果较好,小车正常行进,路面上没有黑线或前方有黑线时,小车继续前进,当检测到路面上的黑线(即按下按键)在左方或者右方时,该侧电机反转,另一侧电机停止,小车向该方向拐弯。
结论
智能循迹小车利用AT89C51为控制核心,利用红外收发管发射和接受红外线的原理进行自主循迹,并通过L289芯片控制两组直流电机,组成智能寻迹小车的控制系统,最终实现了智能循迹功能。
在硬件设计中,开始一个模块设计之前和完成一个模块设计之后都要进行测试。
在动手之前务必查清楚所用元件资料,在稍微复杂一点的电路设计之前可以先搭建其中的一部分电路,测试一下是否正常,然后再进行总的电路设计。
这样循序渐进的进行设计可以节省时间保证电路的正确性。
同样,程序方面的设计也是如此。
从最简单的程序开始,慢慢的调试和扩充。
电路设计之后的测试也同样重要,特别是和程序有关的外围检测、驱动等模块,如果不排除硬件故障在调试的时候很难分清到底是硬件还是软件的问题,因此硬件设计完成之后首先需要测试硬件能够正常工作,这样在遇到问题时才能够排除硬件的干扰找出问题的所在。
在经过多次调试和修改之后,最终实现了小车的智能循迹功能,在行进过程中,检测到路面上的黑线后,可以自主的做出反应,想黑线延伸的方向转弯,沿着路面上的黑线行驶。
参考文献
[1]张毅刚,单片机原理及应用[J],北京:
高等教育出版社,2003.
[2]黄贤武,郑莜霞,传感器原理与应用[J],成都:
电子科技大学出版社,2004.
[3]周润景,蔡雨恬,PROTEUS入门实用教程[M],北京:
机械工业出版社,2011.
[4]楼然苗,李光飞,单片机课程设计指导[J],北京:
北京航空航天大学出版社2007.
[5]万光毅.单片机实验与实践教程[M].北京:
北京航空航天大学出版社.2005.1.
[6]马忠梅.单片机的C语言应用程序设计[M].北京:
北京航空航天大学出版社.2006.
[7]杜树春,基于Proteus和KeilC51的单片机设计与仿真[J],北京:
电子工业出版社,2010.2.
[8]朱清慧,Proteus电子技术虚拟实验室[M],北京:
中国水利水电出版社,2010.
附录1程序
#include
#defineucharunsignedchar
#defineuintunsignedchar
ucharIN,OUT;
ucharsu;
sbitL=P3^2;
sbitR=P3^3;
voiddelay(uintz)
{
uchari,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
voidinit()
{
su=0;
TMOD=0x01;
EA=1;
ET0=1;
TH0=(65536-50)/256;
TL0=(65536-50)%256;
TR0=1;
}
voidjianceIN()
{
IN=P1&0x07;
switch(IN)
{
case0x00:
OUT=0xf9;break;
case0x01:
OUT=0xe1;break;
case0x02:
OUT=0xf9;break;
case0x03:
OUT=0xe1;break;
case0x04:
OUT=0xd8;break;
case0x05:
OUT=0xf6;break;
case0x06:
OUT=0xd8;break;
case0x07:
OUT=0xf0;break;
default:
OUT=0xf0;break;
}
}
voidyunxing()
{
P2=OUT;
delay(8);
}
voidmain()
{
init();
while
(1)
{
if(su==3)
{
su=0;
P2=0xf0;
delay(30);
}
while(L==0)
{
P2=0xf5;
}
while(R==0)
{
P2=0xfa;
}
jianceIN();
yunxing();
}
}
voidjiansu()interrupt1
{
TH0=(65536-50)/256;
TL0=(65536-50)%256;
su++;
}
附录2仿真效果图
东北石油大学课程设计成绩评价表
课程名称
单片机课程设计
题目名称
学生姓名
学号
指导教
师姓名
职称
序号
评价项目
指标
满分
评分
1
工作量、工作态度和出勤率
按期圆满的完成了规定的任务,难易程度和工作量符合教学要求,工作努力,遵守纪律,出勤率高,工作作风严谨,善于与他人合作。
20
2
课程设计质量
课程设计选题合理,计算过程简练准确,分析问题思路清晰,结构严谨,文理通顺,撰写规范,图表完备正确。
45
3
创新
工作中有创新意识,对前人工作有一些改进或有一定应用价值。
5
4
答辩
能正确回答指导教师所提出的问题。
30
总分
评语:
指导教师:
年月日