首页 第7讲第六章--机器人的距离检测概要

第7讲第六章--机器人的距离检测概要

举报
开通vip

第7讲第六章--机器人的距离检测概要本讲摘要1.用IRLED/探测电路检测距离(定时/计数器的使用)2.测试扫描频率3.尾随小车4.条纹带跟踪DEPUSH*第一页,共32页。用IRLED/探测电路检测距离用红外传感器探测道路探测灵敏度与频率关系图DEPUSH*第二页,共32页。定时/计数器以前所用延时方法:1.for()函数2._nop_()函数更精确延时:定时/计数器AT89S52的定时/计数器可以分为定时器模式和计数器模式。这两种模式没有本质上的区别,均使用二进制的加一计数:当计数器的值计满回零时能自动产生中断的请求,以此来实现定时或者计数功能。...

第7讲第六章--机器人的距离检测概要
本讲摘要1.用IRLED/探测电路检测距离(定时/计数器的使用)2.测试扫描频率3.尾随小车4.条纹带跟踪DEPUSH*第一页,共32页。用IRLED/探测电路检测距离用红外传感器探测道路探测灵敏度与频率关系图DEPUSH*第二页,共32页。定时/计数器以前所用延时 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 :1.for()函数2._nop_()函数更精确延时:定时/计数器AT89S52的定时/计数器可以分为定时器模式和计数器模式。这两种模式没有本质上的区别,均使用二进制的加一计数:当计数器的值计满回零时能自动产生中断的请求,以此来实现定时或者计数功能。它们的不同之处在于定时器使用单片机的时钟来计数,而计数器使用的是外部信号。DEPUSH*第三页,共32页。定时/计数器定时/计数器的控制,两个特殊功能寄存器——TCON和TMOD位符号描述TCON.7TF1定时器1溢出标志位。由硬件置位,由软件清除。TCON.6TR1定时器1运行控制位。由软件置或清除:置1为启动;置0为停止。TCON.5TF0定时器0溢出标志位。TCON.4TR0定时器0运行控制位。TCON.3IE1外部中断1边沿触发标志。TCON.2IT1外部中断1类型标志位。TCON.1IE0外部中断0边沿触发标志。TCON.0IT0外部中断0类型标志位。TCON控制寄存器定时器控制寄存器,可进行位操作,低四位与定时器无关。DEPUSH*第四页,共32页。定时/计数器位名字定时器描述7GATE1门控制。当被置为1时,只有为高电平时,定时器才开始工作。61定时/计数器选择位:1=计数器;0=定时器5M11模式位1(见下 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf )4M01模式位03GATE0定时器0的门控制位20定时器0的定时/计数选择位1M10定时器0的模式位10M00定时器0的模式位0TMOD模式寄存器定时器模式寄存器,不能进行位操作,只能通过字节传送指令来设定各个状态。DEPUSH*第五页,共32页。定时/计数器M1M0模式000011102113TMOD模式寄存器每个定时/计数器都有一个16位的寄存器Tn(n=0或1)来控制计数长度,由高8位THn和低8位TLn组成并用来设初值。共四种定时模式。DEPUSH*第六页,共32页。定时/计数器13位定时器模式(模式0)定时器高字节(THx)与低字节(TLx)的低5位共同构成1个13位定时器。低字节高3位未使用。计数值随时钟脉冲增加,当计数值从FFH溢出回到00H时,TFx被置1。16位定时器模式(模式1)除工作在16位以外,与模式0没有什么不同。DEPUSH*第七页,共32页。定时/计数器8位自动重载模式(模式2)低字节(TLx)作为1个8位定时器工作,高字节用于保存重载数。当计数值超过FFH回零时,不仅TFx被置1,同时THx载入TLx,定时器重新开始工作,如此循环。DEPUSH*第八页,共32页。定时/计数器分立定时器模式(模式3)定时器1在该模式下不工作。DEPUSH*第九页,共32页。定时/计数器定时器初值计算定时/计数值是在设置初值的基本上加法计数。设程序要运行的数值为CC,初值为TC,计数最大值为2n,则:TC=2n-CC例如:定时1ms要运行的数值CC=1ms/1us=1000,在模式0下最大计数值2n=213=8192则定时器初值TC=2n-CC=7192=0x1C18,即THx=0x1C,TLx=0x18DEPUSH*第十页,共32页。定时/计数器例程:TimeApplication.c#include#includevoidinitial(void);//子函数声明voidmain(void){initial();//调用定时/计数器初始化函数while(1);//等待中断}/*==初始化定时/计数器函数==*/voidinitial(void){IE=0x82;//开总中断EA,允许定时器0中断ET0TCON=0x00;//停止定时器,清除标志TMOD=0x02;//工作在定时器0的模式2中TH0=0x38;//设置重载值TL0=0x38;//设置定时器初值TR0=1;//启动定时器0}//中断服务程序voidTIMER(void)interrupt1//中断服务程序,1是定时器0的中断号{P1_0=~P1_0;//P1_0的值取反}DEPUSH*第十一页,共32页。定时/计数器#include#includeAT89X52.H对一些标识符进行了声明,如P1_0、IE、TCON等stdio.h对常用的一些IO函数进行了声明,如printf()等头文件uart.h已包含了这些头文件。voidinitial(void);//子函数声明voidmain(void){initial();//调用定时/计数器初始化函数while(1);//等待中断}函数定义若在main之后,则在main之前应加上该函数的声明。DEPUSH*第十二页,共32页。定时/计数器/*==初始化定时/计数器函数==*/voidinitial(void){IE=0x82;TCON=0x00;TMOD=0x02;TH0=0x38;TL0=0x38;TR0=1;}“/*”和“*/”必须成对使用,注释在它们之间的内容。“//”仅仅对它所在的一行起注释作用。TCON=0x00;停止定时器,并清除了中断标志TMOD=0x02;M1=0且M0=0,定时器0选择模式2TH0=0x38;TL0=0x38;设置计数初值和重载值。TR0=1;启动定时器0。DEPUSH*第十三页,共32页。定时/计数器中断中断即发生了某种情况(事件),使得CPU暂时中止当前程序的执行,转去执行相应的处理程序。中断驱使系统能够在同一时间处理许多任务。中断与子程序有些相似:CPU执行另一个程序——子程序——然后返回主程序。单片机AT89S52有5个中断源:2个外部中断源;2个定时器中断;1个串口中断。每个中断源可以单独允许或禁止,通过修改可位寻址的专用寄存器IE(允许中断寄存器)实现DEPUSH*第十四页,共32页。定时/计数器位符号描述(1=使能,0=禁止)IE.7EA全局允许/禁止IE.6未定义IE.5ET2允许定时器2中断IE.4ES允许串口中断IE.3ET1允许定时器1中断IE.2EX1允许外部中断1IE.1ET0允许定时器0中断IE.0EX0允许外部中断0IE(中断使用)寄存器简表IE=0x82;EA=1且ET0=1,打开了全局和定时器0的中断IEEAET00x8210000010DEPUSH*第十五页,共32页。定时/计数器中断优先级AT89S52的中断分为2级,高和低。允许拥有高优先级的中断源中断系统正在处理的低优先级的中断源。中断的优先级由高到低依次为:外部中断0,定时器0,外部中断1,定时器1,串口中断,定时器2中断。DEPUSH*第十六页,共32页。定时/计数器中断函数中断函数是通过按规定语法格式定义的一个函数,语法格式如下:返回值函数名([参数])interruptm[usingn]{……}m:中断号。定时器0的中中断号为1;n:寄存器组。在多中断的情况下,使用该参数进行任务切换。不用该参数,则默认使用寄存器组0,即n=0。voidTIMER(void)interrupt1{P1_0=~P1_0;//P1_0的值取反}DEPUSH*第十七页,共32页。测试扫描频率探测灵敏度与频率关系图38500Hz灵敏度最高,越往两边,灵敏度越差频率越低,探测距离越远DEPUSH*第十八页,共32页。测试扫描频率例程:TestLeftFrequencySweep.cintmain(void){uart_Init();timer_init();printf("ProgamRunning!\n");printf("FREQENCYETECTED\n");while(1){Get_lr_Distances();printf("distanceLeft=%d\n",leftdistance);printf("-----------------\n");delay_nms(3000);}}DEPUSH*第十九页,共32页。测试扫描频率voidtimer_init(void){IE=0x82;//开总中断EA,允许定时器0中断ET0TMOD|=0X01;//定时器0工作在模式1:16位定时器模式}TMODM1M0|0x0101IEEAET00x8210000010IE=0x82TMOD|=0X01DEPUSH*第二十页,共32页。测试扫描频率voidGet_lr_Distances(){unsignedintcount;leftdistance=0;//初始化左边的距离for(count=0;count<5;count++){FreqOut(frequency[count]);//发射频率irDetectLeft=LeftIR;printf("irDetectLeft=%d",irDetectLeft);if(irDetectLeft==1)leftdistance++;}}unsignedintfrequency[5]={33050,35700,38460,40400,42370};假设物体在区域3,则前3个频率均无法探测到物体,即irDectLeft为1,所以leftdistance为3DEPUSH*第二十一页,共32页。测试扫描频率voidFreqOut(unsignedintFreq){time=256-(50000/Freq);//根据频率计算初值TH0=0XFF;//高八位设FFTL0=time;//低八位根据公式计算TR0=1;//启动定时器delay_nus(800);//延时TR0=0;//停止定时器}实际上,time值并未占满低八位,即高八位未用到,所以你可以这样简化计算:高八位设0xFF,低八位根据n=8计算。DEPUSH*第二十二页,共32页。测试扫描频率voidTimer0_Interrupt(void)interrupt1//定时器中断{LeftLaunch=~LeftLaunch;//取反,高低电平转换TH0=0xFF;//重新设值TL0=time;}模式1不具备自动重载功能,所以要重新设值。DEPUSH*第二十三页,共32页。测试扫描频率如果检测结果irDetectLeft为1,即没有发现物体,则距离leftdistance加1。循环描述,当5个频率描完后,可根据leftdistance的值来判断物体离机器人的大致距离。DEPUSH*第二十四页,共32页。尾随小车引导车尾随车如果尾随车落在后面,它必须能察觉并加速。如果尾随车距离引导车太近,它也要能察觉并减速。如果当前距离正好合适,它会等待直到测量距离变远或变近DEPUSH*第二十五页,共32页。尾随小车控制系统当一个机器被 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 用来自动维持某一数值,比如距离、压力或液位等,它一般都包含一个控制系统。这些系统有时由传感器和阀门组成,或者由传感器和电机组成。在机器人里面,由传感器和连续旋转电机组成。还必须有某些处理器可以接受传感器的测量结果并把它们转化为机械运动。必须对处理器编程来基于传感器的输入做出决定,从而控制机械输出。闭环控制和开环控制。DEPUSH*第二十六页,共32页。尾随小车右伺服电机比例控制方框图Rightservooutput=(Rightdistancesetpoint–Measuredrightdistance)*Kp+CenterpulsewidthDEPUSH*第二十七页,共32页。尾随小车左伺服电机比例控制方框图Leftservooutput=(Leftdistancesetpoint–Measuredleftdistance)*Kp+CenterpulsewidthDEPUSH*第二十八页,共32页。尾随小车例程:FollowingRobot.c声明常数#defineKpl-70#defineKpr70#defineSetPoint2#defineCenterPulse1500intmain(void){unsignedintpulseLeft,pulseRight;……while(1){Get_lr_Distances();pulseLeft=(SetPoint-leftdistance)*Kpl+CenterPulse;pulseRight=(SetPoint-rightdistance)*Kpr+CenterPulse;Send_Pulse(pulseLeft,pulseRight);}}voidSend_Pulse(unsignedintpulseLeft,unsignedintpulseRight){P1_1=1;delay_nus(pulseLeft);P1_1=0;P1_0=1;delay_nus(pulseRight);P1_0=0;delay_nms(18);}DEPUSH*第二十九页,共32页。跟踪条纹带红外探测器朝下扫描条纹带用1k电阻代替与IRLED串联的470Ω电阻,使机器人更加近视;使白底板读数为0或1;使黑色条纹区域读数为4或5;DEPUSH*第三十页,共32页。跟踪条纹带跟踪策略与FollowingRobot.c的表现相反:当所测得距离比SetPoint大时,则应后退;当所测得距离比SetPoint小时,则应前进。SetPoint=3将Kpl由-70改为70将Kpr由70改为-70白底板距离为0或1黑条纹距离为4或5DEPUSH*第三十一页,共32页。本章小结●用红外电路检测距离时定时/计数器的使用定时/计数器寄存器:TMOD模式寄存器、TCON控制寄存器定时/计数器四种工作模式定时器初值计算中断●测试扫描频率●尾随小车比例控制●条纹带跟踪DEPUSH*第三十二页,共32页。
本文档为【第7讲第六章--机器人的距离检测概要】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_997338
暂无简介~
格式:ppt
大小:1MB
软件:PowerPoint
页数:32
分类:工学
上传时间:2019-11-18
浏览量:6