说明

伺服电机(图 1)是一种驱动轴可旋转到指定角度且可保持在此角度的驱动部件,伺服电机不能像直流电机能连续旋转,其旋转角度为-180°~ +179°。

伺服电机可用于控制机械手臂、仿生类机器人(昆虫、动物)、类人机器人或其它完成特定动作的机械结构,通常情况下需要多个伺服电机配合使用。

在驱动伺服电机时,可直接设置其目标角度,或使用高级模块使其平滑转动。伺服电机在仿真开始时总是处于0°的角度。

伺服电机有2种安装点,方形安装点用于安装,圆形安装点为驱动轴。驱动伺服电机时,其圆形安装点上安装的部件可转动。

伺服电机

相关编程模块

与伺服电机相关的编程模块有“驱动”类中的“伺服电机驱动”、“多伺服电机驱动”、“多伺服步进驱动”、“多伺服总时间驱动”4个模块,如图 2所示。

伺服电机相关编程模块

“伺服电机驱动”是基本驱动模块,将单个伺服电机从当前角度直接驱动到目标角度。此模块有2个容器,左容器放置表示伺服电机端口号的模块,可放置“机器人端口”、“常量int”、“变量int”等。右容器放置表示伺服电机角度值的模块,可放置“常量int”、“变量int”等。

“多伺服电机驱动”是基本驱动模块,将一个或多个伺服电机从当前角度直接驱动到目标角度。此模块没有容器,在属性面板中列出了机器人所有的伺服电机,选择需要驱动的伺服电机,并输入其目标角度。

“多伺服步进驱动”是高级驱动模块,将一个或多个伺服电机从当前角度,按照指定的步进角度,以指定的间隔时间驱动到目标角度。此模块没有容器,在属性面板中设置其驱动参数,“步进量(角度)”设置所有选择的伺服电机每次改变的角度差值,“间隔时间(毫秒)”设置两次步进之间的等待时间,“伺服电机列表”中选择需要驱动的伺服电机,“值”输入目标角度,不选择的伺服电机不被驱动。此模块为堵塞执行1,执行时间约为:

执行时间 = (最大角度差 ÷ 步进量) × 间隔时间

此模块驱动时,同时驱动所有选择的伺服电机,直到所有伺服电到达目标角度。角度差较小的伺服电机先达到目标角度,并保持不动,等待角度差较大伺服电机到达目标角度。

“多伺服总时间驱动”是高级驱动模块,将一个或多个伺服电机从当前角度在指定时间内自动匀速驱动到目标角度。在属性面板中设置其驱动参数,“驱动总时间(毫秒)”设置驱动的总时间,“伺服电机列表”中选择需要驱动的伺服电机,“值”输入目标角度,不选择的伺服电机不被驱动。此模块会自动计算每次驱动时,每个伺服电机的步进量和间隔时间。一般情况下,多个不同差值的伺服电机驱动时,差值较大伺服电机旋转较快,差值较小的伺服电机旋转较慢,整体效果为同时到达目标角度。此模块为堵塞执行,执行时间为“驱动总时间”的设定时间。

当前角度:伺服电机在执行某种驱动之前时的角度,进入仿真后,所有伺服电机的“当前角度”为0°。

目标角度:伺服电机要旋转到的角度(范围-180° ~ +179°)。设置的目标角度小于-180°时,伺服电机旋转到-180°时不再旋转,大于179°时,转到179°不再旋转。

角度差:当前角度与目标角度的差值。

堵塞执行:模块的执行需要较长的时间,控制程序将等待其完成预定功能后才继续执行下面的模块。


1关于“堵塞执行”见“相关术语”中的解释

实例

此实例用不同的方式驱动机器人上安装的3个伺服电机,了解如何驱动伺服电机及不同驱动方式之间的差异。

仿真时,先使用“多伺服电机驱动”的方式将3个伺服电机直接驱动到30、60、90度,接着用“多伺服步进驱动”的方式将它们驱动到0、0、0度,再用同样的方式驱动到30、60、90度,最后用“多伺服总时间驱动”的方式将它们驱动30、60、90度。

机器人——“机器人-实例-伺服电机”。

控制程序——“程序-实例-伺服电机”。

机器人

“机器人-实例-伺服电机”的机器人如图 3所示,安装方式可下载机器人文件后导入到仿真软件,在机器人编辑器中查看。

“机器人-实例-伺服电机”结构及属性设置

控制程序

“程序-实例-伺服电机”的流程和设置见图 4。

“程序-实例-伺服电机”流程及属性设置

仿真视频