基于单片机的机械臂的研究

摘要 工业机器人是现代科学技术的融合下的产物,属于机电自动化设备的一种。机械臂作为工业机器人的核心,在提高工业生产效率的同时,也保障了工作人员的身心安全。本文以某款基于单片机的机械臂为例,对机械臂的设计方法和实现功能进行简要概述,希望为相关行业提供借鉴。

关键词 单片机;机械臂;定时器

0 引言

在科学技术高速发展的今天,工业机器人实现了普及应用,尤其是在工业生产领域,工业制造、机械制造行业的部分工业生产链已经完全由工业机器人组成,工作人员仅需通过程序控制,即可在规定时间内保质保量的完成生产任务。机械臂作为工业机器人的核心,受到了技术人员的 高度关注。因此对此项课题进行研究,其意义十分重大。

1 机械结构和控制系统

1.1 机械结构

现阶段,机械臂的动力驱动方式主要包括三种:第一种是绳索式;第二种是气动式;第三种为齿轮式。在这三种驱动方式中,应用频率是最高的驱动方式为齿轮式,究其原因,主要是这种驱动方式与其他两种相比,在传动精度、体积、运行效率和稳定性方面优势显著。制造工业的高速发展,对机械臂而言可谓是严峻的考验,多自由度、高速度和精度逐渐成为了机械臂未来发展的方向,本文所研究的机械臂其运动方式为齿轮式。这种基于单片机的机械臂,属于四自由度机械臂,所采取的控制方式为舵机控制,其中 1 号舵机可以对底座进行控制、是自由旋转功能实现的保障。机械臂的上下运动由 2 号舵机控制。末端机械抓水平倾角由 3 号舵机控制,而最后一个舵机可以起到控制机械爪开合的作用。在机械臂运动过程中,为了确保机械臂运行的精度,将数字舵机作为 2 号舵机的主要内容。

1.2 控制系统

基于单片机的机械臂,其控制系统可以实现对机械臂舵机的有效控制,具体原理为控制系统会通过发送 PWM波的方式驱动舵机工作。在这个过程中,PWM 波就是所谓的控制信号。在选择主控器型号时,需要将 PWM 波的生成作为依据。
目前,关于 PWM 信号的生成方法主要包括以下几种,分别为模拟电路生成、可编程逻辑器生成以及单片机生成,在经过综合比较后发现第三种 PWM 信号生成方法优势显著,具有良好的可靠性和性价比,故将这种方式作为选择。

1.3 控制系统的实现的功能

本文所提出的机械臂结构方案,其动力系统由单片机和舵机构成,其中单片机作为主控器,在发出控制信号后驱动舵机完成动作。这个机械臂的关节数量为四个,且每个关节转动的幅度均为 180 ° ,在舵机的驱动作用下做出夹取物件的动作。

1.4 舵机工作原理和控制方法

1.4.1 舵机组成

舵机是机械臂的重要组成装置,其设计效果会直接影响机械臂功能的实现。在查阅资料后得知,位置反馈电位计、直流电机、舵盘是舵机的主要构成,其内部还包括多条线路、除电源线和控制线外,还有输入线,这些线路在颜色上存在差异,为便于区分,故在实际设计中使电源线为红色,地线为黑色,而输入线为白色。其中地线和电源负责舵机能源的提供。舵机电源电压的规格为两种,如果转矩要求较高,则选择 7.2V 的电源电压,反之则选择 4.8V 的电压。白色输入线负责 PWM 信号的接收和传输

1.4.2 舵机的工作原理

PWM 控制信号通过信号线被舵机接收后,电机就会在信号的驱动下开始转动,在电机转动的同时,减速齿轮组会向输出舵盘传动,舵机中的反馈电位计、电位计等装置,会以 PWM 控制信号为标准对比输出电压信号,随后由控制电路板将所在位置作为依据,对电机转动方向和速度进行控制。

2 系统硬件电路设计

本文所提出的机械臂,控制系统的主控器为单片机,故单片机和电路性能与系统整体性能存在密切关联,故在设计机械臂时,必须选择合适的单片机,同时做好外围电路的设计。在综合对比后,将某科技公司生产的 STC 单片机作为主要选择,究其原因,主要是这款单片机功能先进,且兼容性和抗干扰能力较强,将其作为主要选择,可以保证机械臂的整体性能。外围电路的设计要点如下所述:

2.1 设计时钟电路

外部时钟信号以及振荡器,可以作为获取时钟源的方式。但就实际情况而言,单片机时钟源的获取方式,主要是外部输入,究其原因,主要是这种外部输入的时钟源,与振荡器相比具有灵活性方面的优势,在选择过程中可以将处理速度作为依据,从而保证所选时钟芯片的频率与处理速度相符。

2.2 设计复位电路

单片机内电路的初始化,需要依靠复位操作实现,在初始化完成后,单片机的运行状态会由未知转变为已知。以本文所设计的单片机机械臂为例,在单片机复位引脚RST 高电平时间超过 5ms 时,则表明复位操作目的达成。在电源线正式供电后,电容状态会变为充电状态,RST 也会因此进入高电平时间,这个时间由供电时长决定。此外,在单片机的正常运行阶段,工作人员将复位键开启,同样是进入高电平时间的有效方式。

2.3 设计控制器电源电路

基于单片机的机械臂控制器采用了额定电压 220V的电源,但考虑到电路需要的电压仅为 5V ,故通过变压器以及三端稳压芯片的使用,确保电源电压与电路需求的电压相符。
目前,常用的三端稳压芯片包括两个系列,第一种为正电压输出系列;另一种为负电压输出系列。所谓三端由三个引脚构成,这些引脚分别代表输出、输出和接地端。选择这种芯片作为稳压电源,其优势为应用成本低廉,且运行可靠性高,同时还具有保护电路的作用。在计算后得知,该芯片的最高输出功率仅为 7.5W ,使用一片即可满足机械臂设计要求

2.4 舵机驱动电路

实验结果表明,舵机运行对电源的要求较高,简言之,就是在设计过程中,必须为舵机设置单独的电源,以此来规避单片机和舵机相互干扰的问题。这样控制系统中的电源数量就会由一个变为两个。此外,还要选择大功率的开关电源。

2.5 设计通信电路

机械臂所选择的单片机的串行通信口数量为两个,便于计算机与单片相连接。但在实际串联时,必须要注意电平匹配的问题。如果计算机和单片机在串口电平上不匹配,需要设置电平转换电路,以起到协调串口电平的目的。针对此项问题,本设计所采取的方式为应用 MAX232 电平转换芯片。这种转换方式与传统方式相比更加先进,且较 为简便。

3 系统软件设计

3.1 编程语言的选择

在科学技术普及应用的背景下,单片机技术实现了快速发展,具体表现为相关理论日益完善,研究者数量不断增加。与之相匹配的编程语言正处在发展完善的阶段。目前 C 语言、汇编语言以及 BASIC 语言应用效果较为显著。本系统在设计过程中,所选择的编程语言为 C 语言,这种语言适用性较强,且具备丰富的数据类型和运算符号。其优点如下所述:
在编程阶段,无需对内部寄存器和存储器进行考虑,可以节省不必要的编程时间;
程序的组成部分为若干个函数,具备模块化结构的优点;
所需子程序可以被直接应用,有利于编程效率的提升;
可以与其他编程语言共同应用。

3.2 机械臂轨迹规划

在工业生产领域,工业机器人的在生产流水线上发挥了关键性的作用。机械臂作为工业机器人的一种,能够完成复杂且重复性的操作,这正是本文设计机械臂的基础。为确保机械臂能够保质保量的完成操作,需要在正式运行之前,通过编程方法的应用,对其运行轨迹进行设计和规划,促使其在实际操作阶段按照预定的轨迹运行。
为保证机械臂在运行阶段的稳定性,需要采取有效的方法,确保机械臂各关节不会在运行时产生剧烈波动。目前最常用的方法为对关节转动增量突变现象进行规避。与此同时,合理规划机械臂自由度的位置姿态,有助于实现预期的目的,通俗来讲,就是通过设定机械臂控制参数的方法,实现对自由度的有效控制。
结合上文可知,机械臂的最大转动角度为 180 ° ,而脉冲宽度最大不超过 2.5m ,与之相匹配的占空比参数为25000。故在组装阶段,必须提前对关节的转动范围进行考虑,一般情况下,如果堵转小于 10s ,则可以被舵机所接受,设计人员需要以这个数值为标准,合理调节舵机,控制堵转状态的持续时间。在初始测试阶段,所采取的测试方法最好为单独测试,简而言之,就是针对各个关节展开测试,在测试某一关节的舵机时,其他关节的舵机不能通电。然后依据测试结果,确定机械臂的初始位置。这里所说的初始位置就是指复位状态,在这个状态下,机械臂平衡性较强,便于其完成设计动作。在关节运动范围确定后,需要进行舵机运动范围中间值的设定,本文所设置的中间值为 占空比参数。实验结果表明,这种设计方法的应用,可以保障机械臂的运行质量。

4 结论

综上所述,工业机器人是科学技术融合发展的产物, 自进入信息化时代后,人类对于工业机器人的效率产生了 深刻的认识,在此背景下,逐渐加强了对机械臂控制系统 的研究。就事实而言,工业机器人的应用,在一定程度上改 变了工业生产方式,但这项研究具有周期性和复杂性的特 点,需要漫长的发展过程,仅依靠少部分研究者的力量,无 法推动这项技术的发展。因此,建议相关企业和研究机构 重视这项技术的研究和应用。

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

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

相关文章

【JAVA SE】多态

✨✨欢迎大家来到Celia的博客✨✨ 🎉🎉创作不易,请点赞关注,多多支持哦🎉🎉 所属专栏:JAVA 个人主页:Celias blog~ 目录 引言 一、多态 1.1 多态的概念 1.2 多态的实现条件 1.3…

AI未来预测

随着科技的飞速发展,人工智能(AI)已经成为了当今世界的热门话题。从自动驾驶汽车到智能家居,从虚拟助手到机器人,AI的应用已经渗透到了我们生活的方方面面。在未来,AI将会继续改变我们的生活方式&#xff0…

深入探讨 Android 的 View 显示过程与源码分析

文章目录 1. 探讨 Android 的 View 显示过程1.1. onFinishInflate1.2. onAttachedToWindow1.3. onMeasure1.4. onSizeChanged1.5. onLayout1.6. onDraw 2. 系统代码分析1.1. onFinishInflate1.2. onAttachedToWindow1.3. onMeasure1.4. onSizeChanged1.5. onLayout1.6. onDraw …

【Spring Boot】SpringBoot 下在 yml 中的 logging 日志配置

文章目录 前言输出日志的级别日志输出的位置日志输出的格式日志文件的存储路径日志文件是否输出到控制台配置Logback 配置日志分组配置日志细粒度配置【logger】 前言 logging 配置主要用于控制应用程序的日志输出行为,可以通过配置定制日志的格式、级别、输出位置…

数字化浪潮中的TPM革新:打造高效生产新范式

在数字化浪潮席卷全球的今天,传统生产管理模式正面临前所未有的挑战与机遇。TPM(全面生产维护)作为一种先进的生产管理理念,如何在数字化驱动下焕发新的活力,成为制造业转型升级的关键一环。 数字化技术为TPM带来了前…

Ubuntu禁止内核自动更新

查看当前内核版本 uname -v #35~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue May 7 09:00:52 UTC 2 uname -a Linux GKJ 6.5.0-35-generic #35~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue May 7 09:00:52 UTC 2 x86_64 x86_64 x86_64 GNU/Linux uname -r 6.5.0-35-generic 方法1&am…

EureKa是什么?

Eureka 是一个源于 Netflix 公司的开源项目,主要用于实现服务注册和服务发现的功能。它是构建分布式系统中的微服务架构的一个关键组件。下面是对 Eureka 的解释: 基本概念 Eureka 是基于 REST 的服务,主要用于管理微服务架构中的服务实例的…

探秘Flask中的表单数据处理

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言 二、Flask中的表单处理机制 三、Flask表单处理实战 四、处理表单数据的注意事项…

为什么要使用动态代理IP?

一、什么是动态代理IP? 动态代理IP是指利用代理服务器来转发网络请求,并通过不断更新IP地址来保护访问者的原始IP,从而达到匿名访问、保护隐私和提高访问安全性的目的。动态代理IP在多个领域中都有广泛的应用,能够帮助用户…

vue路由跳转之【编程式导航与传参】

vue路由有两种跳转方式 ----> 编程式与声明式,本文重点讲解vue路由的【编程式导航 】【编程式导航传参 ( 查询参数传参 & 动态路由传参 ) 】等内容,并结合具体案例让小伙伴们深入理解 ,彻底掌握!创作不易,需要的…

2023年全球DDoS攻击现状与趋势分析

天翼安全科技有限公司副总工程师、运营保障部总经理陈林表示,2023年扫段攻击频次快速增长,成为网络基础设施面临的最大威胁。为躲避防御,低速扫段攻击成为主流达到攻击总数的73.19%;43.26%的C段攻击持续时间小于5分钟,…

医疗器械企业中图纸文件防泄密使用数据透明加密系统

医疗器械行业中因为企业的技术图纸需要保密,现有的从国家层面还是社会层面到个人层面对数据安全的防护意识不断的加强,企业中需要能够防止公司研发设计的图纸文件外泄的情况,透明加密软件无疑是能够帮助企业解密数据防泄密问题的最佳解决方案…

Linux中部署MinIO

Linux中部署MinIO 下载MinIO可执行程序: wget https://dl.min.io/server/minio/release/linux-amd64/minio 添加执行权限: chmod x minio 创建存储目录,例如/data: mkdir -p /data 运行MinIO服务器,需要设置MIN…

【设计模式】JAVA Design Patterns——Factory Method(虚拟构造器模式)

🔍目的 为创建一个对象定义一个接口,但是让子类决定实例化哪个类。工厂方法允许类将实例化延迟到子类 🔍解释 真实世界例子 铁匠生产武器。精灵需要精灵武器,而兽人需要兽人武器。根据客户来召唤正确类型的铁匠。 通俗描述 它为类…

三维前端项目中用THREEWebGLRenderer于创建渲染器对象

在三维前端项目开发中,可以使用THREE.WebGLRenderer创建渲染器对象。艾斯视觉作为行业ui设计与前端开发服务商很高兴能在这里与你共同探讨:THREE.WebGLRenderer是 Three.js 库中用于将 3D 场景渲染到屏幕上的类。以下是一个示例代码,展示了如…

笔记:weblogic 12c 升级JDK

1,下载JDK 网址:https://www.oracle.com/ Oracle Technical Network ReadMe for Java SE: https://www.oracle.com/java/technologies/java-readme.html Release Notes: https://www.oracle.com/java/technologies/javase/jdk-relnotes-index.html Ja…

element中table的selection-change监听改变的那条数据的下标

<el-table ref"table" :loading"loading" :data"tableData" selection-change"handleSelectionChange"></el-table>当绑定方法selection-change&#xff0c;当选择项发生变化时会触发该事件 // 多选框选中数据handleSele…

truncate IDL_UB1$导致数据库open hang---惜分飞

在一次数据库恢复中,发现IDL_UB1$表被truncate,然后数据库在open过程中会hang住,而且不报任何错误,这里通过试验进行重现.对于这类问题,以前有过类似处理测试&#xff1a;truncate IDL_UB1$恢复试验数据库版本 SQL> select * from v$version; BANNER ---------------------…

vivado原语使用

首先介绍一下原语&#xff1a;其英文名字为Primitive。原语是Xilinx针对其器件特征开发的一系列常用模块的名字&#xff0c;用户可以将其看成Xilinx公司为用户提供的ip&#xff0c;是芯片中的基本元件&#xff0c;代表FPGA中实际拥有的硬件逻辑单元&#xff0c;如LUT&#xff0…

机器人编程课有什么东西:探索编程的奇妙世界

机器人编程课有什么东西&#xff1a;探索编程的奇妙世界 机器人编程课&#xff0c;一个充满创意与探索的领域&#xff0c;为孩子们打开了一扇通往未来科技的大门。在这门课程中&#xff0c;孩子们不仅能够学习到编程的基础知识&#xff0c;还能够亲手搭建和操作机器人&#xf…