六足爬虫机器人设计_第1页
六足爬虫机器人设计_第2页
六足爬虫机器人设计_第3页
六足爬虫机器人设计_第4页
六足爬虫机器人设计_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PAGE PAGE 43六足爬虫机器人设计设计人:李海鹰鹰日期:20044年9月300日目 录TOC o h z HYPERLINK l _Toc84859255 前言 PAGEREF _Toc84859255 h 2 HYPERLINK l _Toc84859256 (一)、机器人人的大脑 PAGEREF _Toc84859256 h 2 HYPERLINK l _Toc84859257 (二)、机器人人的眼睛耳朵朵 PAGEREF _Toc84859257 h 2 HYPERLINK l _Toc84859258 (三)、机器人人的腿驱动器与与驱动轮 PAGEREF _Toc8485925

2、8 h 3 HYPERLINK l _Toc84859259 (四)、机器人人的手臂机械传动专专制 PAGEREF _Toc84859259 h 4 HYPERLINK l _Toc84859260 (五)、机器人人的心脏电池 PAGEREF _Toc84859260 h 4 HYPERLINK l _Toc84859261 一、AT89SS51单片机机简介 PAGEREF _Toc84859261 h 5 HYPERLINK l _Toc84859262 (一)、AT889S51主主要功能列举举如下: PAGEREF _Toc84859262 h 5 HYPERLINK l _Toc8485

3、9263 (二)、AT889S51各各引脚功能介介绍: PAGEREF _Toc84859263 h 5 HYPERLINK l _Toc84859264 二、控制系统电电路图 PAGEREF _Toc84859264 h 7 HYPERLINK l _Toc84859265 三、微型伺服马马达原理与控控制 PAGEREF _Toc84859265 h 8 HYPERLINK l _Toc84859266 (一)、微型伺伺服马达内部部结构 PAGEREF _Toc84859266 h 8 HYPERLINK l _Toc84859267 (二)、微行伺伺服马达的工工作原理 PAGEREF _T

4、oc84859267 h 8 HYPERLINK l _Toc84859268 (三)、伺服马马达的控制 PAGEREF _Toc84859268 h 9 HYPERLINK l _Toc84859269 (四)、选用的的伺服马达 PAGEREF _Toc84859269 h 9 HYPERLINK l _Toc84859270 四、红外遥控 PAGEREF _Toc84859270 h 11 HYPERLINK l _Toc84859271 (一)、 红外外遥控系统 PAGEREF _Toc84859271 h 11 HYPERLINK l _Toc84859272 (二)、 遥控控发射器及

5、其其编码 PAGEREF _Toc84859272 h 11 HYPERLINK l _Toc84859273 (三)、红外接接收模块 PAGEREF _Toc84859273 h 11 HYPERLINK l _Toc84859274 (四)、红外解解码程序设计计 PAGEREF _Toc84859274 h 11 HYPERLINK l _Toc84859275 五、控制程序 PAGEREF _Toc84859275 h 12 HYPERLINK l _Toc84859276 六、六足爬虫机机器人结构设设计图 PAGEREF _Toc84859276 h 18前言今年年初,学校校为参加中央

6、央电视台举办办的第三届全全国大学生机机器人电视大大赛,组建了了机器人制作作小组。我积积极参加,有有幸成为了其其中的一员。因因为我们以前前没有参加过过类似的比赛赛,也没有制制作机器人的的经验。可以以说我们什么么都是从零开开始,边学习习边制作。通通过这半年多多的制作过程程,我从中学学到了很多书书本上学不到到的东西,也也得到了很好好的学习与锻锻炼的机会。最初,我们组建建了机器人制制作实验室。到到五金机电市市场购买了必必要的工具和和一些制作材材料。然后开开始制作实验验机器人的身身体框架。实验机器人的框框架我们是使使用轻型万能能角钢制作的的,这种角钢钢的两侧都有有间隔均匀的的孔槽,可以以很方便的用用螺栓

7、进行连连接。用不同同长度的角钢钢组合后,就就可以得到不不同大小的立立方体和长方方体及多边形形。机器人身身体的框架就就搭建好了。在在它的上面将将装上:机器器人的大脑可编程控控制器、机器器人的眼睛耳耳朵传感器、机机器人的腿驱动轮、机机器人的手臂臂机械传动动专制、机器器人的心脏电池之所以使使用轻型万能能角钢,主要要是因为是在在制作试验机机型,而轻型型万能角钢安安装拆卸方便便和便于修改改长度,调整整设计。实验机器人定型型后,就照其其尺寸用不锈锈钢方管焊接接制作机器人人的身体。再再在上面进行行打孔等工作作,后就可以以将机器人的的其它部分安安装上去。这这样一个机器器人就制作好好了。下面我介绍一下下机器人的

8、基基本组成部分分:(一)、机器人人的大脑它可以有很多叫叫法,可以叫叫做:可编程程控制器、微微控制器,微微处理器,处处理器或者计计算器等,不不过这都不要要紧,通常微微处理器是指指一块芯片,而而其它的是一一整套控制器器,包括微处处理器和一些些别的元件。任任何一个机器器人大脑就必必须要有这块块芯片,不然然就称不上机机器人了。在在选择微控制制器的时候,主主要要考虑:处理器的速速度,要实现现的功能,RROM和RAAM的大小,II/O端口类类型和数量,编编程语言以及及功耗等。其主要类型有:单片机、PPLC、工控控机、PC机机等。单有这些硬件是是不够的,机机器人的大脑脑还无法运行行。只有在程程序的控制下下,

9、它才能按按我们的要求求去工作。可可以说程序就就是机器人的的灵魂了。而而程序是由编编程语言所编编写的。编程语言是一个个控制器能够够接受的语言言类型,一般般有C语言,汇汇编语言或者者basicc语言等,这这些通常能被被高级一点的的控制器直接接执行,因为为在高级控制制器里面内置置了编译器能能够直接把一一些高级语言言翻译成机器器码。微处理理器将执行这这些机器码,并并对机器人进进行控制。(二)、机器人人的眼睛耳朵朵传感器,是机器器人的感觉器器官,是机器器人和现实世世界之间的纽纽带,使机器器人能感知周周围的环境情情况。其主要要有:光电传传感器、红外外传感器、力力传感器、超超声波传感器器、位置和姿姿态传感器

10、等等等。下面我我将就几种常常用传感器进进行介绍:1、光电传感器器:光电传感感器的原理是是光电效应。其其主要用途是是颜色识别(机机器人就可以以沿着地上的的线条行进了了)和光电编编码等。2、红外传感器器:红外传感感器是用来测测量距离和感感知周围情况况的。因为发发射出去的红红外信号在一一定距离内遇遇到物体就会会反射回来。通通过发送红外外线信号,并并接收反射回回来的信号,机机器人就可以以感知前方或或身体周围的的情况,做出出相应的调整整(如:倒退退或绕行等)。3、力传感器:力传感器是是用来检测碰碰撞或者接触触信号的,比比如机械手的的应用,当你你放一个东西西到机械手的的时候,机械械手自动抓住住它,它就需需

11、要力传感器器检测东西抓抓的紧不紧。典典型的力传感感器是微动开开关和压敏传传感器。微动动开关其实就就是一个小开开关,通过调调节开关上的的杠杆长短,能能够调节触动动开关的力的的大小。用来来做碰撞检测测这是最好不不过了。但是是这种传感器器必须事先确确定好力的阀阀值,也就是是说只能实现现硬件控制(开开还控制)。而而压敏传感器器是能根据受受力大小,自自动调节输出出电压或者电电流,从而可可以实现软件件控制(闭环环控制)。4、超声波传感感器:超声波波传感器是从从蝙蝠那里学学来的,通过过把发射出的的信号与接收收到的信号进进行对比,就就可以测定周周围是否有障障碍物,及障障碍物的距离离,也属于距距离探测传感感器,

12、能提供供交远的探测测范围,而且且还能提供在在一个范围内内的探测而不不是一条线的的探测。5、位置和姿态态传感器:机机器人在移动动或者动作的的时候必须时时时刻刻知道道自己的姿态态动作,否则则就会产生控控制中的一个个开环问题,没没有反馈,无无法获知运动动是否正确。 位置传感器和姿态传感器就是用来解决这个问题的。常用的有光电编码器,由于机器人的执行机构一般是电机驱动,通过计算电机转的圈数,可以得出电机带动部件的大致位置,编码器就是这样一种传感器,它一般和电机轴或者转动部件直接连接,电机或者转动部件转了多少圈或者角度能够通过编码器读出,控制软件再根据读出数据进行位置估计计算。还有一种是陀螺仪,这是利用陀

13、螺原理制作的传感器,主要可以测得移动机器人的移动加速度,转过的角度等信息。(三)、机器人人的腿驱动器与与驱动轮驱动器就是驱动动机器人的动动的部件。最最常用的是电电机了。当然然还有液压,气气动等别的驱驱动方式。一一个机器人最最主要的控制制量就是控制制机器人的移移动,无论是是自身的移动动还是手臂等等关节的移动动,所以机器器人驱动器中中最根本和本本质的问题就就是控制电机机,控制电机机转的圈数,就就可以控制机机器人移动的的距离和方向向,机械手臂臂的弯曲的程程度或者移动动的距离等。所所以,第一个个要解决的问问题就是如何何让电机能根根据自己的意意图转动。一一般来说,有有专门的控制制卡和控制芯芯片来进行控控

14、制的。有了了这些控制卡卡和芯片,我我们所要做的的就是把微控控制器和这些些连接起来,然然后就可以用用程序来控制制电机了。第第二个问题是是控制电机的的速度,在机机器人上的实实际表现就是是机器人或者者手臂的实际际运动速度了了,机器人走走的快慢全靠靠电机的转速速,这样,我我们就要求控控制卡对电机机有速度控制制。电机目前前常用的有两两种,步进电电机和直流电电机。下面我我将就这两种种电机进行介介绍:1、直流电机:这是最最普普通的电机了了。直流电机机最大的问题题是你没法精精确控制电机机转的圈数,也也就前面所说说的位置控制制。你必须加加上一个编码码盘,来进行行反馈,来获获得实际转的的圈数。但是是直流电机的的速

15、度控制相相对就比较简简单,用一种种叫PWM(脉脉宽调速)的的调速方法可可以很轻松的的调节电机速速度。现在也也有很多控制制芯片带调速速功能的。选选购时要考虑虑的参数是电电机的输出力力矩,电机的的功率,电机机的最高转速速。 2、步步进电机:看看名字就知道道了,它是一一步一步前进进的。也就是是说,它可以以一个角度一一个角度旋转转,不象直流流电机,你可可以很轻松的的调节步进电电机的转角位位置,如果你你发一个转110圈的指令令,步进电机机就不会转111圈,但是是如果是直流流电机,由于于惯性作用,它它可能转111圈半。步进进电机的调速速是通过控制制电机的频率率来获得的。一一般控制信号号频率越高,电电机转的

16、越快快,频率越低低,转的越慢慢。选购时要要考虑的参数数是电机的输输出力矩,电电机的功率,每每个脉冲电机机的最小转角角。 还有就就是关于输出出的动力,要要说明一下:一般情况下下,电机都没没法直接带动动轮子或者手手臂,因为速速度过高力矩矩不够大,所所以我们需要要加上一个减减速箱来增加加电机的输出出力矩,但是是代价是电机机速度的减小小,比如一个个1:2500的齿轮箱,会会让你电机的的输出力矩增增大250倍倍,但是速度度只有原来的的1/2500了。首先计计算出机器人人所需要的速速度与力矩大大小,然后根根据速度与力力矩去选择电电机与减速器器。(四)、机器人人的手臂机械传动专专制机械传动专制就就是,由电机

17、机驱动的一些些杆件和机构构(如:凸轮轮机构、螺杆杆机构等),用用以实现机械械手臂的上升升、下降、伸伸缩、弯曲等等动作。通常常运用的机构构有四杆机构构、凸轮机构构、螺杆机构构、摇臂等。(五)、机器人人的心脏电池电池为机器人的的控制系统与与驱动系统提提供能源供应应。主要有:电瓶及可充充电电池、电电池。前面介绍了机器器人的一些基基本知识,但但这是远远不不够的。机器器人学科,是是在多学科基基础上发展起起来的综合性性技术。机器器人技术涉及及机械、电子子、计算机、语语言学和人工工智能等许多多学科。现在在机器人已经经应用在人类类社会生活的的各个领域,发发挥着越来越越重要的影响响。我利用暑假的时时间设计了一一

18、个六足爬虫虫机器人,用用日立(HIITACHII)的录像机机遥控器来对对它进行控制制。基本原理理是:遥控器器发出红外学学号,机器人人通过红外接接收器接收倒倒红外信号后后,对信号进进行解码,并并以存储的代代码进行比较较,确定指令令的含义,后后可以实现前前进、后退、左左转、右转及及发声等功能能。控制系统统我使用的是是AT89SS51单片机机,编程语言言使用的是汇汇编语言,动动力系统使用用的是微型伺伺服马达,能能源系统使用用的是9V电电池。下面我我将就具体设设计进行介绍绍。一、AT89SS51单片机机简介AT89S511 为 ATTMEL 所所生产的可电电气烧录清洗洗的 80551 相容单单芯片,其

19、内内部程序代码码容量为4KKB(一)、AT889S51主主要功能列举举如下:1、为一般控制制应用的 88 位单芯片片2、晶片内部具具时钟振荡器器(传统最高高工作频率可可至 12MMHz)3、内部程式存存储器(ROOM)为 44KB4、内部数据存存储器(RAAM)为 1128B5、外部程序存存储器可扩充充至 64KKB6、外部数据存存储器可扩充充至 64KKB7、32 条双双向输入输出出线,且每条条均可以单独独做 I/OO 的控制8、5 个中断断向量源9、2 组独立立的 16 位定时器10、1 个全全多工串行通通信端口11、87511 及 87752 单芯芯片具有数据据保密的功能能12、单芯片提

20、提供位逻辑运运算指令(二)、AT889S51各各引脚功能介介绍:VCC:AT89S511 电源正端端输入,接+5V。VSS:电源地端。XTAL1:单芯片系统时钟钟的反相放大大器输入端。XTAL2:系统时钟的反相相放大器输出出端,一般在在设计上只要要在 XTAAL1 和 XTAL22 上接上一一只石英振荡荡晶体系统就就可以动作了了,此外可以以在两引脚与与地之间加入入一 20PPF 的小电电容,可以使使系统更稳定定,避免噪声声干扰而死机机。RESET:AT89S511的重置引脚脚,高电平动动作,当要对对晶片重置时时,只要对此此引脚电平提提升至高电平平并保持两个个机器周期以以上的时间,AAT89S5

21、51便能完成成系统重置的的各项动作,使使得内部特殊殊功能寄存器器之内容均被被设成已知状状态,并且至至地址00000H处开始始读入程序代代码而执行程程序。EA/Vpp:EA为英文文Exteernal Accesss的缩写写,表示存取取外部程序代代码之意,低低电平动作,也也就是说当此此引脚接低电电平后,系统统会取用外部部的程序代码码(存于外部部EPROMM中)来执行行程序。因此此在80311及80322中,EA引引脚必须接低低电平,因为为其内部无程程序存储器空空间。如果是是使用 87751 内部部程序空间时时,此引脚要要接成高电平平。此外,在在将程序代码码烧录至87751内部EEPROM时时,可以

22、利用用此引脚来输输入21V的的烧录高压(VVpp)。ALE/PROOG:ALE是英文Addreess Laatch EEnablee的缩写,表表示地址锁存存器启用信号号。AT899S51可以以利用这支引引脚来触发外外部的8位锁锁存器(如774LS3773),将端端口0的地址址总线(A00A7)锁锁进锁存器中中,因为ATT89S511是以多工的的方式送出地地址及数据。平平时在程序执执行时ALEE引脚的输出出频率约是系系统工作频率率的1/6,因因此可以用来来驱动其他周周边晶片的时时基输入。此此外在烧录88751程序序代码时,此此引脚会被当当成程序规划划的特殊功能能来使用。PSEN:此为Proggr

23、am SStore Enablle的缩写写,其意为程程序储存启用用,当80551被设成为为读取外部程程序代码工作作模式时(EEA=0),会会送出此信号号以便取得程程序代码,通通常这支脚是是接到EPRROM的OEE脚。AT889S51可可以利用PSSEN及RDD引脚分别启启用存在外部部的RAM与与EPROMM,使得数据据存储器与程程序存储器可可以合并在一一起而共用664K的定址址范围。PORT0(PP0.0PP0.7):端口0是一个88位宽的开路路汲极(Oppen Drrain)双双向输出入端端口,共有88个位,P00.0表示位位0,P0.1表示位11,依此类推推。其他三个个I/O端口口(P1、

24、PP2、P3)则则不具有此电电路组态,而而是内部有一一提升电路,PP0在当做II/O用时可可以推动8个个LS的TTTL负载。如如果当EA引引脚为低电平平时(即取用用外部程序代代码或数据存存储器),PP0就以多工工方式提供地地址总线(AA0A7)及及数据总线(DD0D7)。设设计者必须外外加一锁存器器将端口0送送出的地址栓栓锁住成为AA0A7,再再配合端口22所送出的AA8A155合成一完整整的16位地地址总线,而而定址到644K的外部存存储器空间。PORT2(PP2.0PP2.7):端口2是具有内内部提升电路路的双向I/O端口,每每一个引脚可可以推动4个个LS的TTTL负载,若若将端口2的的输

25、出设为高高电平时,此此端口便能当当成输入端口口来使用。PP2除了当做做一般I/OO端口使用外外,若是在AAT89S551扩充外接接程序存储器器或数据存储储器时,也提提供地址总线线的高字节AA8A155,这个时候候P2便不能能当做I/OO来使用了。PORT1(PP1.0PP1.7):端口1也是具有有内部提升电电路的双向II/O端口,其其输出缓冲器器可以推动44个LS TTTL负载,同同样地若将端端口1的输出出设为高电平平,便是由此此端口来输入入数据。如果果是使用80052或是88032的话话,P1.00又当做定时时器2的外部部脉冲输入脚脚,而P1.1可以有TT2EX功能能,可以做外外部中断输入入

26、的触发脚位位。PORT3(PP3.0PP3.7):端口3也具有内内部提升电路路的双向I/O端口,其其输出缓冲器器可以推动44个TTL负负载,同时还还多工具有其其他的额外特特殊功能,包包括串行通信信、外部中断断控制、计时时计数控制及及外部数据存存储器内容的的读取或写入入控制等功能能。其引脚分配如下下:P3.0:RXXD,串行通通信输入。P3.1:TXXD,串行通通信输出。P3.2:INNT0,外部部中断0输入入。P3.3:INNT1,外部部中断1输入入。P3.4:T00,计时计数数器0输入。P3.5:T11,计时计数数器1输入。P3.6:WRR:外部数据据存储器的写写入信号。P3.7:RDD,外

27、部数据据存储器的读读取信号。二、控制系统电电路图控制系统电路图图三、微型伺服马马达原理与控控制(一)、微型伺伺服马达内部部结构一个微型伺服马马达内部包括括了一个小型型直流马达;一组变速齿齿轮组;一个个反馈可调电电位器;及一一块电子控制制板。其中,高高速转动的直直流马达提供供了原始动力力,带动变速速(减速)齿齿轮组,使之之产生高扭力力的输出,齿齿轮组的变速速比愈大,伺伺服马达的输输出扭力也愈愈大,也就是是说越能承受受更大的重量量,但转动的的速度也愈低低。微型伺服马达内部结构图微型伺服马达内部结构图(二)、微行伺伺服马达的工工作原理一个微型伺服马马达是一个典典型闭环反馈馈系统,其原原理可由下图图表

28、示:微行伺服马达工作原理图微行伺服马达工作原理图减速齿轮组由马马达驱动,其其终端(输出出端)带动一一个线性的比比例电位器作作位置检测,该该电位器把转转角坐标转换换为一比例电电压反馈给控控制线路板,控控制线路板将将其与输入的的控制脉冲信信号比较,产产生纠正脉冲冲,并驱动马马达正向或反反向地转动,使使齿轮组的输输出位置与期期望值相符,令令纠正脉冲趋趋于为0,从而达到到使伺服马达达精确定位的的目的。(三)、伺服马马达的控制标准的微型伺服服马达有三条条控制线,分分别为:电源源、地及控制制。电源线与与地线用于提提供内部的直直流马达及控控制线路所需需的能源,电电压通常介于于4V6V之间,该该电源应尽可可能

29、与处理系系统的电源隔隔离(因为伺伺服马达会产产生噪音)。甚甚至小伺服马马达在重负载载时也会拉低低放大器的电电压,所以整整个系统的电电源供应的比比例必须合理理。输入一个周期性性的正向脉冲冲信号,这个个周期性脉冲冲信号的高电电平时间通常常在1ms2ms之间,而而低电平时间间应在5mss到20ms之间间,并不很严严格,下表表表示出一个典典型的20mms周期性脉脉冲的正脉冲冲宽度与微型型伺服马达的的输出臂位置置的关系:(四)、选用的的伺服马达我选用的伺服马马达为TowwPro的,型型号为SG3303。其主主要技术参数数如下:转速:0.233秒60度度。力矩:3.2kkgcm。尺寸:40.44mm19.

30、8mmm36mm。重量:37.22g。5V电源供电。控制周期脉冲宽宽度为20mms。送出不不同的正脉冲冲宽度是,就就可以得到不不同的控制效效果。控制正正脉冲宽度如如下:正脉冲宽度为00.3ms时时,伺服马达达反转。正脉冲宽度为22.5ms时时,伺服马达达正转。正脉冲宽度为11.4ms时时,伺服马达达回到中点。四、红外遥控家中许多的电器器产品都有遥遥控的功能,例例如电视机、录录像机、VCCD、空调等等家电产品,它它们都是以红红外遥控的方方式进行遥控控。(一)、 红外外遥控系统通用红外遥控系系统由发射和和接收两大部部分组成,应应用编/解码码专用集成电电路芯片来进进行控制操作作,如图1所所示。发射部

31、部分包括键盘盘矩阵、编码码调制、LEED红外发送送器;接收部部分包括光、电电转换放大器器、解调、解解码电路。(二)、 遥控控发射器及其其编码遥控发射器专用用芯片很多,根根据编码格式式可以分成两两大类,这里里我们以运用用比较广泛,解解码比较容易易的一类来加加以说明,现现以日本NEEC的uPDD6121GG组成发射电电路为例说明明编码原理。当当发射器按键键按下后,即即有遥控码发发出,所按的的键不同遥控控编码也不同同。这种遥控控码具有以下下特征:采用脉宽调制的的串行码,以以脉宽为0.565mss、间隔0.56ms、周周期为1.1125ms的的组合表示二二进制的“00”;以脉宽宽为0.5665ms、间

32、间隔1.6885ms、周周期为2.225ms的组组合表示二进进制的“1”,其其波形如图22所示。上述“0”和“11”组成的332位二进制制码经38kkHz的载频频进行二次调调制以提高发发射效率,达达到降低电源源功耗的目的的。然后再通通过红外发射射二极管产生生红外线向空空间发射。遥控编码是连续续的32位二二进制码组,其其中前16位位为用户识别别码,能区别别不同的电器器设备,防止止不同机种遥遥控码互相干干扰。该芯片片的用户识别别码固定为十十六进制011H;后166位为8位操操作码(功能能码)及其反反码。UPDD6121GG最多额1228种不同组组合的编码,如如图3所示。遥控器在按键按按下后,周期期

33、性地发出同同一种32位位二进制码,周周期约为1008ms。一一组码本身的的持续时间随随它包含的二二进制“0”和和“1”的个个数不同而不不同,大约在在45633ms之间,图图4为发射波波形图。(三)、红外接接收模块左图为一常用的的红外接收模模块。其内部部含有高频的的滤波电路,专专门用来滤除除红外线合成成信号的载波波信号(388KH),并并送出接收到到的信号。当当红外线合成成信号进入红红外接收模块块,在其输出出端便可以得得到原先发射射器发出的数数字编码,只只要经过单片片机解码程序序进行解码,便便可以得知按按下了哪一个个按键,而做做出相应的控控制处理,完完成红外遥控控的动作。红外接收模块红外接收模块

34、(四)、红外解解码程序设计计红外解码程序主主要工作为等等待红外线信信号出现,并并跳过引导信信号,开始收收集连续322位的表面数数据,存入内内存的连续空空间。位信号号解码的原则则是:以判断断各个位的波波宽信号来决决定高低信号号。位解码原原理如下:解码为0:低电电平的宽度00.56mss+高电平的的宽度0.556ms。解码为1:低电电平的宽度11.68mss+高电平的的宽度0.556ms。程序中必须设计计一精确的00.1ms延延时时间作为为基础时间,以以计数实际的的波形宽度,若若读值为5表表示波形宽度度为0.5mms,若读值值为16表示示波形宽度为为1.6mss,以此类推推。高电平的的宽度1.11

35、2ms为固固定,因此可可以直接判断断低电平的宽宽度的计数值值5或时166,来确定编编码为0或是是1。程序中中可以减法指指令SUBBB来完成判断断,指令“SUBB A,R22”中若R2为为计数值,AA寄存器设为为8,就可如如下:当“8R2”有产生借位位,借位标志志C=1,表表示编码为11。当“8R2”无产生借位位,借位标志志C=0,表表示编码为00。将借位标志C经经过右移指令令“RRC A”转入A寄存存器中,再经经由R0寄存存器间接寻址址存入内存中中。详细解码程序请请参看“红外遥控爬爬虫机器人AASM程序”中的“红外解码子子程序”。五、控制程序; 红外遥控爬爬虫机器人AASM程序;HOMEEQQ

36、U 144 ;伺伺服马达回到到中点时间常常数BACKEQQU 3 ;伺服马达反反转时间常数数FOR EQU 25 ;伺服服马达正转时时间常数; ;遥控器按键116比较码码CODE_K11 EQUU 19HH ;机器器人前进比较较码CODE_K22 EQUU 18HH ;机器器人后退比较较码CODE_K33 EQUU 0AHH ;机器器人左转比较较码CODE_K44 EQUU 09HH ;机器器人右转比较较码CODE_K55 EQUU 0BHH ;机器器人回到中点点比较码CODE_K66 EQUU 14HH ;机器器人行走启动动进比较码; IRCOM EQU 30H ;红红外线信号解解码数据放置

37、置变量起始地地址COM EQUU 32HH ;比较第33字节变量; IRIN EEQU PP3.2 ;红外线IRR信号输入位位引脚定义WLEDEQQU P33.7 ;发发光二极管引引脚定义SPK EQU P3.44 ;压电电喇叭引脚定定义DJZ EQU P1.00 ;中间间伺服马达引引脚定义DJL EQU P1.11 ;左侧侧伺服马达引引脚定义DJR EQU P1.22 ;右侧侧伺服马达引引脚定义; ORG 00H ;程程序代码由地地址0开始执执行JMP BBEGIN ;进进入主程序; BEGIN:CLR DJJZ ;关关闭中间伺服服马达 CLR DJL ;关闭左左侧伺服马达达CLR DJJR

38、 ;关关闭右侧伺服服马达CLR SPPK ;关关闭压电喇叭叭 CALLL LEED_BL ;发光二二极管闪烁,表表示程序开始始执行 CALLL BZZ ;压电电喇叭发出嘀嘀的一声 CALLL GOO_HOMEE ;全部伺服马马达回到中点点 CALLL LEED_BL ;发光二二极管闪烁,表表示机器人准准备完毕 CALLL BZZ ;压电电喇叭发出嘀嘀的一声CALL QQD ;运行行行走启动子子程序,摆好好行走姿态SETB IIRIN ;红外外线信号IRR输入位设为为高电平,准准备接收红外外信号LOOP:MOV RR0,#IRRCOM ;设设置IR解码码起始地址CALL IR_INN ;进进行I

39、R解码码CALL OOP ;进行行解码比较,并并控制机器人人动作 JMMP LOOOP ;继续续循环执行; DELAY:MOV R6,#550 ;10mss延时子程序序D1: MOV R7,#99 DJJNZ RR7,$ DJJNZ RR6,D1 DJJNZ RR5,DELLAY REET; LED_BL: MOVV R1,#4 ;发光二极管管闪烁子程序序LE1: CPPL WLLED ;发光二极管管反向 MOOV R55,#10 CCALL DELAYY ;进行1000ms延时时 DDJNZ R1,LEE1 RRET; BZ: MOV R6,#00 ;压电喇叭叭发声子程序序B1: SETB

40、SPK ;压电喇叭叭得电,开始始发声 DJNZ R6,BB1 MOV R5,#55CALL DDELAY ;进进行50mss延时 CLR SPK ;关闭压压电喇叭 RET; DEL: ;0.11ms延时子子程序 MOOV R55,#1DELAY1: MOOV R66,#2E1: MOV R7,#22E2: DJNZZ R7,E2 DJJNZ RR6,E1 DJJNZ RR5,DELLAY1 REET; IR_IN: ;红外外解码子程序序I1:JNBB IRIIN,I2 ;等待红红外IR信号号出现JMP I11I2:MOVV R4,#20 ;发现红外外IR信号,延延时一下I20:CAALL DD

41、ELDJNZ R4,I220JB IRRIN,I11 ;确认红外IIR信号出现现I21:JBB IRIIN,I3 ;等等待IR变为为高电平CALL DELJMP II21I3:MOVV R3,#0 ;8位数清清0LL:JNBB IRIIN,I4 ;等待IIR变为低电电平CALL DELJMP LLLI4:JB IRINN,I5 ;等待待IR变为高高电平CALL DELJMP II4I5:MOVV R2,#0 ;0.1mms 计数L1:CALLL DEELJB IRRIN,N11 ;等等待IR变为为高电平MOV AA,#8 ;设置置减数为8CLR CC ;清除除借位标志CCSUBB A,R2 ;

42、判断断高低位MOV AA,R0 ;取出内存存中原先数据据RRC AA ;右移移指令,将借借位标志C右右移进入A寄寄存器中 MOVV R00, A ;将数据写入入内存中 INCC R3 ;处理完成成一位,R33+1(R33计数)CJNE R3,#88, LL ;循循环处理8位位MOV RR3,#0 ;R3清00INC RR0 ;处理理完成1个字字节,R0+1(R0计计数)CJNE R0,#334H, LLL ;循循环收集到44个字节JMP OOK ;至完成成返回N1:INCC R2 ;R2+11(R2计数数)CJNE R2,#330, L11 ;00.1ms 计数过长,时时间到自动离离开OK:R

43、ETT ;完成返回回; OP: 执行解解码动作子程程序MOV AA,COMCJNE A,#COODE_K55, A1 ;对解解码进行比较较,看是否是是回到中点指指令,否就转转至下一项比比较CALL LLED_BLL ;发光二二极管闪烁CALL BBZ ;压电喇喇叭发出嘀的的一声CALL GGO_HOMME ;执行回到中中点CALL LLED_BLL ;发光二极极管闪烁CALL BBZ ;压电喇喇叭发出嘀的的一声RETA1:MOV AA,COMCJNE A,#COODE_K11, A2 ;对解码码进行比较,看看是否是前进进指令,否就就转至下一项项比较CALL BZ ;压电喇喇叭发出嘀的的一声CA

44、LL GO_FOOR ;执行前进进 REETA2:MOV AA,COMCJNE A,#COODE_K22, A3 ;对解码码进行比较,看看是否是后退退指令,否就就转至下一项项比较CALL BZ ;压电喇喇叭发出嘀的的一声 CAALL GGO_BACCK ;执执行后退 REETA3: ;LMOV AA,COMCJNE A,#COODE_K33, A4 ;对解码码进行比较,看看是否是左转转指令,否就就转至下一项项比较CALL BZ ;压电喇喇叭发出嘀的的一声 CAALL GGO_L ;执行左转 REETA4: ;R MOOV A,COM CJNE A,#COODE_K44, A5 ;对解码码进行比

45、较,看看是否是右转转指令,否就就转至下一项项比较CALL BZ ;压电喇喇叭发出嘀的的一声 CAALL GGO_R ;执行右转RETA5:MOV A,COMCJNE AA,#CODDE_K6, A6 ;对解码进进行比较,看看是否是行走走启动指令,否否就转至下一一项CALL LLED_BLL ;发光二极极管闪烁CALL BBZ ;压电喇叭叭发出嘀的一一声 CAALL QQD ;执行行走走启动CALL LED_BBL ;发光二二极管闪烁CALL BBZ ;压电喇喇叭发出嘀的的一声 RETA6: RET ;返回; HOME1: SEETB DDJZ ;各伺服电机机回中点控制制子程序 SETBB DJ

46、LLSETB DJRMOV RR4,#HOOMEG1:CALLL DEELDJNZ R4,G11CLR DDJZCLR DJJLCLR DDJRMOV RR4,#(2200-HOOME)G2:CALLL DEELDJNZ R4,G22RET; GO_HOMEE: MMOV RR3,#155 ;机器人回中中点子程序H1: CAALL HHOME1 DJNZ R3,HH1 RRET ; DJZ_FORR: SETBB DJZZ ;中间电机机正转子程序序 MMOV RR4,#FOORFZ1: CCALL DEL DDJNZ R4,FZZ1 CCLR DDJZ MMOV RR4,#(2200-FOOR

47、)FZ2: CCALL DEL DDJNZ R4,FZZ2 RRET ; DJL_FORR: SETTB DJJL ;左侧电机机正转子程序序 MMOV RR4,#FOORFL1: CCALL DEL DDJNZ R4,FLL1 CCLR DDJL MMOV RR4,#(2200-FOOR)FL2: CCALL DEL DDJNZ R4,FLL2 RRET ; DJR_FORR: SETTB DJJR ;右侧电机机正转子程序序 MMOV RR4,#FOORFR1: CCALL DEL DDJNZ R4,FRR1 CCLR DDJR MMOV RR4,#(2200-FOOR)FR2: CCALL

48、DEL DDJNZ R4,FRR2 RRET ; DJZ_BACCK: SETBB DJZZ ;中间电机机反转子程序序 MOOV R44,#BACCKDJZBA1: CALLL DEEL DJJNZ RR4,DJZZBA1 CLLR DJJZ MOOV R44,#(2000-BACCK)DJZB2: CALLL DEEL DJJNZ RR4,DJZZB2 REET ; DJL_BACCK: SETBB DJLL ;左侧电机机反转子程序序 MOOV R44,#BACCKDJLBA1: CALLL DEEL DJJNZ RR4,DJLLBA1 CLLR DJJL MOOV R44,#(2000-BACCK)DJLB2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论