《智能小车的制作硬件模块与软件实现相关电路图传感器等课件.ppt》由会员分享,可在线阅读,更多相关《智能小车的制作硬件模块与软件实现相关电路图传感器等课件.ppt(34页珍藏版)》请在三一办公上搜索。
1、第13章 智能电动车,智能电动车,近年来全国和一些省级大学生电子设计大赛中,经常出现关于智能小车的题目,例如智能寻迹小车、智能取水小车、小车搬运木块等题目,以及高档次的飞思卡尔智能小车比赛,引起了众多爱好者的广泛关注和兴趣。这些设计对单片机的学习和应用都有很大的帮助,因此有必要利用小车这一平台做一个综合的设计实例,提高单片机的综合应用能力。,13.1 技术要求,设计并制作一个简易智能电动车,其行驶路线示意图如图13-1所示:图13-1 小车行驶路线示意图,1)电动车从起跑线出发(车体不得超过起跑线),沿引导线到达B点。在“直道区”铺设的白纸下沿引导线埋有13块宽度为15cm、长度不等的薄铁片。
2、电动车检测到薄铁片时,需立即发出声光指示信息,并实时存储、显示在“直道区”检测到的薄铁片数。2)电动车到达B点以后进入“弯道区”,沿圆弧引导线到达C点(也可脱离圆弧引导线到达C点)。C点下埋有边长为15cm的正方形薄铁片,要求电动车到达C点检测到薄铁片后在C点处停车5s,停车期间发出断续的声光信息。3)电动车在光源的引导下,通过障碍区进入停车区并达到车库。电动车必须在两个障碍物之间通过且不得与其接触。4)电动车完成上述任务后应立即停车,但全程行驶时间不能大于90s,行驶时间达到90s时必须立即自动停车。,13.2 设计原理,智能小车控制系统同样采用STC89C52单片机作为控制核心,根据传感器
3、采集到的信号,控制小车的行进和转向。为了实现设计要求系统可分为寻迹检测、金属片探测、躲避障碍、光源检测和电机控制等功能模块,系统原理框图如图13-2所示:图13-2 智能小车系统原理框图,小车启动后,首先利用红外对管传感器对黑色引导线进行检测,并将检测信号送入单片机进行判断和处理,驱动左轮和右轮电机以达到控制小车行进方向的目的。当地下有金属时,金属探测器发出一个低电平信号送入单片机,并利用数码管进行计数。沿引导线到达C点后,停车5s,并发出断续的声光信号。当小车再次启动时,利用激光传感器对障碍物进行检测,根据检测结果,驱动电机使小车绕过障碍物,并利用光敏电传感器接收光源信号,控制小车准确进入车
4、库并停车,完成预定任务。,13.3 硬件电路设计,系统硬件电路由STC89C52最小系统、各传感器检测电路、电机驱动电路、计数和声光指示电路组成。其中STC89C52最小系统在前面的章节中已做了详细介绍,这里不再赘述。,13.3.1 传感器检测电路1红外寻迹电路寻迹检测电路采用红外对管传感器RPR220检测黑线,它由红外发光二极管和光敏三极管组成,具体电路如图13-3所示。红外发光二极管发出红外光,当红外光照射到黑线时,被黑线吸收,不能反射到光敏三极管上,光敏三极管处于截止状态,电阻R4中没有电流,LM324的2脚电压为0V,3脚电压通过电位器R5分压后得到,一定大于0V。由于LM324工作在
5、开环比较状态,经过比较,LM324输出端为高电平;当红外光照射到白线时,会反射到光敏三极管上,光敏三极管导通,R4中有电流通过,两端产生电压,这样LM324的2脚电压将大于3脚电压,LM324输出低电平。小车上装有三个同样的红外寻迹电路,分别装在小车底部中间和左右两侧,与单片机的P32、P33、P36脚连接。当中间的寻迹电路输出高电平时,小车继续行进;当如果右边的寻迹电路输出为高电平,则小车右转在前进;当左边的寻迹电路输出为高电平时,则小车左转在前进。,图13-3 红外寻迹电路,2金属探测电路金属探测电路采用三个开关型霍尔传感器UGN3040,分别与单片机P15、P16、P35脚连接,当检测到
6、有磁性金属片时,其输出端输出低电平,否则输出高电平。将检测信号送入单片机进行计数,并利用数码管显示出来。金属探测电路如图13-4所示。,3红外避障电路避障电路采用脉冲调制红外发射接收器。为了使小车能够顺利通过障碍区,在车头安装3个红外避障电路,分别于单片机的P12、P13、P14脚连接。当右左边的避障电路探测到障碍物时,就向单片机发出信号,控制小车左转;当左边避障电路探测到障碍物时,发出另一信号,控制小车右转。为防止三个红外探测器相互干扰,设计采用不同频率对红外信号进行脉冲调制。电路图如图13-5所示。,当D4发出的红外光遇到障碍物被反射回来,反射信号由D5接收,经LM358放大电路放大送入L
7、M567进行鉴别,若频率与调制频率相等,则在LM567的输出端输出低电平;若频率不等,则输出高电平。单片机通过检测输出脚电平就可以判断是否有障碍物。设计中采用LM567芯片的6脚的振荡方波作为调制脉冲。LM567的频率捕捉范围为:电路中瓷片电容C10为0.001uF,电位器R24为100K,可以通过电位器调节不同的频率,使三个红外发射接收器不产生相互干扰。,4光源检测电路采用光敏电阻作为光源检测器件,电路如图13-6所示。光敏电阻在光照的条件下电阻值很小,与光照强度成反比。没有检测到光源时,光敏电阻值比较大,调节电位器使得电路输出为低电平,LED灯亮;当检测到光源时,光敏电阻值很小,电路输出高
8、电平,LED灯灭。小车上装有3个相同的光源检测电路,位于小车的中间和左右两端,与单片机的P04、P05、P06脚连接。当中间的光敏电阻检测到光源时,小车保持继续前行;当左边的光敏电阻检测到光源时,小车向左行进;当右边的光敏电阻检测到光源时,小车向右行进。,图13-6 光源检测电路,13.3.2 电机驱动电路设计采用2个直流电机完成小车的行进动作,驱动电路如图13-7所示。驱动电路采用L293芯片与单片机的P30、P00、P01、P31、P02、P03引脚连接,其中P30、P00、P01用于控制接在L293的3脚和6脚上的电动机A;P31、P02、P03用于控制接在L293的11脚和14脚上的电
9、动机B。L293芯片的1脚(ENA)和9脚(ENB)为使能端,即只有它们为高电平时,单片机才能控制电机正反转,控制小车行进。L293输入电平控制信号和电机工作状态的关系如表13-1所示。表13-1 L293输入输出逻辑关系,13.3.3 声光指示电路声光指示电路用于小车检测到金属片时进行提示。在直道区检测到金属片时,单片机P10脚输出高电平,点亮发光二极管,蜂鸣器发出鸣叫。当小车到达C点时,P10、P11脚输出高低电平脉冲,使电路发出断续的声光指示信息,电路如图13-8所示。,13.3.4 计数电路计数电路采用一个数码管与单片机P2口相连,用来显示检测到的金属片数,电路图如图13-9所示。,1
10、3.4 软件设计,在软件程序设计过程中,根据各检测电路的输出信号来调用相应的中断程序,以实现对小车动作的控制,最终控制小车准确进入车库并停车,完成设计要求。,13.4.1 程序流程图系统初始化后,小车向前行进,利用红外对管对地面黑线进行寻迹,同时计时器开始计时。根据P3.2和P3.3脚信号的变化进行中断,控制小车按黑线行进。当检测到有金属片时,P35脚中断,计数器加1;当遇到障碍物时,小车根据P12、P13、P14脚的电平,控制小车转向,避开障碍物,开始寻找光源,按光源的指引进入车库。若90s内小车没有进入车库,定时器0中断,小车停止。程序流程图如图13-10所示。,图13-10 程序流程图,
11、13.4.2 源程序/*头文件*/#include#include/*宏定义*/#define uchar unsigned char#define uint unsigned int/*端口定义*/sbit ENA=P30;/左边发动机使能端sbit ENB=P31;/右边发动机使能端sbit IN1=P00;sbit IN2=P01;sbit IN3=P02;sbit IN4=P03;sbit YOU=P33;/右转(右边的红外传感器)sbit ZUO=P32;/左转(左边的红外传感器)sbit QIAN=P36;/前进(中间的红外传感器),sbit JYOU=P12;/右边的激光传感器s
12、bit JZUO=P13;/左边的激光传感器sbit JQIAN=P14;/前面的激光传感器sbit TPSLZUO=P15;/左边的霍尔传感器sbit TPSLYOU=P16;/右边的霍尔传感器sbit TPSLQIAN=P35;/前面的霍尔传感器sbit GDKGQIAN=P04;/前面的光电开关sbit GDKGYOU=P05;/右面的光电开关sbit GDKGZUO=P06;/左面的光电开关sbit XiaoDeng=P10;/小灯sbit BEEP=P11;/蜂鸣器uchar temp1;uchar code Table=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0
13、 x92,0 x82,0 xf8,0 x80,0 x90;/*主函数*/void main(),Init();while(1)Bizhang(Tpsl);guangyuan(Tpsl);ruku();display(Tpsl);/*初始化函数*/void Init()IP=0X0A;/设置定时器T0,T1的优先级 TH1=0XFF;/定时器T1做为中断使用 TL1=0XFF;TMOD=0X11;TH0=(65536-50000)/256;,TL0=(65536-50000)%256;ET0=1;ET1=1;TR1=1;IT0=1;EX0=1;IT1=1;EX1=1;EA=1;/打开总中断/*外
14、部中断0函数*/void ex0(void)interrupt 0 using 0 while(ZUO=0)/P0=0B00000100;/向左转 P0=0X04;/向左转,while(QIAN=0)/P0=0B00000101;/前进 P0=0X05;/前进/*外部中断1函数*/void ex1(void)interrupt 1 using 1 while(YOU=0)/P0=0B00000001;/向右转 P0=0X01;/向右转 while(QIAN=0)/P0=0B00000101;/前进 P0=0X05;/前进,/*定时器0中断子函数*/void timer0()uchar j;if
15、(TPSLZUO)|(TPSLQIAN)|(TPSLYOU)=0)if(j1800)j+;TH0=(65536-50000)/256;TL0=(65536-50000)%256;else P0=0X00;/小车停止,/*测铁片函数*/uchar Tpsl()uchar i,j;if(TPSLYOU)|(TPSLQIAN)|(TPSLZUO)=0)/霍尔传感器检测到铁片 if(i4)i+;XiaoDeng=1;/点亮小灯 BEEP=BEEP;/蜂鸣器响 else if(j100),j+;XiaoDeng=1;/点亮小灯 BEEP=BEEP;/蜂鸣器响 TH0=(65536-50000)/256;
16、TL0=(65536-50000)%256;else P0=0X05;/前进 return i;/*壁障函数*/void Bizhang(uchar aa)if(aa=4)if(JQIAN=0),P0=0X04;/向左转 while(JYOU=1);P0=0X05;/前进 while(JQIAN=1);P0=0X01;/向右转 while(JYOU|JQIAN|JZUO=0);P0=0X05;/前进/*检测光源函数*/void guangyuan(uchar aa)if(aa=4)if(GDKGQIAN|GDKGZUO=0)P0=0X05;/前进,if(GDKGYOU=0)P0=0X01;/向
17、右转 delay1(20);/不准确 while(GDKGQIAN=0)P0=0X05;/前进 if(GDKGZUO=0)P0=0X04;/向左转 delay1(20);/不准确 while(GDKGQIAN=0)P0=0X05;/前进/*入库函数*/void ruku()P0=0X05;/前进,if(JYOU|JZUO=0)delay1(10);/不准 P0=0X00;/前进/*数码管显示函数*/void display(uchar aa)P2=Tableaa;P0=(P0/*/,13.5 本章小结,智能电动车系统利用光电、红外传感器、金属探测器等采集外部信号,通过编程实现对电动小车的控制,
18、使小车能准确的找出金属物、绕开障碍物、寻找光源,进入车库。在设计过程中,应根据实际环境对各种传感器进行比较、选择,得出合理的设计方案,小车基本完成了设计要求,但系统稳定性、行驶速度和入库准确度等细节部分还有待改进。希望大家能在本设计的基础上,不断优化和完善智能小车系统,提高单片机的综合应用能力。,13.6 思考与练习,1常用的电机主要有直流电机和步进电机两种,它们各有什么特点?如何采用PWM对直流电机进行调速?2对系统进行优化,并显示电动车全程行驶的时间和里程。3采用红外传感器、超声波传感器、激光传感器都可以实现避障功能,它们具有哪些特点?若采用超声波传感器,避障电路及程序应如何设计?4为了防止红外传感器间的相互干扰,如何实现对红外信号的调制?,