版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
智能机器人跨专业公选实验
实验指导书
范守文吴献钢袁太文陈畅
电子科技大学机械电子工程学院
2005年9月
机器人自己做,也许你从小有这样的一
个梦,在这里,我们让你梦想成真!
第一篇机器人控制电路基础
一、复位电路
VCC
任何单片机在工作之前都要有个复位
的过程,复位是什么意思呢?它就象是我P1.0
1
P1.1
2
们上课之前打的预备铃。预备铃一响,大PL2
3
PL3
家就自动地从操场、其它地方进入教室了,4
PL7
5
在这一段时间里,是没有老师干预的,对■C2PL5
6
22uFPL6I
单片机来说,是程序还没有开始执行,是7
Pl.7S
8
在做准备工作。显然,准备工作不需要太O
96
22010
长的时间,复位只需要5ms的时间就可以TxD
118
RIINTO
了。如何进行复位呢?只要在单片机的12K
IkINTT
RST引脚上加上高电平,就可以了,按上13
14
面所说,时间不少于5ms。为了达到这个15
WR
要求,可以用很多种方法,这里提供一种16
17
XTAL7
供参考,见图1。18
这种复位电路的工作原理是:通电时,图1复位电路
电容两端相当于是短路,于是RST引脚上
为高电平,然后电源通过电阻对电容充电,
RST端电压慢慢下降,降到一定程序,即为低
电平,单片机开始正常工作。
二、晶振电路AT89C51
单片机是一种时序电路,必须提供脉冲信
号才能正常工作,在单片机内部已集成了振荡
器,使用晶体振荡器,接18、19脚。只要买
图2晶振电路
来晶振,电容,连上就可以了,按图2接上即
可。
VCCVDD
I
gOTJT1
o
x
u
6OUT2
8
/
COUTS
8
OUT4
图3机器人驱动芯片AS611
三、机器人驱动芯片AS611
图3是机器人驱动芯片AS611与51单片机连接的电路原理图
AS611内部包含4通道逻辑驱动电路,其额定工作电流为1A,最大可达1.5A,Vss电
压最小4.5V,最大可达36V;Vs电压最大值也是36V。下表是其使能、输入引脚和输出引
脚的逻辑关系(电路按图3连接):
ENA(B)INI(IN3)IN2(IN4)电机运行情况
HHL正转
HLH反转
H同IN2(IN4)同INI(IN3)快速停止
LXX停止
四、74LS21四输入与门
74LS21四输入与门引脚如图4所示。
图474LS21四输入与门引脚图
五、LM324四运放集成电路
LM324是四运放集成电路,它采用14脚双列直插塑料封装。它的内部包含四组形式完
全相同的运算放大器,除电源共用外,四组运放相互独立。
图5LM324四运放的组成与引脚图
每一组运算放大器可用图5a所示的符号来表示,它有5个引出脚,其中“+为
两个信号输入端,“v+”、“V」为正、负电源端,“Vo”为输出端。两个信号输入端中,Vi-
(-)为反相输入端,表示运放输出端Vo的信
号与该输入端的相位相反;Vi+(+)为同相输
入端,表示运放输出端Vo的信号与该输入端的
相位相同。LM324的引脚排列见图5b。
由于LM324四运放电路具有电源电压范
围宽,静态功耗小,可单电源使用,价格低廉
等优点,因此被广泛应用在各种电路中。
当去掉运放的反馈电阻时,或者说反馈电
阻趋于无穷大时(即开环状态),理论上认为运放
的开环放大倍数也为无穷大。此时运放便形成
一个电压比较器,其输出如不是高电平(V+),
就是低电平(V-或接地)。当正输入端电压高于
负输入端电压时,运放输出低电平。
六、碰撞开关
碰撞开关引脚与尺寸如图6所示。引脚1为信号输出脚,引脚2接地,引脚3接+5V。
七、红外发射管
红外发射管发出的光是不可见的,它发出的峰Dimensions
值波长在900nm左右,属于红外波段,由于一般半1.OUTPUT
导体硅光敏器件的峰值波长在900nm左右,因此可2.GROUND
3.VCC
以方便地构筑红外传感系统。智能机器人实验中使
6.4±0.3-
用的红外发射管波长为—13-20
880nm,其电路符号及外
形如图7所示。
红外发射管的主要优
点是:体积小、寿命长、a
功耗小、响应速度快(可
以调制到几十兆赫)等,
因此在光电控制中被大量
采用。其主要缺点是:有图7红外发射管外形图8红外接收头引脚
与电路符号
方向性、易受环境温度影与尺寸图
响等。
红外发射管工作在正向电压下,
其正向特征与普通二极管一样。对它
施加几伏正向电压后,就会发出不可
见的红外光,光敏元件接收到此红外
光后,就会输出相应的信号。由于红
外发射管在正向电流下工作,因此发
光强度随正向电流的增加而增加,因
此调整流过红外发射管的正向电流,
便可以调整输出光功率(即发光强
度),对应地达到调整有效检测距离的
图9红外传感器测障原理
目的。
八、红外接收头
红外接收头引脚与尺寸如图8所示。引脚1为信号输出脚,引脚2接地,引脚3接+5V。
当接收到红外信号时,其信号输出脚输出为低电平。
九、红外传感器测障原理
红外传感系统依靠发射并接收由障碍物反射回来的红外光来判断是否有障碍物。如图9
所示,红外光以60°的散射角向外发射,阴影区域分别是左右两个红外发射管的反射区域,
而红外接收模块正好处于左右两个反射区域内,能接收到左右两个红外发射管的反射光,从
而可以判定前方、左边、右边有无障碍物。
U4
图10机器人控制板的电源
十、机器人控制板的电源
机器人控制板的电源部分分两路,一路直接由充电电池提供,主要是提供给电机使用,
另一路通过三端稳压芯片LM7805稳压成5伏直流电源提供给单片机系统使用,右边两个电
容是5伏电源的滤波电容,电阻和发光二极管组成5伏电源的工作指示电路,只要电源部分
正常,发光二极管组就会点亮,我们可以根据这个发光二极管组来判断整个电源部分是否工
作正常,左侧的开关是整个机器人控制系统电源的总开关。
第二篇机器人控制软件基础
一、中断服务程序
有关中断的概念
什么是中断,我们从一个生活中的例子引入。你正在家中看书,突然电话铃响了,你放
下书本,去接电话,和来电话的人交谈,然后放下电话,回来继续看你的书。这就是生活中
的“中断”的现象,就是正常的工作过程被外部的事件打断了。仔细研究一下生活中的中断,
对于我们学习单片机的中断也很有好处。
第一、什么可经引起中断,生活中很多事件可以引起中断:有人按了门铃了,电话铃响
了,你的闹钟闹响了,你烧的水开了….等等诸如此类的事件,我们把可以引起中断的称之
为中断源,单片机中也有一些可以引起中断的事件,8031中一共有5个:两个外部中断,
两个计数/定时器中断,一个串行口中断。
第二、中断的嵌套与优先级处理:设想一下,我们正在看书,电话铃响了,同时又有人
按了门铃,你该先做那样呢?如果你正是在等一个很重要的电话,你一般不会去理会门铃的,
而反之,你正在等一个重要的客人,则可能就不会去理会电话了。如果不是这两者(即不等
电话,也不是等人上门),你可能会按你通常的习惯去处理。总之这里存在一个优先级的问
题,单片机中也是如此,也有优先级的问题。优先级的问题不仅仅发生在两个中断同时产生
的情况,也发生在一个中断已产生,又有一个中断产生的情况,比如你正接电话,有人按门
铃的情况,或你正开门与人交谈,又有电话响了情况。考虑一下我们会怎么办吧。
第三、中断的响应过程:当有事件产生,进入中断之前我们必须先记住现在看书的第几
页了,或拿一个书签放在当前页的位置,然后去处理不同的事情(因为处理完了,我们还要
回来继续看书):电话铃响我们要到放电话的地方去,门铃响我们要到门那边去,也说是不
同的中断,我们要在不同的地点处理,而这个地点通常还是固定的。计算机中也是采用的这
种方法,五个中断源,每个中断产生后都到一个固定的地方去找处理这个中断的程序,当然
在去之前首先要保存下面将执行的指令的地址,以便处理完中断后回到原来的地方继续往下
执行程序。具体地说,中断响应可以分为以下几个步骤:
1、保护断点,即保存下一将要执行的指令的地址,就是把这个地址送入堆栈。
2、寻找中断入口,根据5个不同的中断源所产生的中断,查找5个不同的入口地址。
以上工作是由计算机自动完成的,与编程者无关。在这5个入口地址处存放有中断
处理程序(这是程序编写时放在那儿的,如果没把中断程序放在那儿,就错了,中
断程序就不能被执行到)。
3、执行中断处理程序。
4、中断返回:执行完中断指令后,就从中断处返回到主程序,继续执行。究竟单片机
是怎么样找到中断程序所在位置。
中断请求源:
1.外中断请求源:即外中断0和1,经由外部引脚引入的,在单片机上有两个引脚,名称
为INTO、INT1,也就是P3.2、P3.3这两个引脚。在内部的TCON中有四位是与外中断
有关的。ITO:INTO触发方式控制位,可由软件进和置位和复位,IT0=0,INTO为低电
平触发方式,ITO=1,INTO为负跳变触发方式。IE0:INTO中断请求标志位。当有外
部的中断请求时,这位就会置1(这由硬件来完成),在CPU响应中断后,由硬件将IE0
清0。ITKIE1的用途和ITO、IE0相同。
2.内部中断请求源TFO:定时器T0的溢出中断标记,当T0计数产生溢出时,由硬件置
位TFO。当CPU响应中断后,再由硬件将TFO清0。TF1:与TFO类似。TI、RI:串
行口发送、接收中断。
中断允许寄存器IE在MCS-51中断系统中,中断的允许或禁止是由片内可进行位寻
址的8位中断允许寄存器IE来控制的。
EA是总开关,如果它等于0,则所有中断都不允许。
ES一串行口中断允许
ET1一定时器1中断允许
EX1一外中断1中断允许。
ETO一定时器0中断允许
EX0一外中断0中断允许。
我们也可以用位操作指令
SETBEA
SETBET1
SETBEX1
来实现它。
五个中断源的自然优先级与中断服务入口地址
外中断0:0003H
定时器0:000BH
外中断1:0013H
定时器1:001BH
串口:0023H
它们的自然优先级由高到低排列。写到这里,大家应当明白,为什么前面有一些程序一
始我们这样写:
ORG0000H
LJMPSTART
ORG0030H
START:...
这样写的目的,就是为了让出中断源所占用的向量地址。
二、按键接口与编程
VCC
按键是单片机最常用的输入设备,用
户可以通过按键向计算机输入指令、地址
和数据,它具有结构简单,使用灵活等特
点,因此被广泛应用于单片机系统。
按键开关的抖动问题
组成键盘的按键有触点式和非触点式
两种,单片机中应用的一般是由机械触点
|PTT
构成的。在图11中,当按键未被按下时,—PL2
P1.0输入为高电平,当按键闭合后,P1.0PIa
输入为低电平。由于按键是机械触点,当
机械触点断开、闭合时,会有抖动动,P1.0
输入端的波形如图12所示。这种抖动对于
人来说是感觉不到的,但对计算机来说,
则是完全可以感应到的,因为计算机处理
的速度是在微秒级,而机械抖动的时间至
少是毫秒级,对计算机而言,这已是一个“漫长”的时间了。前面我们讲到中断时曾有个问
题,就是说按键有时灵,有时不灵,其实就是这个原因,你只按了一次按键,可是计算机却
已执行了多次中断的过程,如果执行的次数正好是奇数次,那么结果正如你所料,如果执行
的次数是偶数次,那就不对了。
为使CPU能正确地读出P1口的状态,对每一次按键只作一次响应,就必须考虑如何去
除抖动。单片机中常用软件法,软件法其实很简单,就是在单片机获得P1.0口为低的信息
后,不是立即认定S1已被按下,而是延时10毫秒或更长一些时间后再次检测P1.0口,如
果仍为低,说明S1的确按下了,这实际上是避开了按键按下时的抖动时间。而在检测到按
键释放后(P1.0为高)再延时5-10个毫秒,消除后沿的抖动,然后再对键值处理。不过一
般情况下,我们通常不对按键释放的后沿进行处理,实践证明,也能满足一定的要求。当然,
实际应用中,对按键的要求也是千差万别,要根据不同的需要来编制处理程序,但以上是消
除键抖动的原则。
按键编程方法示例(通过按键控制小车前进、后退、左转、右转)
ORGOOOOh
AJMPL1
ORGOlOOh
LI:MOVA,Pl
JNBACC.0,L2
JNBACC.1,L3
JNBACC.2,L4
JNBACC.3,L5
MOVA,#0h;停止
MOVP2,A
AJMPLI
L2:ACALLDELYlOms
MOVA,Pl
JBACC.O,L1
MOVA,#27h;前进
MOVP2,A
AJMPLI
L3:ACALLDELYlOms
MOVA,Pl
JBACC.1,L1
MOVA,#lbh;后退
MOVP2,A
AJMPLI
L4:ACALLDELYlOms
MOVA,Pl
JBACC.2,L1
MOVA,#17h;左转
MOVP2,A
AJMPLI
L5:ACALLDELYlOms
MOVA,Pl
JBACC.3,L1
MOVA,#2bh;右转
MOVP2,A
AJMPLI
DELYlOms:MOVR6,#50;12M晶振,延时10ms
DL1:MOVR5,#100
DL2:DJNZR5,DL2
DJNZR6,DL1
RET
END
第三篇机器人机械结构
一、机器人中的电机
电机在机器人驱动中起
着重要的作用。直流电机的作
用原理是建立在电与磁的相
互转化和相互作用的基础上
的。它主要由定子和转子两大
部分组成。定子上有励磁绕
组,由它产生磁场。转子与机■
械负载相联,上面安装有电枢
绕组,并通过电刷与直流电源
联接,电枢绕组上的电压称为电用
枢中由于电刷的作用,被通以交习
使转子在磁场中连续相对运动,?|
转速和转矩。由此,转子便带动机;
智能机器人中的主动轮)运动。
图13为直流电机的电流、功;
转速的关系图。T为转矩,n为转.
率。当电机无负载时转速最快,*
速越小;功率则是随转矩的增大下
图14直流电机转矩一转速关系图
功率达到最大值后,功率则是随转矩的增大
而减小;电流随转矩的增大而增大;效率则先增大,当达到最大值时又随之减小。
直流电机在一定的电枢电压下,转速与转矩成反比。如果改变电压,则转矩/转速线随
着电压的升降而升降(如图14),在智能机器人负载一定时(即转矩一定时),提高电压,
即电压由ul到u2,对应的转速为nl和n2,可见,nl<n2,即当电枢电压提高时,电机转子
的转速便也提高。所以只要改变直流电机电枢电压的大小,就可以实现直流电机的调速。
直流电机能调速,这点对于控制机器人的运动构件非常重要,因为只有当电机的转动能
被控制成时快、时慢、时正、时
反时,机器人才可能按照所设计
的运动规律来动作。
智能机器人采用的是改变
电机电枢电压的方式来改变直
流电机的转速,这种方式只是直
流电机调速方式之一,有关详细
资料可参考有关资料.提供给电
机的信号是方波,不同的方波,
它的平均电压不同如图15所
示,ul<u2<u3,我们就利用这一
点来进行智能机器人的速度控
制。进而调节电机的转速,这就
是脉宽调制技术(PWM,PulseWidthModulation)o
二、机器人的传动系统
机器人的运动由
两个主动轮的运动来
完成,而它们分别由
两套完全一样的驱动
装置来分别带动两个
驱动轮。在机器人的
驱动装置中,减速器
是主要的机械部件,喇齿轮b)椎齿粕
它构成了机器人的传
图16齿轮
动系统,下面对减速
器进行介绍。
1、齿轮
齿轮机构是现在机械中应用最为广泛的一种传动机构。他可以用来传递空间任意两轴间
的运动和力,而且传动准确、平稳、机械效率高,使用寿命长和工作安全可靠。
1)齿轮各部分的名称
齿轮上每个凸起部分称为齿,齿轮的齿数用z表示。其他参数为:
(1)齿顶圆过所有齿轮顶端的圆称为齿顶圆,用半径ra表示,直径用da表示。分
度圆和齿轮圆之间的径向距离称为齿顶高,用ha表示。
(2)齿根圆过所有齿槽底部的圆称为齿根圆,用半径rf表示,直径用df表示。分度
圆和齿根圆之间的径向距离称为齿根高,用hf表示。
/3
\(分度圆齿顶圆和齿根圆之间的一个特殊定圆,用半径r表示,直径用d表示。
4
全齿高齿顶圆与齿根圆之间的径向距离称为全齿高,用半径h表示,h=ha+hfo
/5X
\!71基圆产生渐开线的圆称为基圆,用半径rb表示,直径用db表示。
?6\
\|ZJ齿厚每个齿轮上的圆周弧长称为齿厚。在半径为rk的圆周上度量的弧长称为该
半径上的齿厚,用sk表示。在分度圆上度量
弧长称为分度圆槽宽,用e表示。
(7)槽宽两个齿间齿槽上的圆周弧长称为槽
宽。在半径为rk的圆周上度量的弧长称为该
半径上的槽宽,用ek表示。在分度圆上度量
弧长称为分度圆齿厚,用S表示。
(8)齿距相邻两个齿轮同侧齿廓之间的圆周
弧长称为齿距。在半径为rk的圆周上度量的
弧长称为该半径的齿距,用pk表示,显然
pk=sk+ek«在分度圆上度量的弧长称为分度
圆齿距,用p=s+e表示。在基圆上度量的弧
长称为基圆齿距,用pb表示,pb=sb+eb,sb
和eb是基圆上的齿厚与槽宽。
(9)法向齿距相邻两个齿轮同侧齿廓之间在
法线方向上的距离称为法向齿距,用pn表
示。由渐开线性质可知:pn=pbo
(10)中心距中心距是指相互啮合的一对齿轮,
两齿轮的圆心之间的距离,用a表示,a=rl+r2。如图17所示。
2)基本参数
为了计算齿轮各部分几何尺寸,需要规定若干基本参数,对于标准齿轮而言,有以下5
个基本参数:
齿数z
(2)分度圆模数m分度圆周长=md=zp,于是可得:d=zp/n由于口是无理数,分
度圆的直径也将为无理数,用一个无理数的尺寸作为设计标准,对设计是很不利的。
为了方便设计、加工和检验,人为地把分度圆齿距与口的比值用m表示,并取其为
一理数列,即:p/"=mm称为分度圆模数,也简称为模数,单位为mm。分度圆
直径d=mz,分度圆齿距p=nm。
(3)分度圆压力角a过分度圆与渐开线交点作基圆切线得切点N,该交点与中心。的连
线与NO线之间的夹角用a表示,其大小等于渐开线在分度圆圆周上压力角的大小。
为方便起见,往往用这个中心角表示分度圆压力角。我过规定分度圆压力角标准值一
般为20°。在某些装置中,也有用分度圆压力角为14.5°、15°、22.5°、和25°
等的齿轮。至此,我们可以给分度圆下一个完整的定义:分度圆就是齿轮中具有标准
模数和标准压力角的圆。
(4)齿顶高系数ha*齿顶高ha用齿顶高系数ha*与模数的乘积表示,ha=ha*m
(5)顶隙系数c*齿根高hf用齿顶高系数ha*与顶隙系数c*之和乘以模数表示,
hf=(ha*+c*)m。
我国定了齿顶高系数和顶隙系数的标准值:
正常齿制
(1)当mN1mm时,ha*=l,c*=0.25
二级减速器
三级减速器
图18齿轮减速器
(2)当m<1mm时,ha*=1,c*=0.35
短齿制ha*=0.8,c*=0.3
3)渐开线标准直齿轮的几何尺寸和基本参数的关系
渐开线标准直齿轮除了基本参数是标准值外,还有两个特征:
(1)分度圆齿厚与槽宽相等,即s=e=p/2=nm/2
(2)具有标准的齿顶高和齿根高,即ha=ha*mhf=(ha*+c*)m
不具备上述特征的称为非标准齿轮。
2、减速器
减速器是指原动机与工作机之间独立的闭式传动装置,用来降低转速和相应的增大转
距。此外,在某些场合,用来增速的。并名为增速器。
减速器的种类很多,常用的减速器有齿轮及蜗杆减速器。按其传动和机构的特点,大致
可以分为三类:I)齿轮减速器2)蜗杆减速器3)行星减速器。这里仅讨论齿轮减速器,
按其减速齿轮的级数可以分为一级、二级、三级及多级,如图所示:
按其轴在空间的相互配置可以分为立式和卧式;按其运动简图的特点可以分为展式、同
轴式和分流式等.
我国已将减速器系列化了,而且指定了某些类型减速器的标准系列。在指定标准系列时,
对减速器的主要参数,如中心距,模数,齿宽系数及传动比等,还做了一系列的规定。在计
算时须将数值转换成与其相近的标准值。现将减速器的常用参数计算公式列表如下:
类型中心距符号总中心距传动比符号总传动比
一级aaL=a=l/2(d2+di)ii=z从/z主
二级高速级ataE=ar+as高速级ifi=if*is
低速级as低速级is
三级高速级arar=af+am+as高速级ifi=if*im*is
中速级an.中速级im
低速级as低速级is
减速器的每级有两个齿轮相互啮合传递动力,小齿轮为主动轮(ZD,大齿轮为从动轮
(Z?),小齿轮转一周而大齿轮则转不到一周,故而减速(反之,便为增速)。
二、机器人的总体结构
机器人由机器人小车、手臂、手爪等部分组成,机器人小车、手臂、手爪通过螺纹连接
件连接装配在一起。机器人总体三维结构如图19所示,零件之间的三维装配关系如图20
所示,手臂和手爪通过电机带动拉绳来驱动。电机停止工作时,在弹簧或橡皮筋的拉动下,
手臂和手爪将会回复原位。以上机器人手臂和手爪的总体结构图仅供同学们参考,同学们可
以自己创意设计自己的机器人手臂和手爪的结构。
三、机器人的手臂结构
(若干零件图,用AutoCAD软件绘制)
四、机器人的手爪结构
(若干零件图,用AutoCAD软件绘制)
图19机器人的总体结构图
图20机器人装配关系示意图
第四篇机器人实验
实验一基础实验
按照图21的电路图连接各电子元器件,控制板上元器件参考布局如图22所示。
上电之前请按照以下步骤做好电路检查工作:
1)确保电源正负极之间没有短路(一定要慎重!)
2)确保AT89c51芯片、AS611芯片相邻引脚之间没有短接。
3)AT89C51芯片的引脚20与电源负极相连,AT89c51芯片的引脚31、40与电源正极相连。
4)AS611芯片的引脚4、5、12、13与电源负极相连,AS6U芯片的引脚8、16与电源正
极相连。
5)复位电路、晶振电路按照电路图正确连接。
6)AT89C51芯片的引脚21、22、23、24分别与第一块AS611芯片的引脚2、7、10、15
相连,AT89C51芯片的引脚25、26、27、28分别与第二块AS611芯片的引脚2、7、10、
15相连。
图21实验一电路图
输入以下的汇编程序,编译后将十六进制代码程序烧写进AT89C51芯片,在电路检查
正确的前提下,可以尝试着上电,观察运行结果。如果电机不动,请立即断电。再做进一步
的检查或者请求教师帮助。
ORGOOOOh
AJMPMAIN
ORGOlOOh
MAIN:
MOVA,#09h;二进制数00001001b小车右转
MOVP2,A
ACALLDELY
MOVA,#06h;二进制数00000110b小车左转
MOVP2,A
ACALLDELY
MOVA,#05h;二进制数00000101b小车后退
MOVP2,A
ACALLDELY
MOVA,#0ah;二进制数00001010b小车前进
MOVP2,A
ACALLDELY
MOVA,#20h;二进制数00100000b手臂前进
MOVP2,A
ACALLDELY
MOVA,#10h;二进制数00010000b手臂后退
MOVP2,A
ACALLDELY
MOVA,#80h;二进制数10000000b手爪松开
MOVP2,A
ACALLDELY
MOVA,#40h;二进制数01000000b手爪夹紧
MOVP2,A
ACALLDELY
MOVA,#0h;所有电机停
MOVP2,A
SJMPMAIN
DELY:MOVR7,#100;12M晶振,延时2秒
DLYO:MOVR6,#100
DLY1:MOVR5,#100
DLY2:DJNZR5,DLY2
DJNZR6,DLY1
DJNZR7,DLYO
RET
END
碰撞传感器接口
二
右发光二极管9
S
4
左发光二极管二
9
S
4
小车左电机接口
左红外发射管
件\------
电源总开关外接电池接口LM7805稳压芯片
图22控制板上元器件参考布局示意图
以下是用单片机C语言编写的运动控制程序,其运动控制功能与上面的汇编语言程序相
同。
#include<reg51.h>
#defineCOUNTO197
#defineCOUNT1100
unsignedcharbdatamotorctrl;
/*底盘两个电机对应的控制住*/
sbitINIBase=motorctrl"0;
sbitIN2_Base=motorctrl」;
sbitIN3_Base=motorctrl2;
sbitIN4_Base=motorctrl3;
/*手臂电机对应的控制位*/人
sbitINl_Arm=motorctrl4;
sbitIN2_Arm=motorctrl"5;
/*手爪电机对应的控制位*/C
sbitIN3_Hand=motorctrl*6;
sbitIN4_Hand=motorctrl?;
voiddelayL(unsignedcharcount2)smallreentrant;
voiddelayM(unsignedcharcountl)smallreentrant;
voiddelayS(unsignedcharcountO)smallreentrant;
voidrun(bitmotorl,bitdirl,bitmotor2,bitdir2,
bitmotor3,bitdir3,bitmotor4,bitdir4);
voidstop(bitmotor1,bitmotor2,bitmotor3,bitmotor4);
main()
(
do
(
run(l,0,1,1,0,0,0,0);/*右转*/
delayL(20);/*2s*/
run(l,1,1,0,0,0,0,0);/*左转*/
delayL(20);
run(l,0,1,0,0,0,0,0);/*后退*/
delayL(20);
run(l,1,1,1,0,0,0,0);/*前进*/
delayL(20);
stop(l,1,0,0);
run(0,0,0,0,1,1,0,0);/*手臂前进*/
delayL(20);
run(0,0,0,0,1,0,0,0);/*手臂后退*/
delayL(20);
stop(0,0,1,0);
run(0,0,0,0,0,0,1,1);/*手爪松开*/
delayL(20);
run(0,0,0,0,0,0,1,0);/*手爪夹紧*/
delayL(20);
stop(0,0,0,1);
}
while(1);
}
voiddelayS(unsignedcharcountO)smallreentrant
/*短延时函数*/
/*countO取值范围:0~256*/
/*延时计算方法:countOx5T+2T«*/
/*T:机器周期(振荡周期的1/12)。*/
while(~countO);
/*对应的汇编代码
000A150ADECOOAH;T
000CAFOAMOVR7,OOAH;T
000EEFMOVA,R7;T
000F70F9JNZOOOOAH;2T
001122RET;2T
*/
}
voiddelayM(unsignedcharcountl)smallreentrant
/*中延时函数*/
/*countl取值范围:0~256*/
/*延时计算方法:countlx(11T+delayS(COUNTO))+2T。*/
/*T:机器周期(振荡周期的1/12)。*/
while(一countl)delayS(COUNTO);
/*对应的汇编代码
0109150BDECOOBHT
010BAFOBMOVR7,OOBUT
010DEFMOVA,R7T
010E6008JZ00118II2T
0110750A64MOVOOAH,#064H2T
011312000ALCALLOOOOAH2T
011680F1SJMP00109112T
011822RET2T
*/
}
voiddelayL(unsignedcharcount2)smallreentrant
/*长延时函数*/
/*count2取值范围:0~256*/
/*延时计算方法:count2x(11T+delayM(COUNTl))+2T。*/
/*T:机器周期(振荡周期的1/12)。*/
while(一count2)delayM(COUNT1);
/*对应的汇编代码
0119150CDECOOCHT
011BAFOCMOVR7,OOCHT
011DEFMOVA,R7T
011E6008JZ00128II2T
0120750B32MOVOOBH,#032112T
0123120109LCALL00109II2T
012680F1SJMP00119112T
012822RET2T
*/
)
voidrun(bitmotor1,bitdirl,bitmotor2,bitdir2,
bitmotor3,bitdir3,bitmotor!,bitdir4)
*/切
/*运行函数
切
/*电机选择(motor1,motor2,motor3,motor4):
/*为1表示对应的电机被选中进行“运转”操作,为0则表示没有被选中。*/
/*运行方向选择(dirl,dir2,dir3,dir4):**/
/*对应的电机如果被选中,为1表示按照正方向运行,为0表示按反方向运行。4
if(motorl)/*1#电机*/
(
if(dirl)
{INl_Base=0;IN2__Base=1;)
else
{INl_Base=1;IN2__Base=o;)
)
if(motor2)/*2#电机*/
(
if(dir2)/*=l*/
{IN3_Base=0;IN4__Base=1;)
else
{IN3„Base=1;IN4__Base=o;)
)
if(motor3)/*3#电机*/
(
if(dir3)
{INl_Arm=0;IN2_Arm=1;}
else
{INl_Arm=1;IN2_Arm=0;}
)
if(motor4)/*4#电机*/
(
if(dir4)/*==l*/
{IN3JIand=0;IN4JIand=1;}
else
{IN3JIand=1;IN4Jland=0;}
P2=motorctrl;
return;
)
voidstop(bitmotorl,bitmotor2,bitmotor3,bitmotor4)
/*停止函数*/
/*电机选择(motorl,motor2,motor3,motor4):*/
/*为1表示对应的电机被选中进行“停止”操作,为0则表示没有被选中。*/
(
if(motorl)
(
INl_Base=IN2_Base=0;
}
if(motor2)
(
IN3_Base=IN4_Base=0;
}
if(motor3)
(
INl_Arm=IN2_Arm=0;
}
if(motor4)
(
IN3Hand=IN4Hand=0;
)
P2=motorctrl;
return;
}
实验二手控机器人
40
39
38
3?
36
3s
3
3
3
3
3
2
2
2
2
2
2
2
2
21
图23实验二电路图
按照图23连接各电子元器件,手控手柄上按钮及接口参考布局如图24所示,将手控手
柄与机器人控制板通过手控手柄接口用约1.5米长的排线连接起来。输入以下的汇编程序,
编
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辽宁轻工职业学院《药学综合实验》2023-2024学年第一学期期末试卷
- 昆明冶金高等专科学校《高低压电器及设计》2023-2024学年第一学期期末试卷
- 江苏师范大学科文学院《刑法学总论》2023-2024学年第一学期期末试卷
- 吉林化工学院《UI交互设计》2023-2024学年第一学期期末试卷
- 湖南汽车工程职业学院《先进材料进展》2023-2024学年第一学期期末试卷
- 湖北艺术职业学院《金属塑性变形》2023-2024学年第一学期期末试卷
- 黑龙江农业工程职业学院《水文学》2023-2024学年第一学期期末试卷
- 高考物理总复习《动量和动量守恒》专项测试卷含答案
- 重庆工商大学派斯学院《教育与心理研究方法》2023-2024学年第一学期期末试卷
- 郑州大学《商务礼仪》2023-2024学年第一学期期末试卷
- 上海市浦东新区2023-2024学年一年级上学期期末考试数学试题
- 插图在小学英语口语教学中的运用
- 前列腺增生药物治疗
- 人工智能知识图谱(归纳导图)
- 滴滴补贴方案
- 民宿建筑设计方案
- 干部基本信息审核认定表
- 2023年11月外交学院(中国外交培训学院)2024年度公开招聘24名工作人员笔试历年高频考点-难、易错点荟萃附答案带详解
- 春节行车安全常识普及
- 电机维护保养专题培训课件
- 汽车租赁行业利润分析
评论
0/150
提交评论