摘 要: 应用单片机 、 Arduino 及机械臂的有关知识,设计一款基于单片机的六自由度机械手臂,并详述其控制系统的软、 硬件设计 。 该机械手臂能够模仿人的上肢完成简单的动作,因此在实验教学演示平台 、 生产或生活中都极具应用价值。
关键词: 机械手臂 控制系统设计 单片机 Arduino 平台
引言
机械手臂是一种应用非常广泛的自动化机械装置,且目前在自动化制造、 救援 、 医疗 、 农业和商业等领域都得到了广泛应用。 随着开源硬件的研发,设计人员进入机械电子学领域的难度明显降低。 其中,以Arduino 平台的发展最为迅猛 。 它是一款涵盖软 、 硬件的开源电子原型平台,允许设计人员按需改进调整核心库文件、 软件 、 硬件原理图及电路图 。 据此,本文笔者设计一款基于单片机的六自由度机械手臂,并重点论述机械手臂控制系统的设计。
1 设计方案
图 1 所示是机械手臂控制系统的结构图 。
![](https://img-blog.csdnimg.cn/direct/3d4fc98d903544f499cf04e8f8b8761f.png)
结合图 1 ,机械手臂是由机械系统 、 电气系统组成。 机械系统是由旋转关节 、 机械连杆等串接而成的串联式开链结构,其中关节的轴线存在相互垂直或平行的关系,能使相连连杆实现相对运动。 电气系统是机械手臂的控制系统,具体由单片机、 舵机及舵机控制板系统等组成。 其中,单片机系统负责下发机械手臂的控制指令。 舵机系统由 6 个舵机组成,用于完成机械手臂的具体动作,以调控其六个自由度。 舵机控制板是基于 Arduino 的开源硬件电路板,负责接收源自单片机系统的控制指令及以放大信号的方式驱动各舵机。综上设计方案,分别从软 、 硬件的角度出发,探讨基于单片机的机械手臂控制系统设计[1-2] 。
2 硬件设计
2.1 单片机系统
在机械手臂控制系统中,单片机系统是最为核心的控制装置,其由单片机、 电源模块 、 按键电路 、 晶振电路及复位电路等组成。 本设计选取 80C51 型单片机为主控制器,并将石英晶体振荡电路接入单片机的 XTAL1、2端口,将复位电路接入 RST 端口,将LCD 显示器 LM016L 接入 P0.0- 7 端口,途径上拉电阻,而其作用是显示指令代码 。
2.2 舵机系统
机械手臂的舵机系统由腕关节 1 与 2 舵机 、 肘关节 1 与 2 舵机 、 肩关节舵机及底座舵机等组成 。 本设计选取 LF- 20MG 型舵机,其是一种直流电动机,工作电压 4.8~6.6 V 、 扭矩范围 1.62~1.96 N · m ,以向机械手臂提供动作所需的扭矩 。
2.3 舵机控制板
在机械手臂控制系统中,舵机控制板属于从机,即其仅可接受指令或执行预设的命令。 据此,舵机控制板先从单片机处获得控制指令,再完成舵机控制。为了充分挖掘 Arduino 开源硬件电路板的优势,本设计决定从 Arduino 平台直接购入舵机控制板,见图 2 。
![](https://img-blog.csdnimg.cn/direct/1b9d5125f27341f48fd3e3e7aac1e654.png)
结合图 2 ,舵机控制板右上角的 GND 、 TXD、 RXD 接口与单片机的 GND 、 TXD 、 RXD 端口对应连 接,负责接收源自单片机系统的控制指令; S1- 32 组 合端口分别与 32 个舵机连接,且每一组合端口的 S 、 + 、 - 端口与每一舵机的信号控制极 、 电源正 、 负极 对应连接 。
3 软件设计
对于机械手臂控制系统,其软件设计的任务是先由单片机系统按机械手臂的动作要求编写动作指令,再发送至舵机控制板,然后由舵机控制板对舵机进行控制,继而实现机械手臂的具体动作。 例如,机械手臂在绘制“ M ” 时,首先,计算 、 设置通信端口的参数;其次,计算每一舵机在机械手臂夹紧时的旋转角度,并设置、 输出夹紧动作组合;第三,依次计算每一舵机在机械手臂绘制“ M ” 的第一笔画(右上长直线)、 第二笔画(右下短直线) 、 第三笔画(右上短直线)、 第四笔画(右上短直线)时的旋转角度,并分别设置、 输出每一笔画的动作组合;第四,计算每一舵机在机械手臂释放时的旋转角度,并设置、 输出释放动作组合 。 在整个过程中,需要注意下列要点:
3.1 通信端口参数的计算与编程
机械手臂控制系统的单片机采取串行方式与舵机控制板实现通信。 依据通信协议,停止位 1 位 、 数 据位 8 位 、 无校验位 、 TTL 电平及波特率 9 600 bps 。据此,要求采取下列公式算得串行端口定时器的初始值 X :
![](https://img-blog.csdnimg.cn/direct/d1c20d8a5431435c939525869c67edb5.png)
3.2 舵机角度控制设置值的计算与编程
在机械手臂控制系统软件设计中,要求通过单 片机确定舵机角度控制的设置值,且其与舵机角度 的位置值存在下列运算关系:
![](https://img-blog.csdnimg.cn/direct/45723e9f15e44f829eb8ecc24e4d132b.png)
舵机控制板是实现单片机控制舵机运行的关键。 例如,在控制单个舵机时,舵机角度控制的设置
值按 #1P1500T100\r\n 的格式编程 。 其中,1表示舵机通道;1500 表示舵机角度控制的设置值或指舵机旋转的角度,一般在 500~2500 之间取值; 100 表示执行时间,一般在 100~9 999 ms 之间取值 。 据此,单片机控制舵机角度的编程如下:
void main ()
{
Uart Initialization ();
//
串行通信端口初始化
Uart Send String ( “ #1P1500T100\r\n ” ); //S1 号舵
机在 100 ms 内旋转 90 °
while ( 1 );
}
void Uart Send String ( uchar*pStr ) // 串行通信端
口发送一个字符串
{
while ( *pStr ! =0 )
{
SBUF=* pStr++
while9= ( T1=0 );
T1=0 ;
}
}
4 结论
1 )通过设计制作的实物可知,文中提出的基于单片机的六自由度机械手臂设计方案具有可行性,
且准确度很高 。 对于基于单片机的六自由度机械手臂控制方案,直接从 Arduino 平台上购入舵机控制板,可使 Arduino 开源硬件电路板的设计 、 制造与技术开放优势得以充分发挥。 据此,机械手臂控制系统以单片机系统为控制核心,可以快速完成方案设计、实物制作、 硬件开发及软件编程 。
2 )单片机与 Arduino 平台为六自由度机械手臂控制系统的设计提供了一种难度更低的开发设计思
路,可快速完成机械手臂的设计制作。 首先,设计 PLC 系统应该要考虑到变频器的系统参数以及实际使用中提升绞车的功能,PLC 系统的控制器和传感器应该选择与提升绞车的运行状态
相符合 。 其次,在选用 PLC 型号的时候应该通过对用户的存储容量来进行估算分析最终确定下来合适的 PLC 型号 。 而且尽量选择处理速度较快的 PLC ,因为在运行的过程中可能会出现 PLC 输出控制出现滞后的情况。
5 结语
大量的研究证明,变频调速技术在矿山开采中的提升系统和运输系统方面存在着极大的优越性。未来矿山开采的提升系统中,变频调速技术的应用将会越来越广泛。 变频调速技术相比传统的交流异步电动机能够减少对设备的冲击,可极大地提高机械设备的使用寿命,使得矿山开采的生产效率得到巨大的提升,而且矿山开采过程中的安全性也可得到保障。 可以预见,基于 PLC 的变频调速技术将会成为未来矿山开采的提升系统以及运输系统中的主流控制技术。