循迹小车实践报告.doc_第1页
循迹小车实践报告.doc_第2页
循迹小车实践报告.doc_第3页
循迹小车实践报告.doc_第4页
循迹小车实践报告.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

自动循迹小车江 西 理 工 大 学创新实验报告题 目:循迹小车的制作 学 院:电气工程与自动化学院专 业:自动化 班 级: 113 学 生:黄 盼 学 号:23 时间:2012年8月2号目 录目 录摘 要:1.任务及要求1.1任务2.系统设计方案2.1小车循迹原理2.2控制系统总体设计3.系统方案3.1 寻迹传感器模块3.1.1红外传感器简介3.1.2传感器安装3.2控制器模块3.3电源模块3.4电机及驱动模块3.4.1电机3.4.2驱动3.5自动循迹小车总体设计3.5.1系统总体说明4.软件设计4.1 PWM控制4.2 总体软件流程图4.3小车循迹流程图4.4中断程序流程图4.5单片机测序5. 实验总结- 自动循迹小车摘 要:本设计是一种基于单片机控制的简易自动寻迹小车系统,包括小车系统构成软硬件设计方法。利用红外光电传感器对路面黑色轨迹进行检测,并将路面检测信号反馈给单片机。单片机对采集到的信号予以分析判断,及时控制驱动电机以调整小车转向,从而使小车能够沿着黑色轨迹自动行驶,实现小车自动寻迹的目的。关键词:单片机 光电传感器 直流电机 自动循迹小车1.任务及要求1.1任务 设计一个基于直流电机的自动寻迹小车,使小车能够自动检测地面黑色轨迹,并沿着黑色车轨迹行驶。系统方案方框图如图1-1所示。检测(黑线)驱动电机软件控制控制小车图1-1 系统方案方框图2.系统设计方案2.1小车循迹原理这里的循迹是指小车在白色地板上循黑线行走,由于黑线和白色地板对光线的反射系数不同,可以根据接收到的反射光的强弱来判断“道路”。通常采取的方法是红外探测法。红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。红外探测器探测距离有限。 2.2控制系统总体设计自动循迹小车控制系统由主控制电路模块、稳压电源模块、红外检测模块、电机及驱动模块等部分组成, 1、 主控制电路模块:单片机、复位电路,时钟电路2、 红外检测模块:光电传感器。3、 电机及驱动模块:电机驱动芯片、两个直流电机4、 电源模块:开关电源3.系统方案3.1 寻迹传感器模块ST系列反射式光电传感器是经常使用的传感器。这个系列的传感器种类齐全、价格便宜、体积小、使用方便、质量可靠、用途广泛。在黑线检测的测试中,若检测到白色区域,发射管发射的红外线没有反射到接收管,测量接收管的电压为48V ,若检测到黑色区域,接收管接受到发射管发射的红外线,电阻发生变化,所分得的电压也就随之发生变化,测的接收管的电压为05V,测试基本满足要求。3.1.1红外传感器含一个反射模块(发光二极管)和一个接收模块(光敏三极管)。通过发射红外信号,看接收信号变化判断检测物体状态的变化。A、K之间接发光二极管,C、E之间接光敏三极管(二者在电路中均正接,但要串联一定阻值的电阻) 图 3-1 实物图 图 3-2 管脚图及内部电路 3.1.2传感器安装 在小车具体的循迹行走过程中,为了能精确测定黑线位置并确定小车行走的方向,需要同时在底盘装设2个红外探测头,进行两级方向纠正控制,提高其循迹的可靠性。这2个红外探头的具体位置如图3-6所示。 传感器安装图图中循迹传感器全部在一条直线上。其中X1与Y1为方向控制传感器.小车前进时,始终保持(如图3-6中所示的行走轨迹黑线)在X1和Y1这两个传感器之间,当小车偏离黑线时,传感器就能检测到黑线,把检测的信号送给小车的处理、控制系统,控制系统发出信号对小车轨迹予以纠正。若小车回到了轨道上,即2个探测器都只检测到白纸,则小车会继续行走,从而提高了小车循迹的可靠性。 3.2控制器模块采用Atmel 公司的80C51单片机作为主控制器。它是一个低功耗,高性能的8 位单片机,片内含16k 空间的Flash 只读存储器,具有1K 的随机存取数据存储器(RAM),4 个I/O口,1个可编程看门狗定时计数器,且可在线编程、调试,方便地实现程序的下载与整机的调试。时钟电路和复位电路 如图3-7(与单片机构成最小系统)1)采用外部时钟,晶振频率为12MHZ2)采用按键复位P89V51(QFP-44)最小系统3.3电源模块 3.4电机及驱动模块3.4.1电机 电机采用直流减速电机,直流减速电机转动力矩大,体积小,重量轻,装配简单,使用方便。由于其内部由高速电动机提供原始动力,带动变速(减速)齿轮组,可以产生较大扭力。3.4.2驱动驱动模块采用专用芯片L298N 作为电机驱动芯片,L298N 是一个具有高电压大电流的全桥驱动芯片,其响应频率高,一片L298N可以分别控制两个直流电机。以下为L298N的引脚图和输入输出关系表。 图3-9 L298N外部引脚 表2 L298N输入输出关系实物图部分背面3.5自动循迹小车总体设计图3-11 总体电路图3.5.1系统总体说明如图3-11所示,当光电传感器开始接受信号,通过比较器将信号传如单片机中。小车进入寻迹模式,即开始不停地扫描与探测器连接的单片I/O 口,一旦检测到某个I/O 口有信号变化,就执行相应的判断程序,把相应的信号发送给电动机从而纠正小车的状态。单片机采用T0定时计数器,通过来产生PWM波,控制电机转速。4.软件设计4.1 PWM控制本系统采用PWM来调节直流电机的速度。PWM是通过控制固定电压的直流电源开关频率,从而改变负载两端的电压,进而达到控制要求的一种电压调整方法。PWM可以应用在许多方面,如电机调速、温度控制、压力控制等。在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来改变平均电压的大小,从而控制电动机的转速。因此,PWM又被称为“开关驱动装置”。在脉冲作用下,当电机通电时,速度增加;电机断电时,速度逐渐减少。只要按一定规律,改变通、断电的时间,即可让电机转速得到控制。本系统中通过控制51单片机的定时器T0的初值,从而可以实现P0.4和P0.5输出口输出不同占空比的脉冲波形。定时计数器若干时间(比如0.1ms)中断一次, 就使P0.4或P0.5产生一个高电平或低电平。 将直流电机的速度分为100个等级, 因此一个周期就有个100脉冲, 周期为100个脉冲的时间。速度等级对应一个周期的高电平脉冲的个数。占空比为高电平脉冲个数占一个周期总脉冲个数的百分数。一个周期加在电机两端的电压为脉冲高电压乘以占空比。占空比越大, 加在电机两端的电压越大, 电机转动越快。电机的平均速度等于在一定的占空比下电机的最大速度乘以占空比。当我们改变占空比时, 就可以得到不同的电机平均速度, 从而达到调速的目的。精确地讲, 平均速度与占空比并不是严格的线性关系, 在一般的应用中, 可以将其近似地看成线性关系。4.2 总体软件流程图小车进入寻迹模式后,即开始不停地扫描与探测器连接的单片I/O 口,一旦检测到某个I/O 口有信号变化,就执行相应的判断程序,把相应的信号发送给电动机从而纠正小车的状态。软件的主程序流程图如图4-1所示:系统初始化任务计数器归零是否完成全部任务?循迹子函数是否完成本次任务?结束开始NYNY图4-1主程序流程图4.3小车循迹流程图小车进入循迹模式后,即开始不停地扫描与探测器连接的单片机I/O口,一旦检测到某个I/O口有信号,即进入判断处理程序,先确定2个探测器中的哪一个探测到了黑线,如果左面传感器探测到黑线,即小车左半部分压到黑线,车身向右偏出,此时应使小车向左转;如果是右面传感器探测到了黑线,即车身右半部压住黑线,小车向左偏出了轨迹,则应使小车向右转。在经过了方向调整后,小车再继续向前行走,并继续探测黑线重复上述动作。循迹流程图如图4-2所示图4-2循迹流程图启动循迹模式探测黑线是否检测到黑线判断处理程序向左转Tr_left2向左转Turn_left1向右转Turn_right1向右转Turn_Lright2继续前进NY由于第二级方向控制为第一级的后备,则两个等级间的转向力度必须相互配合。第二级通常是在超出第一级的控制范围的情况下发生作用,它也是最后一层保护,所以它必须要保证小车回到正确轨迹上来,则通常使第二级转向力度大于第一级,即Turn_left2 Turn_left1,Turn_right2 Turn_right1 (其中Turn_left2,Turn_left1, Turn_right2 , Turn_right1为小车转向力度,其大小通过改变单片机输出的占空比的大小来改变),具体数值在实地实验中得到。4.4中断程序流程图这里利用的是51单片机的T0定时计数器,从而让单片机P0口的P0.4和P0.5引脚输出占空比不同的方波, 然后经驱动芯片放大后控制直流电机。定时计数器若干时间(比如0.1ms)比如中断一次, 就使P0.4或P0.5产生一个高电平或低电平。中断程序流程图如图4-3所示定时器赋初值技术变量赋值t=0计数值t占空比?P0.4和P0.5输出高电平P0.4和P0.5输出低电平计数变量t加1开始结束YN图4-3中断程序流程图4.5单片机测序 #includeconfig.h#includePort.h#includeconfig.h#includePort.h#define uchar unsigned char #define uint unsigned int#define CG1 P3_1#define CG2 P3_3#define DIR1 P1_0#define DIR2 P1_2 #define PWM1 P0_1#define PWM2 P0_3uchar temp;uchar signal ;void delay_1ms(uint d)uint i;while(d-)for(i=0;i75;i+);void motor_run() /电机起动 PWM1=1; PWM2=1; DIR2=0; DIR1=0;void motor_left() /小车左转PWM1=0; PWM2=1;DIR2=1;DIR1=0;void motor_right() /小车右转 PWM1=1; PWM2=0;DIR1=1;DIR2=0;void motor_round() /小车自转 PWM1=1; PWM2=1;DIR1=1;DIR2=0; void motor_stop()/电机停止 PWM1=0; PWM2=0; DIR1=0; DIR2=0;void motor_quickrun() PWM1=1; PWM2=1; DIR1=1; DIR2=1;void main() while(1) motor_run();if(CG1=1&CG2=0)motor_left(); if(CG1=0&CG2=1)motor_right(); if(CG1=1&CG2=1)motor_stop();if(CG2=0&CG1=0) motor_run(); /如果在其它文件中实现中断处理程序,需要在包含main函数的文件中声明该中断处理程序/该声明可以直接放在包含main函数的文件或者被包含main函数的文件包含的头文件中/声明的形式为:void xxx_isr(void) _interrupt xvoid INIT0_ISR(void) _interrupt 0 /外部中断0中断处理程序void TIMER0_ISR(void) _interrupt 1 /定时器0中断处理程序void INIT1_ISR(void) _interrupt 2 /外部中断1中断处理程序void TIMER1_ISR(void) _interrupt 3 /定时器1中断处理程序void SERIAL_ISR(void) _interrupt 4 /串口中断处理程序 if (TI) /发送数据完毕 TI = 0; /其他的工作 else RI = 0; /接收到数据 /对数据进行处理 5.实验总结: 以前总感觉学的东西是比较虚的,经过这一次的动手实践,让我感觉到这是一门真实的,很有应用的一门学科。一开始在制作电源板时,我请教别人,别人只给了我个电路图,我感觉自己总会犯错,不敢自己动手,就叫别的同学拿出已做好的实验图给我模仿,看着电源板实物图来一步一步的做,很害怕做错,一边拿着别人的实物图,一边请教别人这根线是怎么连得,后来慢慢的就有点自信了,做完了电源板接着做驱动板,我跟着电路图,感觉按着这个电路图制作出来的实物板不太美观,就慢慢地改良,再用电烙铁焊的时候,开始焊时管脚那里的焊锡焊的好多,像一个好大的珠子,我慢慢的琢磨,后来终于焊的比较美观。这块我做出来的实物驱动板布置的很对称,自己心里好高兴。接着就是寻迹板,我继续改良寻迹板,小心翼翼的焊着每根线,终于做完了,就立刻拿着自己做的板和别人比比,看着别人的做的那么不美观,我心里又一阵高兴,然而,就在我检测这块板时,发现没用,检查了好久都没有检查查出错误,弄得我心里很急,就请教

温馨提示

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

评论

0/150

提交评论