现在,手臂已经组装好了,是时候将其提升到一个新的水平了。 现在是释放野兽并完全控制整个机器人手臂的时候了。 在这篇文章的结尾,您应该对如何对该机械臂进行编程以完成您想要的事情有一个想法。 要了解我如何到达这里,请访问我以前的文章,该文章描述了组装过程- 构建自己的机器人手臂-组装 。

你需要什么

再一次,您将需要一些额外的硬件来促进对伺服器的并行控制,并需要使用焊料来组装屏蔽层。

  • 伺服防护罩(就像我使用的Adafruit 16通道pwm斜杠伺服防护罩一样 -大约16欧元)
  • 焊锡机
  • Arduino IDE

伺服护罩

让我们从第一步开始-准备伺服屏蔽。 如果您购买了随时可用的伺服护罩,则可以随时跳过此部分。 此处的主要目的是最终完成组装后的伺服护罩,如下图所示。

订购Adafruit防护罩时,它会像这样到达,您必须自己将其焊接在一起。 如果您以前有焊接经验,那应该是小菜一碟。 如果这是您的第一个焊接项目,我建议观看一些YouTube视频,以了解如何焊接和组装Arduino屏蔽罩。 准备就绪后,请查看有关如何组装防护罩的 Adafruits教程。

准备好防护罩后,尝试将其中一个伺服器连接到它。 请记住,您需要将PWM,V +和GND引脚与伺服输出线匹配。

程式设计

要使用此屏蔽,我们需要能够以编程方式解决它。 Adafruit发布了一个库,以方便在此处使用 。 我还建议浏览库GitHub存储库 ,并查看用法示例。

研究和发展

在这一点上,需要一些研究。 目的是找到每个舵机的边缘位置或中间舵机的边缘位置,以便以后可以将它们用作参考点。 您需要尝试几个值来找到适合您的构建的最佳位置。 根据伺服规格,这些伺服的工作频率为50 Hz。 当涉及到伺服运动时,您需要检查的光谱范围是0到4096。您将得出的值是根据您组装手臂的方式得出的,因此它们可能与我的不同。

在这一点上,您可能希望利用以下简化伺服器控制的方法:

伺服写入方式

float SERVOFREQ = 50;
float pulseconstant;void setup() {pulseconstant = (1000000/SERVOFREQ)/4096;
}void servoWrite(uint8_t n, float pulse) {float pulsetick = pulse/pulseconstant;pwm.setPWM(n, 0, pulsetick);
}

对我有用的价值观如下:

  • 基本伺服

    • 左右旋转手臂
  • 高度伺服
    • 改变抓爪的高度
  • 长度伺服
    • 改变手臂的范围
  • 握把伺服
    • 打开和关闭抓手

伺服运动只是根据要移动伺服器的方向更改值的问题。

最终代码

将所有零件放在一起会得到一个像这样的简单草图。 该草图的全部目的是将手臂设置到其初始位置。

初始位置草图

#include <Adafruit_PWMServoDriver.h>Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();#define BASE 0
#define HEIGHT 1
#define LENGTH 2
#define GRIP 3float base_init = 1440;
float height_init = 1675;
float length_init = 1440;
float grip_init = 2155;float SERVOFREQ = 50;
float pulseconstant; void setup() {pulseconstant = (1000000/SERVOFREQ)/4096;pwm.begin();pwm.setPWMFreq(SERVOFREQ);servoWrite(BASE, base_init); servoWrite(HEIGHT, height_init);servoWrite(LENGTH, length_init);servoWrite(GRIP, grip_init);
}void loop() {
}void servoWrite(uint8_t n, float pulse) {float pulsetick = pulse/pulseconstant;pwm.setPWM(n, 0, pulsetick);
}

下一步是什么?

此时,您应该将机器人手臂抬起并开始操作。 鉴于您的编程能力,您可以对其进行编程以完成自己喜欢的事情。 但这还不够(至少对我而言)。 这种设置非常酷,但是缺少交互性。 因此,在我的下一个也是最后一篇名为“构建您自己的机器人手臂-远程控制”的文章中,我将探讨对手臂进行交互式控制的选项。 有多种选择,例如台式机应用程序或移动应用程序,但是由于我拥有PlayStation 4,因此我决定使用我的PS4无线控制器来控制手臂。 是的,这很有趣:)

这篇文章中使用的所有图片均来自adafruit.com 。 随时检查他们。

翻译自: https://www.javacodegeeks.com/2015/07/build-your-own-robot-arm-programming.html

建立自己的机械臂–编程相关推荐

  1. 机械臂编程_建立自己的机械臂-编程

    机械臂编程 现在,手臂已经组装好了,是时候将其提升到一个新的水平. 现在是释放野兽并完全控制整个机器人手臂的时候了. 在这篇文章的结尾,您应该对如何对该机械臂进行编程以完成您想要的事情有一个想法. 要 ...

  2. ROBO Pro的机械臂编程过程

    ROBO Pro是一种用于控制机械臂的软件,它可以使用图形化或文本化的编程方式¹².机械臂编程的过程大致如下³: 连接机械臂和电脑 打开ROBO Pro软件 选择合适的模板或创建新的项目 设计编程逻辑 ...

  3. MATLAB Robotics toolbox工具建立三自由度机械臂 借鉴了各个博客主

    clear; clc; %建立机器人模型 %定义连杆的D-H参数 %       theta    d        a        alpha     offset L1=Link([0     ...

  4. 最新!大象机器人myCobot机械臂应用于Unity人工智能机器人编程实战课

    今年5月,Unity作为全球最大的虚拟现实与人工智能开发平台,联合大象机器人推出基于myCobot机械臂的人工智能机器人编程实战课(国际课程). Unity 是全球领先的实时3D互动内容创作和运营平台 ...

  5. matlab机械臂工作空间代码_轻型协作机械臂运动学及工作空间分析

    0 引言 OUR机械臂有别于传统工业机械臂,其特点是体积小.重量轻.有很快的运动速度和较大的活动范围,机械臂的最大运动速度可以达到180°/s,能够处理更复杂.更危险的工作,具有极强的灵活度.精确度和 ...

  6. 基于Ethernet KRL,上位机C#通过TCP/IP与KUKA库卡机械臂通讯Demo

    目录 0.引言: 1.本文使用的相关软硬件或产品: 2.一些注意事项: 2.1.涉及到的一些概念: 2.2.配置以太网连接以及以及发送接收结构: 2.3.上位机应当如何传输: 2.4.通过smartH ...

  7. 用matlab和RTB做二连杆机械臂动力学建模

    文章目录 写在前面 二连杆机械臂 RTB建模 仿真与验证 源代码 写在前面 本文使用的工具为matlab以及Peter Corke的RTB(Robotics Toolbox).基于RTB 10.3.1 ...

  8. matlab adams 机械臂,基于ADAMS与MATLAB/SIMULINK的二杆机械臂动力学仿真与验证

    川七 一 , , , 乓 基于 与 的二杆机械臂动力学仿真与验证 贾雪峰' , 宋洪军' , 荣学文 , 李贻斌 山东农业大学机械与电子工程学院 , 山东泰安 , 一 ] 」 山东大学控制科学与工程学 ...

  9. 中正平和的机器人学笔记——1. 机械臂正运动学(附MATLAB代码)

    中正平和的机器人学笔记--1.正运动学 0. 何为运动学?何为正运动学? 运动学主要研究的就是机械臂的运动特性(位置.速度.加速度等),但是不考虑使机械臂产生运动时施加的力和力矩(这部分是动力学).而 ...

最新文章

  1. python opencv 灰度图非局部平均去噪
  2. spring中的JdbcTemplate——JdbcTemplate的最基本用法
  3. VTK:InfoVis之TreeMapView
  4. html登录注册的正则,怎么用html5编写用户注册验证程序
  5. 第5章 Python 数字图像处理(DIP) - 图像复原与重建14 - 逆滤波
  6. 拼凑 牛客练习赛70
  7. VBoxManage: error: Failed to create the host-only
  8. nginx Alphabetical index of variables
  9. R语言如何处理数据的列中存在多个元素的问题
  10. Atitit 项目风险管理 目录 1. 技术分险 2 1.1. 全面跟随大公司解决方案 2 1.2. 过度设计 2 1.3. 可读性 扩展性不足 2 1.4. 教条僵化 2 1.5. 技术方案超出了
  11. 如何配置php session使用redis集群
  12. html 好看的英文字体,23款网页设计师必备:经典私藏英文字体
  13. 建站之星检测不到mysql_建站之星安装,建站之星安装教程 | 帮助信息-动天数据...
  14. TopJUI Combobox onSelect 事件失效BUG
  15. TCP接收到重叠数据(overlap)后的行为解析-附带一个有关Delay ACK和超时重传的优化
  16. 葡萄城报表模板库再次更新!补充医院Dashboard及房地产销售行业报表
  17. linux版qq怎么传文件,QQ for linux终于能在线传送文件了~
  18. VirtualDub在处理WMV文件时显示“MISSING CODEC”怎么办
  19. SSID、BSSID、ESSID的区别
  20. HDU-6468 zyb的面试(模拟十叉树+dfs)

热门文章

  1. 变位词的多种判断方法
  2. day fit into much one too_2018年广东省高考英语听说考试真题A-E(附答案)
  3. 《熟练掌握OpenCV----实用计算机视觉工程案例》第5章 车牌号码识别
  4. java数据结构和算法——图的广度优先(BFS)遍历
  5. 「 LaTex 」 写论文,插入图片方法
  6. 查询主机名对应的IP地址-C语言
  7. 亚马逊的规则你知道多少
  8. DHU Matlab Experiment【2】作业记录_第三章、第四章
  9. Lingo的基础语法(一)
  10. 图解Stm32使用jlink下载程序时jtag接口(SW和JTAG模式)的简化方法