摘要:本设计使用单片机对一个简易机械手系统进行控制。单片机输出稳定的PWM(脉冲调制波)同舵机的脉冲进行比对来控制舵机的运动。用户可以根据需要设定舵机的转动幅度,通过舵机的转动带动机械手臂的运动以及手指的张合,实现三自由度机械手达到拿取转移物体的目的。经过实验和调试信号输出稳定,PWM占空比 (0.3~2.5ms 的正脉冲宽度)和舵机的转角(-90°~90°)线性度较好。实现了机械手自动手动两种方式运动。
0 引言
机械手是近几十年发展起来的一种高科技自动化生产设备,它的特点是可通过编程来完成各种预期的作业任务,在构造和性能上兼有人和机器各自的优点,尤其体现了人的智能和适应性。机械手作业的准确性和各种环境中完成作业的能力,在国民经济各领域有着广阔的发展前景。
1 机械手的基本原理
机械手主要由手部和运动机构组成。手部是用来抓持工件(或工具)的部件,根据被抓持物件的形状、尺寸、重量、材料和作业要求而有多种结构形式,如夹持型、托持型和吸附型等。运动机构使手部完成各种转动(摆动)、移动或复合运动来实现规定的动作,改变被抓持物件的位置和姿势。运动机构的升降、伸缩、旋转等独立运动方式,称为机械手的自由度。自由度是机械手设计的关键参数。自由度越多,机械手的灵活性越大,通用性越广,其结构也越复杂。一般专用机械手有2~3 个自由度。
本文采用单片机 AT89S52 作为控制系统的部件,在驱动系统中采用日本FUTABAS3003 舵机(即电动式)来构成基本的控制传动系统,在机构的拼装上采用3 自由度全金属结构,达到自动抓取重物并转移的目的。
2 系统硬件设计
2.1 动力系统的选择
一个成功的机械手必须要有强大的动力系统和精准的信号系统。目前,机械手常用的动力系统有液压式、气动式、电动式、机械式。本文选择电动式作为机械手的动力系统。在机器人机电控制系统中,舵机控制效果是性能的重要影响因素。舵机可以在微机电系统和航模中作为基本的输出执行机构,其简单的控制和输出使得单片机系统非常容易与之接口,所以本文选择舵机驱动系统。它接收一定的控制信号,输出一定的角度,非常适用于那些需要角度不断变化并可以保持的控制系统。本文选用的舵机为FUBATA 的,型号为S3003。其主要技术参数如下:①转速:0.23 秒/60 度。②力矩:3.2kg·cm。③尺寸:44.1mm×26.6mm×36.1mm。④重量:37.2g。⑤5V 电源供电。
2.2 控制系统的选择
在选择好动力系统的同时,所要考虑的是如何产生控制舵机运动的控制信号,本文选择单片机AT89S52 作为控制单元,单片机可以使PWM(脉冲调制)信号的脉冲宽度实现微秒级的变化,从而提高舵机的转角。单片机完成控制算法,再将计算结果转化为PWM 信号输出到舵机,由于单片机系统是一个数字系统,其控制信号的变化完全依靠硬件计数,所以受外界干扰较小,整个系统工作可靠。
2.3 舵机控制器的总体硬件设计
单片机系统实现对舵机输出转角的控制,必须首先完成两个任务:首先是产生基本的PWM 周期信号,因为FUTABA-S3003 内部的比对信号周期为20ms,所以本设计也要产生20ms的周期信号;其次是脉宽的调整,即单片机模拟PWM 信号的输出,并且调整占空比。采用的控制方式是改变单片机的一个定时器中断的初值,将20ms 分为两次中断执行,短定时中断和长定时中断。这样既节省了硬件电路,也减少了软件开销,控制系统工作效率和控制都很高。具体如图1 所示:例如想让舵机转向30 度的角度,它的正脉冲为0.7ms,则负脉冲为20ms-0.7ms=19.3ms,所以按下30 度的按键,按下的同时控制口P1.0 发送高电平,然后设置定时器在0.7ms 后发生中断,中断发生后,在中断程序里将控制口P1.0 改为低电平,并将中断时间改为19.3ms,再过19.3ms 进入下定时中断,再将控制口P1.0 改为高电平,并将定时器初值改为0.7ms,等待下次中断到来,如此往复实现PWM 信号输出到舵机。用修改定时器中断初值的方法巧妙形成了脉冲信号,调整时间段的宽度便可使伺服舵机灵活运动。 为保证软件在定时中断里不采集其他信号,并且使发生PWM 信号的程序不影响中断程序的运行(如果这些程序所占用时间过长,有可能会发生中断程序还未结束,下次中断又到来的后果),所以需要将采集信号的函数放在长定时中断过程中执行,也就是说每经过两次中断执行这些程序,执行的周期还是20ms。在图1 中的九个按键是控制信号输出的控制键,指示灯起到指示作用,在P1.0 口是控制信号输出端口。
图 1 单片机控制器控制一舵机电路图
以上是单片机对一个舵机控制的电路,单片机控制器控制三舵机电路图如图 2 所示。
图2 单片机控制器控制三舵机电路图
3 系统软件设计
图3 单片机控制器控制三舵机主程序流程图
软件程序设计中包含一个主程序和三个子程序。单片机控制三舵机主程序流程图如图3所示。主程序中开关KK 是决定自动或手动的按键,在自动档里,通过三个舵机的分时转动可以完成机械手的自动抓取物体并移动的目的。当KK 打到手动档时,K1、K2、K3 是三个舵机的选择开关,KK2、KK2 是控制电机正反转动的开关,每次按下都有脉冲输出给舵机进行比对,实现转向的目的。三个子程序为自动运行程序、脉冲信号输出程序和延时程序。
4 机械手的物理结构
机械手是三自由度旋转机械手,主要由手,肘,和肩构成。手就是夹持物体的部分,由一舵机控制它的张合。肘是控制整个手臂上下运动的部件,由一个舵机控制。肩即机械手的底盘控制手臂水平面上的转动。物理结构图如下图4。
图 4 机械手实物图
5 结束语
经过对机器人舵机控制的测试表明,舵机控制系统工作稳定,PWM 占空比 (0.3~2.5ms的正脉冲宽度)和舵机的转角(-90°~90°)线性度较好。经过系统的组装和调试较好的实现了机械手自动和手动两种方式的抓取并转移物体的目的。本文作者的创新点:详细的介绍了使用单片机实现简易机器人设计的一种新方法,该方法成本低,易于实现。
[1]. AT89S52 datasheet https://www.dzsc.com/datasheet/AT89S52+_970343.html.
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。