循迹避障带上位机红外超声波功能智能小车讲解.docx

上传人:b****1 文档编号:1265661 上传时间:2023-04-30 格式:DOCX 页数:58 大小:727.32KB
下载 相关 举报
循迹避障带上位机红外超声波功能智能小车讲解.docx_第1页
第1页 / 共58页
循迹避障带上位机红外超声波功能智能小车讲解.docx_第2页
第2页 / 共58页
循迹避障带上位机红外超声波功能智能小车讲解.docx_第3页
第3页 / 共58页
循迹避障带上位机红外超声波功能智能小车讲解.docx_第4页
第4页 / 共58页
循迹避障带上位机红外超声波功能智能小车讲解.docx_第5页
第5页 / 共58页
循迹避障带上位机红外超声波功能智能小车讲解.docx_第6页
第6页 / 共58页
循迹避障带上位机红外超声波功能智能小车讲解.docx_第7页
第7页 / 共58页
循迹避障带上位机红外超声波功能智能小车讲解.docx_第8页
第8页 / 共58页
循迹避障带上位机红外超声波功能智能小车讲解.docx_第9页
第9页 / 共58页
循迹避障带上位机红外超声波功能智能小车讲解.docx_第10页
第10页 / 共58页
循迹避障带上位机红外超声波功能智能小车讲解.docx_第11页
第11页 / 共58页
循迹避障带上位机红外超声波功能智能小车讲解.docx_第12页
第12页 / 共58页
循迹避障带上位机红外超声波功能智能小车讲解.docx_第13页
第13页 / 共58页
循迹避障带上位机红外超声波功能智能小车讲解.docx_第14页
第14页 / 共58页
循迹避障带上位机红外超声波功能智能小车讲解.docx_第15页
第15页 / 共58页
循迹避障带上位机红外超声波功能智能小车讲解.docx_第16页
第16页 / 共58页
循迹避障带上位机红外超声波功能智能小车讲解.docx_第17页
第17页 / 共58页
循迹避障带上位机红外超声波功能智能小车讲解.docx_第18页
第18页 / 共58页
循迹避障带上位机红外超声波功能智能小车讲解.docx_第19页
第19页 / 共58页
循迹避障带上位机红外超声波功能智能小车讲解.docx_第20页
第20页 / 共58页
亲,该文档总共58页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

循迹避障带上位机红外超声波功能智能小车讲解.docx

《循迹避障带上位机红外超声波功能智能小车讲解.docx》由会员分享,可在线阅读,更多相关《循迹避障带上位机红外超声波功能智能小车讲解.docx(58页珍藏版)》请在冰点文库上搜索。

循迹避障带上位机红外超声波功能智能小车讲解.docx

循迹避障带上位机红外超声波功能智能小车讲解

青岛滨海学院

项目设计报告

项目:

超声波避障小车的设计与制作

 

专业计算机应用技术

学生姓名刘少鹏

班级14微高

学号20141080523

指导教师郭志卓

完成日期2015.05.12

摘要

STC89C52单片机是一款八位单片机,他的易用性和多功能性受到了广大使用者的好评。

本文提出一种智能避障,循迹小车的设计方法,利用红外技术检测障碍物,轨迹信息,采用STC89C52单片机进行实时控制,实现智能避障,循迹。

再利用无线通信实现上位机与下位机的通信,智能小车采用前轮驱动,两轮各用一个直流电机控制,避障,循迹用的传感器采用红外反射式传感器。

整个系统的电路结构简单,可靠性能较高。

实验测试结果满足要求,本文着重介绍了该系统的硬件设计方法及程序设计。

采用的技术主要有:

(1)PWM调速;

(2)红外传感器;

(3)无线通信及串口通信;

(4)上位机.

(5)LCD

(6)超声波传感器

 

摘要------------------------------------------------------------------------------0

前言------------------------------------------------------------------------------2

功能概述------------------------------------------------------------------------3

硬件设计------------------------------------------------------------------------3

避障电路------------------------------------------------------------------------3

循迹电路------------------------------------------------------------------------5

单片机电路---------------------------------------------------------------------7

电机转速控制电路------------------------------------------------------------8

电源电路------------------------------------------------------------------------8

电机驱动电路------------------------------------------------------------------9

通信系统-------------------------------------------------------------------------11

测速模块儿----------------------------------------------------------------------15

上位机设计----------------------------------------------------------------------16

附录一----------------------------------------------------------------------------17

附录二----------------------------------------------------------------------------20

小结------------------------------------------------------------------------------42

参考文献------------------------------------------------------------------------42

 

前言

---------------------------------------------------

随着生产自动化的发展需要,机器人已经越来越广泛地应用到生产自动化上,随着科学技术的发展,机器人的传感器种类也越来越多,其中红外传感器已经成为自动行走和驾驶的重要部件。

红外的典型应用领域为自主式智能导航系统,机器人要实现自动避障功能就必须要感知障碍物,感知障碍物相当给机器人一个视觉功能。

智能避障是基于红外传感系统,采用红外传感器实现前方障碍物检测,并判断障碍物远近。

而利用红外对不同颜色物体反射强弱差别

可以检测到不同颜色的物体,从而实现循迹功能。

由于时间和水平有限,我们暂选最基本的避障,循迹功能作为此次设计的目标。

目前,在自动控制领域中,经常要实现上位机和下位机的通信。

有时甚至要求上位机和多台下位机建立通信。

因此人们常常将工控机和PC机结合起来构成主从式控制系统。

在这过程中,上位机主要负责人机接口管理和系统资源的高层控制。

下位机主要完成数据采集、处理、接收,本次我们基于串口通信和VB通过NRF24L01设计了一个上位机下位机无线通信的系统。

本设计通过小车这个载体再结合由STC89C52为核心的控制板可以达到其基本功能,再辅加由反射式光电开关E18-D80NK组成的避障电路,由TCRT5000光电对管和LM324设计的循迹电路,基于PWM技术的转速控制、基于LM2940电源电路、基于L298N的电机驱动电路以及基于NRF24L01的无线通信系统就可以完成整个硬件设计。

 

一.功能概述

智能小车采用前轮驱动,前轮左右两边各用一个电机驱动,分别控制两个轮子的转动从而达到转向的目的,后轮是万向轮,起支撑的作用。

避障部分,将3个红外线光电传感器分别装在车体的左中右,当车的左边的传感器检测到障碍物时,主控芯片控制右轮电机停止左轮转动,车向右方转向,当车的右边传感器检测到障碍物时,主控芯片控制左轮电机停止转动,车向左方转向,当前面有障碍物时规定车右转。

而当小车同时有两个传感器接收到信号时,采用倒退方式转弯以避免碰到障碍物,于此同时测定速度并显示,在避障小车前进的同时,通过无线通信系统,把小车的速度和路程传到上位机显示。

循迹部分,采用七个红外传感器置于车身前下方,中间五个主要用于循迹普通道路,外边两个略比中间的靠前,主要用来检测直角弯道。

车向左偏时右拐,右偏时左拐,左右拐又分为校正和转弯两档。

遇到直角时极易冲出跑道,故给车施加一个反向脉冲。

行驶过程中上位机显示车速及路程。

二.硬件设计

如下图所示,是本次设计智能小车的电路框图。

以STC89C52为电路的中央处理器,来处理传感器采集来的数据,处理完毕之后以便去控制电机驱动电路来驱动电机,并通过无线传输到上位机。

电源部分是为整个电路模块提供电源,以便能正常工作。

三.避障电路

1. 障碍物探测方案的选择 

方案一:

脉冲调制的反射式红外线发射接受器。

由于采用该有交流分量的调制信号,则可大幅度减少外界干扰;另外红外线接受官的最大工作电流取决于平均电流。

如果采用占空比小的调制信号,再品均电流不变的情况下,顺势电流很大(50—100mA),则大大提高了信噪比。

并且其反应灵敏,外围电路也很简单。

它的优点是消除了外界光线的干扰提高了灵敏度。

方案二:

采用超声波传感器,如果传感器接收到反射的超声波,则通知单片机前方有障碍物,如则通知单片机可以向前行驶。

市场上很多红外光电探头也都是基于这个原理。

这样不但能准确完成测量,而且能避免电路的复杂性

 由以上两种方案比较可知。

方案一要比方案二优势大,市场上很多红外观点探头也都基于这个原理。

其电路简单,工作可靠,性能比较稳定。

从而避免了电路的复杂性,因此我先用方案二作为小车的监测系统。

避障电路采用漫反射式光电开关进行避障。

光电开关是集发射头和接收头于一体的检测开关,其工作原理是根据发射头发出的光束,被障碍物反射,接收头据此做出判断是否有障碍物。

当有光线反射回来时,输出低电平;当没有光线反射回来时,输出高电平。

单片机根据接收头电平的高低做出相应控制,避免小车碰到障碍物,由于接收管输出TTL电平,有利于单片机对信号的处理。

2.光电开关工作原理:

光电开关是通过把光强度的变化转换成电信号的变化来实现控制的。

光电开关在一般情况下,有三部分构成,它们分为:

发送器、接收器和检测电路。

避障电路功能表:

传感器

避障电路输出(上升沿动作)

待执行命令

左转信号(P2.1)

右转信号(P2.0)

0

0

0

 

后右转

0

0

1

 

右转

0

1

0

 

右转

0

1

1

 

右转

1

0

0

 

左转

1

0

1

 

右转

1

1

0

 

左转

1

1

1

 

 

前进

注解(“0”表示有障碍物;“1”表示无障碍物)

 

四.循迹模块

TCRT5000传感器

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

笔者在该模块中利用了简单、应用也比较普遍的检测方法——红外探测法。

  红外探测法,即利用红外线在不同颜色的物理表面具有不同的反射性质的特点。

在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车上的接收管接收不到信号,再通过LM324作比较器来采集高低电平,从而实现信号的检测。

避障亦是此原理。

电路图如图3.4。

市面上有很多红外传感器,在这里我选用TCRT5000型光电对管。

图3.4循迹原理图

循迹模块儿功能表

 

1

2

3

4

5

6

7

左拐

1

0

0

0

0

0

0

 

1

1

0

0

0

0

0

 

0

1

0

0

0

0

0

 

Z

Z

0

0

0

0

0

 

 

 

 

 

 

 

 

小左

0

1

1

0

0

0

0

 

0

0

1

0

0

0

0

 

0

Z

1

0

0

0

0

 

 

 

 

 

 

 

 

直走

0

0

1

1

0

0

0

 

0

0

0

1

0

0

0

 

0

0

0

1

1

0

0

 

0

0

Z

1

Z

0

0

 

 

 

 

 

 

 

 

小右

0

0

0

0

1

0

0

 

0

0

0

0

1

1

0

 

0

0

0

0

1

Z

0

 

 

 

 

 

 

 

 

右拐

0

0

0

0

0

1

0

 

0

0

0

0

0

1

1

 

0

0

0

0

0

0

1

 

0

0

0

0

0

Z

Z

 

 

 

 

 

 

 

特殊

0

0

1

1

1

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

0

1

1

1

 

0

0

0

1

1

1

1

右直角

0

0

1

1

1

1

1

 

0

1

1

1

1

1

1

 

0

Z

Z

Z

1

1

1

 

 

 

 

左直角

1

1

1

0

0

0

0

 

1

1

1

1

0

0

0

 

1

1

1

1

1

0

0

 

1

1

1

1

1

1

0

 

1

1

1

Z

Z

Z

0

 

 

 

 

全白

0

0

0

0

0

0

0

全黑

1

1

1

1

1

1

1

五.单片机电路

本设计的主控芯片选择STC89C52,负责检测传感器的状态并向电机驱动电路发出动作命令。

复位电路采用手动复位。

单片机电路如下:

六.电机转速控制电路

转速控制采用基于PWM技术的脉冲调制技术,通过单片机输出两列PWM信号,经过l298N对电机进行速度调控。

   PWM(脉冲宽度调制)控制,通常配合桥式驱动电路实现直流电机调速,非常简单,且调速范围大,它的原理就是直流斩波原理。

如图1所示,若S3、S4关断,S1、S2受PWM控制,假设高电平导通,忽略开关管损耗,则在一个周期内的导通时间为t,周期为T,波形如图6,则电机两端的平均电压为:

U=Vcct/T=αVcc,其中,α=t/T称为占空比,Vcc为电源电压(电源电压减去两个开关管的饱和压降)。

 

   电机的转速与电机两端的电压成比例,而电机两端的电压与控制波形的占空比成正比,因此电机的速度与占空比成比例,占空比越大,电机转得越快,当占空比α=1时,电机转速最大。

PWM控制波形的实现可以通过模拟电路或数字电路实现,例如用555搭成的触发电路,但是,这种电路的占空比不能自动调节,不能用于自动控制小车的调速。

而目前使用的大多数单片机都可以直接输出这种PWM波形,或通过时序模拟输出,最适合小车的调速。

我们使用的是STC89C52单片机,它是8位单片机,内部设有3个独立的计数器,完全可以模拟任意频率、占空比随意调节的PWM信号输出,用以控制电机调速。

在小车行进的过程中,占空比不应该太高,在直线前进和转弯的时候应该区别对待。

若车速太快,则在转弯的时候,方向不易控制;而车速太慢,则很浪费时间。

这时可以根据具体情况慢慢调节

七.电源电路

本系统所有芯片都需要+5V的工作电压,而干电池只能提供的电压为1.5V的倍数的电压,并且随着使用时间的延长,其电压会逐渐下降,故采用了一个12v蓄电池,再用LM2940稳压芯片。

LM2940具有纹波小、电路结构简单的优点,对于单片机,需要提供稳定的5V电源,由于LM2940的稳压的线性度非常好,所以选用

LM2940-5对其进行供电;能提供最大1A的电流,足以满足芯片供电的要求。

虽然微处理器和微控制器不需要支持电路,功耗也很低,但必须要加以考虑。

电源电路拟定为:

八.电机驱动电路

 市场上用很多种类的小电压直流电动机,很方便的选择到。

主要有普通电动机、和步进电动机。

    方案一:

采用步进电机,步进电动机的一个显著的特点就是具有快速启动和停止能力,能够达到我们所要求的标准。

如果负荷不超过步进电机所能提供的动态转矩值,就能够立即是步进电机启动或反转。

其转换灵敏度比较高。

正转、反转控制灵活。

但是步进电机的价格比较昂贵,对于我们的现状相差太远。

    方案二:

采用普通的直流电机。

直流电机具有优良的调速特性,调速平滑、方便。

调整范围广;过载能力强,能承受频繁的冲击负载,可实现频繁的无极快速启动、制动和反转。

能满足各种不容的特殊运行要求。

由于普通直流电机价格适宜,更易于购买,并且电路相对简单,因此采用直流电机作为动力源本设计采用L298N驱动使电机正反转从而做到前进,左转

驱动电路(参考文献[4])

电机驱动一般采用H桥式驱动电路,L298N内部集成了H桥式驱动电路,从而可以采用L298N电路来驱动电机。

通过单片机给予L298N电路PWM信号来控制小车的速度,起停。

其引脚图如3.2,驱动原理图如图3.3。

 

图3.2L298N引脚图

图3.3电机驱动电路

 

九.通信系统

1.NRF24L01工作原理简介:

发射数据时,首先将nRF24L01配置为发射模式,接着把地址TX_ADDR和数据TX_PLD按照时序由SPI口写入nRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10μs,延迟130μs后发射数据;若自动应答开启,那么nRF24L01在发射数据后立即进入接收模式,接收应答信号。

如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从发送堆栈中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC_CNT)达到上限,MAX_RT置高,TX_PLD不会被清除;MAX_RT或TX_DS置高时,使IRQ变低,以便通知MCU。

最后发射成功时,若CE为低,则nRF24L01进入待机模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入待机模式2。

接收数据时,首先将nRF24L01配置为接收模式,接着延迟130μs进入接收状态等待数据的到来。

当接收方检测到有效的地址和CRC时,就将数据包存储在接收堆栈中,同时中断标志位RX_DR置高,IRQ变低,以便通知MCU去取数据。

若此时自动应答开启,接收方则同时进入发射状态回传应答信号。

最后接收成功时,若CE变低,则nRF24L01进入空闲模式1。

模式

PWR_UP

PRIM_RX

CE

FIFO寄存器状态

接收模式

1

1

1

-

发射模式

1

0

11

数据存储在FIFO寄存器中,发射所有数据

发射模式

1

0

0→12

数据存储在FIFO寄存器中,发射一个数据

待机模式II

1

0

1

TXFIFO为空

待机模式I

1

-

0

无正在传输的数据

掉电模式

0

-

-

-

2.SPI介绍

同步串行外设接口(SPI)是由摩托罗拉公司开发的全双工同步串行总线,该总线大量用在与EEPROM、ADC、FRAM和显示驱动器之类的慢速外设器件通信。

SPI(SerialPeripheralInterface)是一种串行串行同步通讯协议,由一个主设备和一个或多个从设备组成,主设备启动一个与从设备的同步通讯,从而完成数据的交换。

SPI接口由SDI(串行数据输入),SDO(串行数据输出),SCK(串行移位时钟),CS(从使能信号)四种信号构成,CS决定了唯一的与主设备通信的从设备,如没有CS信号,则只能存在一个从设备,主设备通过产生移位时钟来发起通讯。

通讯时,数据由SDO输出,SDI输入,数据在时钟的上升或下降沿由SDO输出,在紧接着的下降或上升沿由SDI读入,这样经过8/16次时钟的改变,完成8/16位数据的传输。

总线协议

该总线通信基于主-从(所有的串行的总线均是这样,USB,IIC,SPI等)配置,而且下面提到的方向性的操作合指代全部从主设备的角度说得。

它有以下4个信号:

MOSI:

主出/从入

MISO:

主入/从出

SCK:

串行时钟

SS:

从属选择;芯片上“从属选择”(slave-select)的引脚数决定了可连到总线上的器件数量。

在SPI传输中,数据是同步进行发送和接收的。

数据传输的时钟基于来自主处理器的时钟脉冲(也可以是IO上的电平的模拟时钟),摩托罗拉没有定义任何通用SPI的时钟规范。

然而,最常用的时钟设置基于时钟极性(CPOL)和时钟相位(CPHA)两个参数,CPOL定义SPI串行时钟的活动状态,而CPHA定义相对于SO-数据位的时钟相位。

CPOL和CPHA的设置决定了数据取样的时钟沿。

数据方向和通信速度

SPI传输串行数据时首先传输最高位。

波特率可以高达5Mbps,具体速度大小取决于SPI硬件。

例如,Xicor公司的SPI串行器件传输速度能达到5MHz。

SPI总线接口及时序

SPI总线包括1根串行同步时钟信号线以及2根数据线。

SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。

如果CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。

时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。

如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。

SPI主模块和与之通信的外设音时钟相位和极性应该一致。

SPI读写时序见下面两图。

在写寄存器之前,一定要进入待机模式或掉电模式。

其中,Cn——SPI指令位;Sn——状态寄存器位;Dn——数据位(低字节在前,高字节在后;每个字节中高位在前)

SPI读时序

SPI写时序

3.串口通信

串口是计算机上一种非常通用的设备通信协议(不要与通用串行总线UniversalSerialBus或者USB混淆)。

大多数计算机包含两个基于RS232的串口。

串口同时也是仪器仪表设备通用的通信接口;很多GPIB兼容的设备也带有RS-232口。

同时,串口通信协议也可以用于获取远程采集设备的数据。

串口通信的概念非常简单,串口按位(bit)发送和接收字节。

尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。

它很简单并且能够实现远距离通信。

比如IEEE488定义并行通行状态时,规定设备线总长不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。

典型地,串口用于ASCII码字符的传输。

通信使用3根线完成:

(1)地线,

(2)发送,(3)接收。

由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。

其他线用于握手,但是不是必须的。

串口通信最重要的参数是比特率、数据位、停止位和奇偶校验。

对于两个进行通信的端口,这些参数必须匹配:

a,比特率:

这是一个衡量通信速度的参数。

它表示每秒钟传送的bit的个数。

例如300波特表示每秒钟发送300个bit。

当我们提到时钟周期时,就是指比特率,例如如果协议需要4800波特率,那么时钟是4800Hz。

这意味着串口通信在数据线上的采样率为4800Hz。

通常电话线的比特率为14400,28800和36600。

比特率可以远远大于这些值,但是波特率和距离成反比。

高比特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。

b,数据位:

这是衡量通信中实际数据位的参数。

当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。

如何设置取决于你想传送的信息。

比如,标准的ASCII码是0~127(7位)。

扩展的ASCII码是0~255(8位)。

如果数据使用简单的文本(标准ASCII码),那么每个数据包使用7位数据。

每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。

由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。

c,停止位:

用于表示单个包的最后一位。

典型的值为1,1.5和2位。

由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。

因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。

适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。

d,奇偶校验位:

在串口通信中一种简单的检错方式。

有四种检错方式:

偶、奇、高和低。

当然

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2