基于红外线传感器的避障行走系统硬件设计.docx

上传人:b****7 文档编号:9636054 上传时间:2023-02-05 格式:DOCX 页数:33 大小:940.96KB
下载 相关 举报
基于红外线传感器的避障行走系统硬件设计.docx_第1页
第1页 / 共33页
基于红外线传感器的避障行走系统硬件设计.docx_第2页
第2页 / 共33页
基于红外线传感器的避障行走系统硬件设计.docx_第3页
第3页 / 共33页
基于红外线传感器的避障行走系统硬件设计.docx_第4页
第4页 / 共33页
基于红外线传感器的避障行走系统硬件设计.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

基于红外线传感器的避障行走系统硬件设计.docx

《基于红外线传感器的避障行走系统硬件设计.docx》由会员分享,可在线阅读,更多相关《基于红外线传感器的避障行走系统硬件设计.docx(33页珍藏版)》请在冰豆网上搜索。

基于红外线传感器的避障行走系统硬件设计.docx

基于红外线传感器的避障行走系统硬件设计

题目:

基于红外线传感器的避障

行走系统硬件设计

摘要

智能作为现代的新发明,是以后的发展方向,可应用于科学勘探等等的用途。

本次设计的简易智能电动车,采用飞思卡尔MC9S12DG128B单片机作为小车的检测和控制核心;采用红外传感器来检测路况信息,从而把接收到的信号送到单片机,使单片机按照预定的工作模式控制小车在各区域按预定的速度行驶,采用脉冲调制的反射式红外传感器来探测前方是否有障碍物,从而让小车避开障碍物前进。

本次设计通过对传感器设计、电源设计、控制电路设计达到了小车的智能化。

本次设计结构简单,较容易实现。

但是具有高度智能化。

关键词:

智能小车MC9S12DG128B单片机电机驱动红外避障传感器

 

Abstract

Smartasamodernnewinventionisthedevelopmentdirectionofthefuture,andsooncanbeappliedtotheuseofscientificexploration.Thesimpledesignofthesmartelectricvehicle,usingFreescale'ssingle-chipmicrocomputerasavehicleMC9S12DG128Bdetectionandcontrolofthecore;theuseofinfraredsensorstodetecttrafficinformationtothereceivedsignaltothemicrocontroller,toenablesingle-chipaccordingtothemodeofcontrolcarintheregionsaccordingtoapredeterminedspeed,theuseofpulsemodulationofthereflectiveinfraredsensorstodetectwhetherthereareobstructionsinfront,sothatcaraheadtoavoidobstacles.Thedesignofthesensordesign,powersupplydesign,controlcircuitdesigntoachievetheintelligentcar.Thedesignissimple,moreeasilyachieved.However,highlyintelligent.Keywords:

smartcarMC9S12DG128Bsingle-chipmotordriverinfraredsensorcoverbarrier

 

Keywords:

SmartcarSCMMCS12DG128BMotorDriverInfraredsensor

第1章前言

随着科学技术的发展和普及,各种无人智能机械越来越多,其中遥控的作用也就显而易见.传统的小车基本有两类,第一类为纯机械类,第二类为数字类.纯机械类动作迟钝、结构复杂、机器笨重、噪声大、寿命低;数字类智能小车将笨重的机械部分换成数字电路,虽一改上述弊端,但其中仍不免使用继电器,噪声相对较大,寿命也不太长,抗干扰性差等特点.另外,很难将精确度提高。

现在单片机已进入各个领域,以其功耗小、智能化而著称,利用单片机来设计抢答器,使以上问题得以解决,即使外界干扰很大,小车也能准确接收到信号。

本文主要介绍了小车的工作原理及设计,以及它的实际用途。

本设计所做的智能小车主要在实验室完成,,参考有关的资料,个人完成整个电路的设计、焊接、检查、调试,再根据自己的硬件电路利用开发工具CodeWarrior进行编程开发,用BDM进行程序下载,利用串口传输的数据进行在线调试,最终达到小车智能避障的功能。

在这过程中首先要选择电机、车轮、车体等部件,同时考虑传动的方式等,经过优化组装,制作出一个机动、灵活,同时易于控制的小车车体;其次要根据要实现的功能,已经相关的应用和电气要求,选择适当的元件,画出布局合理的电路图,绘出PCB板。

这就要求设计者具有基本的焊接技术和一定的故障排除能力,同时要求设计者会使用基本的实验仪器对硬件电路进行调试,会熟练的运用开发工具Codewarrior编写程序和使用相关的软件对自己的程序进行编译,仿真。

过程中要耐心的反复检查、修改和调试,直至达到预期目的。

本次设计的硬件电路部分主要由电源模块、L298的两路电机驱动模块、无线遥控模块、测速模块、障碍检测模块、单片机最小系统板组成。

电源模块使用7.2V、2200ma的镍镉电池和12V的锂电池为整个智能车系统提供稳定的电力保障;障碍检测模块由两个红外避障传感器组成提供前方障碍物信息;测速模块可以为控制核心提供当前行驶速度,从而实现对智能车运行的高效控制。

软件部分主要包括PWM车速控制算法、障碍信号读取识别算法、遥控指令检测控制算法、测速算法、相应的对小车运动方向的控制算法以及基于以上算法的各调试算法组成。

各种算法模块的合理组合和转换是智能车运行稳定的前提和必要条件。

第2章单片机介绍

2.1单片机概述

微型计算机(microcomputer)是指由微处理器加上采用大规模集成电路制成的程序存储器和数据存储器,以及与输入/输出设备相连接的I/O接口电路。

它已深入应用到计算机所无法应用的领域,对社会产生了极大的影响。

单片微型计算机是微型计算机发展的一个重要分支,它以其独特的结构和性能,越来越普遍地应用到国民经济建设的各个领域。

单片机是单片微型计算机(SingleChipMicrocomputer)简称。

它具有嵌入式应用系统所要求的体系结构,微处理器,指令系统,总线方式,管理模式等。

它把计算机的基本部件微型化并集成到一块芯片上,通常片内都含有中央处理部件(CPU),数据存储器(RAM),程序存储器(ROM),定时器/计数器和各种输入/输出(I/O)接口,如串行通信口,中断控制,系统时钟及系统总线等。

它们之间的相互连结如图2-1所示。

图2-1

2.2主控芯片MC9S12DG12

2.2.1MC9S12DG12的功能及内部结构

MC9S12DG128B是飞思卡尔半导体公司的汽车电子类产品,早在飞思卡尔还没有从摩托罗拉分离出来前就已经诞生了。

它隶属于飞思卡尔单片机的S12系列,其内核为CPU12高速处理器。

MC9S12D

G128B拥有丰富的片内资源,flash达128kb,加入裁减过的uCOS都没有问题,所以对于参加全国大学生智能车竞赛或者其他中等复杂程度的控制系统它不用扩充片外存储器。

MC9S12DG128B有16路AD转换,精度最高可设置为10位;有8路8位PWM并可两两级联为16位精度PWM,特别适合用于控制多电机系统。

它的串行通信端口也非常丰富,有2路SCI,2路SPI此外还有IIC,CAN总线等端口,并且采用了引角复用功能,使得这些功能引角也可设置为普通的IO端口使用。

此外它内部还集成了完整的模糊逻辑指令,可大大简化我们的程序设计。

同时该单片机具有16位中央处理器(HCS12CPU)、128KBFlashEEPROM、8KBRAM、2KBEEPROM,以及定时器通道、键盘中断和A/D通道等接口。

MC9S12DG128实验系统可以直接与CodeWarrior相连,具有下载程序、在线单步运行、断点调试、连续运行、修改寄存器和存储单元等特点。

图2-2MC9S12DG128B的系统结构图

2.2.2MC9S12DG128B的引脚功能

MC9S12DG128的封装有两种,一种为80引角的,它没有引出扩展总线,且AD转换只引出了8路;一种为112引角的,两种都采用了表面贴片式封装。

下图为112引角的MC9S12DG128B引角图:

图2-3118封装引脚图

 

从上面的引角图我们可以看到MC9S12DG128的引角复用情况,一个引角往往有2-4个功能,而这些功能的设置大部分是通过编程来实现的,非常方便

2.3MC9S12DG128最小系统板

2.3.1MC9SDG128最小系统板

由于该款芯片的引脚较多,自行制版焊接,的确问题较大,故本次设计采用成品MC9S12DG128开发板。

该开发板实际上就是MC9S12DG12的最小系统板。

板上有构成最小系统需要的复位电路、晶体振荡及时钟电路,串行接口的RS-232驱动电路,5V电源插座。

八个调试用贴片LED对后期软硬件的调试。

同时具有BDM接口,用于连接BDM调试器,单片机的说有I/O端口都通过两个64芯的欧式插头引出,方便使用。

 

 

图2-4MC8S12DG128开发板

2.3.2MCU引脚接口部分

MCU引脚接口部分由一片MC9S12DG128芯片和相关引脚接口排针组成,原理图如图2-5所示:

 

图2-5MC9S12DG128各接口引脚原理图

2.3.3串口通信部分

串口通信部分由MAX202电平转换电路、1个串行端口组成,原理图如图2-6

 

图2-6串口通信原理图

 

2.3.4电源部分

电源部分由1个USB、1个外部电源插座及其供电电路和电源指示电路组成,原理图如图2-7所示:

图2-7串口通信原理图

图2-8电源模块原理图

2.3.5复位电路部分

图2-9复位电路原理图

复位电路部分由一个键盘、两个电阻、一个电容组成(图中的1815复位电路在实际电路中没有采用),原理图如图2-8所示。

 

2.3.6I/O端口电路部分

I/O端口电路部分由1个按键和LED显示电路组成,原理图如图2-9所示。

图2-10端口电路原理图

2.3.7晶振电路与BDM插头部分

晶振电路由16MHZ晶振及其外围阻容件组成、BDM插头部分由1个2*3和1个1*3排针组成,原理如图2-9所示。

图2-9晶振电路与BDM插

第3章智能避障小车硬件搭建

3.1智能车车体的选择

智能车的车体是小车的骨架所有的器件全都要安装到车体上,车体选择至关重要。

现在市面上有好多的成品车体,制作精美,性能稳定。

考虑到车体的稳定性和本试验的特点,决定采用大功率坦克车体。

大功率坦克车体采用带电感的大扭力260马达,组合斜齿+金属齿,形成大扭力、低噪音底盘系统!

具有动力性能强、底盘稳定性高、可原地转圈、转弯灵活等特点。

且市场价位为168元,比较容易接受。

相关的技术参数为:

尺寸:

180mm*135mm*58mm(长*宽*高)

工作电压:

7.2V

工作电流:

160–180mA

最大速度:

30cm/s

爬坡能力:

>30°

从以上特性可以看出该车体比较适合在复杂的环境中运行,并且通过电机驱动电路可以方便的对车辆的运行进行控制。

图3-1大功率坦克车体

3.2避障方案的选择

现在智能小车整体设计方案采取的方案比较多,如红外反射传感器避障,超声波反射传感器避障,CCD图像分析避障等。

考虑到实用性和经济价值,根据现在市面上比较通用的各种传感器。

综合考虑红外避障传感器已经可以满足我们的设计要求。

采用红外避障传感器。

该传感器是一种集发射与接收于一体的光电传感器。

检测距离可以根据要求进行调节。

该传感器具有探测距离远、受可见光干扰小、价格便宜、易于装配、使用方便等特点,可以广泛应用于机器人避障、流水线计件等众多场合。

同时该传感器直接输出高低电平,通过一个上拉电阻可以直接连接到处理器的I/O端口上。

电气特性:

U:

5VDC

I:

100mA

Sn:

3-80CM

 

图3-2红外避障传感器

3.3电动机驱动方案选择

我们使用专用的电机驱动芯片(L298N)。

L298N是SGS公司的产品,内部包含4通道逻辑驱动电路。

是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。

这种驱动芯片可以直接和控制器的控制引脚相连,对电机的正反转,转动速度,进行非常方便的控制。

 

 

图3-3L298N

3.4电源方案的选择

坦克车体工作时用电量较大,容易造成电压不稳,从而影响到其它的模块,在小车制作过程中,容易产生相关问题.考虑到单电源很难实现功能,容易造成干扰。

故我们采用使用双电源(7.2V、2200ma、镍氢充电电池,12V、1010ma、可充电锂电池)。

然后通过稳压模块7805得到5V电源,供给主控制板和红外避障传感器。

之所以选择锂电池,是因为小车的内部空间有限,锂电池体积较小,可以节约空间。

由大容量的镍氢电池提供动力电源,容量较小的锂电池提供相关控制部分电源。

分开供电以免在电机启动过程中,较大的电压变化,对其他部分的模块产生影响。

第4章智能避障小车硬件系统设计

硬件系统是整个智能车能够良好稳定运行的基础,选择不同的硬件,对系统的功能实现的影响是不同的。

尽管很多芯片都能实现同样的功能,但是,对于不同的系统而言,芯片不同,实现的效果就不一样。

有的芯片转换效率不够高,有的芯片散热效果不够好,或者某些芯片的输出不够稳定等等。

这些问题都需要结合自己所设计的系统,选择最佳的电器元件。

4.1硬件总体设计

图4-1硬件系统的总体结构

图4.1列出硬件系统的总体结构。

 

本设计使用12V和7.2V两个电源供电,遥控模块需要12V供电;红外传感器,MCU和测速模块需要5V电源供电;小车车体需要7.2V供电。

7805芯片就是把7.2V电源降压为5V。

第5章智能避障小车软件系统设计

5.1开发调试工具

系统开发调试使用了Metroworks公司的CodeWarrior3.1开发软件,另外为了调试方便,开发了LCD路面状况显示模块,电源电压检测模块,手动设置装置和外部状态指示单元。

此次智能车大赛选用的软件开发平台为Metoworks公司的CodeWarrior3.1开发软件。

其使用界面如图6.1所示

 

 

图5.1CodeWarrior3.1使用界面

CodeWarrior4.1的功能非常强大,可用于绝大部分单片机、嵌入式系统的开发。

支持多种高级语言如C,C++,JAVA等,还支持大多数微控制器的汇编语言。

开发环境界面统一,运行许多通用的桌面或嵌入式微控制器。

另外还可以通过加入插件来扩展其功能。

具体使用时,用户可在新建工程时将芯片的类库添加到集成环境开发环境中,工程文件一旦生成就是一个最小系统,用户无需再进行繁琐的初始化操作,就能直接在工程中添加所需的程序代码。

本次设计中我们选用的编程语言是纯汇编语言。

利用软件本身自带的一些功能,可以很方便地进行诸如监视寄存器状态,查看内存内容,修改PC指针,修改RAM内存,设置断点等一系列的调试工作,从面快速地找到程序的问题所在,以便更改。

下图5.2即本设计中所用的程序Debug界面。

图5.2程序Debug界面

在源程序员编译、连接通过之后就可以程序下载了。

下载之前,先将单片机上已经存在的程序擦除,即在监控程序界面里先后键入E,Q,F;然后点击“传送T”选择程序文件中的bin目录下的Simulator.abs.s19文件,即可将其烧入单片机,完成程序的下载。

5.2软件系统总体设计

软件设计思路:

软件开始运行以后,进行系统初始化,包括锁相环定时器串口、AD初始化、IO初始化、PWM初始化等。

初始化完成后小车进入按键扫描,根据按键选择的状态,分别进入对应的子模块。

按下A键进入遥控模块,按下B键进入避障模块,按下C键进入循迹模块。

如图5.3

图5-3一阶闭环控制系统

 

5.3避障模块总体设计

图5-4避障模块初始化

注:

A检测到右侧有障碍B检测到没有障碍C检测左侧有障碍

小车进入避障模式后,直接直行,如果检测到右侧有障碍进行左转,再左转过程中如果是检测到右侧有障碍,就直接后退,如果没有障碍就继续直行;后退过程中如果检测到没有障碍就会继续直行;当小车检测到左侧有障碍和检测到右侧有障碍的情况相似。

5.4小车源程序见附录

第6章结论

经过试验调试,智能小车基本能玩完成预定目标,达到通过红外传感器采集路况信息,经计算机处理,发送正常的指令信号,能完成预定任务。

但是在实验过程中也存在着不少的问题:

由于实验条件有限,无法完成试验标准制版。

整个饰试验的连线全部是由明线连,排线比较复杂,飞线比较乱,首先在美观度上降低了要求,更重要的是只是要过程中产生信号的干扰,多整个系统的稳定产生了影响。

这种影响到今天仍有未消除得。

例如,在电池电量不是很充足的情况先,产生的信号不是很强抗干扰能力差,信号跳变使整个系统进入初始状态。

逻辑程序如下

voidwturn_lift()

{inti;

PWMDTY3=0;

PWMDTY1=0;

in1=1;

in2=0;

in3=1;

in4=0;

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

delay(1500);

in1=1;

in2=0;

in3=0;

in4=1;

for(PWMDTY3=85,PWMDTY1=85;PWMDTY3<255;PWMDTY1++,PWMDTY3++)

delay(30);

}

//右转

voidwturn_right()

{inti;

PWMDTY3=0;

PWMDTY1=0;

in1=1;

in2=0;

in3=1;

in4=0;

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

delay(1500);

in1=0;

in2=1;

in3=1;

in4=0;

for(PWMDTY3=85,PWMDTY1=85;PWMDTY3<255;PWMDTY1++,PWMDTY3++)

delay(30);

}

左转信号信号为1001,右转信号为0110,若这两个信号在间隔很短的出现时,由于信号干扰,产生尖峰脉冲,是整个系统中断,进入初始待机状态。

表现的物理特性是,先遮蔽左侧红外传感器,然后迅速移开左侧遮蔽物迅速遮蔽右侧传感器,由于0110和1001的互相串扰,导致cpu接受的错误信号,整个系统停止工作进入待机状态。

一开始我们想着可能是信号间的间隔时间太短,导致这种原因,可是把delay的间隔由1000改到8000仍然无法解决问题。

最后的结论是可能两线串扰问题,信号干扰问题。

唯一的解决方法是用标准制版就能解决。

后记

我的毕业设计能够顺利完成,首先要感谢教授对本论文从选题、构思、资料收集到最后定稿的各个环节给予悉心的指导和教导,使我对于单片机控制有了深刻的认识,并最终得以完成毕业论文。

还要感谢。

他们在我的大学四年的课程学习期间,给了我很大的帮助,帮我打下了较扎实的学业基础。

在此我还要对在毕业设计期间一起合作的同学表示感谢,尤其是####、####、####等,我们共同努力,遇到困难一起讨论,最终顺利完成本次设计。

参考文献

[1]何立民.单片机高级教程.北京航空航天大学出版社.2000.

[2]MotorolaMC9S12DG128DeviceUserGuideMotorola,Inc,2001

[3]章毓晋.图像处理和分析.北京:

清华大学出版社,1999.

[4]孔耀晖,赵兴,陈杰,CMOS图像传感器集成A/D转换技术的研究,2003.

[5]徐爱卿等.智能小车的研发与应用.北京航空航天大学学报.2002.

[6]李华.遥控智能小车设计.北京航空航天大学出版社.2001.

[7]孙景琪等.视频技术与应用.北京:

北京工业大学出版社,2004.

[8]俞斯乐等.电视原理(第五版).北京:

国防工业出版社,2000.

[9]卓晴黄开胜邵贝贝等.学做智能车——挑战“飞思卡尔”杯.北京航空航天大学出版社.2007.

 

附录

初始化程序

单片机在运行初期,需要对各个端口、寄存器和相关参数进行初始化赋值,为后续程序运行设置一些必须条件,也可以理解为打造个好的运行环境。

一下为需要初始化算法:

//**************************************************************

//***********************初始化程序*****************************

//**************************************************************

//**************************************************************

#include"includes.h"

//**************************************************************

//**************************PWM初始化**************************

//**************************************************************

voidPwminitial()

{

PWMPOL=0X0A;//通道0输出波形开始极性为1

PWMCAE=0X00;//左对齐输出模式

PWMCLK=0X0A;//PWM时钟源为

PWMPRCLK=0X33;//时钟A8分频

PWMSCLA=128;//时钟SA为1MHz/128/2

PWMSCLB=128;//时钟SB为1MHz/128/2

PWMPER3=255;//设定输出周期=通道时钟周期*256

PWMDTY3=0;//占空比初始为0

PWME=0X0A;//通道1和3使能

PWMPER1=255;

PWMDTY1=0;

}

 

//**************************************************************

/*******************锁相环初始化********************************

//**************************************************************

voidvPLLInit(void)

{//BUS-CLOCK=PLL-CLOCK/2=32M

REFDV=1;//settheREFDVregister16M*2*(3+1)/(1+1)=64M

SYNR=3;//settheSYNRregistertogiveusa64MHzPLL-clock.

asmnop//nopsrequiredforPLLstability.

asmnop

asmnop

asmnop

while((CRGFLG&0x08)==0);//waitheretillthePL

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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