51单片机循迹小车项目报告.docx
《51单片机循迹小车项目报告.docx》由会员分享,可在线阅读,更多相关《51单片机循迹小车项目报告.docx(14页珍藏版)》请在冰豆网上搜索。
![51单片机循迹小车项目报告.docx](https://file1.bdocx.com/fileroot1/2023-2/9/67fde6b0-f040-4bb9-8a23-a024737c8b79/67fde6b0-f040-4bb9-8a23-a024737c8b791.gif)
51单片机循迹小车项目报告
宜宾职业技术学院
《单片机系统设计》
项目设计报告
项目设计题目:
智能寻迹小车
系部:
电子信息与控制工程系
班级:
电子XXXX班
组号:
第四组
小组成员:
XXX
指导教师:
XXX
2017年10月10日
一、引言……………………………………………….3
二、方案论证………………………………………….4
三、小车车体设计…………………………………….7
四、硬件系统设计…………………………………….8
1、单片机最小系统………………………………….8
2、循迹电路…………………………………………..9
3、电机驱动电路……………………………………..9
五、软件系统设计…………………………………….12
六、系统的制作、仿真与调试……………………….14
七、总结……………………………………………….15
一、引言
当今世界,传感器技术和自动控制技术正在飞速发展,机械、电气和电子信息已经不再明显分家,自动控制在工业领域中的地位已经越来越重要,“智能”这个词也已经成为了热门词汇。
现在国外的自动控制和传感器技术已经达到了很高的水平,特别是日本,比如日本本田制作的机器人,其仿人双足行走已经做得十分逼真,而且具有一定的学习能力,还据说其智商已达到6岁儿童的水平。
作为机械行业的代表产品—汽车,其与电子信息产业的融合速度也显着提高,呈现出两个明显的特点:
一是电子装置占汽车整车(特别是轿车)的价值量比例逐步提高,汽车将由以机械产品为主向高级的机电一体化方向发展,汽车电子产业也很有可能成为依托整车制造业和用车提升配置而快速成为新的增长点;二是汽车开始向电子化、多媒体化和智能化方向发展,使其不仅作为一种代步工具、同时能具有交通、娱乐、办公和通讯等多种功能。
无容置疑,机电一体化人才的培养不论是在国外还是国内,都开始重视起来,主要表现在大学生的各种大型的创新比赛,比如:
亚洲广播电视联盟亚太地区机器人大赛(ABUROBCON)、全国大学生“飞思卡尔”杯智能汽车竞赛等众多重要竞赛都能很好的培养大学生对于机电一体化的兴趣与强化机电一体化的相关知识。
但很现实的状况是,国内不论是在机械还是电气领域,与国外的差距还是很明显的,所以作为电子专业学生,必须加倍努力,为逐步赶上国外先进水平并超过之而努力。
为了适应机电一体化的发展在汽车智能化方向的发展要求,提出简易智能小车的构想,目的在于:
通过独立设计并制作一辆具有简单智能化的简易小车,获得项目整体设计的能力,并掌握多通道多样化传感器综合控制的方法。
所以立“智能循迹小车”一题作为尝试。
此项设计是在以小为基础,采用AT89C52单片机作为控制核心,实现能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶。
二、方案论证
1、控制器模块
方案一:
选用AVR单片机Atmega128L,Atmega128L是高性能、低功耗的AVR?
8位微处理器,64引脚。
采用先进的RISC结构,具有133条指令,大多数可以在一个时钟周期内完成。
它具有两个独立的预分频器和比较器功能的8位定时器/计数器和两个具有预分频器、比较功能和捕捉功能的16位定时器/计数器及具有独立预分频器的实时时钟计数器。
片内带有模拟比较器。
具有上电复位以及可编程的掉电检测功能。
其片内资源丰富,具有:
8个外部中断,4个定时计数器,53个I/O口,可解除I/O口资源不足的困难。
其引脚大多数都有具有第二功能,功能强大。
.
方案二:
采用AT89S52单片机,AT89S52单片机是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
AT89S52有5个中断源,和3个定时计数器。
方案三:
采用FPGA(现场可编辑门列阵)作为系统控制器。
FPGA可以实现各种复杂的逻辑功能,规模大,集成度高,体积小,稳定性好,并且可利用EDA软件进行仿真和调试。
FPGA采用并行工作方式,提高了系统的处理速度,常用于大规模实时性要求较高的系统。
方案比较:
由三种方案可以看出,以Atmega128L核心可以方便地实现对各个部分的控制和外接,而AT89S52而需要外扩大量的I/O口才能满足需要,而FPGA的高速处理能力得不到充分发挥且价格较贵,所以我们选择方案一。
2.电机驱动模块
采用功率三极管作为功率放大器的输出控制直流电机。
线性型驱动的电路结构和原理简单,加速能力强,采用由达林顿管组成的H型桥式电路。
用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。
这种电路由于工作在管子的饱和截止模式下,效率非常高,H型桥式电路保证了简单的实现转速和方向的控制,电子管的开关速度很快,稳定性也极强,是一种广泛采用的PWM调速技术。
现市面上有很多此种芯片,我选用了L293D。
这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。
因此决定采用使用功率三极管作为功率放大器的输出控制直流电机。
3.循迹模块
方案一采用光敏元件。
该方案缺点:
易受到外界光源的干扰,有时甚至检测不到黑线,主要是因为可见光的反射效果跟地表的平坦程度、地表材料的反射情况均对检测效果产生直接影响。
克服此缺点的方法:
采用超高亮度的发光二极管能降低一定的干扰,但这又会增加检测系统的功耗。
方案二脉冲调制的反射式红外发射接收器。
由于采用带有交流分量的调制信号,则可大幅度减少外界的干扰;此外红外发射接收管的工作电流取决于平均电流,如果采用占空比小的调制信号,在平均电流不变的情况下,瞬时电流很大(50~100mA)(ST-188允许的最大输入电流为50mA),则大大提高了信噪比。
此种测试方案反应速度大约在5us。
方案三采用多路阵列式光敏电阻组成的光电探测器。
方案四采用CCD传感器,此种方法虽然能对路面信息进行准确完备的反应,但它存在信息处理满,实时性差等缺点,而且此次比赛不允许用其它处理器,因此若采用CCD传感器,无疑会加重单片机的处理负担,不利于实现更好的控制策略(控制策略才是此次比赛的核心)。
根据以上分析我们采用方案1,因为红外对管太过于灵敏了,不适合。
4.电源模块
方案一采用4节1.5V干电池供电,电压达到6V,经7805稳压后给单片机、电机和其他芯片供电。
方案二采用市场上流行的6V蓄电池经过7805,稳压后给单片机系统、直流电机和其他芯片供电。
因为干电池比较简便,所以我们选择了方案一。
三、小车车体设计
四、硬件系统设计
1、单片机最小系统
小车采用atmel公司的AT89C52单片机作为控制芯片,图1是其最小系统电路。
主要包括:
时钟电路、电源电路、复位电路。
其中各个部分的功能如下:
1、时钟电路:
给单片机提供一个外接的16MHz的石英晶振。
2、电源电路:
给单片机提供5V电源。
3、复位电路:
在电压达到正常值时给单片机一个复位信号。
图1单片机最小系统原理图
2、循迹电路
光电寻线方案一般由多对红外收发管组成,通过检测接收到的反射光强,判断黑白线。
原理图由红外对管和电压比较器两部分组成,红外对管输出的模拟电压通过电压比较器转换成数字电平输出到单片机。
图2循迹电路原理图
3、电机驱动电路
电机驱动芯片L298N是SGS公司的产品,内部包含4通道逻辑驱动电路。
是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。
其引脚排列如图1中U4所示,1脚和15脚可单独引出连接电流采样电阻器,形成电流传感信号。
L298可驱动2个电机,OUT1、OUT2和OUT3、OUT4之间分别接2个电动机。
5、7、10、12脚接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机的停转。
也利用单片机产生PWM信号接到ENA,ENB端子,对电机的转速进行调节。
L298N的逻辑功能:
表1SHARPGP2D12实物图
外形及封装:
图3L298N实物图
L298N电路原理图:
由于一片L298N可以直接驱动两个电机,但是为了加大驱动力,我们采用两路并联的方式来驱动电机。
图3.3L298N电路图
五、系统软件设计
小车循迹规则:
若小车偏左的时候,车轮将向右偏转;若小车偏右,车轮将向左偏转;若没有偏移,小车将继续向前;若小车完全偏离黑色轨迹,小车后退以寻找黑色轨迹。
小车程序:
#include"reg52.h"
#defineuintunsignedint
sbitIN1=P1^3;
sbitIN2=P1^4;
sbitIN3=P1^5;
voiddelay(uintb)
{
uintc,d;
for(c=b;c>0;c--)
for(d=110;d>0;d--);
}
voidcommand(uinta)
{
switch(a)
{
case0:
P2=0x9f;//?
°?
?
delay(10);
break;
case1:
P2=0x5f;//×ó×a
delay(10);
break;
case2:
P2=0xaf;//óò×a
delay(10);
break;
case3:
P2=0xff;//�
1
delay(10);
break;
}
}
voiddecide()
{
while
(1)
{
if(IN1==1&&IN2==0&&IN3==1)
{
command(0);
command(3);
}
elseif(IN1==1&&IN2==1&&IN3==0)
{
command
(1);
command(3);
}
elseif(IN1==0&&IN2==1&&IN3==1)
{
command
(2);
command(3);
}
elseif(IN1==1&&IN2==1&&IN3==1)
{
command(0);
command(3);
}
else
{
command(3);
}
}
}
voidmain()
{
decide();
}
六、统的制作、仿真与调试:
调试方法步骤
1、在keil软件上编写好程序无错误后,生成.hex文件,并将它下载到单片机内
2、将按装好的小车放到跑道上运行
3、观察小车在跑道上的运行情况
4、根据小车的错误信息再次修改程序、检查电路
主要问题及解决方法记录
1、小车前进时左右两边轮子的转动方向不一致。
通过修改程序中P2的参数解决了问题。
2、扫描电路的灵敏度过高或过低都影响小车的正常运行。
通过调节扫描电路的电位器来达到要求。
3、小车在到达终点时不能正常停止。
通过修改程序中的STOP所代表的数据,可以是小车在到达终点是停止。
4、小车的声光提示没有,还有就是有之后出现左右相反的情况。
这两种情况都是程序的问题,没有声光是IO口给的数据时高电平,改为低时正常。
相反这是改变对应数据,把它们反过来就好了。
七、总结
根据本次设计要求,我们小组系统地阅读了大量的资料,并认真分析了设计课题的需求,还系统学习了51系列单片机的工作原理及其使用方法,并独自设计智能小车的整个项目。
虽然条件艰苦,但经过不懈钻研和努力,购买到了所有所需的元器件,并系
统的进行了多项试验,最终做出了整个小车的硬件系统,然后结合课题任务和小车硬件进行了程序的编制,本系统能够基本满足设计要求,能够较快较平稳的是小车沿引导线行驶,但由于经验能力有限,该系统还存在着许多不尽人意的地方有待于进一步的完善与改进。
通过本次课题设计,不仅是对我们课本所学知识的考查,更是对我的自学能力和收集资料能力以及动手能力的考验。
本次毕业设计使我们对一个项目的整体设计有了初步认识,还认识了几种传感器,并能独立设计出其接口电路,再有对电路板的制作有了一定的了解,并学会了使用Protel设计电路。
本次毕业设计使我们意识到了实验的重要性,在硬件制作和软件调试的过程中,出现了很多问题,最终都是通过实验的方法来解决的。
还有以前对程序只是一个很模糊的概念,通过这次的课题设计使我对程序完全有了一个新的认识,并能使用C熟练的进行编程了。
通过本次课题设计,极大的锻炼了我们的思考和分析问题的能力,并对单片机有了一个更深的认识。
总之,在课题设计的过程中,无论是对于学习方法还是理论知识,我们都有了新的认识,受益匪浅,这将激励我们在今后再接再厉,不断完善自己的理论知识,提高实践运作能力。