资讯详情

基于STC89C52单片机的智能循迹小车设计

摘要:智能跟踪车是在控制系统的作用下,能够准确沿既定路线自动行驶的系统。本设计采用STC89C52单片机主控芯片,结合直流电机、传感器、电源电路等外围电路,设计实现了沿黑色轨道行走的智能跟踪车辆,其中红外光电传感器完成了车辆跟踪功能,车辆的驱动功能由L293D完成驱动电路。

关键词:智能跟踪车;直流电机;红外光电传感器

中图分类号:TP18文献标识码:A 1009-3044(2011)31-000-000

随着计算机和信息技术的快速发展,智能技术的发展越来越受到重视,其发展速度也在迅速提高。由于智能化程度越来越高,其应用范围也在不断扩大。同时,机器人技术发展迅速,应用领域众多。智能跟踪车是机器人技术与智能控制技术相结合的应用模式。通俗来讲,智能循迹小车就是智能机器人的另一种形式,它用轮子代替了机器人的双腿,因而在机械设计和电路方面都要比智能机器人简单,另外,其控制系统和智能机器人相比也较为简单,可是其对行车速度和行驶方向的配合则要求较严格,它首先通过传感器获取目标道路信息,然后结合智能车当前的行驶状态智能地做出决策,调整其驾驶方向和速度,以达到准确快速跟踪道路的目的。本文介绍了一种基础STC89C为了控制核心智能跟踪车的设计,52单片机可以自动沿黑色固定轨道运行。

1 智能跟踪车整体硬件结构设计及工作原理简介

1.1 智能跟踪车整体硬件结构设计

在本设计中,智能跟踪车由主控制模块、跟踪模块、电机驱动模块电源模块等外围电路组成,其整体硬件结构框图如图1所示。

图1 智能循迹小车总体硬件结构图

在本设计中,以STC89C52作为主控模块,采用红外光电传感器作为循环模块,采用模块化设计方法L293D芯片控制输出直接驱动直流电机作为电机驱动模块。电源模块使用4节1.5V电池供电,经L7805稳压模块后,输出电压稳定 5V,从而向各个模块供电。

1.2 智能小车工作原理简介

在本设计中,跟踪是指沿着白色地板上的汽车cm走在宽黑线上。红外传感器的发射管由接收管接收。同时,接收的物理量由单片机转换为电信号,通过信号放大电路处理P0,P1,P处理后,信号由2口输入P20,P21,P22,P23,P24,P25口输出给电机驱动电路L293D芯片,以驱动汽车行走和跟踪。跟踪时,由于红外线在白色地板和黑线上的反射系数不同,汽车的方向可以根据三极管接收红外线的强度来确定。本设计采用一字型[1]分布的三对红外传感器。中间传感器接收不到反射回来的红外线,而左右两个传感器能接收到反射回来的红外线,则小车直线前进;当左边和中间(或只有左边)的传感器接收不到反射回来的红外线,只有右边传感器能接收到时,说明小车向右偏离黑色轨道,则小车向左转动;同理,当中间和右边(或只有右边)的传感器接收不到反射回来的红外线,只有当左传感器能够接收时,表明汽车向左偏离黑色轨道,汽车向右旋转,从而实现自动跟踪。红外传感器与地面的垂直距离为8cm,在没有强烈阳光干扰或阳光照射的房间内,完全可以满足探测要求,具有良好的可靠性和抗干扰能力[2、3]。

2 智能循迹小车所用芯片器件简介

本设计分为主控制模块、跟踪模块、电机驱动模块和电源模块。以下是主模块的工作原理。

2.1 主控模块STC89C52简介

模块是整个设计的大脑。传感器的输出端SEN1,SEN2,SEN3将信号通过P1.0,P1.1,P1.经处理后,2口输入单片机P20, P21,P22, P23,P24,P25口输出给L293D的EN1, EN2, IN1, IN2, IN3, IN4引脚,从而控制汽车。该模块的主要原因STC89C52单片机及其外围电路,如图2所示。

图2 STC89C单片机个引脚图52

本设计中,STC89C52芯片的40引脚VCC接 5V电源,20引脚GND接地。18引脚XTAL1和19引脚XTAL2接在频率为11.0592MHZ在晶振上,20PF的电容。9引脚RST外部复位电路为单片机提供上电复位。作为P三口的第二个功能,10引脚P3.0和11引脚P3.1作为单片机的通信端,即串行输入口和串行输出口,用于完成程序下载。1引脚P1.0,2引脚P1.1,3引脚P1.两对红外传感器和三对红外传感器的输出端SEN1,SEN2,SEN3连接,完成电信号输入。21引脚P2.0,22引脚P2.1,23引脚P2.2,24引脚P2.3,25引脚P2.4,26引脚P2.5分别和L293D芯片的EN1,EN2,IN1,IN2,IN3,IN将单片机处理的信号输入到电机驱动电路中。

2.2 TCRT5000红外光传感器模块简介

本设计采用三对TCRT5000型红外光电传感器。这三对传感器分布均匀。该方法检测连贯简单,程序控制算法简单,使汽车控制稳定。但这种均匀的单字分布不利于弯道信号采集的准确性。图3显示了一对传感器及其外围电路的原理图。

图3TCRT5000传感器电路图

TCRT5000型红外光电传感器由一个高发射功率的红外光电二极管和一个高度外光电三极管接收(NPN类型)组成。滑动变阻器R通过调整调整蓝白电位器R从而调节光敏三极管对反射光的灵敏度。

红外发射二极管不断发射红外线。当反射红外强度足够大时,光敏三极管饱和,模块输出为高电平;当反射红外强度不够大或不反射红外时,光敏三极管关闭,模块输出为低电平。光敏三极管除了将光信号转换为电信号外,还具有放大电信号的功能。

2.3 电信号放大模块简介

传感器产生的电信号相对较弱,不能作为单片机输入,因此需要连接放大电路进行处理。该模块使用SN74HC04N芯片及其外围电路用作放大电路。

SN74HC04N芯片的引脚图如图4所示。

图4 SN74HC04N引脚图

首先,SN74HC04N芯片中有六组相同的反相器。因此,当三组红外传感器产生电信号时SN74HC04N之后,它会变成相反的电平。引脚1, 3, 5.红外传感器输入SN74HC04N芯片接口,引脚2, 4, 6为经SN74HC04N对应图2中处理的输出口SEN1,SEN2,SEN三个接口。另外,74HC04N有6个施密特触发器电路。施密特触发器的重要特点是将缓慢变化的输入信号整形成陡峭的矩形脉冲。施密特触发器还可以利用其回差电压来提高电路的抗干扰性。

2.4 介绍电机驱动模块

图5电机驱动模块图

本模块选用L293D控制芯片。芯片驱动相对简单,直接驱动两个直流电机。控制每个电机有三个信号EN1,IN1,IN2和EN2,IN3, IN4。这六个引脚别相同STC89C52单片机的P2.0~P2.5口相连。芯片的工作电压是 5V。本设计采用两个输出来控制一个电机。即OUT1和OUT2控制电机1,OUT3和OUT4控制电机2。上图中的D1~D八是二极管的夹位。电机在停止时会产生反向电流,切割磁场后会产生反向电势。为了防止芯片在逆电动势下烧坏,设置这些二极管进行保护。

3 智能跟踪车的软件设计

单片机主要实现智能汽车的自动控制功能。在本设计中,采用结构化设计方法,采用C语言实现相应的功能软件。以下是程序中的几个主要功能模块。

3.1 主程序函数

void main(void)

{

delay(10);

while(1)

{

switch( sensor_inp() )

{

case 0x02:forward(); break;

case 0x04: turn_left(); break;

case 0x01: turn_right(); break;

default:

break;

}

}

}

程序开始,进入主函数。调用延迟函数delay(),使系统稳定。在KEIL在软件下进行断点操作,在这里测量delay(10)在11.0592MHz晶振可延迟1000ms。之后进入while循环,条件总是真实的,这意味着汽车将继续运行while函数中的句子,直到外界迫使汽车停车。在switch在分支语句中,case 0x将程序跳转到02forward(),其中0x02是二进制的0000010,这意味着只有中间传感器输出高电平,左右传感器输出低电平,所以汽车沿直线行走。case 0x将程序跳转到04turn_left(),其中0x04是二进制的0000100,这意味着只有左传感器输出高电平,中右传感器输出低电平,所以汽车左转。case 0x将程序跳转到01turn_right(),其中0x01是二进制的0000001,这意味着只有右传感器输出高电平,左中传感器输出低电平,所以汽车右转。

3.2 汽车前进子程序模块

void forward()

{

IN1=1;

IN2=0;

IN3=1;

IN4=0;

EN1=1;

EN2=1;

}

该程序中,L293D芯片的两个使能端EN1和EN保持高电平。IN1=1,IN2=说明右电机向前旋转;IN3=1,IN4=这意味着左边的电机也向前旋转。因此,两台电机同时向前旋转,以驱动汽车向前移动。

3.3 汽车左转子程序模块

void turn_right()

{

IN1=1;

IN2=0;

IN3=0;

IN=0;

EN1=1;

EN2=1;

}

该程序中,使能端EN1和EN2仍然保持高电平。IN1=0,IN2=0,表明右边电机向前转动;而IN3=0,IN4=0,说明左边电机不动。左轮不转右轮转,这样就实现了小车向左转

3.4 小车右转子程序模块

void turn_left()

{

IN1=0;

IN2=0;

IN3=1;

IN4=0;

EN1=1;

EN2=1;

}

该程序中,使能端EN1和EN2仍然保持高电平。IN1=0,IN2=0表明右边电机停止不转动;IN3=1,IN4=0说明左边电机向前转动。右轮不转左轮转,这样就实现了小车右转。

3.5 延时子程序模块

void delay(int n)

{

unsigned char i,j,k;

for(i=n;i>0;i--)

for(j=50;j>0;j--)

for(k=100;k>0;k--);

}

该延时子程序主要是让系统初始化到最佳状态。经由KEIL软件的断点测试,在晶振频率为11.0592MHz时,当n = 10时,可延时100ms。

4 总结

本文提出了一种基于STC89C52单片机为控制核心的智能循迹小车的设计方案,该方案以红外传感器作为路径信息采集手段,以L293D芯片来控制并驱动电机运行,最终实现了小车在固定轨迹上自动循迹运行。该方案总体来说,比较简单,成本低且易于实现,但也存在缺陷,如传感器的“一字型”均匀布局使得小车在弯道行驶时可能会出现误差,另外,小车循迹过程中会出现“蛇形摆动”问题,这些问题都还有待于改进。

参考文献:

[1] 周斌,李立国.智能车光电传感器布局对路径识别的影响研究[J].产品世界,2006(9):139-140.

[2] 吴建平,殷战国.红外反射式传感器在自主导航小车中的应用[J].中国测试技术,2004(6):21-23.

[3] 杨永辉.智能小车的多传感器数据融合[J].现代电子技术,2005(6):3-6.

[4] 高月华.基于红外光电传感器的智能车自动循迹系统的设计[J].光电技术应用,2009(2):1-5.

[5] 何立民.基于HCS12的小车智能控制系统设计[J].单片机与嵌入式系统应用,2007(3):51-53,57.

收稿日期:2011-08-17

基金项目:陕西理工学院教学改革项目(XJG1135)

标签: 226p25v电容器p24p2光电传感器p微弱磁场传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台