基于光电导航的电动小车速度控制系统设计毕业设计Word文档格式.docx

上传人:b****5 文档编号:20345174 上传时间:2023-01-22 格式:DOCX 页数:21 大小:268.92KB
下载 相关 举报
基于光电导航的电动小车速度控制系统设计毕业设计Word文档格式.docx_第1页
第1页 / 共21页
基于光电导航的电动小车速度控制系统设计毕业设计Word文档格式.docx_第2页
第2页 / 共21页
基于光电导航的电动小车速度控制系统设计毕业设计Word文档格式.docx_第3页
第3页 / 共21页
基于光电导航的电动小车速度控制系统设计毕业设计Word文档格式.docx_第4页
第4页 / 共21页
基于光电导航的电动小车速度控制系统设计毕业设计Word文档格式.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

基于光电导航的电动小车速度控制系统设计毕业设计Word文档格式.docx

《基于光电导航的电动小车速度控制系统设计毕业设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于光电导航的电动小车速度控制系统设计毕业设计Word文档格式.docx(21页珍藏版)》请在冰豆网上搜索。

基于光电导航的电动小车速度控制系统设计毕业设计Word文档格式.docx

3.2系统设计框图3

3.3小车循迹流程图4

第四章硬件设计6

4.1单片机主控电路模块6

4.1.1单片机的选择6

4.1.2晶振电路6

4.1.3复位电路7

4.2红外传感器检测模块7

4.2.1LM339模块及红外对管模块7

4.2.2检测系统的循迹原理8

4.3电机及驱动系统9

4.3.1L293D芯片的原理9

4.3.2L293D芯片的端口功能10

4.3.3L293D驱动模块11

4.3.4PWM调速系统11

4.3.5直流电机12

第五章软件设计12

5.1系统整体流程图13

5.2循迹内环检测子程序流程图13

5.3循迹外环子程序流程图14

5.4电路连接原理图14

心得体会15

参考文献16

附录源程序17

第一章绪论

1.1课题背景与意义

1.1.1课题背景

随着社会的不断发展,科学技术水平的不断提高,人们希望创造出一种来代替人来做一些非常危险,或者要求精度很高等其他事情的工具,于是就诞生了机器人这门学科。

世界上诞生第一台机器人诞生于1959年,至今已有50多年的历史,机器人技术也取得了飞速的发展和进步,现已发展成一门包含:

机械、电子、计算机、自动控制、信号处理,传感器等多学科为一体的性尖端技术。

智能小车可以作为机器人的典型代表,加装光电、红外线,实现对电动车的速度、位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的智能控制,不仅可以实现自动导引功能和避障功能,而且还可以感知导引线和障碍物,实现自动识别路线,选择正确的行进路线,并作出正确的判断和相应的执行动作。

在现有小车的基础上,。

这对于我们的各个方面都有重大的意义。

1.1.2课题意义

目前在研究和发展阶段的,是以多种外部传感器构成感官系统,通过采集外部的环境信息,精确地描述外部环境的变化。

智能循迹小车,能独立完成任务,有其自身的知识基础,多信息处理系统,在结构化或半结构化的工作环境中,根据环境变化作出决策,有一定的适应能力,自我学习能力和自我组织的能力。

为了让循迹小车能独立工作,一方面应具有较高的智慧和更广泛的应用,研究各种新机传感器,另一方面,也掌握多个多类传感器信息融合的技术,这样循迹小车可以更准确,更全面的获得所处环境的信息。

第二章设计目的及要求

2.1设计目的

计算机控制系统是自动控制理论和微型计算机原理和接口等技术在工业生产过程中实现自动控制的专门技术,其以自动控制理论为基础,以电子技术、传感器原理、计算机原理及接口等课程内容为辅助,通过计算机控制系统设计的实践环节培养学生理论应用能力、总结归纳能力以及自我学习能力,从而进一步提高学生工程实践能力和创新意识的培养。

2.2设计内容及要求

设计并开发能自动循迹和调速的电动小车控制系统,要求利用黑色引导线对小车进行导航,能实现电动小车的速度闭环控制;

在保证小车不冲出跑道的前提下,要求小车能以最短的时间通过跑道上的加速区,以固定的速度通过跑道的匀速区域,以较慢的速度通过减速区,不同的区域通过黑色标记线进行划分。

基本要求:

(1)利用红外对管等传感器设计导航、测速电路,设计小车的电源管理电路,完成单片机和各模块的接口电路设计;

利用脉宽调制原理实现直流电机的速度控制,完成各模块的控制程序设计。

(2)够按照指定轨迹(单迹)行驶;

(3)能够识别赛道加速和减速标志;

(4)到达终点后可以自动停车;

智能车行驶过程中不得人为干预

2.3设计工作任务及工作量的要求

(1)课程设计报告(由“题目背景与意义”、“设计题目介绍”、“系统总体框架”、“系统硬件设计”、“系统软件设计”、“结论”六个部分组成);

(2)课程设计任务书;

(3)系统硬件原理图;

(4)系统软件流程图;

第三章系统设计方案

3.1总体方案论证与分析

根据设计要求,将系统分为单片机控制模块、电源模块、电机驱动模块及红外传感器检测模块。

其中信号检测部分通过光电传感器检测并将信号传回单片机进行处理。

控制部分的作用是接收并处理传感器检测到的信号,通过判断信号的类别控制小车的动作。

本系统采用AT89C52单片机,其特点是小型、快速、低功耗、I/O口资源丰富等,能够满足本小车的设计要求。

采用两个直流电机驱动,电路简单,成本不高。

电机的驱动芯片采用L293D,该芯片有四路输出,可以驱动一个四相步进电机或两个直流电机,四路总电流可达4A,输出电压最高可达46V,可以直接用单片机I/O口的输出信号来控制。

检测模块采用光电传感器,经光耦和LM339放大,信号检测稳定,能够满足系统要求。

小车跑道由白色KT板和黑带组成,用反射式光电传感器识别路面黑白两种不同的状态,然后将路况传送到主控板,进而控制小车作相应的动作。

因为反射式光电传感器发射和接收的光为红外线,受外界可见光的影响较小,能有效提高抗干扰的能力。

外加四路的小车遥控模块,利用二极管的单向性进行半隔离,当小车都检测不到黑线带的时候启用遥控,人工讲小车遥控到黑带线上,小车继续循迹,遥控失效。

首先,要让小车正常行驶,必须保证小车不驶出边界,故利用反射式光电传感器来检测黑带,防止出界。

当传感器检测到黑线时会输出一个高电平,该信号传至单片机后,单片机对其转向进行处理,使其在行车道内行驶。

当左侧检测到黑线时单片机控制小车左转,反之若右侧检测到黑线时右转,否则直走。

3.2系统设计框图

智能循迹小车控制系统由主控制电路模块、稳压电源模块、红外检测模块、电机及驱动模块等部分组成。

系统设计框图如下所示:

图3.1系统设计框图

1、主控制电路模块:

用AT89C52单片机、复位电路,时钟电路

2、红外检测模块:

光电传感器,比较器LM339

3、电机及驱动模块:

电机驱动芯片L293D、两个直流电机

4、电源模块:

双路开关电源

3.3小车循迹流程图

小车进入循迹模式后,即开始不停地扫描与探测器连接的单片机I/O口,一旦检测到某个I/O口有信号,即进入判断处理程序,先确定4个探测器中的哪一个探测到了黑线,如果左面第一级传感器或者左面第二级传感器探测到黑线,即小车左半部分压到黑线,车身向右偏出,此时应使小车向左转;

如果是右面第一级传感器或右面第二级传感器探测到了黑线,即车身右半部压住黑线,小车向左偏出了轨迹,则应使小车向右转。

在经过了方向调整后,小车再继续向前行走,并继续探测黑线重复上述动作。

循迹流程图如图3.2所示

图3.2循迹流程图

由于第二级方向控制为第一级的后备,则两个等级间的转向力度必须相互配合。

第二级通常是在超出第一级的控制范围的情况下发生作用,它也是最后一层保护,所以它必须要保证小车回到正确轨迹上来,则通常使第二级转向力度大于第一级,即Turn_left2>

Turn_left1,Turn_right2>

Turn_right1(其中Turn_left2,Turn_left1,Turn_right2,Turn_right1为小车转向力度,其大小通过改变单片机输出的占空比的大小来改变),具体数值在实地实验中得到。

第四章硬件设计

4.1单片机主控电路模块

4.1.1单片机的选择

本课题选择了AT89C52单片机。

AT89C52是一种低功耗、高性能CMOS8位微控制器,是带8K字节闪烁可编程可檫除只读存储器。

一个芯片上拥有8位CPU,并且在系统可编程Flash。

AT89C52提供给为众多嵌入式控制应用系统高灵活、超有效的解决方案。

AT89C52具有以下标准功能:

8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,两个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。

此外,空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

4.1.2晶振电路

在AT89C52单片机上内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。

时钟可以由内部方式产生或外部方式产生。

在1和XTAL2引脚上外接定时元件,内部振荡器就产生自激振荡。

定时元件通常采用石英晶体和电容组成的并联谐振回路。

从XTAL1接入,如图3.2所示。

由于外部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占空比没有要求。

本设计选用的是12MHZ无源晶振、2个22pF电容,使得一个机器周期是1μs。

晶振的作用是为系统提供基本的时钟信号,而两个电容则是起到并联谐振的作用,如果没电容,振荡电路会因为没有回路而停振,电路不能正常工作。

图4.1单片机晶振电路图

4.1.3复位电路

复位电路的作用是在上电或复位过程中,控制CPU的复位状态:

这段时间内让CPU保持复位状态,而不是一上电或刚复位完毕就工作,防止CPU发出错误的指令、执行错误操作,也可以提高电磁兼容性能。

当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。

本设计采用的电容值为10μF的电容和1.5KΩ的电阻。

如图3.3所示上电后,由于电容充电,使RST持续一段高电平时间。

当单片机已在运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且开关复位的操作。

图4.2复位电路

4.2红外传感器检测模块

4.2.1LM339模块及红外对管模块

图4.3和实验室设计的红外循迹模块,主要分为两大部分,LM339比较器模块和红外对管模块。

图4.3LM339模块及红外光电管模块

利用黑线对红外线不同的反射能力通过光敏二极管或光敏三极管,接收反射回的不同光强信号,把不同光强转换为电流信号,最后通过电阻,转换为单片机可识别的高低电平。

光电传感器实现循迹的基本电路如所示。

图4.4循迹传感器电路图

循迹传感器工作原理:

比较器有两个输入端和一个输出端,两个输入端一个称为同输入端,用“+”号表示,另一个称为反相输入端,用“-”表示。

用作比较两个电路时,任意一个输入端加一个固定电压作参考电压(也叫门限电压),另一端则直接接需要比较的信号电压。

当“+”端电压高于“-”端电压时,输出正电源电压,当“-”端电压高于“+”端电压时,输出负电源电压。

这种探测方法,即利用红外线在不同颜色的表面特征,具有不同的反射性能,汽车行驶过程中接收地面的红外光。

当红外光遇到白色路线,地板发生漫反射,安装在小型车的反射光接收器接收;

如果是遇到黑色路线,红外光将被黑线吸收,安装在小车上的接收管没有收到红外光。

控制器会根据是否收到反射的红外光为判断依据来确定的黑线的位置和小车的路线。

红外探测器距离通常是不应超过15厘米的。

红外发射和接收红外线感应器,可以使自己或直接使用集成红外探头。

调整左右传感器之间的距离,两探头距离约等于黑线宽度最合适,选择宽度为3–5厘米的黑线。

该传感器的灵敏度是可调的,传感器有时遇到黑线却不能送出相应的信号,通过调节传感器上的可调电阻,适当的增大或减小可改变灵敏度。

另外,循迹传感器的放置也是有讲究的,有两种方法,一种是两个都是放置在黑线内侧紧贴黑线边缘,第二种是都放置在黑线的外侧,同样紧贴黑线边缘。

4.2.2检测系统的循迹原理

检测系统主要实现光电检测,即利用各种传感器对电动车的位置、行车状态进行测量。

本系统采用反射式红外线光电传感器用于检测路面的起始、终点(2cm宽的黑线),玩具车底盘上沿黑线放置一套,以适应起始的记数开始和终点的停车的需要。

利用超声波传感器检测障碍。

光线跟踪,采用光敏三极管接收灯泡发出的光线,当感受到光线照射时,其c-e间的阻值下降,检测电路输出高电平,经LM339电压比较器整形后送单片机控制。

本系统共设计4个光电三极管,分别放置在电动车车头的左、右两个方向,用来控制电动车的行走方向,当左侧光电管受到光照时,单片机控制转向电机向左转;

当右侧光电管受到光照时,单片机控制转向电机向右转;

当左、右两侧光电管都受到光照时,单片机控制直行。

正常行驶时,发射管发射红外光照射地面,光线经白纸反射后被接收管接收,输出高电平信号;

电动车经过黑线时,发射端发射的光线被黑线吸收,接收端接收不到反射光线,传感器输出低电平信号后送AT89C52单片机处理,判断执行。

图4.5电动车的方向检测电路

4.3电机及驱动系统

4.3.1L293D芯片的原理

L293D是最常见的步进电机驱动,采用16引脚DIP封装,其内部集成了双极型H_桥电路,所有的开量都做成n型。

这种双极型脉冲调宽方式具有很多优点。

L293D通过内部逻辑生成使能信号,H_桥电路的输入量可以用来设置马达转动方向,使能信号可以用于脉宽调整(PWM)。

L293D将2个H桥电路集成到1片芯片上,这就意味着用1片芯片可以同时控制2个电机。

每一个电机需要3个控制信号EN12、IN1、IN2。

具体控制过程为:

1.通过编程由控制芯片经PWM发出驱动信号,PWM输出作为L293D的输入,经L293D转换输出控制信号使电机转动,进而带动车轮转动,使小车前进后退。

2.PWM输出信号的高低则可以控制直流电机转动的快慢,当占空比大时,转速高,占空比小时,转速低,所以当PWM输出占空比为0时可控制电机停止。

3.当左轮停止,右轮转,小车右转。

当右轮停止,左轮转动,小车左转。

4.3.2L293D芯片的端口功能

图4.6L293D引脚图

图4.7L293D输入输出关系

VCC:

电源输出端;

EN2:

第二路驱动使能端/PWM输入端;

EN1:

第一路驱动使能端/PWM输入端;

IN4/IN3:

电机方向控制端;

IN2/IN1:

S2:

第一路测速传感器接口;

S1:

第二路测速传感器接口;

GND:

4.3.3L293D驱动模块

采用L293D作为电机驱动芯片。

L293D具有高电压、大电流、响应频率高的全桥驱动芯片,一片L293D可以分别控制两个直流电机,并且带有控制使能端。

该电机驱动芯片驱动能力强、操作方便,稳定性好,性能优良。

L293D的使能端可以外接电平控制,也可以利用单片机进行软件控制,满足各种复杂电路的需要。

另外,L293D的驱动功率较大,能够根据输入电压的大小输出不同的电压和功率,解决了负载能力不够的问题。

图4.8L293D电机驱动电路

4.3.4PWM调速系统

脉冲宽度调制(PulseWidthModulation),简称PWM。

脉冲周期不变,只改变晶闸管的导通时间,即通过改变脉冲宽度来进行直流调速。

PWM调速系统有下列优点:

(1)由于PWM调速系统的开关频率较高,仅靠电枢电感的滤波作用就可以获得脉动很小的直流电流,电枢电流容易连续,系统的低速运行平稳,调速范围较宽,可达1:

10000左右。

由于电流波形比V-M系统好,在相同的平均电流下,电动机的损耗和发热都比较小。

(2)同样由于开关频率高,若与快速响应的电机相配合,系统可以获得很宽的频带,因此快速响应性能好,动态抗扰能力强。

(3)由于电力电子器件只工作在开关状态,主电路损耗较小,装置效率较高。

根据以上综合比较,以及本设计中受控电机的容量和直流电机调速的发展方向,本设计采用了H型单极型可逆PWM变换器进行调速。

脉宽调速系统的主电路采用脉宽调制式变换器,简称PWM变换器。

脉宽调速也可通过单片机控制继电器的闭合来实现,但是驱动能力有限。

为顺利实现电动小汽车的前行与倒车,本设计采用了可逆PWM变换器。

可逆PWM变换器主电路的结构式有H型、T型等类型。

我们在设计中采用了常用的双极式H型变换器,它是由4个三极电力晶体管和4个续流二极管组成的桥式电路。

4.3.5直流电机

采用双直流电动机。

直流电动机的控制方法比异步电动机简单,只需给电机两条控制线加上适当的电压就能使电机旋转,在正常工作电压范围,电压越高直流电机转速越高。

直流电动机调速方法分为两种:

一种是直接调整电压,另一种通过PWM调速。

PWM调速就是使加在直流电机两端的电压波形为矩形波,改变矩形波的占空比就能实现电压的改变,从而实现电机转速的改变。

第五章软件设计

本设计采用C语言来编译程序。

模块化结构程序的设计,可以使系统软件便于调试与优化,也使其他人更好地理解和阅读系统的程序设计。

随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。

如果使用C语言编程,那么Keil几乎就是不二之选。

5.1系统整体流程图

图5.1系统整体流程图

5.2循迹内环检测子程序流程图

图5.2循迹内环检测子程序流程图

5.3循迹外环子程序流程图

图5.3循迹外环子程序流程图

5.4电路连接原理图

5.4电路连接原理图

心得体会

通过这次课程设计,让我的更加扎实的掌握了专业知识,经历了系统方案的确定,原理图的设计,程序还有仿真设计。

在设计的过程中也遇到了很多困难,在解决这些问题的过程中,我意识到了我在专业方面知识欠缺,设计经验不足等问题。

这次亲手从设计原理图到最后把仿真做出来,让我觉得真的学到了很多很多。

这次智能循迹小车的设计,检验我们的硬件设计能力,软件设计能力,还有查阅资料与人沟通等各方面的能力。

同时也将我们的知识运用到实践中。

在设计的过程中,我首先设计硬件,要画原理图。

在完成画完图之后,买回电子元器件,开始着手焊接。

在编写软件时,为了能尽快把程序调试好,我运用了以前学习过的protues仿真软件,因为利用Protues在程序编译完成后,就可以直接运行程序。

而如果不仿真,则每次要将编译完成的代码通过下载线下载到单片机里面,再通电运行,这样很浪费时间。

所以我先在protues仿真软件里面进行仿真,仿真好了之后,再下载到单片机里面进行检验。

在编写程序时,由于自己平时没有练习写程序,所以在面对这样一个系统时,不知道从哪里下手。

于是在网上查找了一些资料。

经过几天的学习,终于了解了一些。

在调试的过程中虽然遇到一些困难,但是通过请教同学,最终得以解决。

完成硬件与软件的设计之后,我感到动手实践真的很重要,从理论到实践,让我明白了,学校里面学了很多东西,都是我们要和实践相结合,只有将理论转化为实践,我们才能正正成为应用型人才。

参考文献

[1]李鹏举,《51单片机工程师是怎么炼成的》,北京:

电子工业出版社,2012年

[2]PaulHorowitz,《电子学》,北京:

电子工业出版社,2011年

[3]姜学军,《计算机控制技术》,北京:

清华大学出版社,2009年

[4]裘宗燕译,《程序设计语言》,北京:

电子工业出版社,2005年

附录源程序

#include<

reg52.h>

#defineuintunsignedint

#defineucharunsignedchar

/******硬件连接定义******/

sbitEN1=P1^0;

//电机A控制

sbitOUT1=P1^1;

//电机A控制1

sbitOUT2=P1^2;

//电机A控制2

sbitEN2=P1^4;

//电机B控制

sbitOUT3=P1^5;

//电机B控制1

sbitOUT4=P1^6;

//电机B控制2

sbithw1=P2^0;

//红外传感1

sbithw2=P2^1;

//红外传感2

sbithw3=P2^2;

sbithw4=P2^3;

ucharcircs;

voidgo_ma()//电机A前进

{

EN1=1;

OUT1=1;

OUT2=0;

}

voidstop_ma()//电机A停止

OUT1=0;

voidgo_mb()//电机B前进

EN2=1;

OUT3=1;

OUT4=0;

voidstop_mb()//电机B停止

OUT3=0;

voidadvance()//前进

go_ma();

go_mb();

voidleft_turn()//左转

stop_ma();

voidright_turn()//右转

stop_mb();

voidstop()//停止

delay(intx)//延时函数

uinti,j;

for(i=x;

i>

0;

i--)

for(j=10;

j>

j--);

/******外检测函数******/

voidhw_scan()//红外检测

if(hw1==0&

&

hw2==0&

hw3==0&

hw4==0)//直线

circs=1;

hw2==1&

hw3==1&

hw4==1)//偏左

circs=2;

if(hw1==1&

hw4==1)//偏左

hw4==0)//偏右

circs=3;

hw4==1)//偏右

circ

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 思想汇报心得体会

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1