论文红外避障小车.docx

上传人:b****5 文档编号:6931005 上传时间:2023-01-12 格式:DOCX 页数:21 大小:607.03KB
下载 相关 举报
论文红外避障小车.docx_第1页
第1页 / 共21页
论文红外避障小车.docx_第2页
第2页 / 共21页
论文红外避障小车.docx_第3页
第3页 / 共21页
论文红外避障小车.docx_第4页
第4页 / 共21页
论文红外避障小车.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

论文红外避障小车.docx

《论文红外避障小车.docx》由会员分享,可在线阅读,更多相关《论文红外避障小车.docx(21页珍藏版)》请在冰豆网上搜索。

论文红外避障小车.docx

论文红外避障小车

第一章绪论

1.1引言

自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。

近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。

人们在不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人类的梦想。

由于在科学探索和紧急抢险中经常会遇到对与一些危险或人类不能直接到达的地域的探测,这些就需要用机器人来完成。

随着科技的发展,对于未知空间和人类所不能直接到达的地域的探索逐步成为热门,这就使机器人的自动避障有了重大的意义。

而在机器人在复杂地形中行进时自动避障是一项必不可少也是最基本的功能,因此,自动避障系统的研发就应运而生。

自动避障小车可以作为地域探索机器人和紧急抢险机器人的运动系统,让机器人在行进中自动避过障碍物,所以我们的自动避障小车就是基于这一目标而设计的的,该智能小车可以作为机器人的典型代表,它可以分为三大组成部分:

传感器检测部分、执行部分、CPU,本次的设计中采用的技术主要有通过编程来控制小车的速度、传感器的有效应用、新型芯片的采用等等。

智能作为现代的新发明,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等等的用途。

所以我们的机器人不仅仅可以实现自动避障功能,还可以扩到展循迹等功能,感知导引线和障碍物等多个方面。

1.2设计任务

1.2.1设计思想

本系统要求自行设计制作一个智能小车,该小车在前进的过程中能够检测到前方障碍并自动避开,达到避障的效果。

我的设计思想是采用C8051F310单片机为控制核心,利用位置传感器检测道路上的障碍,通过采集数据并处理后由单片机产生PWM波驱动直流电机对车进行转向和行动控制,控制电动小汽车的自动避障,快慢速行驶,以及自动停车。

1.2.2功能概述

根据题目中的设计要求,本系统主要由微控制器模块、避障模块、直流电机及其驱动模块电源模块等构成。

本系统的方框图如图1-2-2所示:

 

图1-1系统方框图

Ø微控制器模块:

通过采用C8051F310作为微控制器接受传感器部分收集到的外部信息进行处理,并将结果输出到电机驱动模块控制电机运行。

Ø避障模块:

采用位置传感器的漫反射检测来检测前方是否有障碍,通过红外光电开关采集到的信号送到微控制器。

Ø驱动模块:

通过接收微控制器产生的信号来驱动电机运行,达到快慢速行驶,转向控制以及自动停车。

Ø电源模块:

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

第二章硬件电路设计

2.1关键元件选择讨论

2.1.1单片机的选择

C8051F310器件是完全集成的混合信号片上系统型MCU芯片。

下面列出了一些主要特性:

1.高速、流水线结构的8051兼容的CIP-51内核(可达25MIPS)

2.全速、非侵入式的在系统调试接口(片内)

3.带模拟多路器真正10位200ksps的25通道单端/差分ADC(C8051F310/1/2/3)

4.高精度可编程的25MHz内部振荡器

5.16KB(C8051F310/1)或8KB(C8051F312/3/4/5)在系统编程的FLASH存储器

6.1280字节片内RAM

7.硬件实现的SMBus/I2C、增强型UART和增强型SPI串行接口

8.4个通用的16位定时器

9.具有5个捕捉/比较模块和看门狗定时器功能的可编程计数器/定时器阵列

10.片内上电复位、VDD监视器和温度传感器

11.片内电压比较器

(2)

12.29/25个端口I/O(容许5V输入)

 

C8051F310原理示意图

 

具有片内上电复位、VDD监视器、看门狗定时器和时钟振荡器的C8051F310是真正能独立工作的片上系统。

FLASH存储器还具有在系统重新编程能力,可用于非易失性数据存储,并允许现场更新8051固件。

用户软件对所有外设具有完全的控制,可以关断任何一个或所有外设以节省功耗。

 

C8051F310封装图

 

片内Siliconlabs二线(C2)开发接口允许使用安装在最终应用系统上的产品MCU进行非侵入式(不占用片内资源)、全速、在系统调试。

调试逻辑支持观察和修改存储器和寄存器,支持断点、单步、运行和停机命令。

在使用C2进行调试时,所有的模拟和数字外设都可全功能运行。

两个C2接口引脚可以与用户功能共享,使在系统调试功能不占用封装引脚。

每种器件都可在工业温度范围(-45℃到+85℃)内用2.7V-3.6V的电压工作。

端口I/O、/RST和JTAG引脚都容许5V的输入信号电压。

C8051F31X有32脚LQFP封装和28脚MLP封装。

设计单片机及外围电路电路原理图

 

2.1.2传感器的选择

传感器是一种能把物理量或化学量转变成便于利用的电信号的器件。

国际电工委员会的定义为:

“传感器是测量系统中的一种前置部件,它将输入变量转换成可供测量的信号”,随着科学技术的发展,机器人的感觉传感器种类越来越多,其中视觉传感器成为自动行走和驾驶的重要部件。

视觉的典型应用领域为自主式智能导航系统,对于视觉的各种技术而言图像处理技术已相当发达,而基于图像的理解技术还很落后,机器视觉需要通过大量的运算也只能识别一些结构化环境简单的目标。

视觉传感器的核心器件是摄像管或CCD,目前的CCD已能做到自动聚焦。

但CCD传感器的价格、体积和使用方式上并不占优势,因此在不要求清晰图像只需要粗略感觉的系统中考虑使用接近觉传感器是一种实用有效的方法。

避障小车是通过传感器系统感知外界环境,在复杂环境中自主移动并完成避障的任务,我们想要实现避障小车的视觉功能有多种方式,可以使用CCD摄像头进行图象采集和识别方法,基于检测对象表面靠近传感元件时的电容变化的电容式接近传感器,根据波从发射到接收的传播过程中所受到的影响来检测物体的接近程度的超声波传感器以及包括一个可以发射红外光的固态发光二极管和一个用作接收器的固态光敏二极管(或光敏三极管)的红外反射式光电传感器。

由于CCD传感器的价格、体积和使用方式上并不占优势,而且红外传感器探测视角小,方向性强一些,测量精度高,价格便宜,而且可以在夜间工作,因此红外传感器可以作为视觉应用于移动机器人避障。

基于上述要求,传感检测部分考虑到小车一般不需要感知清晰的图像,只要求粗略感知即可,所以可以舍弃昂贵的CCD传感器而考虑使用价廉物美的红外反射式传感器来充当。

我们这次采用的小车传感器是红外位置传感器,用漫反射式光电开关进行避障。

红外线光电开关(光电传感器)属于光电接近开关的简称,它是利用被检测物体对红外光束的遮光或反射,由同步回路选通而检测物体的有无,其物体不限于金属,对所有能反射光线的物体均可检测。

漫反射式光电开关是一种集发射器和接收器于一体的传感器,当有被检测物体经过时,将光电开关发射器发射的足够量的光线反射到接收器,于是光电开关就产生了开关信号。

2.1.3电机类型的选择

电动机的作用是将电能转换为机械能,电动机分为交流电动机和直流电动机两大类,所以我们在避障小车的电机选择上就有步进电机和直流电机两种选择方式,现介绍如下:

(1)交流电机的优点是具有快速启停能力,如果负荷不超过步进电机所能提供的动态转矩值,就能够立即使步进电机启动或反转。

另一个优点是转换精度高,使得在速度、位置等控制领域用步进电机来控制变的非常的简单。

(2)直流电动机的优点是具有良好的调速性能,可以用于许多调速性能要求较高的场合调速范围宽广,调速特性平滑,过载能力较强,热动和制动转矩较大。

通过上述比较,虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机,交流电机在常规下使用。

它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。

因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。

步进电机价格较高,驱动方面也较复杂,由于我们设计的小车对于精度要求不是特别高,电路和控制相对简单,同时价格低廉所以我们最后还是选择选择直流电机。

2.1.4电机驱动电路的选择

我们在设计小车的电机驱动电路的过程中,通过在网络和图书室中查阅相关资料,我们的选择可以分为3种,分别介绍如下:

(1)使用功率三极管作为功率放大器的输出控制直流电机。

它的优点在于线性型驱动的电路结构和原理简单,成本低,加速能力强,但是缺点也十分明显,如功率损耗大,特别是低速大转距运行时,通过电阻R的电流大,发热厉害,损耗大,对于小车的长时间运行不利。

(2)采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整.这个方法的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,寿命较短,可靠性不高。

(3)采用由双极性管组成的H桥电路,用单片机控制晶体管使之工作在占空比可调的开关状态,精确调整电机转速。

这种电路由于工作在管子的饱和截止模式下,效率非常高,H桥电路保证了可以简单地实现转速和方向的控制,而且它的电子开关的速度很快,稳定性也很高,是一种广泛采用的调速技术。

通过上述比较后,我们在选择时候选择的是方式3,采用由双极性管组成的H桥电路的驱动电路。

下面我们对H桥驱动电路进行简短的介绍分析:

图2-1所示为一个典型的直流电机控制电路。

电路得名于“H桥驱动电路”是因为它的形状酷似字母H。

4个三极管组成H的4条垂直腿,而电机就是H中的横杠(注意:

图2-1及随后的两个图都只是示意图,而不是完整的电路图,其中三极管的驱动电路没有画出来)。

如图所示,H桥式电机驱动电路包括4个三极管和一个电机。

要使电机运转,必须导通对角线上的一对三极管。

根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。

图2-1H桥驱动电路

要使电机运转,必须使对角线上的一对三极管导通。

如图2-2所示,当Q1管和Q4管导通时,电流就从电源正极经Q1从左至右穿过电机,然后再经Q4回到电源负极。

按图中电流箭头所示,该流向的电流将驱动电机顺时针转动。

当三极管Q1和Q4导通时,电流将从左至右流过电机,从而驱动电机按特定方向转动(电机周围的箭头指示为顺时针方向)。

图2-3所示为另一对三极管Q2和Q3导通的情况,电流将从右至左流过电机。

当三极管Q2和Q3导通时,电流将从右至左流过电机,从而驱动电机沿另一方向转动(电机周围的箭头表示为逆时针方向)。

图2-2H桥驱动电机顺时针转动图2-3H桥驱动电机逆时针转动

驱动电机时,保证H桥上两个同侧的三极管不会同时导通非常重要。

如果三极管Q1和Q2同时导通,那么电流就会从正极穿过两个三极管直接回到负极。

此时,电路中除了三极管外没有其他任何负载,因此电路上的电流就可能达到最大值(该电流仅受电源性能限制),甚至烧坏三极管。

基于上述原因,在实际驱动电路中通常要用硬件电路方便地控制三极管的开关。

图2-4所示就是基于这种考虑的改进电路,它在基本H桥电路的基础上增加了4个与门和2个非门。

4个与门同一个“使能”导通信号相接,这样,用这一个信号就能控制整个电路的开关。

而2个非门通过提供一种方向输人,可以保证任何时候在H桥的同侧腿上都只有一个三极管能导通。

(与本节前面的示意图一样,图2-4所示也不是一个完整的电路图,特别是图中与门和三极管直接连接是不能正常工作的。

图2-4具有使能控制和方向逻辑的H桥电路

采用以上方法,电机的运转就只需要用三个信号控制:

两个方向信号和一个使能信号。

如果DIR-L信号为0,DIR-R信号为1,并且使能信号是1,那么三极管Q1和Q4导通,电流从左至右流经电机(图2-5);如果DIR-L信号变为1,而DIR-R信号变为0,那么Q2和Q3将导通,电流则反向流过电机。

图2-5使能信号与方向信号的使用

最后我们决定采用元件组成H桥电路来组成驱动电路。

我们可以用单片机控制晶体管使之工作在占空比可调的开关状态,精确调整电机转速。

这种电路由于工作在管子的饱和截止模式下,效率非常高,H桥电路保证了可以简单地实现转速和方向的控制,而且它的电子开关的速度很快,稳定性也很高。

设计驱动电路原理图如下:

 

2.1.5电源的选择

对于一个实际的电子系统,要认真的分析它的电源需求。

不仅仅是关心输入电压,输出电压和电流,还要仔细考虑总的功耗,电源实现的效率,电源部分对负载变化的瞬态响应能力,关键器件对电源波动的容忍范围以及相应的允许的电源纹波,还有散热问题等等。

功耗和效率是密切相关的,效率高了,在负载功耗相同的情况下总功耗就少,对于整个系统的功率预算就非常有利了,对比LDO和开关电源,开关电源的效率要高一些。

同时,评估效率不仅仅是看在满负载的时候电源电路的效率,还要关注轻负载的时候效率水平。

至于负载瞬态响应能力,对于一些高性能的CPU应用就会有严格的要求,因为当CPU突然开始运行繁重的任务时,需要的启动电流是很大的,如果电源电路响应速度不够,造成瞬间电压下降过多过低,造成CPU运行出错。

我们在电源的选择上最后决定采用7.2V可充电动力电池组。

动力电池组具有较强的电流驱动能力及稳定的电压输出性能,经测试在用此种供电方式下,单片机和传感器工作稳定,直流电机工作良好,且电池体积较小、可以充电、能够重复利用等,能够满足系统的要求。

设计电源原理图如下:

 

2.2电路原理图及PCB设计

2.2.1电路原理图

在本次电路设计中,前面的各个单元模块的设计里面都进行了相关的模块设计以及验证,如微控制器模块设计电路,电源模块设计电路以及电机驱动电路的设计电路,所以我们最后在PROTEL99SE中,设计了以下的电路原理图。

电路原理图设计如下:

 

 

2.2.2PCB设计

PCB即PrintedCircuitBoard的简写,中文名称为印制电路板,又称印刷电路板、印刷线路板,是重要的电子部件,是电子元器件的支撑体,是电子元器件电气连接的提供者。

由于它是采用电子印刷术制作的,故被称为“印刷”电路板。

一块完整的PCB主要由以下几部分构成:

(1):

绝缘基材

(2):

铜箔面(3):

阻焊层(4):

字符层(5):

孔。

我们设计的PCB设计以及布线图如下:

 

 

PCB密度分析:

 

由于电子元件对热比较敏感,因此当某个电路板上的某个区域元件密度过高导致热能容易集中,这样会降低这一区域内的电子元件的使用寿命,在密度分析图中,用颜色代表密度级别,绿色代表低密度,黄色表示中密度,而红色表示高密度,从对布局好的电路板进行密度分析,从图中的密度分析结果可知,本次设计的电子元件密度分布差异不大,密度分布均匀

我们还可以从3D图查看电路布局密度~从3D图我们可以看出,系统布局密度适中。

PCB完成图如下:

 

 

该PCB板最后铺铜后就完成了PCB的基本设计,该板子最后经过测量的大小,长为82.14mm,宽50.55mm

第三章软件设计

3.1程序设计总体思路

在设计过程中我们将C8051F310单片机作为控制核心,利用红外位置传感器检测道路上的障碍信息,而小车通过位置传感器获得路径信息,当有光线反射回来时,输出低电平。

当没有光线反射回来时,输出高电平,并且将检测到信号返回到单片机中,然后C8051F310进行判断并开始处理小车所处的状态,采用单片机产生PWM波驱动直流电机对车进行转向和行动控制,控制电动小汽车的自动避障,快慢速行驶,以及自动停车。

3.2程序流程图

开始

端口声明定义

小车初始化

是否有中断产生

产生中断

执行程序

完成

 

3.3PWM控制的实现

PWM(PulseWidthModulation)控制——脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值)。

PWM控制技术在逆变电路中应用最广,应用的逆变电路绝大部分是PWM型,PWM控制技术正是有赖于在逆变电路中的应用,才确定了它在电力电子技术中的重要地位。

作为直流电机的调速方式,PWM驱动基本是不二的选择,特别是单片机日益普及的今天。

而我们设计中的电机转速与电机两端的电压成比例,而电机两端的电压与控制波形的占空比成正比,因此,电机转速与占空比成比例,占空比越大,电机转动越快。

我们在控制程序中可以设置一个寄存器,用来存储PCA0L的初值,通过改变PCA0L的初值来对小车的方向和转速进行控制。

3.4小车状态定义

我们在设计小车的程序设计中设计思想如下,小车在运行状态中当前方有障碍的时候,传感器将得到信号返回到单片机后,单片机产生中断让小车停驶,并且产生PWM波让小车前轮转向中倒车一定的时间,然后再次返回到主程序中运行,直到再次检测到障碍物时中断,在次执行……直至顺利到达目的地,完成避障功能。

第四章结论

通过此次设计,使我对所学过的知识有了更深层次的了解,并且对电机相关知识、传感器的了解以及电源电路的设计也有了更进一步的认识。

过各种方案的讨论及尝试,再经过多次的整体软硬件结合调试,最终设计的小车能够实现其避障功能,当遇到障碍时倒车转弯然后在沿着无障碍物路径行驶,直至到达终点。

这次避障小车的设计满足最初的设计要求,而且在此过程中也学到了很多课本上学不到的知识,真正从实践中检验了我们的理论和动手能力,使我们受益匪浅。

 

附录1程序清单

===========================================================

#include//SFR声明

//定义

sbitGo=P2^0;

sbitBa=P2^1;

sbitL_drc=P2^2;

sbitR_drc=P2^3;

intq=1;

intPWM=100;

//函数声明

voiddelay(intw);//延时函数

voidStart();//启动初始化函数

voidSTOP();//小车停止函数

voidBACK_TurnRight();//向右后倒函数

//端口初始化函数

voidPORT_Init(void)

{

P0MDOUT=0xff;

P2MDOUT=0x0ff;

P0SKIP=0x40;//P0.6跳过交叉启用位

XBR0=0x00;

XBR1=0x44;//弱上拉开,交叉开关启用,cex1启用

}

//设定内部时钟函数

voidInternal_Crystal(void)

{

OSCICN=0x83;//内部振荡器启用,不分频最高频率

CLKSEL=0x00;//使用内部振荡器

}

//延时函数

voiddelay(intw)

{

inti,k;

for(k=0;k<=w;k++)

{

for(i=0;i<=200;i++);

}

}

//PWM波输出函数

voidBit_PWM_Output(void)

{

PORT_Init();

Internal_Crystal();

PCA0MD=0x02;//禁止CF中断

PCA0CPL0=200;//初始化PCA的PWM值

PCA0CPH0=200;

PCA0CPL1=PWM;//初始化PCA的PWM值

PCA0CPH1=PWM;

PCA0CPM0=0x42;

PCA0CPM1=0x42;//CCM0为8位PWM方式

PCA0CN=0x40;//允许PCA计数器

}

//启动初始化函数

voidStart()

{while(q)

{R_drc=1;

L_drc=1;

Go=0;

Ba=1;

q=0;

delay(100);

}

}

//小车停止函数

voidSTOP()

{L_drc=R_drc=1;

Go=1;

Ba=1;

delay(1000);

delay(10000);

}

//向右后倒函数

voidBACK_TurnRight()

{R_drc=1;

L_drc=0;

Go=1;

Ba=0;

delay(10000);

delay(10000);

}

//外部中断处理函数初始化

voidINT0_Init(void)

{

IT01CF=0x06;//中断配置给P0.6口

EX0=1;

IT0=0;//边沿触发

EA=1;

}

//外部中断0中断处理函数

voidINT0_ISR(void)interrupt0

{

EA=0;

STOP();

BACK_TurnRight();

q=1;

Start();

IE0=0;//清外部中断标志

EA=1;}

//主程序

voidmain()

{

PCA0MD&=~0x40;

PORT_Init();

Internal_Crystal();

Bit_PWM_Output();

INT0_Init();

Start();

while

(1)

{}}

 

=====================================================================附录2元件列表

===========================================================

元器件型号电路元器件标注

电解电容100uF*2C1C2

电解电容1000uF*1C3

电解电容T22uF*1C4

电容0.1uF*5C5C6C7C8C9

电容22pF*2C10C11

电容1uF*1C12

电阻470*4R1R2R3R4

电阻1K*4R5R6R7R8

电阻10MR9

电阻2K*14R10R11R12R13R14R15R16

R17R18R19R20R21R22R23

电阻5.1K*2R24R25

电阻10K*12R26R27R28R29R30R31

R32R33R34R35R36R37

LED3VD1D2D3D4D5

晶振32.768KHzY1

NPN0805Q1Q2Q3Q4Q5Q6Q7Q8Q9Q10

LM1117U1

AZ1084U2

C8051F310U3

HEADER5X2JP1

SI9928IC1IC2IC3IC4

CON2J1J3J4

CON3J2

SW-PBS1

INDUCTORIRONF1F2

====================================================================

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

当前位置:首页 > 工作范文

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

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