《智能小车的制作硬件模块与软件实现相关电路图传感器等课件.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放大电路放大送入LM567进行鉴别,
7、若频率与调制频率相等,则在LM567的输出端输出低电平;若频率不等,则输出高电平。单片机通过检测输出脚电平就可以判断是否有障碍物。设计中采用LM567芯片的6脚的振荡方波作为调制脉冲。LM567的频率捕捉范围为:电路中瓷片电容C10为0.001uF,电位器R24为100K,可以通过电位器调节不同的频率,使三个红外发射接收器不产生相互干扰。4光源检测电路采用光敏电阻作为光源检测器件,电路如图13-6所示。光敏电阻在光照的条件下电阻值很小,与光照强度成反比。没有检测到光源时,光敏电阻值比较大,调节电位器使得电路输出为低电平,LED灯亮;当检测到光源时,光敏电阻值很小,电路输出高电平,LED灯灭。小
8、车上装有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脚上的电动机B。L293芯片的1
9、脚(ENA)和9脚(ENB)为使能端,即只有它们为高电平时,单片机才能控制电机正反转,控制小车行进。L293输入电平控制信号和电机工作状态的关系如表13-1所示。表13-1 L293输入输出逻辑关系EN A(B)IN1(IN3)IN2(IN4)电机运行状况电机运行状况HHL正转正转HLH反转反转HIN1与IN2电平相同IN3与IN4电平相同快速停止快速停止LXX停止停止13.3.3 声光指示电路声光指示电路用于小车检测到金属片时进行提示。在直道区检测到金属片时,单片机P10脚输出高电平,点亮发光二极管,蜂鸣器发出鸣叫。当小车到达C点时,P10、P11脚输出高低电平脉冲,使电路发出断续的声光指示
10、信息,电路如图13-8所示。13.3.4 计数电路计数电路采用一个数码管与单片机P2口相连,用来显示检测到的金属片数,电路图如图13-9所示。13.4 软件设计在软件程序设计过程中,根据各检测电路的输出信号来调用相应的中断程序,以实现对小车动作的控制,最终控制小车准确进入车库并停车,完成设计要求。13.4.1 程序流程图系统初始化后,小车向前行进,利用红外对管对地面黑线进行寻迹,同时计时器开始计时。根据P3.2和P3.3脚信号的变化进行中断,控制小车按黑线行进。当检测到有金属片时,P35脚中断,计数器加1;当遇到障碍物时,小车根据P12、P13、P14脚的电平,控制小车转向,避开障碍物,开始寻
11、找光源,按光源的指引进入车库。若90s内小车没有进入车库,定时器0中断,小车停止。程序流程图如图13-10所示。图13-10 程序流程图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=P
12、32;/左转(左边的红外传感器)sbit QIAN=P36;/前进(中间的红外传感器)sbit JYOU=P12;/右边的激光传感器sbit 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=P
13、11;/蜂鸣器uchar temp1;uchar code Table=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 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-50
14、000)%256;ET0=1;ET1=1;TR1=1;IT0=1;EX0=1;IT1=1;EX1=1;EA=1;/打开总中断/*外部中断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)/
15、P0=0B00000101;/前进 P0=0X05;/前进/*定时器0中断子函数*/void timer0()uchar j;if(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
16、(j=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;/向右转 delay1(20);/不准确 while(GDKGQIAN=0)P0=0X05;/前进 if(GDKGZUO=0)P0=0X04;/向左转 delay1(
17、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&(17);/*延时1子函数*/void delay1(uchar i)while(i-);/*/13.5 本章小结智能电动车系统利用光电、红外传感器、金属探测器等采集外部信号,通过编程实现对电动小车的控制,使小车能准确的找出金属物、绕开障碍物、寻找光源,进入车库。在设计过程中,应根据实际环境对各种传感器进行比较、选择,得出合理的设计方案,小车基本完成了设计要求,但系统稳定性、行驶速度和入库准确度等细节部分还有待改进。希望大家能在本设计的基础上,不断优化和完善智能小车系统,提高单片机的综合应用能力。13.6 思考与练习1常用的电机主要有直流电机和步进电机两种,它们各有什么特点?如何采用PWM对直流电机进行调速?2对系统进行优化,并显示电动车全程行驶的时间和里程。3采用红外传感器、超声波传感器、激光传感器都可以实现避障功能,它们具有哪些特点?若采用超声波传感器,避障电路及程序应如何设计?4为了防止红外传感器间的相互干扰,如何实现对红外信号的调制?
限制150内