第二讲机器人的伺服电机
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
机器人的伺服电机
机器人的伺服电机是用来将机器人大脑发出的运动指令转换为运动动作的部件,相当于人的肌肉的作用。本讲教你如何连接、调整以及测试机器人伺服电机。为此,你需要理解和掌握控制伺服电机方向、速度和运行时间的相关PBASIC 指令及其编程技术。由于精确地控制伺服电机是决定机器人性能的关键,所以,在把伺服电机安装到机器人底盘之前先熟悉这些内容是非常重要而且必需的。
连续旋转伺服电机简介
机器人伺服电机有很多种,本讲要介绍的主要是能够使你的轮式机器人两个轮子不停旋转的连续旋转伺服电机,如图2-1所示。图中指出了该伺服电机的外部配件,这些配件将在本讲或后续章节中用到。
任务1:将伺服电机连接到教学板
在本任务中首先将伺服电机连接到电源和BASIC Stamp模块的I/O口,然后搭建一个LED 电路来监视BASIC Stamp模块发送到伺服电机的运动控制信号。
连接伺服电机所需的零部件
● 帕拉斯公司生产的连续旋转伺服电机2个;
● 搭建LED电路所需的零配件(LED和470欧姆电阻)2套
连接伺服电机到
教学底板
把三位开关拨至0位切断教学底板的电源(图2−2)。
图2-3显示的是教学板上伺服电机接线端子。你可以用板上的跳线
来选择伺服电机的供电电源是来自机器人套件中的电池盒Vin还是来
自外接直流电源Vdd。要移动跳线帽,你必须向上把跳线帽从原来短
接的2个脚上拔下来,然后把跳线帽压进你想短接的2个脚上去。
如果使用6V电池组,将两个伺服电机接线端子之间的跳线帽接Vin,参照图2-3(左图)所示。
如果使用7.5 V、1000 mA的直流电源,将跳线帽接Vdd,参照图2-3(右图)所示。
本书中所有的示例和说明都是用电池组供电。图2-4是你将要搭建的电路的示意图,跳线设定接Vin。
注意:每个伺服电机的控制电缆有三根线,其中白色的线用来传送电机的控制信号,红色用来接到电源上,而黑色的则是地线。这些线的颜色的定义在伺服电机出厂时就已经定义好。以后你将会在工程上看到,许多电气元件都是通过线的颜色来标记电线所承担的功能。
● 连接伺服电机到教学底板,如图2-4所示。
● 连接完成后,搭建好的系统如图2−5图所示
(不含LED监视电路)。
● LED监视电路如图2-6所示。左边是电气原
如果使用的是套件中的电池
组,选择Vin。如果使用的是AC-DC 直流电
源,选择Vdd。理图,右边是在面包板上的接线图。该电路能够监视控制伺服电机的信号。为什么呢?
从图2-4的伺服电机连线图可知,两个伺服电机的控制信号线(白色)分别接到了微控制器的P12和P13口,即由微控制器的P12和P13口输出的控制信号控制两个伺服电机的运动;图2-6所示的LED监控指示电路正好也是指示的P12和P13口的信号,所以图2-6的LED 电路可以监控伺服电机
的控制信号。
任务2:伺服电机调零
所谓伺服电机调零是指,当发送一个特定的控制信号(零点标定信号)给伺服电机时,让电机保持静止的过程。由于伺服电机在工厂没有预先调整,它们在接收到该零点标定信号时可能会转动。因此你要用螺丝刀调节伺服电机模块内的调节电阻让伺服电机保持静止。这就是伺服电机调零过程。调整完成之后,你要测试伺服电机,验证其功能是否正常。测试程序将发送控制信号让伺服电机顺时针和逆时针以不同的速度旋转。
调零工具
机器人套件中提供的螺丝起子是唯一在本任务中需要的额外的工具。
发送零点标定信号
图2-7显示的信号是发送到与
P12连接的伺服电机的零点校准信
号,称为零点标定信号。即如果伺
服电机零点已经调节好,发送这个
信号给电机就可以让电机保持静止
不动。这是一个脉冲时间间隔为20
ms,脉冲宽度为1.5 ms的脉冲序列信
号。
要让机器人的大脑即BS2微控
制器能够产生图2-7所示的零点标定信号,必须用到几个新的PABSIC指令:PULSOUT指令、PAUSE指令,和DO…LOOP循环语句。
PULSOUT指令用来让微控制器产生一个5V电平脉冲,其指令格式和指令参数如下:PULSOUT Pin, Duration
指令参数Pin用来确定是给微控制器的哪个I/O脚输出脉冲,而Duration则是用来确定脉冲的宽度的时间单位数,其时间单位是2微秒。因此,要给P12引脚产生图2-7所示的1.5ms 的高电平脉冲信号,需要输入如下的指令行:
PULSOUT 12, 750
显然,如果知道脉冲要持续多长时间,你就可以方便地计算出PULSOUT指令的参数Duration 的值:Duration变量=脉冲持续时间/2微秒。按照此公式,零点标定脉冲的宽度变量:Duration=0.0015s/0.000002s=750。
PULSOUT指令只产生脉冲,要控制脉冲之间的间隔必须用到PBASIC语言的PAUSE指令。PAUSE指令的使用格式如下:
PAUSE Duration
Duration 是PAUSE指令的参数,它的值告诉BASIC Stamp微控制器在执行下一条指令之前要等待多久。Duration的单位是千分之一秒,即毫秒。假如你想等待1秒,可以给Duration 赋值为1000。
指令表示如下:
PAUSE 1000
如果想要等待2秒,表示如下:
PAUSE 2000
因此,要实现图2-7所示的零点标定信号,必须在PULSOUT指令后添加如下语句:PAUSE 20
要持续不断地产生图2-7所示的脉冲序列信号,还必须将PULSOUT语句和PASUSE语句放到DO…LOOP循环中。对于计算机或者微控制器而言,它们作为机器人的大脑,与人类或者其它生物的大脑相比,具有一个最大的优势就是,它们可以毫不怨言地不断重复做同一件事情。如果你要你的微控制器不断重复同样的操作,只需将相关的指令放到指令关键词DO 和LOOP之间。因此,你要让微控制器不断产生零点标定信号,只需将PULSOUT语句和PAUSE语句放到DO和LOOP之间。最后能够产生图2-7零点标定信号的程序模块如下:例程: CenterServoP12.bs2
' CenterServoP12.bs2
' This program sends 1.5 ms pulses to the servo connected to
' P12 for manual centering.
' {$STAMP BS2}
' {$PBASIC 2.5}
DEBUG "Program Running!"
DO
PULSOUT 12, 750
PAUSE 20
LOOP
注意:以上程序一旦执行,将永远执行下去,直到你关断微控制器的电源为止,下一个任务将指导你如何控制重复执行的次数。
最好每次只对一只电机做标定,因为这样的话,在你调节电机时你就可以听到(为何用听到,而不用看到?)什么时候电机停止。上面的程序只发送零点标定信号到P12,下面的步骤将指导你从如何调整电机,使其保持静止状态。在调节完连接到P12上的伺服电机后,用同样的方法调节连接到P13口的电机。
● 将教学底板三位开关拨到“2”,打开电源。
● 输入、保存并运行程序CenterServoP12.bs2。
如果电机没有进行零点标定,它的连接喉就会转动,而且你也能听到里面马达转动的响声。
● 如果电机还没有进行零点标定,按照图2-8所示的步骤,用螺丝刀轻轻调节伺服电
机上的电位器,直到电机停止转动。(仔细倾听电机的声音,确信电机已经停止转动)