课程设计智能循迹小车合格版Word格式.docx

上传人:b****7 文档编号:22736028 上传时间:2023-02-05 格式:DOCX 页数:32 大小:293.59KB
下载 相关 举报
课程设计智能循迹小车合格版Word格式.docx_第1页
第1页 / 共32页
课程设计智能循迹小车合格版Word格式.docx_第2页
第2页 / 共32页
课程设计智能循迹小车合格版Word格式.docx_第3页
第3页 / 共32页
课程设计智能循迹小车合格版Word格式.docx_第4页
第4页 / 共32页
课程设计智能循迹小车合格版Word格式.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

课程设计智能循迹小车合格版Word格式.docx

《课程设计智能循迹小车合格版Word格式.docx》由会员分享,可在线阅读,更多相关《课程设计智能循迹小车合格版Word格式.docx(32页珍藏版)》请在冰豆网上搜索。

课程设计智能循迹小车合格版Word格式.docx

从20世纪70年代开始,英国、美国、德国等发达国家开始进行无人驾驶汽车的研究,在可行性和实用化方面都取得了突破性的进展。

中国从20世纪80年代开始进行无人驾驶汽车的研究,国防科技大学在1992年成功研制出中国第一辆真正意义上的无人驾驶汽车。

2005年,首辆城市无人驾驶汽车在上海交通大学研制成功,世界上最先进的无人驾驶汽车已经测试行驶近五十万公里,其中最后八万公里是在没有任何人为安全干预措施下完成的。

当前的电动小汽车基本上采取的是基于纯硬件电路的一种开环控制方法,或者是直线行使,或者是在遥控下作出前进、后退、转弯、停车等基本功能。

但是它们不能实现在某些特殊的场合下,我们需要能够自动控制的小型设备先采集到一些有用的信息的功能。

本文正是在这种需要之下开发设计的一种智能的电动小车的自动控制系统。

它以单片机STC89C52为控制核心,附以外围电路,在画有黑线的白纸“路面”上行使,由于黑线和白线对红外线的反射系数不同,可根据接收到的反射红外线的强弱来判断“道路”——黑线。

判断信号可通过单片机控制驱动模块修正前进方向,以使其保持沿着黑线行进。

轨迹探测模块用两组红外对管。

1组置于轨道中间,2组置于轨道外侧,当小车脱离轨道时,即当置于中间的一组红外对管脱离轨道时,等待外面一组红外对管检测到黑线后,做出相应的转向调整,直到中间的光电开关重新检测到黑线(即回到轨道)再恢复正向行驶等智能控制系统。

车前方的一组红外对管是用来检测前方是否有障碍的,如果有障碍(能够反射出足够红外接收管接收的红外光线)红外对管连通,蜂鸣器报警并且小车先向后倒退,然后向左做避障转弯。

相当于一个最简单的无人智能车。

第2章总体方案设计

2.1总体方案的设计思路

该简易智能小车在画有黑线的白纸“路面”上行驶,不断地向地面发射红外光,利用红外线在不同颜色的物理表面具有不同的反射性质的特点,当红外光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;

如果遇到黑线则红外光被吸收,则小车上的接收管接收不到信号。

图2-1设计思路图

2.2总体方案设计

整个路系统分为检测、控制、驱动三个模块。

首先利用光电对管对路面信号进行检测,把检测到的光信号转化为电信号,送给单片机进行处理,然后单片机输出相应的信号给驱动芯片驱动电机转动,从而控制整个小车的运动。

系统方案方框图如图所示:

图2-2智能小车寻迹方案图

2.2.1控制器模块

方案一:

采用FPGA(现场可编程门阵列)作为系统的控制器。

FPGA可以实现各种复杂的逻辑功能,规模大,密度高。

但由于本设计对数据处理速度要求不高,FPGA的高速处理的优势得不到充分体现,并且由于其集成度高,使其成本偏高,同时其芯片引脚较多,实物硬件电路板布线复杂,加重了电路设计和实际焊接的工作。

因此排除该方案。

方案二:

采用89C52作为控制核心。

针对本设计特点—多开关量输入的复杂程序控制系统,需要擅长处理多开关量得单片机,而不能用精简I/O口和程序存储的小体积单片机,A/D,D/A功能也不必选用,据此,我们选用STC89C52单片机,另外,该单片机价格低廉,使用简单。

综上所述,我们选用方案二。

2.2.2电机驱动模块

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

市面上有专门的双电机驱动芯片LG9110,经测试性能可以满足小车的电机控制要求,而且外围电路比较简单,稳定性好,驱动能力强,能够很好的保证两电机的同步。

因此,采用方案二。

2.2.3寻迹模块

使用可见光发光二级管和光敏二级管组成的发射-接受模块。

这种方案的缺点在于其他环境光源会对光敏二级管工作产生很大干扰,一旦外界光亮条件改变,很可能造成误判和漏判;

如采用高亮发光管可以降低一定的干扰,但会增加额外的功率损耗。

使用反射式红外二级管和接收管组合发射-接收器。

由于红外光波长比可见光长,因此受可见光的影响比较小,同时,红外对管还具有以下优点:

质量轻,灵敏度高,线性好,接口电路比较简单,安装方便,对于本系统中近距离的检测,用它作为传感器将是最理想的。

因此,本系统采用方案二

2.2.4电机模块

采用直流电机。

直流电机使用方便,价格便宜,有优良调速特性,实现方便平滑调速,调整范围广,有较强过载能力,能承受频繁的冲击负载,可频繁无级快速启动,制动,反转。

采用步进电机。

步进电机的运动精度很高,由其组成的位置控制系统定位准确,稳定时间短,一般可采用开环控制。

但控制系统必须由双环形脉冲信号,功率驱动电路等组成方可使用,控制相对复杂。

综上所述,直流电机的电路相对简单,功能合题意,使用方便,价格便宜,本系统采用直流电机作为动力源。

第3章系统硬件设计及原理

3.1系统的硬件组成

硬件设计总体上以STC89C52为核心,辅以必要的外围电路,完成红外传感器对运动轨迹的检测,信号的处理,电机的转动等功能。

系统总框图如下:

图3-1系统总框图

3.2STC89C52单片机

STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-FlashProgramableandErasableReadOnlyMemory)的低电压,高性能COMOS8的微处理器,俗称单片机。

该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

3.2.1STC89C52管脚功能

图3-2总控制电路图

图3-3STC89C52各引脚图

STC89C52为40管脚双列直插封装的8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。

功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。

主要管脚有:

XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振。

RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。

VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端。

P0~P3为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口(32~39脚)被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12脚、27脚及28脚定义为握手信号功能端口,连主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。

STC89C52芯片共40引脚:

1~8脚:

通用I/O接口p1.0~p1.7

9脚:

rst复位键

10.11脚:

RXD串口输入TXD串口输出

12~19:

I/Op3接口(12,13脚INT0中断0 

INT1中断1)

14,15:

计数脉冲T0T1

16,17:

WR写控制RD读控制输出端)

18,19:

晶振谐振器

20地线 

 

21~28p2接口高8位地址总线

29:

psen片外rom选通端 

单片机对片外rom操作时29脚(psen)输出低电平

30:

ALE/PROG地址锁存器

31:

EArom取指令控制器高电平片内取低电平片外取

32~39:

p0.7~p0.0(注意此接口的顺序与其他I/O接口不同,引脚号的排列顺序相反)

40:

电源+5V

GND:

接地。

P3.6/WR(外部数据存储器写选通)管脚说明:

VCC:

供电电压。

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示:

P3.0RXD(串行输入口)

P3.1TXD(串行输出口)

P3.2/INT0(外部中断0)

P3.3/INT1(外部中断1)

P3.4T0(记时器0外部输入)

P3.5T1(记时器1外部输入)

P3.7/RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;

当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出。

振荡器特性:

XTAL1和XTAL2分别为反向放大器的输入和输出。

该反向放大器可以配置为片内振荡器。

石晶振荡和陶瓷振荡均可采用。

如采用外部时钟源驱动器件,XTAL2应不接。

有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

3.2.2复位

操作有拨动上电自动复位开关和按动复位按键两种方式。

上电自动复位是通过外部复位电路的电容充电来实现的。

这佯,只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。

按键手动复位有电平方式和脉冲方式两种。

其中,按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的;

而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的。

(a)上电复位(b)按键电平复位(c)按键脉冲复位

图3-4复位电路

上述电路图中(b)的电阻、电容参数适用于11.0592MHz晶振。

本系统的复位电路采用图3-4(b)上电复位方式。

3.3电机驱动模块

LG9110是为控制和驱动电机设计的两通道推挽式功率放大专用集成电路器件,将分立电路集成在单片IC之中,使外围器件成本降低,整机可靠性提高。

该芯片有两个TTL/CMOS兼容电平的输入,具有良好的抗干扰性;

两个输出端能直接驱动电机的正反向运动,它具有较大的电流驱动能力,每通道能通过750~800mA的持续电流,峰值电流能力可达1.5~2.0A;

同时它具有较低的输出饱和压降与静态电流;

内置的钳位二极管能释放感性负载的反向冲击电流,使它在驱动继电器、直流电机、步进电机或开关功率管的使用上安全可靠。

9110被广泛应用于玩具汽车电机驱动、自动阀门电机驱动、电磁门锁驱动等电路上。

该驱动芯片LG9110的6、7管脚接单片机,2、3管脚接电机。

O口为低电平时,电机正转。

O口为高电平时,电机反转。

电机驱动电动如下图3-5:

图3-5电机驱动模块

3.4红外检测模块

本单元模块中,白色管作为发色管,黑色管作为接管,当白色管发射一束光,遇到黑线或白色物体反射,黑色管接收到反射光,然后把光信号转化为电信号送给单片机进行处理,控制电机的正反转,电路原理图如下:

图3-6红外检测模块

3.5声控模块

话筒的阻值随接收到声音信号强度的变化而变化,在电容正端产生变化的电压信号,经电容C5耦合和基本共射极三极管V3的电压反向存在,通过单片机P0.4引脚采集和处理

可实现小车的声控功能,正常情况下P0.4管脚采集到的是高电平信号,当话筒收到强度足够的声音后,三极管导通后P0.4管脚变为低电平。

原理图如图3-5:

图3-7声控模块

3.6报警模块

单片机上电后各管脚默认为高电平,三极管不导通。

当需要执行报警时,单片机P0.6管脚出现低电平信号,三极管导通驱动蜂鸣器报警。

如图3-8

图3-8报警模块

3.7串口通信模块

此模块用于单片机和电脑进行串口通信,但由于计算机串口为RS232电平,高电平为—12V,低电平为+12V,而单片机为TTL电平,高电平为+5V,低电平为0V,因此,计算机与单片机之间通讯时需要加电平转换芯片MAX232.原理图如下

图3-9串口通信模块

第4章系统软件设计

该系统的软件程序采用模块结构,由C语言编写完成,主要由初始化程序,偏道调整程序、声光指示程序,读红外对光管状态等模块组成。

总的设计流程图如下:

图4-1设计流程图

该系统配套的软件程序采用模块结构,由C语言编写完成。

主要由初始化程序、偏道调整程序、偏离光源调整程序、声光指示子程序、读传感器状态、显示程序、定时器0的中断服务程序、定时器1的中断服务程序、外部中断0的服务程序、停车处理等模块组成。

流程图说明:

首先开始启动,进入系统初始化定义引脚,执行主程序小车前进。

根据小车的指示灯来判断小车的运行情况。

如果小车偏离跑道,会给单片机一个低电平信号进入电机模式选择,例如:

小车往左跑道偏出,传感器开始扫描,当红外接受探头接受到红外光线,给单片机底电平信号,这时经过单片机内部程序的处理设置合理的延时时间函数,同时电机左转。

直到小车跑回跑道,正常前进。

反复的重复这样的动作就可以实现寻迹的功能。

第5章安装调试

5.1焊接注意事项

1、电解电容有正负之分;

2、二极管有正负极之分,长正短负;

3、话筒有正负之分,负极与外壳相连;

4、蜂鸣器有正负之分,标签突出一边注明了正极;

5、三极管按照电路板封装焊接;

6、集成电路即芯片,安装时要注意缺口对应(缺口对应位置和封装对应位置要一致)。

(缺口在芯片或芯片底座的一端)

7、数码管焊接时注意数码管上的小数点要与电路板封装上的小数点对应。

5.2调试

焊接完前板及主板后组装好小车安上电池上电运行一下,结果发现小车的初始状态是向后退,遇到障碍前轮竟然向前转,起初怀疑出厂程序可能错了,于是就换了一个别的组的芯片,发现并没有改善,那就应该是电机正负焊反了,试着把电机的正负连线反过来焊接一下,重新上电运行,结果可以正常运行。

但后来发现小车前轮左右转速不一样,于是用电源箱分别供5V电压看电流大小,经测试后发现左侧电机供电后电流大,说明可能是齿轮安得过紧,于是松了一下螺丝再上电后电流还是那么大,把电机卸下来用手转动前轮,发现是外壳留的孔太窄致使金属杆与外壳间的摩擦较大,使其转速变慢,把外壳留的孔稍微扩了一下,结果问题解决。

第6章总结心得

通过本次课程设计,使我了解到小车的循迹原理,系统的学习了51单片机系统的工作原理及使用方法,并独立设计了智能小车系统的整个项目。

此方案选择的器件比较简单,实际中也很容易实现。

本系统能够基本满足设计要求。

课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程“千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础.体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。

在此感谢我们的肖冰老师,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;

老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;

这次智能寻迹小车设计的每个实验细节和每个数据,都离不开老师您的细心指导。

而您开朗的个性和宽容的态度,帮助我能够很顺利的完成了这次课程设计。

总之,在设计的过程中,无论是对于学习方法还是理论知识,我们都有里新的认识,受益匪浅,这将激励我在今后再接再厉,不断完善自己的理论知识,提高实践动手能力。

参考文献

[1]杨红,李生明,袁明月.智能循迹消防小车设计[N].清远职业技术学院学报.2011,4(6):

77-81

[2]ThomasWSchultz.Candthe8051[M].WoodIslandPrints.2009-5

[3]RichardBarnett.嵌入式C语言编程与MicrochipPIC[M].清华大学出版社.2006

[4]HongruTang,AiguoSong,XiaobingZhang.Hybridbehaviorcoordinationmechanismfornavigationofreconnaissancerobot[C].Proceedingsof2006IEEE/RSJInternationalConferenceonIntelligentRobotsandSystems.2006:

1773-1778P

[5]PaulLister.Single-ChipMicrocomputers[M].Mcgraw-Hill.1985,1

(1)

[6]JohnF.MicrocomputerArchitectureandProgramming[M].Wiley.1989,1(17)

[7]周坚编.单片机C语言轻松入门[M].北京航空航天大学出版社.2006:

21-38页

[8]姚培等.基于单片机控制的智能寻迹避障小车[J].机电信息.2010(12):

27-32页

[9]赵振德.多功能遥控智能小车的制作[J].电子制作.2011(4):

36-41页

[10]康华光.电子技术基础数字部分[M].2006:

85-105页

[11]赵海兰.基于单片机的红外遥控小车的设计[J].无线互联科技.2011:

15-21页

[12]梁森.自动检测技术及应用[M].机械工业出版社.2004:

22-28页

[13]靳栀.单片机原理及应用[M].西安交通出版社.2004:

130-148页

[14]李全利.单片机原理及接口技术[M].高等教育出版社.2009:

46-75页

[15]王毅.电子线路设计.试验.测试[M].华中科技大学出版社.2004:

55-68页

附录

程序清单:

#include<

reg52.h>

//包含51单片机相关的头文件

#defineuintunsignedint//重定义无符号整数类型

#defineucharunsignedchar//重定义无符号字符类型

ucharcodeLedShowData[]={0x03,0x9F,0x25,0x0D,0x99,//定义数码管显示数据

0x49,0x41,0x1F,0x01,0x19};

//0,1,2,3,4,5,6,7,8,9

ucharcodeRecvData[]={0x07,0x0A,0x1B,0x1F,0x0C,0x0D,0x0E,0x00,0x0F,0x19};

ucharIRCOM[7];

//接收数据缓冲区

staticunsignedintLedFlash;

//定义闪动频率计数变量

unsignedcharRunFlag=0;

//定义运行标志位

bitEnableLight=0;

//定义指示灯使能位

/***********完成基本数据变量定义**************/

sbitS1State=P1^0;

//定义S1状态标志位

sbitS2State=P1^1;

//定义S2状态标志位

sbitB1State=P1^2;

//定义B1状态标志位

sbitIRState=P1^3;

//定义IR状态标志位

sbitRunStopState=P1^4;

//定义运行停止标志位

sbitFontIRState=P1^5;

//定义FontIR状态标志位

sbitLeftIRState=P1^6;

//定义LeftIR状态标志位

sbitRightIRState=P1^7;

//定义RightIRState状态标志位

/*************完成状态指示灯定义*************/

sbitS1=P3^2;

//定义S1按键端口

sbitS2=P3^4;

//定义S2按键端口

/*************完成按键端口的定义*************/

sbit

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

当前位置:首页 > 幼儿教育 > 家庭教育

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

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