热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

嵌入式linux机械臂,一款基于ARM嵌入式的机械臂的设计与实现

吴家合张玉薇朱庆红蓝祝愿方敏摘要:机械臂在当今的医疗、工业等方面起着重要作用,为使机械臂更加适用、灵活、易于控制,基于ARM,

吴家合 张玉薇 朱庆红 蓝祝愿 方敏

d5324820fe90ded23e6e4a5e2dfe2f8f.png

7cd692f3c7b0b26ca58faa92cc38e1a3.png

摘要:机械臂在当今的医疗、工业等方面起着重要作用,为使机械臂更加适用、灵活、易于控制,基于ARM,通过依赖于ARM架构与ESP8266WiFi模块以及各种模块,实现机械臂的动作以及对物件的抓持。利用DsP算法使采集的信号转换为PWM控制信号,采用消抖算法,从而达到械臂在运行中的高稳定性。本机械臂可提升控制精度以及灵活性、机械臂与程序功能的融合。

关键词:机械臂;ARM;灵活性;控制

中图分类号:TP393 文献标识码:A 文章编号:1007-9416(2020)05-0137-02

机械臂是一种可以通过编译软件程序来完成的自动设备,它渐渐具备了有人的视觉以及判断能力。在工作的过程中,机械臂的控制的准确性和对环境的适应性,使其在各个领域都有着广阔的发展前景。特别是高级的机械臂,可以执行更加复杂的任务。机械臂是当今科研领域及工业领域的研究前沿和热点,兼有人行为意识和机械手的作业效能,因此在军事、医疗、空间、工业等领域有着广泛的应用前景。在国外,工业机器人的发展已经较为成熟,并且得到了非常广泛的应用,在国内,机械臂的设计还处于—个模仿的阶段。目前在机械臂的应用中,对于机械还的操控多为按键控制或者需要多个控制杆来控制一个机械臂的运动,其设计繁琐,操作复杂,给操作者使用带来很大不便。针对上述问题,侧重研究基于ARM的机械臂,旨在提升机械臂的传输信息实时性与控制精度以及灵活性,促进机械臂与程序功能的融合。

1系统功能分析

系统以ARM微型处理器架构为核心,以MG996R金属数字舵机、舵机驱动板PCA9685芯片、MMA7361三轴加速度传感器为主要外围元件,经A/D转换控制芯片采集相应的数字量信号,并编写控制算法程序调节输出PWM波的占空比,进而实现控制相应舵机运动的目的。通过CPU控制、三轴加速传感器对数据的采集以及消抖算法,使得机械臂的运行变得更加的稳定与协调,实现机械臂的灵活传动与自由制动。进而实现处理器架构与各模块之间功能。

2系统功能模块设计

在系统中,拟选择ARM作为主控单元,ARM可以使PwM信号的脉冲宽度实现微妙级的变化,从而提高舵机的转角精度。此舵机驱动板使用PCA9685芯片是16通道12bit,PWM舵机驱动,用两个引脚通过12C就可以驱动16个舵机。通过级联的方式最多级联62个驱动板,增强可扩展性,此外还解决驱动电路和控制电路隔离的问题。ARM再完成消抖控制算法,再将计算结果转化为PWM信号输出到舵机,由于单片机系统是一个数字系统,其控制信号的变化完全依靠硬件,所以受外界干扰较小,整个系统的工作性可靠,其原理框图如图1、图2所示。

系统利用触摸屏与串口通讯实现编译程序对机械臂的控制,实现操作者所输入编码的要求。再次根据机械臂控制系统的设计结构,以CPU为核心进行个模块问的总体设计,然后重点以协调为核心进行协控制器的功能和结构设计,分以下部分:舵机控制器模块、数据采集模块,并采用加速傳感器、仿真、已至加以实用。

3机械臂的软件设计

基于ARM的机械臂的软件测试,编译的主要环境是Windows7,选用的编程软件是KEIL5,通过输入一些关键的软件代码,通过串口烧录入硬件,实现我们的需要的功能。每一个模块都应该有一个属于自己模块的程序流程图,这样才能十分清晰的完成编译的目的,达到功能实现的效果。机械臂的主控制程序流程图详见图3所示。

4结语

基于ARM的机械臂综合多方的技术进行整合,依靠ESP8266 WiFi模块以及其他辅助模块,通过DSP算法使采集的信号转换为PWM控制信号,采用消抖算法,实现了机械臂的动作以及对物件的抓持机械臂夹持力度、通过算法保证工作的稳定性、提升控制精度以及灵活性、机械臂与程序功能的融合,以此达到其功能的实现。



推荐阅读
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 解决Linux系统中pygraphviz安装问题
    本文探讨了在Linux环境下安装pygraphviz时遇到的常见问题,并提供了详细的解决方案和最佳实践。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 解决PHP与MySQL连接时出现500错误的方法
    本文详细探讨了当使用PHP连接MySQL数据库时遇到500内部服务器错误的多种解决方案,提供了详尽的操作步骤和专业建议。无论是初学者还是有经验的开发者,都能从中受益。 ... [详细]
  • CMake跨平台开发实践
    本文介绍如何使用CMake支持不同平台的代码编译。通过一个简单的示例,我们将展示如何编写CMakeLists.txt以适应Linux和Windows平台,并实现跨平台的函数调用。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本章将深入探讨移动 UI 设计的核心原则,帮助开发者构建简洁、高效且用户友好的界面。通过学习设计规则和用户体验优化技巧,您将能够创建出既美观又实用的移动应用。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
author-avatar
儒志楼
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有