当前位置:文档之家› 电子大赛单片机循迹小车设计报告

电子大赛单片机循迹小车设计报告

电子大赛自动循迹小车目录摘要 (2)一方案论证与比较 (2)1、单片机的论证与选择 (2)2、电机的论证选择 (2)二理论分析与计算 (3)1、小车循迹功能的实现 (3)三系统实现方框图与电路设计 (4)1、系统总体框架图 (4)2、单元电路设计 (4)(1)单片机最小系统版 (4)(2) Risym 4路红外寻迹避障传感器模块 (7)(3)电机驱动芯片L298N原理图如下 (8)四系统软件设计 (9)1、总体软件流程图 (9)五测试方案与测试结果 (10)1、测试方案 (10)2、测试结果 (10)3、问题分析与总结 (11)附录一:参考文献: (11)附录二:程序 (12)附录三:作品实物图 (17)摘要本系统以STC89C52单片机为控制核心,采用小车专用电池为电源。

在本系统中,单片机通过红外传感器实现对赛道(白面黑线)的轨道识别与小车位置的判定,并通过Risym 4路红外寻迹避障传感器模块和驱动L298N芯片与相应程序,通过控制小车左右轮实现前进和循迹转向功能。

关键词:STC89C52 L298N 白面黑底轨道循迹小车红外传感器一方案论证与比较1、单片机的论证与选择方案一:采用Atmel公司的AT89S52单片机作为主控制器。

AT89S52单片机价格便宜,控制简单,为我们平时实验所熟用;但其运算速度较慢,片内资源很少,存储器容量也很小,同时驱动多个传感器时难以实现复杂的算法。

方案二:采用TI公司的MSP430系列单片机。

MSP430系列单片机具有低功耗、速度快、片上资源丰富、外部拓展能力强等特点。

16位RISC指令集处理器,14个双向I/O口,每个I/O口均可作为中断源,但是工作电压偏低(1.8V-3.6V)对于很多5V的系统来说接口电路颇为麻烦,I/O无保护,过压过流会立即击穿,。

方案三:采用STC公司生产的STC89C52。

89C52是的一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程Flash存储器。

STC89C52使用经典的MCS-51内核,但是做了很多的改进使得芯片具有传统51单片机不具备的功能。

在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案同时,具备很好的抗干扰能力。

综合对比以上三个方案,我们选择方案三,采用STC89C52单片机作为系统主控芯片。

2、电机的论证选择方案一:采用步进电机。

步进电机具有动态响应快、精度高、易于起停,易于正反转及变速的优点,可精确控制旋转角度。

但它以步进式跟进,角度小于一个步距角时是系统响应盲区,且转速较慢。

方案二:采用直流减速电机。

直流减速电机具有扭矩大,体积小,驱动电路简单,稳定强,负载能力强等优点,且速度较快,能较好的满足题目对小车行进速度的要求。

结合PWM技术对其转速的控制,利用小车两侧电机的转速差可实现前进,转弯等功能。

综合比较以上两种电机,结合题目的的要求,我们选择直流减速电机用作小车的驱动(L298N驱动模块)。

二理论分析与计算.1、小车循迹功能的实现本题的重点在于小车如何利用红外传感器通过黑色轨道的检测来确定自身位置,以此执行前进、左转、右转等操作。

小车的直行与转弯功能可通过车身两侧电机的相对速度实现。

当两侧电机转速相等时,小车直行,当右侧电机速度大于左侧电机速度,或是右侧正转,左侧反转时,小车左转。

为此我们将车身同一侧两个电机并联在一起,通过两组PWM脉冲和两个I/O口输出高低电平实现对4个电机转速与转向的控制,从而实现小车的自由运动。

设某一电机正极接有PWM脉冲控制信号,负极由IO口输出高低电平控制。

当IO口输出低电平时,电机负极接地,电机正转,转速由PWM脉冲高电平占空比决定。

当IO口输出高电平时,电机负极接+12付,电机反转,转速由PWM脉冲低电平占空比决定。

单片机通过L298N驱动电机。

为了较好的实现小车对黑色轨道的检测,我们在小车底部安装了三个红外灯,与89C52芯片相连。

当左侧线圈感应到黑色轨迹时,说明小车位置偏右,控制小车左移。

当右侧线圈感应到黑色轨迹时,说明小车位置偏左,控制小车右移。

由此小车可根据黑色轨迹的位置自动行驶直线或是转弯的功能。

循迹是指小车在白色地板上循黑线行走,由于黑线和白色地板对光线的反射系数不同,可以根据接收到的反射光的强弱来判断“道路”。

通常采取的方法是红外探测法。

红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。

单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。

红外探测器探测距离有限。

小车供电后,红外光电二极管发出红外光,光线照在路面上反射回来被光电二极管接收,半导体二极管在电场作用下产生电势,将光信号转换成电信号。

该智能小车在画有黑线的白纸“路面”上行驶,由于黑线和白纸对光线的反射系数不同,可根据接收到的反射光的强弱来判断“道路”——黑线。

当小车检测到黑线时,红外线部分被黑线吸收,反射回的红外线极少被光电二极管接收,转换成比较弱的电信号;当小车未检测到黑线时,红外线大部分被反射,反射回的红外线被光电二极管接收,转换成比较强的电信号。

最终,这些电信号经过比较器处理后传入单片机,再由单片机进一步做信号处理。

三系统实现方框图与电路设计1、系统总体框架图整个系统主要划分为以下4个模块:控制器模块(89C51)、红外传感器模块(轨迹探测模块)、电机驱动模块、电源模块。

系统总体框架如图及构造图如下。

2、单元电路设计(1)单片机最小系统版以STC89C52单片机作为核心控制器,单片机的引脚如下所示,STC89C52是一个高速,低功耗,超强抗干扰的8位单片机,片内含32k 空间的可反复擦写100,000 次Flash 只读存储器,具有4K 的随机存取数据存储器(RAM),32 个I/O口,2个8位可编程定时计数器,且可在线编程、调试,方便地实现程序的下载与整机的调试。

时钟电路和复位电路(与单片机构成最小系统)1)采用外部时钟,晶振频率为12MHZ。

没有晶振,就没有时钟周期,没有时钟周期,就无法执行程序代码,单片机就无法工作。

单片机工作时,是一条一条地从RoM中取指令,然后一步一步地执行。

单片机访问一次存储器的时间,称之为一个机器周期,这是一个时间基准。

—个机器周期包括12个时钟周期。

如果一个单片机选择了12MHz晶振,它的时钟周期是1/12us,它的一个机器周期是12×(1/12)us,也就是1us。

MCS—51单片机的所有指令中,有一些完成得比较快,只要一个机器周期就行了,有一些完成得比较馒,得要2个机器周期,还有两条指令要4个机器周期才行。

为了衡量指令执行时间的长短,又引入一个新的概念:指令周期。

所谓指令周期就是指执行一条指令的时间。

提供时序的频率! 提供单片机工作的时序,其实就相当电脑CPU主频一个原理的。

2)采用按键复位单片机的复位有上电复位和按钮手动复位两种。

上电复位是利用电容充电来实现的,即上电瞬间RST端的电位与VCC相同,随着充电电流的减少,RST的电位逐渐下降。

图(a)中的R是施密特触发器输入端的一个10KΩ下拉电阻,时间常数为10×10-6×10×103=100ms。

只要VCC的上升时间不超过1ms,振荡器建立时间不超过10ms,这个时间常数足以保证完成复位操作。

上电复位所需的最短时间是振荡周期建立时间加上2个机器周期时间,在这个时间内RST的电平应维持高于施密特触发器的下阈值。

最小系统pcb时钟电路和复位电路(2)Risym 4路红外寻迹避障传感器模块最多可同时支持4通道的采集,原理图如下,(3)电机驱动芯片L298N原理图如下四系统软件设计程序采用汇编语言模块化编程,结构清晰易读性强。

程序在Windows环境下采用Keil uVision4软件编写,用STC-ISP烧写。

1、总体软件流程图主程序流程图循迹流程图五测试方案与测试结果1、测试方案在白色地面上,用黑色胶带布置一条轨道(含直线,曲线,一定角度的拐弯),将小车放置在地面上,观察是否可以循迹前行。

2、测试结果我们对循迹小车进行了多次测试,小车可以正常沿黑色轨迹行驶,轨道含直角弯,曲线弯和直线部分。

在部分3、问题分析与总结首先是赛道与电感传感器的问题。

我们在前期测试的时候,由于赛道本身有个别地方存在转角过大,静电累积的问题,传感器感应到此种情况时会造成无法识别的情况,从而使小车冲出赛道或是传感器的失灵等情况,只能通过单片机复位来解决。

另外由于电感传感器通过杜邦线与车身底部的线圈相连,偶尔会出现数据波动的情况,对小车的正常行驶有很大的影响。

尽管我们使用了热胶枪对车身部件进行了固定,但仍不能完全杜绝此种情况。

其次,小车整体的稳定性与电池供电电压有着很大关系,电池电压在11.5-12.5伏时系统最为稳定。

当小车供电电压过低时,可能会引起很多意想不到的情况,例如感应不到金属,小车转向异常,系统卡死等。

在我们起初遇到此情况时,以为是电感传感器的问题,在多次调试无效后,换了个电池,才偶然发现问题的起因,为此耽误了很多的时间。

附录一:参考文献:[1] 宋健,姜军生,赵文亮. 基于单片机的直流电动机PWM 调速系统[J ] . 农机化研究,2006 , (1) :102 - 103.[2] 边春元李文涛江杰杜平等;C51单片机典型模块设计与应用;机械工业出版社;2008.4[3]李华. MCS- 51 系列单片机实用接口技术[M].北京:航空航天大学出版社,2003[4]楼然苗.51 单片机设计实例[M].北京:航空航天大学出版社,2005.8[5]王晶,翁显耀,梁业宗自动寻迹小车的传感器模块设计.武汉理工大学自动化学院湖北武汉[6] 刘迎春. 传感器原理设计与应用[M] . 长沙:国防科技大学出版社,1992.[7]《msp430系列16位超低功耗单片机原理与应用》沈建华等著,北京航空航天大学出版社,2008年7月第一版。

附录二:程序#include<reg52.h>sbit you1=P2^0;sbit you2=P2^1;sbit zuo1=P2^2;sbit zuo2=P2^3;sbit y=P3^0;sbit z=P3^1;sbit w=P3^2;sbit s=P3^3;void delay(int a){int i,j;for(i=a;i>0;i--)for(j=2;j>0;j--); }void delayms(int ms) {int a,b;for(a=ms;a>0;a--); for(b=110;b>0;b--); }void qian(){you1=1;you2=0;zuo1=0;zuo2=1; delay(3); you1=0;you2=0; zuo1=0; zuo2=0; delay(5); }void you() {you1=1; you2=0; zuo1=0; zuo2=0; delay(5); you1=0; you2=0; zuo1=0; zuo2=0; delay(5); }void zyou() {you1=1; you2=0; zuo1=1; zuo2=0; delay(5);you1=0;you2=0;zuo1=0;zuo2=0;delay(5); }void zou()//右转{ you1=0;you2=0;zuo1=0;zuo2=1;delay(5); you1=0;you2=0;zuo1=0;zuo2=0;delay(5); }void zzou() { you1=0;you2=1;zuo1=0;zuo2=1;delay(5); you1=0;you2=0;zuo1=0;zuo2=0;delay(5);}void main(){while(1){ while((z==0)&&(w==0)&&(y==0)&&(s==0)) //0是感应灯亮 {qian();}while((z==0)&&(w==1)) //左边有黑线向左转{you();}while((z==1)&&(w==0)){zou();}while((y==1)&&(s==0)){zzou();}while((y==0)&&(s==1)){zyou();}while((z==1)&&(w==1)&&(y==1)&&(s==0)){zyou();}while((z==1)&&(w==1)&&(y==0)&&(s==1)) //黑线是1不亮,0是亮{zzou();}while((z==1)&&(w==1)&&(y==0)&&(s==0)){zzou();}}}附录三:作品实物图。

相关主题