基于单片机和 Arduino 平台的六自由度可控机械手臂

news2024/11/18 15:28:37
摘 要 : 为了降低机械手臂的设计开发难度 并使之尽早地投入应用 设计一种基于单片机和 Arduino 平台的六自由度可控机械手臂 。提出六自由度可控机械手臂的控制方案, 给出机械手臂控制系统的结构框图 详细设计六自由度可控机械手臂的硬件系统和软件系统, 给出关键参数的计算过程和计算结果 最后 设计制作可控机械手臂实物 并利用机械手臂书写 ( 绘制 ) 大写字母“M ”。 设计过程与实物应用效果表明 : 基于单片机和 Arduino 平台的六自由度机械手臂具有实际的应用价值
关键词 : Arduino 平台 ; 机械手臂 ; 六自由度 ; 单片机 ; 实物制作

0 引 言

目前机械手臂是机器人技术领域的重要发展方向 也是得到最广泛实际应用的自动化机械装置。 机械手臂可用于汽车制造等自动化制造行业, 还可用于商业 农业 医疗 救援等各个领域 。但是, 因机械手臂的功能针对性强和售价高昂 使其很难应用于普通场合。
开源硬件的发展 尤其是 Arduino 技术平台的迅猛发展 使开发设计人员更容易进入机械电子学这个精彩的领域。 Arduino 是一款便捷、 灵活 容易使用的开源电子原型平台 它包含硬件 ( 各种型号的 Arduino ) 和软件 ( Arduino IDE ) Arduino 的硬件原理图、 电路图、 IDE 软件及核心库文件都是开源的 允许开发者根据自己的设计思想进行改进调整。
基于开源性硬件与软件的思想 本文综合 Arduino 单片机和机械臂的理论与技术, 设计制作基于 Arduino 平台的六自由度可控机械手臂。 通过对机械手臂各个关节的精确控制 实现机械手臂六个自由度的调整控制。 该可控机械手臂可以模仿人的手臂 ,通过编程实现简单的动作, 可作为实验教学演示平台 或者在生活中应用        。

1 机械手臂控制方案设计

机械手臂是一种具有高度能动性和高度灵活性的自动化机器, 它是机电一体化设备的典型代表之一 因此 机械手臂由机械系统和电气系统两大部分组成。机械手臂的机械系统部分由机械连杆、 旋转关节等单元串联连接而成, 形成串联式开链结构 关节的作用是使相互联接的两个连杆产生相对运动。 机械手臂的各关节轴线相互平行或垂直 。机械手臂的电气系统部分就是其控制系统部分, 它由单片机系统、 舵机控制板 舵机系统等单元组成 如图 1 所示
单片机系统包括主控制器 复位电路 晶振电路 按键电路 、电源模块等部分, 负责发出机械手臂的控制命令
舵机控制板为采用 Arduino 平台的开源硬件电路板 可用于二次开发。 舵机控制板负责接收单片机系统发出的控制指令 并将信号放大以驱动各个舵机。舵机系统包括底座舵机、 肩关节舵机 肘关节 1 舵机 肘关节2 舵机 腕关节 1 舵机 腕关节 2 舵机等六个舵机 分别用于模拟执行机械手臂的动作。 舵机系统中的六个舵机可分别进行控制 ,进而完成机械手臂六个自由度的调整控制。

2 机械手臂控制系统硬件设计

2. 1 控制系统硬件设计概述

机械手臂控制系统主要由主控制器系统 ( 单片机系统 ) 舵机控制板、 舵机系统等单元组成 其中 为充分发挥 Arduino 开源硬件电路板的技术开放优势和设计制造优势, 采用直接从 Arduino 平台开发公司购买基于 Arduino 平台的舵机控制板 在此基础上 进行二次开发设计, 因此本设计的主要内容集中于主控制器系统 ( 单片机系统) 和舵机系统

2. 2 主控制器系统

主控制器系统模块由主控制器 ( 单片机 ) 复位电路 晶振电路、 按键电路 电源模块等部分组成 它是机械手臂控制系统的核心控制装置。
在本设计中 主控制器选用 80C51 型号的单片机 单片机的XTAL1、 XTAL2 端口之间接石英晶体振荡电路 ; RST 端口接复位电路; P0. 0 ~ P0. 7 端口经上拉电阻接 LCD 显示器 LM016L 用于显示发送指令代码的内容。

2. 3 舵机控制板

舵机控制板用于接收单片机系统发出的控制指令 并将控制指令放大编码后控制舵机, 从而带动机械手臂产成相应的动作 。为充公发挥 Arduino 开源硬件电路板的技术开放优势和设计制造优势, 本设计采用直接从 Arduino 平台开发公司购买设计制作完成的舵机控制板。
舵机控制板是一个从机 即它只能接受命令 或者执行事先设置好的命令。 需要使用单片机给舵机控制板发送命令 从而通过舵机控制板来控制舵机。

2 所 示 为所购 买 的 舵 机 控制板。 舵 机 控 制板的右上角 RXD 、TXD、 GND 三个接口分 别 与 单 片 机的 TXD RXD 、GND 三 个 端 口 相连, 用于接收单片机系 统 发 出 的 控制指 令。舵 机 控制板的 S1 ~ S32 组合端口分别用于连接 32 个舵机 每个组合端口中的 + S三个端口分别用于连接每个舵机的电源正极、 电源负极、 信号控制极

2. 4 舵机系统

舵机系统共由六个舵机组成 分别控制机械手臂的六个自由度。 本设计采用的舵机型号为 LF - 20MG 如图 3 所示 该型号的舵机为直流电动机, 工作电压为直流 4. 8 V ~ 6. 6 V 该型号的舵机可以提供的扭矩范围为 1. 62 N · m ~ 1. 96 N · m 能够支持机械手臂完成相应动作所需要的扭矩。

3 机械手臂控制系统软件设计

3. 1 控制系统软件设计概述

机械手臂控制系统软件设计的主要任务是 : 根据机械手臂的实际动作要求, 单片机系统编写相应的动作指令 并将动作指令发送给舵机控制板, 通过舵机控制板控制各个舵机 进而完成机械手臂的相应动作。
现以机械手臂书写 ( 绘制 ) 大写字母 M 为例 机械手臂控制的程序流程为:
( 1 ) 单片机上电初始化
( 2 ) 设置单片机与舵机控制板之间通信端口的参数
( 3 ) 计算机械手夹紧动作时各个舵机所需的旋转角度 设置并输出机械手夹紧动作组。
( 4 ) 大写字母 M 的第 1 笔画为 右上长直线 计算书写(绘制 ) 1 笔画时各个舵机所需的旋转角度 设置并输出机械手臂第 1 笔画动作组
( 5 ) 大写字母 M 的第 2 笔画为 右下短直线 计算书写(绘制 ) 2 笔画时各个舵机所需的旋转角度 设置并输出机械手臂第 2 笔画动作组
( 6 ) 大写字母 M 的第 3 笔画为 右上短直线 计算书写(绘制 ) 3 笔画时各个舵机所需的旋转角度 设置并输出机械手臂第 3 笔画动作组
( 7 ) 大写字母 M 的第 4 笔画为 右下长直线 计算书写(绘制 ) 4 笔画时各个舵机所需的旋转角度 设置并输出机械手臂第 4 笔画动作组
( 8 ) 计算机械手释放动作时各个舵机所需的旋转角度 设置并输出机械手释放动作组。

3. 2 单片机串行通信端口的参数计算

在机械手臂控制系统中 主控制器 ( 单片机 ) 与舵机控制板之间采用串行通信方式。 通信协议规定为 : TTL 电平 波特率9 600 bps、 无校验位 、8位数据位、1 位停止位。为完成上述的通信协议, 需要计算串行端口定时器初始值 ,其计算公式为:
式中 X 为定时器初始值 ; n 为定时器的位数 ; Baud 为串行接口通讯的波特率; SMOD 为串行端口控制寄存器 PCON 的最高位; f OSC 为单片机的时钟频率
当选择定时器为 8 串行端口通讯的波特率为 9 600 bps 、串行端口控制寄存器 PCON 的最高位为 1 单片机的时钟频率为11. 059 2 MHz 时 定时器初始值的计算结果为 :

3. 3 单片机串行通信端口的程序编制

编制的单片机串行通信端口初始化程序为 :
void UartInitialization ( )
{
SCON = 0x50 ; / /8 位异步串行通信口 模式 1
PCON | = 0x80 ; / / SMOD =
1
TMOD | = 0x20 ; / / 定时器 1 模式 2
8
位重装
TH1 = 0xFA ; / / 定时器初始值高 8
TL1 = 0xFA ; / / 定时器初始值低 8
IE | = 0x90 ; / / 允许串行中断
TR1 = 1 ; / / 启动定时器 1
EA = 1 ; / / 允许所有中断
}

3. 4 舵机角度控制设置值的计算

需要通过主控制器 ( 单片机 ) 设置舵机角度控制设置值 舵机角度控制设置值与舵机角度实际位置值之间的运算关系为:
式中 A x 为舵机角度控制设置值 ; A 0 为舵机角度控制设置值的下限; A m 为舵机角度控制设置值的上限 ; N x 为舵机角度实际位置值; N 0 为舵机角度实际位置值的下限 ; N m 为舵机角度实际位置值的上限。
当舵机角度控制设置值的下限和上限分别为 500 2 500 、舵机角度实际位置值的下限和上限分别为 0 度和 180 度时 若使舵机角度实际位置值为 90 则应在单片机程序软件中的舵机角度控制设置值的计算结果为:

3. 5 舵机角度控制设置值的程序编制

单片机需要通过舵机控制板来控制舵机的运动 在单片机中, 舵机角度控制设置值的编程格式为 ( 以控制单个舵机为例 ) :#1P1500T100 \r\n其中, 数据 1 是舵机的通道 ; 数据 1 500 是舵机角度控制设置值( 表示舵机的旋转角度 ) , 其范围为 500 ~ 2 500 ; 数据 100 是执行的时间, 其范围为 100 ms ~ 9 999 ms 。编制的单片机控制舵机角度的程序为:
void main ( )
{
UartInitialization ( ) ; / / 串行通信端口初始化
UartSendString ( " #1P1500T100 \ r \ n" ) ; / / S1 号舵机在时间
100ms 内旋转 90
while ( 1 ) ;
}
void UartSendString ( uchar * pStr ) / / 串行通信端口发送一个
字符串
{
while ( * pStr ! = 0 )
{
SBUF = * pStr + + ;
while ( TI = = 0 ) ;
TI = 0 ;
}
}

4 实物制作

为验证基于单片机和 Arduino 平台的六自由度可控机械手臂设计方案的正确性和可行性, 设计制作了六自由度可控机械手臂的实物。
基于单片机和 Arduino 平台的六自由度可控机械手臂的实物如图 4 所示 图中展示了利用该机械手臂书写 ( 绘制 ) 大写字母“M 的过程和结果。

5 结束语

为降低复杂机械手臂的设计难度和开发难度 快速开发设计简单高效的可控机械手臂, 本文设计一种基于单片机和 Arduino平台的六自由度可控机械手臂。 在该机械手臂控制方案中 通过购买基于 Arduino 平台的舵机控制板 充分发挥了 Arduino 开源硬件电路板的技术开放优势和设计制造优势。 在此基础上 利用单片机系统作为控制系统的控制核心, 快速完成六自由度可控机械手臂的方案设计、 硬件开发 软件编程和实物制作的全过程
特别地 为了验证可控机械手臂设计方案的正确性和可行性, 设计制作了基于单片机和 Arduino 平台的六自由度可控机械手臂的实物, 并利用该机械手臂实物书写 ( 绘制 ) 大写字母 M ”。设计过程与实物应用效果均表明: 基于单片机和 Arduino 平台设 计制作六自由度可控机械手臂, 可以降低机械手臂的设计开发难度, 达到快速应用机械手臂的目的 是一种有效的开发设计途径 。在校本科学生参与了可控机械手臂的设计过程和本论文的写作过程, 提高了学生将理论知识应用于实践开发的能力 也培养了学生的科技创新能力。

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

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

相关文章

《UDS协议从入门到精通》系列——图解0x35:请求上传

《UDS协议从入门到精通》系列——图解0x35:请求上传 一、简介二、数据包格式2.1 服务请求格式2.2 服务响应格式2.2.1 肯定响应2.2.2 否定响应 三、通信示例 Tip📌:本文描述中但凡涉及到其他UDS服务的,将陆续提供链接跳转方式以便快…

Power BI可视化表格矩阵如何保持样式导出数据?

故事背景: 有朋友留言询问:自己从Power BI可视化矩阵表格中导出数据时,导出的表格样式会发生改变,需要线下再手动调整,重新进行透视组合成自己想要的格式。 有没有什么办法让表格导出来跟可视化一样? Po…

pd虚拟机 Parallels Desktop 19 for Mac 破解版小白安装使用指南

Parallels Desktop 19 for Mac 乃是一款适配于 Mac 的虚拟化软件。它能让您在 Mac 计算机上同时运行多个操作系统。您可借此创建虚拟机,并于其中装设不同的操作系统,如 Windows、Linux 或 macOS。使用 Parallels Desktop 19 mac 版时,您可在 …

编译正则表达式模式re.compile

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 编译正则表达式模式 re.compile [太阳]选择题 根据给定的Python代码,哪个选项是正确的? import re pattern re.compile(r\d) print(f"【显示】pattern{patter…

eBPF 如何塑造 Linux 和平台工程的未来

当Docker 于 2013 年突然出现时,Linux 容器似乎一夜成名。但容器(以及微服务和Kubernetes)的演变实际上是基于 Linux 操作系统中的内核原语而进行的,历时数十年。 Docker 使用这些原语(即 cgroups 和命名空间&#xf…

前端框架中的前端安全性(Front-end Security)

聚沙成塔每天进步一点点 本文回顾 ⭐ 专栏简介前端框架中的前端安全性(Front-end Security)1. 引言2. 常见的前端安全威胁2.1 跨站脚本攻击(XSS)2.1.1 防御措施 2.2 跨站请求伪造(CSRF)2.2.1 防御措施 2.3 …

YOLOv8改进 | 添加注意力篇 | 结合Mamba注意力机制MLLA助力YOLOv8有效涨点(全网独家首发)

一、本文介绍 本文给大家带来的改进机制是结合号称超越Transformer架构的Mamba架构的最新注意力机制MLLA,本文将其和我们YOLOv8进行结合,MLLA(Mamba-Like Linear Attention)的原理是通过将Mamba模型的一些核心设计融入线性注意力…

【毛毛虫案例-拖拽 Objective-C语言】

一、这个毛毛虫案例啊,是这个样子的, 1.首先,你这个脑袋,这个蓝色的脑袋,它是可以拽起来的, 下面的红色球,一个一个中心点之间,相互去附着, 其他的红色球,是拖不起来的, 只有这个蓝色的东西,可以拽起来,这个蓝色的View,还有重力, 这个蓝色的View,我在拖动它…

Spring底层原理之proxyBeanMenthod实例 动态代理 反射 Bean的拦截

proxyBeanMenthod 假设我们要进行一个系统的二次开发 然后第一次开发我们实用的是XML声明bean 二次开发的时候要用注解 我们如何把bean都加载上来呢 我们首先创建一个全新的配置类 package com.bigdata1421.config;public class SpringConfig32 { } 我们创建一个APP 加载…

R语言数据分析案例37-旅游景点聚类分析

一、研究背景 近年来,随着旅游业的迅猛发展,旅游景点的竞争日益激烈。如何在众多景点中脱颖而出,吸引更多游客,成为各大景点管理者关注的焦点。通过对旅游景点进行深入的数据分析,可以帮助管理者更好地了解景点的优势…

HashMap第5讲——resize方法扩容源码分析及细节

put方法的源码和相关的细节已经介绍完了,下面我们进入扩容功能的讲解。 一、为什么需要扩容 这个也比较好理解。假设现在HashMap里的元素已经很多了,但是链化比较严重,即便树化了,查询效率也是O(logN),肯定没有O(1)好…

最新MDYS14源码影视视频网站模板/苹果CMS系统/附搭建教程

最新MDYS14源码影视视频网站模板/苹果CMS系统/附搭建教程 基本介绍: 1、后台增加自定义参数,对应会员升级页面,以及积分充值 2、视频,演员,专题,收藏,会员系统模块齐全,支持子分类…

本地读取classNames txt文件

通过本地读取classNames,来减少程序修改代码,提高了程序的拓展性和自定义化。 步骤: 1、输入本地路径,分割字符串。 2、将className按顺序放入vector容器中。 3、将vector赋值给classNmaes;获取classNames.size(),赋值给CLASSES;这样,类别个数和类别都已经赋值完成。…

阀门盘根的介绍

盘根(编制盘根)(packing)也叫密封填料,通常由较柔软的线状物编织而成,通常截面积是正方形或长方形、圆形的条状物填充在密封腔体内,从而实现密封。填料密封最早是以棉麻等纤维塞在泄漏通道内来阻止液流泄漏…

牛客挑战赛75 D. 不存在的玩家(sg图dp)

题目 思路来源 灵茶山群群友 https://blog.csdn.net/Code92007/article/details/110354429 题解 其实想了想,和20年小米邀请赛决赛这个G题的dp思路是一样的,姑且称为sg图dp吧 按sg值从大到小dp,每次补上全局sg值-1的这些点, …

XML简介XML 使用教程XML的基本结构XML的使用场景

学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把手教你开发炫酷的vbs脚本制作(完善中……) 4、牛逼哄哄的 IDEA编程利器技巧(编写中……) 5、面经吐血整理的 面试技…

VCS编译bug汇总

‘typedef’ is not expected to be used in this contex 注册前少了分号。 Scope resolution error resolution : 声明指针时 不能与类名同名,即 不能声明为adapter. cannot find member "type_id" 忘记注册了 拼接运算符使用 关键要加上1b&#xff0…

开发板以电脑为跳板连接互联网

标题 开发板以电脑为跳板连接互联网网络共享方式桥接方式 开发板以电脑为跳板连接互联网 分享下用网线直连电脑的开发板如何以电脑为跳板连接互联网的两个方法。 网络共享方式桥接方式 补充下,我的电脑连接的是无线网络,开发板和电脑是用网线进行连接的…

Microsoft Teams新版升级或安装方法

Microsoft Teams作为一款国际化公司会议软件,在2024年7月1日起不再支持经典版本,提示升级New Teams。 由于New Teams官网提供的Windows系统安装包并不是传统的可执行文件MSI,EXE等,而是新型封装的MSIX格式,无法直接双击…

Vitis IDE 艰难切换--从传统 Vitis GUI 到 2024.1 统一软件界面

目录 1. 简介 2. 界面展示 2.1 启动方式 2.2 Settings 对比 3. 创建 HLS 工程 3.1 选择 HLS 组件 3.2 名称和路径 3.3 创建配置文件 3.4 选择综合源文件和TestBench 3.5 选择硬件平台 3.6 配置Clock和Flow 3.7 查看摘要 3.8 新建组件完毕 4. 总结 1. 简介 Vitis…