智能机器车功能开发自动寻迹.docx
- 文档编号:9536817
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:32
- 大小:975.72KB
智能机器车功能开发自动寻迹.docx
《智能机器车功能开发自动寻迹.docx》由会员分享,可在线阅读,更多相关《智能机器车功能开发自动寻迹.docx(32页珍藏版)》请在冰豆网上搜索。
智能机器车功能开发自动寻迹
本科毕业论文(设计)
智能机器车功能开发(自动寻迹)
FunctionalDevelopmentofIntelligentRobotCar(AutomaticTracing)
摘要
智能机器车,即自动运行的机器车,智能是以后科技的发展方向,他可以按照预先设定的模式在一个环境里自动的运作,而不需要人的控制。
如今,智能机器车可应用于科学勘探或是未来汽车自动行驶等等的用途。
智能机器车具有自动寻迹、自动避障功能以及可控的红外遥控功能。
本次课题设计的智能机器车以Atmel公司的89S52单片机为主要控制核心,通过红外寻迹系统,实现该智能机器车的自动寻迹功能。
智能机器车主要由单片机控制模块、无线遥控模块、红外对管寻迹模块、红外避障模块、电机驱动模块组成。
通过单独对各个模块的安装、调试,保证各个子模块的正常工作,得到正确的信号输出。
然后把各个模块组合起来,对89S52单片机写入程序,将各模块整合成一个完整的系统,最后着重研究其中的自动寻址功能并完成本次课题设计。
关键词:
智能;Atmel89S52;单片机;自动寻迹;
ABSTRACT
Intelligentmachinecar,whichrunningbyautomaticsystem,thedevelopmentoffuturescienceandtechnologyisusingtheintelligentoperation.Therobotcarcanrunningsteadilybyapresetmode,withouthuman'smastery.Nowadays,intelligentmachinescanbeappliedforvariouspurposes(scientificexplorationandtheautomaticdrivingcarinthefutureandsoon).Thisintelligentrobotcarwiththefunctionofautomatictracking,automaticobstacleavoidanceandinfraredremotecontrol.ThedesignofCreateRobot-CarsubjectusetheAtmel89S52MCUasthecontrolcenter.Theintelligentrobotcarcanautomatictracingbytheinfraredtrackingsystem.
IntelligentmachinescarmainlycontrolledbytheMCUmodule,wirelessremotecontrolmodule,infraredtubetracingmodule,infraredobstacleavoidancemodule,motordrivemodule.Throughtheseparateinstallationandcommissioningforeachmodule,makesurethevarioussub-modulesworkingproperly,whichgetthecorrectoutput.Thenthecombinationofthevariousmodulestogetherfor89S52MCUwriteprogramthatwillintegratethemodulesintoacompletesystem,whichfocusesautomaticaddressingfunctionanddesigntocompletethistask,atlast.
KeyWords:
Intelligent;Atmel89s52;MCU;AutomaticTracing.
目录
1引言······················································1
2总体设计··················································2
2.1模块分析··············································2
2.1.1主控单元··········································2
2.1.2寻迹单元··········································2
3硬件设计··················································3
3.1单片机控制模块········································3
3.1.1晶振电路·········································4
3.1.2复位电路·········································5
3.1.3接口电路·········································6
3.3光敏电阻寻迹模块······································7
3.3.1光敏电阻的工作原理································7
3.3.2寻迹电路··········································8
4软件设计··················································11
4.1寻迹模块编程思路框图·································11
4.2源程序···············································11
5制作与调试················································20
5.1使用的仪器仪表与软件································20
5.2软件的调试··········································20
5.3模块的调试··········································21
6结论与展望···············································23
致谢······················································24
参考文献····················································25
1引言
智能,是指可以观察周遭环境并作出行动以达致目标的程序,通过机器对外界信息进行采集和处理,计算机按照系统中的程序的设置运行做出相应的动作,进而驱动机器来对外界做出一些有效的反应。
在这个过程中,不需要人的操作或是控制,机器便能实现自动化的运行。
随着电子信息科技的快速发展,智能这个词充斥着生活的每一个角落,给人们带来了方便,也推动了世界快速发展,智能机器车则是一种正在研制的新型高科技产品的试验产品,可应用于科学勘探或是未来智能汽车行驶等等的用途,机器车不需要人的操控,在运行过程中借助地面上的的路况信息来引导行驶方向,以达到一个自动寻迹的效果。
本次课题设计以全面普及智能化技术及让学生的对此技术得到初步的了解为目的,整个开发过程简单易懂,电子元器件与平台的选择适当、合理,无须花费太多的时间与精力便能实能智能机器车的自动寻迹及其他功能,是电子与工程等相关学科的初学者学习相关知识、巩固大学期间所学知识的理想教育工具。
同时也适用于高校毕业生作为课题设计而开展。
本次课题设计的是智能机器车,该设计过程中的理论方案、分析方法以及特点与创新等方面可以为考古机器人、家用机器人、采矿机器人等有社会应用价值前景的机器人的生产与发展提供一定的设计、制作的参考意义。
同时,智能机器人作为一门高新科技,具有附加值高、技术要求精、应用范围广等一系列特点,是世界各个国家争相发展的热点。
随着我国经济的发展,产业结构的升级,为保持我国在未来国际竞争中的优势,有必要重视智能机器人的发展并适当给予政策支持,以提高我国智能机器人的发展水平。
本设计使用Atmel公司的89S52单片机作为主要的控制核心,融合电机模型、传感器技术、红外无线通信技术、程序设计等一系列知识以实现智能机器车的各种功能。
设计完成以由无线电遥控、光敏电阻的自动寻迹、红外线自动避障组成的硬件模块结合软件设计组成多功能智能小车,使得小车具有自动根据地面黑线寻迹导航,实现智能控制,达到设计目标。
2总体设计
本次课题主要是组装、制作一辆能够对外界信号进行智能判断并做出相应反应的智能机器小车。
智能小车主要能够实现自自动寻迹功能。
作品以两直流电机作为驱动,利用不同宽度的脉冲产生脉宽调制来对直流电机进行调速,同时电机驱动电路采用高电压,高电流,四通道驱动集成芯片L293D。
光敏传感器是能够探测地面的情况,发光二极管发射光线,遇到浅色地面光线被反射回,遇到深色地面光线被吸收,根据不同的地面情况,智能机器车可以探测地面的线路迹象从而实现自动寻迹功能。
由控制单元89S52处理数据后通过汇编程序有序合理的将模块信号整合在一起并完成相应动作,实现了智能控制。
2.1模块分析
2.1.1主控单元
采用89S52单片机作为整机的控制核心。
自动寻迹电路采用光敏传感器对路况进行连续的探测,信号送到单片机进行分析处理。
自动避障电路的红外线探头采用市面上通用的发射管与及接收头,经过比较芯片调制处理后由控制系统接收。
遥控电路芯片把接收信号送单片机处理。
这种设计的优点是灵活方便,采用软硬件结合的方法解决了方案一中的不足,使整个电路的扩展性大大提高,同时,硬件的复杂程度降低,电路简洁清晰,易于达到既定的目标。
2.1.2寻迹单元
采用光敏传感器组成寻迹电路的形式。
光敏传感器由五个光敏电阻和发光二极管组成,它能够探测地面情况,发光二极管发射光线,遇到浅色地面光线被反射,遇到深色地面光线被吸收。
当智能机器车的遇到黑带时,光线被吸收,可以检测到输入电平为高电平,当遇到非黑带时,光线被反射,输入电平为低电平,再通过单片机采用查询方式,程序控制机器车的轮子来实现转向,达到寻迹的功能。
3硬件设计
本系统硬件模块主要由五部分组成,分别是单片机控制模块、自动寻迹模块、自动避障模块、无线遥控模块和电机控制模块。
以下对每个模块作较为详细的说明。
3.1单片机控制模块
单片机控制模块采用Atmel公司生产的89S52单片机作为核心处理器。
单片机控制系统基本由最小系统和外围信号I/O口组成,其中最小系统包括电源(地),CPU时序电路(一般使用11.0592M或者12M和30P电容组成),复位电路。
有了以上三块,单片机就能够正常工作。
89S52是一种低功耗、高性能COMS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、高效的解决方案。
利用89S52的I/O端口对传感器信号进行实时判断监控来控制直流电机做出相应的反应。
图1是89S52单片机的引脚图。
图1AT89S52单片机引脚图
3.1.1晶振电路
AT89S52单片机有一个用于构成内部振荡器的反相放大器,XTAL1和XTAL2分别是放大器的输入、输出端。
这个放大器与作为反馈元件的片外晶体谐振器构成一个自激振荡器。
外接晶体谐振器以及电容C1和C2构成并联谐振回路,接在放大器的反馈回路中。
石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。
从外部时钟源驱动器件的话,XTAL2可以不接,而从XTAL1接入,图2说明内部振荡电路的连接图。
由于外部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占空比没有其它要求,最长低电平持续时间和最少高电平持续时间等还是要符合要求的。
其中:
石英晶振C1,C2=30PF±10PF
陶瓷谐振器C1,C2=40PF±10PF
图2内部振荡电路连接图
3.1.2复位电路
复位电路的基本功能原理是:
系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。
为可靠起见,电源稳定后还要经过一定的延时才撤销复位信号,以防电源开关或电源插头分合过程中引起的抖动而影响复位。
单片机复位电路参数的选定须在振荡稳定后保证复位高电平持续时间大于2个机器周期。
图3是复位电路的连接图。
图3复位电路的连接图
复位电路通常采用上电自动复位和按钮复位两种方式。
所谓上电复位,是指计算机加电瞬间,要在RST引脚出现大于10MS的正脉冲,使单片机进入复位状态。
按钮复位是指用户按下“复位”按钮,使单片机进入复位状态。
如图3,上电时,通过电阻R37提供高电平给RESET端,此时为上电复位,同时给电容E1充电。
按钮复位时,按下按钮S3,电容E1放电,给RESET提供高电平,此为按钮复位。
(注:
为可靠起见,在上电后,直至系统电源稳定,撤销复位信号时,电源需稳定后还要经过一定的延时才撤销复位信号,以防电源开关或电源插头分合过程中引起的抖动而影响复位。
其中单片机复位电路参数的选定须在振荡稳定后保证复位高电平持续时间大于2个机器周期。
这一步骤完全可通过器件搭建完成。
)
3.1.3接口电路
RST置高电平,然后向单片机串行发送编程命令。
P1.7(SCK)输入移位脉冲,P1.6(MISO)串行输出,P1.5(MOSI)串行输入。
被烧写的单片机必须已经接上电源、晶振,可以运作,即具备了最小系统的单片机。
接口电路如图4所示。
ISP10PIN实物接口图如图5所示。
图4接口电路
图5ISP10PIN实物接口图
3.2光敏电阻寻迹模块
光敏电阻寻迹模块作为智能机器车系统的重要组成部分,担负着机器车自动沿黑线行驶的重要功能。
本模块采用的光敏传感器由五个光敏电阻和发光二极管组成,它能够探测地面情况,发光二极管发射光线,遇到浅色地面光线被反射,遇到深色地面光线被吸收。
当智能机器车的遇到黑带时,光线被吸收,可以检测到输入电平为高电平,当遇到非黑带时,光线被反射,输入电平为低电平,再通过单片机采用查询方式,程序控制机器车的轮子来实现转向,达到寻迹的功能。
图6为光敏电阻的实物图。
图6光敏电阻
3.2.1光敏电阻的工作原理
光敏电阻又名光敏传感器、光导管。
常用的制作材料为硫化镉,此外,硒、硫化铝、硫化铅和硫化铋等也可以作为其材料。
这些制作材料在特定波长的光照射下,具有其阻值迅速减小的特性。
这是由于光照的载流子都参与导电,在外加电场的作用下作漂移运动,电子奔向电源的正极,空穴奔向电源的负极,使得光敏电阻的阻值迅速下降。
由硫化物制作而成的半导体封装在具有透光镜的密封壳体内,在黑暗的环境里,它的电阻值很高,当受到光照时,只要光子能量大于半导体材料的禁带宽度,则价带中的电子吸收一个光子的能量后可跃迁到导带上,并在价带中产生一个带正电的荷的空穴,通过增加电子-空穴对的方式提高了半导体中载流子的数目,从而把半导体的导电率增高,电阻率下降,最终使得半导体的光敏电阻阻值降低。
阻值降低的幅度与光照的强度成正比,即光强越强,电阻值越低。
同时,在光敏电阻的两端的金属电极加上电压,其中便有电流通过,当有不同波长的光线照射时光敏电阻时,电流就会随不同的波长的光线变化而变化,实现光电转换。
图7是光敏电阻的结构图。
图7光敏电阻结构图
3.3.2寻迹电路
寻迹电路是实现智能机器车自动寻迹的重要部分,它由底板寻迹电路板和主板寻迹电路组成。
现分别说明。
图8是寻迹底板电路示意图,其中R6~R10是光敏电阻的接收部分,它们分别与R1~R5并联,电阻R1R5接GVCC端,光敏电阻接收部分接地端。
U1A至U1E是74HC14芯片(图9),该芯片是一款使用5.0V电源电压的、具有14个管脚的高速CMOS器件,能够实现6路施密特触发反相器,可将缓慢变化的从光敏电阻收集到的输入信号转换成清晰、无抖动的输出信号,图10是74HC14的内部逻辑结构图。
图8寻迹底板电路
图974HC14芯片
图1074HC14内部逻辑结构
从74HC14输出的各路信号分别作为U2B-U2F的各路信号输入具有6路反相器的芯片4069,从4069输出的信号具有稳定的逻辑电平,进而通过CON5进入主板寻迹电路74HC245中进行信号功率放大。
图11所示为4069的引脚分布图及I/O电平逻辑图。
图114069引脚图及I/O电平逻辑图
主板寻迹电路如图12所示。
74HC245是带有使能功能的八位双向总线驱动器,这种八位总线收发器是为数据总线间时行异步两路通信而设计的。
采用控制功能可以尽量减少外部定时电路的要求。
同时,该电路可以将数据从A总线传送到B总线,也可以将数据从B总线传送到A总线,具体传送方向要看方向控制(DIR)输入的逻辑电平而决定,可以使用使能输入来禁止这种电路,使总线之间能有效地隔离。
图3-13中DB0-DB7接74HC573锁存器(图13)和单片机P0.0-P0.7口。
图12主板寻迹电路
图1374HC573锁存器电路图
4软件设计
软件设计是本次课题的重点之一,也是智能机器车能够现实智能运作的核心所在。
软件设计能够把从光敏电阻传感器上收集到的信号数据输入89S52单片机进行处理,并产生相应的反应动作,控制电机的运作,从面实现智能机器车的智能化运作。
4.1寻迹模块编程思路框图
4.2源程序
该程序实现的是智能机器车的自动寻迹功能:
MAIN.C:
#include"main.h"
voiddelay(uintn)
{
while(n)
n--;
}
voidlight_control(ucharop)//转向灯控制子程序
{
P1|=0X04;
P0=op;
P1&=0XFB;
}
voidcontrol(ucharn,ucharstate,ucharlight)
{
uchari;
light_control(light);//转向指示灯
P2=state;//行使方向改变
for(i=n;i>0;i--)
{delay(2000);}
P2=state5;
delay(1000);
light_control(light_off);//关闭
P2=state1;
delay(2000);
}
/*********************************
光敏电阻分布接口
车身从左到右的应的IO为p03,p04,p05,p06,p07;
*********************************/
voidscanf_obj(void)//寻迹和测障碍物程序
{
uchartemp=0,temp1=0,temp3=0;
cs_245=0;
temp1=P2;
temp=P0;
cs_245=1;
if((temp&0x70)!
=0x70)
{
if((temp&0x30)==0x30)
{control(1,state3,left_light);}//左外边检测到黑线,左转
elseif((temp&0x60)==0x60)
{control(1,state2,right_light);}//右外边检测到黑线,右转
elseif((temp&0x08)==0x08)
{control(2,state3,left_light);}//左内边检测到黑线,左转
elseif((temp&0x80)==0x80)
{control(2,state2,right_light);}//右内边检测到黑线,右转
}
P2=temp1;
}
main()
{
delay(40000);
P2&=0x0f;
light_control(light_off);
control(3,state1,light_off);
/*
LCMInit();//LCM初始化
DisplayListChar(0,0,14,Product,true);
DisplayListChar(0,1,15,webcom,false);
delay(50000);
WriteCommandLCM(0x01,1);//显示清屏
delay(100);
DisplayListChar(0,0,14,talk1,false);
DisplayListChar(0,1,12,talk2,false);
*/
while
(1)
{
P2=state1;
delay(1000);
scanf_obj();
if(!
run)
break;
}
}
LCD1602.C:
#include
sbitLCM_RS=P1^5;//定义引脚
sbitLCM_RW=P1^6;
sbitLCM_E=P1^7;
#defineLCM_DataP0
#defineBusy0x80//用于检测LCM状态字中的Busy标识
#defineucharunsignedchar
#definetrue1
#definefalse0
voidDelay5Ms(void);
voidDelay400Ms(void);
//读状态
unsignedcharReadStatusLCM(void)
{
LCM_Data=0xFF;
LCM_RS=0;
LCM_RW=1;
LCM_E=0;
LCM_E=0;
LCM_E=1;
while(LCM_Data&Busy);//检测忙信号
return(LCM_Data);
}
//写数据
voidWriteDataLCM(unsignedcharWDLCM)
{
ReadStatusLCM();//检测忙
LCM_Data=WDLCM;
LCM_RS=1;
LCM_RW=0;
LCM_E=0;//若晶振速度太高可以在这后加小的延时
LCM_E=0;//延时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 机器 功能 开发 自动