循迹小车设计(附代码).doc_第1页
循迹小车设计(附代码).doc_第2页
循迹小车设计(附代码).doc_第3页
循迹小车设计(附代码).doc_第4页
循迹小车设计(附代码).doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的智能寻迹小车一方案设计与论证1.1控制模块 采用STC89C52单片机设计中采用了一款十分常用的51系列单片机作为处理器,特点是价格低廉、使用方便,且可与其他处理器进行通讯。系统时钟:晶振频率1/12,本设计采用12M晶振,因此系统时钟为1us。I/O口资源:4个通用8位准双向I/O口(P0、P1、P2、P3,其中P3为特殊功能口)。通讯:一对全双工串行通讯口(P3.0、P3.1),可与其他单片机或上位机进行通讯。中断:2个外部中断(/INT0、/INT1),2个定时器中断(T0、T1),1个串行通讯中断,共5个中断资源并有2级中断优先级可供配置。ROM:该单片机提供8K的ROM供用户编写程序。1.2 寻黑胶带方案方案一、可见光发光二级管组成的发射-接收电路。这种方案的缺点在于其他环境光源会对光敏二极管的工作产生很大干扰,一旦外界光亮条件改变,很可能造成误判和漏判;虽然采取超高亮发光管可以降低一定的干扰,但这又将增加额外的功率损耗。方案二、反射式红外发射-接收器。由于采用红外管代替普通可见光管,可以降低环境光源干扰,大大减小了误判和漏判的可能性。经过比较选择方案二。电机的选择和控制方案一:采用电阻网络或数字电位器调整电动机的分压,从而达到调速的目的。但是电阻网络只能实现有级调速,而数字电阻元件价格比较昂贵。更主要的问题在于一般电动机的电阻比较小,但电流比较大;分压不仅降低了效率,而且实现很困难。方案二:采用继电器对电动机的开或关进行控制,通过开关的切换对电动机的转速进行控制,此方案的优点是电路比较简单,缺点是继电器的响应时间慢,机械结构易损坏,寿命较短、可靠性不高。方案三:采用由达林顿管组成的H型PWM电路。用单片机控制达林顿管使之工作在占空比可调的开关状态,精准调整电动机转速。这种电路由于工作在管子的饱和截至状态下,效率非常高;H型电路保证了可以简单的实现转速的控制;电子开关的速度很快,稳定性也较之继电器高的多,是一种广泛采用的PWM调速技术。经过比较选择方案三。二硬件电路设计2.1反射式红外发送接收对管的使用本设计采用的是tcrt5000反射式光电传感器,原理图如下,传感器采用高发射功率红外光电二极管和高灵敏光电晶体管组成,输出信号经施密特电路整形,稳定可靠。其工作电压为DC3V5.5V,推荐工作电压为5V,检测距离为1mm8mm,焦点距离为2.5mm。传感器检测到黑线输出为高电平,发光二极管为熄灭状态;检测到白色时输出低电平,发光二极管被点亮。2.2 电源模块小车的供电采用的是由两节输出电压为3.7的可充电锂电池串联的电池组,选用锂电池的原因在于锂电池可以多次充电,输出电流大可保证电机正常工作2.3 电机驱动电路 小车采用两轮驱动,另外一个为万向轮,为了使小车灵活运动,要求小车在速度和方向上能够大范围调整。为此我们选择了控制可靠、便于单片机控制的脉宽调制专用集成电路L298N,一片L298N可驱动两个直流电机。L298N为Multiwatt15封装,工作电压最高为50V,通过电流达5A。既可以与整个系统使用同一电源,又有足够的输出电流驱动电机。L298N驱动芯片上集成有5V稳压芯片,可从L298N上连线给单片机及红外对管供电。我们用单片机产生PWM波,通过调节占空比来控制电机的转速。A、B连接小车的左电机,C、D连接小车的右电机。左右电机速度相同时可实现小车的前进或后退;速度不同时可实现小车的转弯;当两个电机反向等速运转时,小车可原地转圈。循迹控制程序设计 整体电路如下:车前从左至右安装3个红外发送接收对管。(白色输出0,黑色输出1)ABC设定111全速直行010110减速左转1,100减速左转2011减速右转1,001减速右转2000减速后退101不可能出现 NY开始在黑线上吗?前进维持方向控制左右电机调整方向源代码如下:#include#define uchar unsigned char#define uint unsigned intuchar x3,x4;uint zkb1,zkb2,t=0;sbit d0=P10; /*d1到d3为控制电机的输出口*/sbit d1=P11;sbit d2=P12;sbit d3=P13;sbit d5=P15; /*d5到d7为红外信号输入口*/sbit d6=P16;sbit d7=P17;sbit ENA=P00; /*定义使能端ENA ENB接口*/sbit ENB=P01;void qianjin() /前进d0=0;d1=1;d2=0;d3=1;zkb1=50;zkb2=50;void back() d0=1; d1=0; d2=1; d3=0; zkb1=40; zkb2=40; void turn_left1() /1级左转d0=0;d1=0;d2=0;d3=1; zkb1=0;zkb2=30;void turn_left2() /2级左转d0=0;d1=0;d2=0;d3=1;zkb1=0;zkb2=50;void turn_right1() /1级右转 d0=0;d1=1;d2=0;d3=0;zkb1=30;zkb2=0;void turn_right2()/2级右转 d0=0;d1=1;d2=0;d3=0;zkb1=50;zkb2=0;void xunji() /*检测到黑线输出为高电平1,检测到白色为低电平0*/if(d5=1&d6=1&d7=1)|(d5=0&d6=1&d7=0)qianjin();if(d5=0&d6=0&d7=0) back(); if(d5=0&d6=1&d7=1)/右边压黑线turn_right1();if(d5=0&d6=0&d7=1)turn_right2();if(d5=1&d6=1&d7=0) /左边压黑线 turn_left1();if(d5=1&d6=0&d7=0) turn_left2();void init()/初始化函数; TMOD=0X01;TH0=(65536-100)/256; /设置计时时间长度100usTL0=(65536-100)%256;ET0=1;EA=1;TR0=1;ENA=1;ENB=1;d0=0;d1=1;d2=0;d3=1;void main() init();while(1) /主

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论