基于单片机的机械手臂控制系统设计

摘 要: 应用单片机 Arduino 及机械臂的有关知识,设计一款基于单片机的六自由度机械手臂,并详述其控制系统的软、 硬件设计 该机械手臂能够模仿人的上肢完成简单的动作,因此在实验教学演示平台 生产或生活中都极具应用价值。
关键词: 机械手臂 控制系统设计 单片机 Arduino 平台

引言

机械手臂是一种应用非常广泛的自动化机械装置,且目前在自动化制造、 救援 医疗 农业和商业等领域都得到了广泛应用。 随着开源硬件的研发,设计人员进入机械电子学领域的难度明显降低。 其中,以Arduino 平台的发展最为迅猛 它是一款涵盖软 硬件的开源电子原型平台,允许设计人员按需改进调整核心库文件、 软件 硬件原理图及电路图 据此,本文笔者设计一款基于单片机的六自由度机械手臂,并重点论述机械手臂控制系统的设计。

1 设计方案

1 所示是机械手臂控制系统的结构图
结合图 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
结合图 2 ,舵机控制板右上角的 GND TXD、 RXD 接口与单片机的 GND TXD RXD 端口对应连 接,负责接收源自单片机系统的控制指令; S1- 32 合端口分别与 32 个舵机连接,且每一组合端口的 S + - 端口与每一舵机的信号控制极 电源正 负极 对应连接

3 软件设计

对于机械手臂控制系统,其软件设计的任务是先由单片机系统按机械手臂的动作要求编写动作指令,再发送至舵机控制板,然后由舵机控制板对舵机进行控制,继而实现机械手臂的具体动作。 例如,机械手臂在绘制“ M 时,首先,计算 设置通信端口的参数;其次,计算每一舵机在机械手臂夹紧时的旋转角度,并设置、 输出夹紧动作组合;第三,依次计算每一舵机在机械手臂绘制“ M 的第一笔画(右上长直线)、 第二笔画(右下短直线) 第三笔画(右上短直线)、 第四笔画(右上短直线)时的旋转角度,并分别设置、 输出每一笔画的动作组合;第四,计算每一舵机在机械手臂释放时的旋转角度,并设置、 输出释放动作组合 在整个过程中,需要注意下列要点:

3.1 通信端口参数的计算与编程

机械手臂控制系统的单片机采取串行方式与舵机控制板实现通信。 依据通信协议,停止位 1 数 据位 8 无校验位 TTL 电平及波特率 9 600 bps 。据此,要求采取下列公式算得串行端口定时器的初始值 X

3.2 舵机角度控制设置值的计算与编程

在机械手臂控制系统软件设计中,要求通过单 片机确定舵机角度控制的设置值,且其与舵机角度 的位置值存在下列运算关系:
舵机控制板是实现单片机控制舵机运行的关键。 例如,在控制单个舵机时,舵机角度控制的设置
值按 #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 的变频调速技术将会成为未来矿山开采的提升系统以及运输系统中的主流控制技术。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/349422.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Dubbo 3.x源码(20)—Dubbo服务引用源码(3)

基于Dubbo 3.1,详细介绍了Dubbo服务的发布与引用的源码。 此前我们学习了调用createProxy方法,根据服务引用参数map创建服务接口代理引用对象的整体流程,我们知道会调用createInvokerForRemote方法创建远程引用Invoker,这是Dubbo …

Linux文件系统

目录 1.磁盘的结构 1.1磁盘的物理结构 1.2 磁盘的存储结构 1.3 磁盘的逻辑结构 2.文件系统 在上一篇文章基础IO中,我们主要是讲了被打开的文件与进程的关系,以及操作系统是如何管理这些被打开的文件的,但是磁盘有这么多文件,被打…

QT--DAY1

不使用图形化界面实现一个登陆界面 #include "widget.h"Widget::Widget(QWidget *parent): QWidget(parent) {//设置窗口标题this->setWindowTitle("登录界面");//设置窗口大小this->resize(535,410);//固定窗口大小this->setFixedSize(535,410)…

windows 环境下使用git命令导出差异化文件及目录

一、找出差异化的版本(再此使用idea的show history) 找到两个提交记录的id 分别为: 二、使用git bash执行命令(主要使用 tar命令压缩文件) 输出结果:

上心师傅的思路分享(三)--Nacos渗透

目录 1. 前言 2. Nacos 2.1 Nacos介绍 2.2 鹰图语法 2.3 fofa语法 2.3 漏洞列表 未授权API接口漏洞 3 环境搭建 3.1 方式一: 3.2 方式二: 3.3 访问方式 4. 工具监测 5. 漏洞复现 5.1 弱口令 5.2 未授权接口 5.3.1 用户信息 API 5.3.2 集群信息 API 5.3.3 配置…

kubernetes(k8s)集群部署(2)

目录 k8s集群类型 k8s集群规划: 1.基础环境准备: (1)保证可以连接外网 (2)关闭禁用防火墙和selinux (3)同步阿里云服务器时间(达到集群之间时间同步) &…

pytest并发执行时token异常处理问题

接前面加入钩子函数处理token复用的问题,只保证了用例的串联执行,我的部分测试用例中接入了通义千问的部分接口生成测试数据,七八个场景跑完差不多快要10分钟。考虑使用并发执行。 http://t.csdnimg.cn/ACexL 使用多线程和不使用耗时差距很大…

HyperBDR新版本上线,自动化容灾兼容再升级!

本次HyperBDR v5.5.0版本新增完成HCS(Huawei Cloud Stack)8.3.x和HCSO(Huawei Cloud Stack Online)自动化对接,另外还突破性完成了Oracle云(块存储模式)的自动化对接。 HyperBDR,云原生业务级别容灾工具。支…

Unity资源 之 最受欢迎的三消游戏开发包 - Bubble Shooter Kit 【免费领取】

三消游戏开发包 - Bubble Shooter Kit 免费领取 前言资源包内容领取兑换码 前言 如果你是一名 Unity 游戏开发者,并且正在寻找一种快速、简单的方式来创建自己的三消游戏,那么 Bubble Shooter Kit 就是你所需要的。 资源包内容 Bubble Shooter Kit 是…

代码随想录算法训练营第36期 last day

最后一次更新&#xff0c;之后去复习专业课和简历 583两个字符串的删除操作 自己做出来了&#xff1a; Code: class Solution {public://找到公共子序列的最大长度dp 最小步数串1.size-dp串2.size-dp int minDistance(string word1, string word2) { vector<v…

用智能插件(Fitten Code: Faster and Better AI Assistant)再次修改vue3 <script setup>留言板

<template><div><button class"openForm" click"openForm" v-if"!formVisible">编辑</button><button click"closeForm" v-if"formVisible">取消编辑</button><hr /><formv-i…

基于梯度下降的多元线性回归原理

为了展示多元线性回归的迭代过程&#xff0c;我们可以使用梯度下降算法手动实现多元线性回归。梯度下降是一种迭代优化算法&#xff0c;用于最小化损失函数。 我们将以下步骤进行手动实现&#xff1a; 初始化回归系数。计算预测值和损失函数。计算梯度。更新回归系数。重复步…

高分论文密码---大尺度空间模拟预测与数字制图

大尺度空间模拟预测和数字制图技术和不确定性分析广泛应用于高分SCI论文之中&#xff0c;号称高分论文密码。大尺度模拟技术可以从不同时空尺度阐明农业生态环境领域的内在机理和时空变化规律&#xff0c;又可以为复杂的机理过程模型大尺度模拟提供技术基础。我们将结合一些经典…

制造业几大系统(MES/WMS/QMS/ERP)的集成

制造业的几大系统包括MES&#xff08;制造执行系统&#xff09;、WMS&#xff08;仓库管理系统&#xff09;、QMS&#xff08;质量管理系统&#xff09;和ERP&#xff08;企业资源计划&#xff09;系统。这些系统在制造业中扮演着不同的角色&#xff0c;可以通过集成实现更高效…

Kafka高频面试题整理

文章目录 1、什么是Kafka?2、kafka基本概念3、工作流程4、Kafka的数据模型与消息存储机制1)索引文件2)数据文件 5、ACKS 机制6、生产者重试机制:7、kafka是pull还是push8、kafka高性能高吞吐的原因1&#xff09;磁盘顺序读写&#xff1a;保证了消息的堆积2&#xff09;零拷贝机…

SqlSugar有实体CURD应用-C#

本文所述开发环境&#xff1a;.C#、NET8、Visual Studio2022 SqlSugar有实体查询数据表 首先根据《SqlSugar使用DbFirst对象根据数据库表结构创建实体类-C#》中的描述的表结构创建所有表的实体类如下&#xff1a; 表名创建的实体类名tb_studentStudenttb_teacherTeachertb_c…

linux的UDP广播测试:C语言代码

测试代码 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h>#…

MyEclipse新手使用介绍

目录 1.MyEclipse诞生背景 2.作用 3.版本历史 4.优缺点 5.应用场景 6.如何使用 6.1.下载与安装 6.2.MyEclipse 菜单及其菜单项 7.创建和发布一个 Java 程序 7.1.创建 Java 程序 7.2.发布 Java 程序 8.示例 8.1. Hello World 示例 8.2. 简单Spring Boot 应用 8.3…

kettle从入门到精通 第六十九课 ETL之kettle kettle cdc mysql,轻松实现增量同步

1、之前kettle cdc mysql的时候使用的方案是canalkafkakettle&#xff0c;今天我们一起学习下使用kettle的插件Debezium直接cdc mysql。 注&#xff1a;CDC (Change Data Capture) 是一种技术&#xff0c;用于捕获和同步数据库中的更改。 1&#xff09;Debezium步骤解析mysql b…

鸿蒙轻内核Kconfig使用笔记

鸿蒙轻内核使用Kconfig进行图形化配置&#xff0c;本文专门讲解下鸿蒙轻内核LiteOS-M和LiteOS-A的图形化配置方法。本文中所涉及的源码&#xff0c;均可以在开源站点 https://gitee.com/openharmony/kernel_liteos_a 、 https://gitee.com/openharmony/kernel_liteos_m 获取。本…