智能循迹 毕业设计报告.docx

上传人:b****3 文档编号:4248564 上传时间:2023-05-06 格式:DOCX 页数:24 大小:656.26KB
下载 相关 举报
智能循迹 毕业设计报告.docx_第1页
第1页 / 共24页
智能循迹 毕业设计报告.docx_第2页
第2页 / 共24页
智能循迹 毕业设计报告.docx_第3页
第3页 / 共24页
智能循迹 毕业设计报告.docx_第4页
第4页 / 共24页
智能循迹 毕业设计报告.docx_第5页
第5页 / 共24页
智能循迹 毕业设计报告.docx_第6页
第6页 / 共24页
智能循迹 毕业设计报告.docx_第7页
第7页 / 共24页
智能循迹 毕业设计报告.docx_第8页
第8页 / 共24页
智能循迹 毕业设计报告.docx_第9页
第9页 / 共24页
智能循迹 毕业设计报告.docx_第10页
第10页 / 共24页
智能循迹 毕业设计报告.docx_第11页
第11页 / 共24页
智能循迹 毕业设计报告.docx_第12页
第12页 / 共24页
智能循迹 毕业设计报告.docx_第13页
第13页 / 共24页
智能循迹 毕业设计报告.docx_第14页
第14页 / 共24页
智能循迹 毕业设计报告.docx_第15页
第15页 / 共24页
智能循迹 毕业设计报告.docx_第16页
第16页 / 共24页
智能循迹 毕业设计报告.docx_第17页
第17页 / 共24页
智能循迹 毕业设计报告.docx_第18页
第18页 / 共24页
智能循迹 毕业设计报告.docx_第19页
第19页 / 共24页
智能循迹 毕业设计报告.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

智能循迹 毕业设计报告.docx

《智能循迹 毕业设计报告.docx》由会员分享,可在线阅读,更多相关《智能循迹 毕业设计报告.docx(24页珍藏版)》请在冰点文库上搜索。

智能循迹 毕业设计报告.docx

智能循迹毕业设计报告

 

毕业设计

 

题目:

智能循迹小车

 

学院:

信息与电子工程学院

专业:

应用电子技术

届别:

2013届

学号:

1006190110

姓名:

沈丹虹

指导教师:

杨俊鸣

 

填写日期:

二零一三年十二月十六日

摘要

本设计阐述了智能循迹小车的原理,提出了几个设计方案,概述了整个系统的设计思路和所需要考虑的问题。

该设计通过以AT89C52作为控制核心,整个系统可以分为最小系统、直流电机驱动、红外发射管以及电压比较这几个部分。

主要通过4个红外发射管对信号进行采集,将采集到的信号经比较器LM393处理后传给89C51单片机,经单片机处理后,发出控制命令给L298N芯片,驱动直流电动机进行相应的动作。

该小车能够识别出黑、白色轨迹并能沿着轨迹前进直到终点,并且能从终点返回。

整个系统结构设计合理简单,通过软、硬件的相互配合使整个设计的误差降到了最低。

关键字:

AT89C52循迹红外发射管黑白色轨迹

Abstract

Thisdesignexpoundstheprincipleofintelligentfollowtracecar,putforwardseveraldesignschemes,summarizesthedesignideaofthewholesystemandtheproblemsneedtoconsider.ThisdesignthroughtheAT89C52ascontrolcore,thewholesystemcanbedividedintothesmallestsystem,dcmotor,theinfraredtransmittingtubevoltageandcomparingtheseveralparts.Mainlythroughfourinfraredtransmittingtubeofsignalacquisition,thecollectedsignalbythecomparatorLM393treatmentafter89c51,weretreatedwithsinglechipmicrocomputer,acontrolcommandtoL298Nchip,drivenbydcmotorofthecorrespondingaction.Thiscarcanidentifyblackandwhitetrackandalongthepathforwarduntiltheend,andcanreturnfromtheend.Thewholesystemstructuredesignisreasonable,simple,throughthecooperationtomakethesoftwareandhardwaredesignofthelowesterror.

KeyWords:

 AT89C52TrackingInfraredEmission control

BlackWhite locus

 

目录

第1章引言1

第2章设计任务与要求1

2.1设计任务1

2.2设计要求2

第3章系统总体设计2

3.1系统设计整体思路2

3.2各模块分析选择2

3.2.1主控单元方案比较与选择2

3.2.2循迹单元方案比较与选择3

3.2.3电机驱动单元方案比较与选择3

3.3总体设计框图5

第4章硬件系统电路设计5

4.1单片机最小系统电路5

4.2直流电动机驱动电路6

4.3循迹检测电路7

第5章系统软件设计7

5.1主程序7

5.2循迹子程序设计8

第6章安装与调试9

6.1软件调试9

6.2硬件调试9

6.3故障分析9

第7章结论10

第8章元器件清单11

第9章附录12

9.1附录A实物图12

9.2附录B硬件电路PCB图13

9.3附录C程序14

第10章参考文献20

第11章致谢21

第1章引言

当今社会,科学技术日新月异,时代前进的步伐越迈越宽,应用自动化设备,计算机处理,现代化通讯,数字化信息,现代化显示设备等高新技术而建立的现代化智能,监控等系统已经得到充分的发展与应用,智能服务机器人能够完成考古发掘,海底解密,宇宙探索等危险作业,以保证人身安全。

《国家中长期科学和技术发展规划纲要》一文指出:

智能服务机器人是在非结构环境下为人类提供必要服务的多种高技术集成的智能化装备。

以服务机器人和危险作业机器人应用需求为重点,研究设计方法、制造工艺、智能控制和应用系统集成等共性基础技术。

重点研究低成本的自组织网络,个性化的智能机器人和人机交互系统、高柔性免受攻击的数据网络和先进的信息安全系统

凭借此次设计,我们对单片机ATC52开发版又进一步的进行了深入的学习和理解,在对ATC52的现有知识的基础上进行了智能循迹小车的设计,使小车能够在自动寻找路线。

我们的系统主要分为红外发射管模块、直流电机驱动模块及LED指示方向模块。

三个模块主要是主要是用到控制IO口和定时器。

通过对整个单片机资源的充分利用所以我们没有扩展外存储器,但这提高了整个单片机的利用率。

第2章设计任务与要求

2.1设计任务

设计并制作一个智能小车,两轮驱动、一轮为万向轮。

小车结构示意图如下:

图2.1小车结构示意图

2.2设计要求

智能小车设计的要求如下:

1)小车需要实现直走、左转及右转等功能。

2)小车能够识别各种黑白线,并且能按照我们所设计的线路循迹下去。

3)小车在人行道前能停止3秒,再继续行走。

第3章系统总体设计

3.1系统设计整体思路

本系统由4个红外发射管、单片机AT89C52、电机驱动电路、LED指示电路以及直流电机等部分组成。

利用红外发射管对黑线进行检测,再利用单片机对红外发射管所反馈的信号进行判断进行处理及判断是否黑线,从而识别当前的路线情况。

经由单片机对路线进行判断后,再利用单片机产生信号对电机驱动电路进行控制,使得直流电动机可独立实现正转、反转、停止,从而使小车能够实现直走、左拐、右拐等功能,且实现设计要求。

3.2各模块分析选择

通过收集各硬件模块资料信息,对其进行有效的分析选择,最终选出最合理的设计方案。

3.2.1主控单元方案比较与选择

方案一:

采用各类数字电路来组成小车的控制系统,对外围避障信号,自动寻迹信号,无线遥控信号,语音控制信号进行处理。

本方案电路复杂,灵活性不高,效率低,不利于小车智能化的扩展,对各路信号处理比较困难。

方案二:

采用AT89S52单片机来作为整机的控制单元。

红外线探头采用市面上通用的发射管与及接收头,经过比较芯片调制处理后由控制系统接收。

路线寻找采用红外线管对路面信号采集,送到单片机系统处理。

此系统比较灵活,采用软件方法来解决复杂的硬件电路部分,使系统硬件简洁化,各类功能易于实现,能很好地满足题目的要求。

比较以上两种方案的优缺点,方案二简洁、灵活、可扩展性好,更能达到题目的设计要求,因此采用方案二来实现。

3.2.2循迹单元方案比较与选择

方案一:

采用发光二极管发光,用光敏二极管接收。

由于光敏二极管受可见光的影响较大,稳定性差。

方案二:

利用红外对管作为循迹单元的传感器,其中红外线发射管发射、接收。

采用红外线发射,外面可见光对接收信号的影响较小,再用射极输出器对信号进行隔离。

本方案也易于实现,比较可靠,因此采用方案二。

当小车底部的某边红外线收发对管遇到黑线时,可以检测到输入电平为高电平,反之为低电平。

结合单片机查询方式,通过程序控制小车哪边轮胎转动来改变方向。

这样不断循环检测,方向控制,使小车按黑线行走。

图3.1红外线收发对管

3.2.3电机驱动单元方案比较与选择

方案一:

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

方案二:

采用电阻网络或数字电位器调节电动机的分压,从而达到分压的目的。

但电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。

更主要的问题在于一般的电动机电阻很小,但电流很大,分压不仅回降低效率,而且实现很困难。

方案三:

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

线性型驱动的电路结构和原理简单,加速能力强,采用由达林顿管组成的H型桥式电路。

用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。

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

现市面上有很多此种芯片,我选用了L298N(如图)。

这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。

因此决定采用使用功率三极管作为功率放大器的输出控制直流电机。

电机驱动采用L298集成H桥芯片。

L298中有两套H桥电路,刚好可以控制两个电机。

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

图3.2功率三极管

3.3总体设计框图

此系统是以单片机为控制核心,处理执行各个外部传感器检测得到的电平信号,其中有二部分:

循迹模块,直流电机驱动模块和电压比较模块。

最后把处理结果传递给小车电机,使得到相应效果。

如图3-3总体设计框图。

图3.3小车总体设计框图

第4章硬件系统电路设计

本系统硬件电路主要由AT89C51单片机最小系统电路、直流电动机驱动电路、循迹检测电路等组成。

4.1单片机最小系统电路

图4.1单片机最小系统电路图

单片机最小系统电路:

该电路由复位、电源、晶振等电路组成。

复位电路是当S4按下时,RST上出现高电平来达到小车复位。

电源电路是单片机20、40脚接GND、VCC。

晶振电路是由两个电容和一个晶振组合成的电路。

芯片的P1.0-P1.3(1-3脚)控制电机驱动,P1.4为输出PWM信号,P2(21-28脚)全部外接控制小车的各种开关。

4.2直流电动机驱动电路

图4.2直流电动机驱动电路

小车使用的是直流电机,同时为了保证LN298正常工作,我们另外安装了续流二极管,根据输入电压的大小,输出不同的电压和功率,解决了负载能力不够这个问题。

利用单片机调整出PWM脉冲和高低电平对直流电机进行驱动和控制。

4.3循迹检测电路

图4.3循迹检测电路

智能小车循迹是当小车底部的某边红外线收发对管遇到黑线时,可以检测到输入电平为高电平,反之为低电平。

结合单片机查询方式,通过程序控制小车哪边轮胎转动来改变方向。

这样不断循环检测,方向控制,使小车按黑线行走。

第5章系统软件设计

整个软件采用模块化设计,由主程序、左拐子程序、右拐子程序、循迹程序及加、减速子程序等模块程序组成。

系统软件主要完成循迹、控制小车直走、左拐、右拐等功能。

中断子程序是用定时中断来产生一定频率的PWM脉冲信号,从而提高小车运动的速度。

5.1主程序

图5.1小车主程序流程图

5.2循迹子程序设计

图5.2小车循环子程序设计图

第6章安装与调试

6.1软件调试

软件调试的过程主要是先分模块测试再统一调试。

利用Keil软件和电路仿真软件对模块程序进行调试。

先分别对各个程序进行仿真,如先测试左、右拐子程序能否使单片机输出正确的控制信号。

在各个模块都测试正常的情况下,将所有模块程序集合成一个程序,并在仿真软件中,对各种路口进行模拟,确定该程序能够识别这些路口并能够输出对应的信后。

6.2硬件调试

硬件电路可分为红外发射管发射、接收电路、单片机模块、L298N直流电机电路。

检测电路首先检查电路板是否有线路短路或者断路以及各个元器件是否正确安装到电路板上。

然后上电检测红外发射管是否工作正常。

单片机模块主要检测复位电路和时钟电路。

给单片机上电后,利用示波器检测晶振是否起振,在起振后,测试复位电路是否能够使单片机进行正常复位。

L298N直流电机驱动电路主要检测能否实现双路直流电机的控制。

在确定电路板上的的元件正确安装完毕后上电,将电路输出端与直流电机连接,同时输入控制信号,以此测试该模块电路是否能够正常控制直流电机。

6.3故障分析

首先,我们对编好程序先进行软件上的调试,在确认程序没有错误后,我们通过软件把程序下载进89C52芯片里,然后进行硬件上的调试。

在第一遍调试的过程中,我们发现由于红外管设计上的一些不足,小车在左、右拐时,小车有时会出错,这样小车由于在程序上的判断错误使小车不能正常的转弯。

调试过程中红外管也很容易受到干扰,这也容易到导致单片机判断错误,进而使小车不能正常的行驶。

根据这些问题,我们对小车设计以及红外管的缺陷进行重新设计。

然后,我们对小车进行了程序上的单步调试,通过单步调试发现小车能够按程序正常的行驶。

我们就把程序拼接起来进行最后的整体调试。

最后,通过单步调试以及整体调试,使得设计的小车基本上能够达到要求,并且错误判断大大降低。

总体来说,调试过程中碰到的问题很多,有循迹上的,小车本身,以及设计的电路问题,但我们都能及时的发现这些问题并且针对这些问题进行探讨和修正。

所以,此次毕业设计对我们在今后的工作具有深远的影响。

第7章结论

本次设计在组员们以及老师的指导下,完成了毕业设计。

此设计实现了利用单片机C52为核心,光电传感器以及直流电机控制电路作为辅助电路,使小车能够在迷宫内实现左拐、右拐等功能,同时在对程序进一步整理修改之后,使小车能在人行道停止3秒再继续行走。

在这次毕业设计中,我们从中学到很多,收获很多。

通过了这个毕业设计,使我们对单片机更加深一步了解不少,体会到单片机的强大功能。

整个设计从方案确定、查阅资料、电路原理图的确定、制作电路板、程序设计以及小车调试等步骤,每一个过程都让我们学了挺多,让我们体会到完成每一项步骤都是需要队友们认真全力的投入其中,这样才能有质量的完成任务,才能免得自己功亏一篑。

虽然此次的设计已经完成了所有要求,但是由于自己的知识有限,此次设计中也存在着一些问题。

 

第8章元器件清单

此次设计所示用的元器件如下表格所示:

表格9-1元件使用清单

元件名称

型号

数量

电阻

10K

10

电阻

1.2K

8

可调电阻

103

4

按钮

1

自锁开关

1

LED

5

晶振

12M

1

磁片电容

22pf

2

电解电容

104

3

芯片

L298N

1

芯片

AT89C51

1

芯片

LM393

1

二极管

FR157

8

排插

若干

插槽

3

第9章附录

9.1附录A实物图

图9.1智能循迹小车硬件展示图

9.2附录B硬件电路PCB图

图9.2单片机最小系统PCB图

图9.3红外发射管PCB图

图9.4驱动电机PCB图

图9.5比较板PCB图

9.3附录C程序

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

硬件连接

P1_4接驱动模块ENA使能端,输入PWM信号调节速度

P1_5接驱动模块ENB使能端,输入PWM信号调节速度

P1_0P1_1接IN1IN2当P1_0=1,P1_1=0;时左电机正转驱动蓝色输出端OUT1OUT2接左电机

P1_0P1_1接IN1IN2当P1_0=0,P1_1=1;时左电机反转

P1_2P1_3接IN3IN4当P1_2=1,P1_3=0;时右电机正转驱动蓝色输出端OUT3OUT4接右电机

P1_2P1_3接IN3IN4当P1_2=0,P1_3=1;时右电机反转

P1_0接四路寻迹模块接口第一路输出信号即中控板上面标记为OUT1

P1_1接四路寻迹模块接口第二路输出信号即中控板上面标记为OUT2

P1_2接四路寻迹模块接口第三路输出信号即中控板上面标记为OUT3

P1_3接四路寻迹模块接口第四路输出信号即中控板上面标记为OUT4

八路寻迹传感器有信号(白线)为0没有信号(黑线)为1

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

#include#defineRight_moto_pwmP1_4//接驱动模块ENA使能端,输入PWM信号调节速度

#defineLeft_moto_pwmP1_5//接驱动模块ENB使能端,输入PWM信号调节速度

#defineLeft_1_ledP2_0//四路寻迹模块接口第一路

#defineLeft_2_ledP2_1//四路寻迹模块接口第二路

#defineRight_1_ledP2_2//四路寻迹模块接口第三路

#defineRight_2_ledP2_3//四路寻迹模块接口第四路

#defineLeft_moto_go{P1_0=0,P1_1=1;}//左电机前进

#defineLeft_moto_back{P1_0=1,P1_1=0;}//左电机后退

#defineLeft_moto_stop{P1_0=1,P1_1=1;}//左电机停转

#defineRight_moto_go{P1_2=0,P1_3=1;}//右电机前转

#defineRight_moto_back{P1_2=1,P1_3=0;}//右电机后退

#defineRight_moto_stop{P1_2=1,P1_3=1;}//右电机停转

#defineucharunsignedchar

#defineuintunsignedint

ucharpwm_val_left=0;

ucharpush_val_left=0;//左电机占空比N/10

ucharpwm_val_right=0;

ucharpush_val_right=0;//右电机占空比N/10

bitRight_moto_stp=1;

bitLeft_moto_stp=1;

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

voidrun(void)//前进函数

{

push_val_left=13;//PWM调节参数1-201为最慢,20是最快改这个值可以改变其速度

push_val_right=15;//PWM调节参数1-201为最慢,20是最快改这个值可以改变其速度

Left_moto_go;//左电机前进

Right_moto_go;//右电机前进

}

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

voidleft(void)//左转函数

{

push_val_left=8;

push_val_right=9;

Right_moto_go;//右电机继续

Left_moto_stop;//左电机停走

}

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

voidright(void)//右转函数

{

push_val_left=8;

push_val_right=9;

Right_moto_stop;//右电机停走

Left_moto_go;//左电机继续

}

voidDelayms(uintx)

{

uchari;

while(x--)for(i=0;i<120;i++);

}

voidstop(void)

{

Right_moto_stop;//右电机停走

Left_moto_stop;//左电机停走

Delayms(3000);

run();

Delayms(100);

}

 

/*************************PWM调制电机转速********************************/

voidpwm_out_left_moto(void)//左电机调速,调节push_val_left的值改变电机转速,占空比

{

if(Left_moto_stp)

{

if(pwm_val_left<=push_val_left)

Left_moto_pwm=1;

else

Left_moto_pwm=0;

if(pwm_val_left>=20)

pwm_val_left=0;

}

else

Left_moto_pwm=0;

}

voidpwm_out_right_moto(void)//右电机调速,调节push_val_left的值改变电机转速,占空比

{

if(Right_moto_stp)

{

if(pwm_val_right<=push_val_right)

Right_moto_pwm=1;

else

Right_moto_pwm=0;

if(pwm_val_right>=20)

pwm_val_right=0;

}

else

Right_moto_pwm=0;

}

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

voidxunji()

{

switch(P2&0x0f)

{

case0x00:

//全部没有压线,直走

run();break;

case0x01:

//右压线,左转

left();break;

case0x02:

//右压线,左转

left();break;

case0x04:

//左压线,转右

right();break;

case0x08:

//左压线,右转

right();break;

case0x0f:

stop();break;

default:

run();break;

}

}

/***********TIMER0中断服务子

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

当前位置:首页 > 表格模板 > 合同协议

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

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