Arduino设计记录位置的自动机械臂

  • 想直接下载代码或者查看详细文字/图片描述的请划到最底直接下载哦!
  • 附件下载:

想直接下载代码或者查看详细文字/图片描述的请划到最底直接下载哦!

一、摘要
本设计通过arduino单片机和网上购买的机械臂零件设计一个手柄操控自学习机械臂模型,通过记录机械臂移动的位置进行重复的指定位置抓取放置操作,以简化更新机械臂数据或调试机械臂的过程。
报告通过对机械臂运动分析,和程序设计思路的叙述来对设计过程进行描述,比较详细展现构思过程和思考逻辑。
二、前言
本次设计实验使用arduino单片机进行设计,Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。由一个欧洲开发团队于2005年冬季开发。本次设计使用的具体型号为uno r3 国产版本,Arduino Uno是一款基于ATmega328P的微控制器板。它有14个数字输入/输出引脚(其中6个可用作PWM输出),6个模拟输入,16MHz晶振时钟,USB连接,电源插孔,ICSP接头和复位按钮。只需要通过USB数据线连接电脑就能供电、程序下载和数据通讯。
通过机器人基础的课程学习,我了解到关于机械臂一些跨学科的基础,因此想通过机械臂与单片机的结合进行一次实验设计,以加深对机械臂的理解,并且运用机械臂。因此,自学习机械臂的想法油然而生,自学习主要是针对机器的记录与学习提出的说法。成熟的自学习系统(self-learningsystem)能模仿生物学习功能,它能在系统运行过程中通过评估已有行为的正确性或优良度,自动修改系统结构或参数以改进自身品质的系统。
本次设计打算利用代码的记录功能简单的模拟机械臂的自学习功能,因此设计比较简单,用途不具备广泛性。但由于arduino的优势和开源,这也会是一个比较容易发展的系统。最主要的是,这次设计能够让我初步理解机械臂的运动,走出课堂学习,进行实践。
三、硬件系统搭建与组装
机械臂的套件购买于淘宝网站,材料是亚克力塑料,使用了四个舵机,所以是一个四自由度的机械臂。以下展示组装过程:

(1)舵机复位
购买回来的舵机轮轴角度不一样,需要手动进行调节。首先向左旋转到尽头,然后横向安装如图扇翼,旋转到90°既垂直位置,调节完毕。
(2)底盘舵机的安装
底盘负责带动机械臂上半部分的转向,舵机跟地面方向平行,如图所示。
底盘的拼接零件 大,复杂度小,因此过程很快。
(3)后臂的安装
后臂驱动舵机和前臂驱动舵机如图所示在机械臂的两侧,方向垂直于水平面,用于带动机械臂垂直方向的运动。
(4)连接前臂舵机
前臂左边的杆跟左边的舵机进行连接,旋转点落在后臂顶端,舵机通过后臂与结点连杆对前臂进行带动控制。
(5)安装机械爪
机械爪由一个舵机控制,舵机通过齿轮结构带动爪子张开闭合,安装过程需要注意螺丝长度与规格,并且不能上太紧,同时检测舵机角度是否已经调到合适位置。预计爪子闭合舵机角度90°,爪子张开,舵机角度0°。
(6)拼接前臂、后臂和机械爪
连接舵机上半身的三个结构,形成平面上的3自由度机械臂,旋转舵机,查看是否出现阻塞问题或部位太紧的问题。
(7)拼接机械臂与底盘
把舵机上半部分连接底盘,形成3维4自由度的机械臂,同时装上负责驱动的arduino板,扩展版和电池。
至此,机械臂硬件组装完成。
五、简单自学习系统开发设计
(1)系统设计目标
简单自学习系统要求机械臂能够记录夹取物体的位置和放置物体的位置,并且根据记录的两个位置完成夹取和放置工作。假设接近地面的位置会有其他物体阻挡,应当尽量避免与这些物体发生碰撞。本系统假设地面所处平面上方基本没有障碍,机械臂抬高后可以无障碍运动。
完成自学习功能,首先要让机械臂完成两点位置的记录。然后根据位置开启自动移动功能。完成抓取与放置流程。这个过程需要规划路线,尽量避免贴着低水平面移动机械臂,因为这样会发生触碰目标物体或者别的障碍物的风险。设计机械臂按照底盘、前臂、后臂、爪子的顺序进行移动,这样可以避免与路径上的物体发生碰撞。同时在移动之前再次抬高机械臂(后臂、前臂的顺序),避免与低水平面物体发生碰撞。如图ABC路径为机械臂移动的大致路径。

设计过程考虑位置记录方法,考虑以机械臂底盘为O点建立坐标系,但是空间坐标计算过于复杂,时间有限无法实现,因此直接采用舵机角度的位置记录方法,例如旋转到左边30°,后臂垂直位置向前倾45°,前臂左向下60°抓取一个物体,则如图所示(2D平面,地盘旋转角度没有画出,只分析了机械臂上半身的运动),记录(底盘舵机120°,后臂舵机135°前臂舵机)。
(3)简易自学习系统存储数据结构
记录机械臂4个舵机的各种状态,需要一个大小为4的数组,每个舵机需要记录旋转范围(最小,最大),记录当前角度,记录初始状态角度,记录舵机当前运行方向至少5个数据量,因此需要一个4X5大小的数组对舵机的数据进行存储。
简易自学习需要记录机械臂的抓取位置和放置位置,既记录两次4个舵机的角度,需要一个2X4的数组。
考虑到爪子只是一开一合(0-90),因此可以适当去掉关于爪子角度的存储。
(4)机械臂控制移动实现设计
前期系统采用手柄移动控制机械臂运作,手柄由左摇杆和右摇杆组成,左遥感左右控制底盘左右移动,上下控制后臂上下移动,右摇杆左右控制爪子张开闭合,上下控制前臂上下移动。前臂的上下移动对应舵机角度的增加减少,前臂舵机移动角度范围为(0-120),后臂上下移动对应舵机角度的增加减少,前臂舵机移动角度范围为(0-100),底盘左右移动对应舵机角度的增加减少,前臂舵机移动角度范围为(0-180),爪子舵机移动范围(0-90),张开对应角度减少,闭合对应角度增加。
进行手柄控制移动时,首先检测当前时刻下手柄按键,并且以此更改各个舵机所记录的方向(可以是静止)。然后根据舵机记录的移动方向逐个移动舵机,每次移动2°,大概没几十毫秒检测并移动一次,在手柄控制模式达到所有自由度同时控制移动的效果。
(5)简易学习后自移动实现设计
在手柄控制模式下,第一次按下左遥感记录第一个位置,并认定为抓取位置,第二次按下记录为第二个位置,认定为放置位置。
按下第二次左摇杆后进入自动模式,会按照上述设计的机械臂移动顺序自动重复进行抓取和放置,代码设计只需要for循环按照顺序进行并移动到记录位置即可。移动过程的程序设计非常的简介且死板,具体可查看附件处代码文件。
自动过程中手柄动作无效,除了右摇杆的按下设计为外部中断,该中断处理函数设置标志位让遥感执行完本次自动抓取放置后停止操作变回手柄控制模式。
八、附录
(1)CAD绘图文件
CAD文件夹中的绘图,需要用CAD软件打开

(2)arduino代码文件
Arm文件夹中的是VS2017项目,可以用VS2017打开,其中Arm.ino是arduino专用的代码文件,可以用写代码的软件打开。

(3)机械臂演示视频
演示机械臂操作流程的录制视频。

附件下载:

百度网盘下载 提取码:c2q3

Arduino设计记录位置的自动机械臂相关推荐

  1. Arduino开发板DIY简易机械臂

    目录 简介 接线图 Arduino代码 总结 原文链接:https://www.yourcee.com/newsinfo/2928597.html 简介 机械臂由Arduino,舵机和MeArm硬件组 ...

  2. 带有真空抽吸泵的Arduino机械臂

    带有由Arduino控制的真空抽吸泵的机械臂. 机械臂具有钢制设计,并且已完全组装. 机械臂上有4个伺服电机. 有3个高扭矩和高质量的伺服电机. 在这个项目中,展示了如何使用Arduino用4个电位器 ...

  3. matlab 做机械臂控制系统,用MATLAB和Simulink高效设计机械臂算法|小迈步之系统仿真(二)...

    机械手能模仿人手和臂的动作功能,用以固定程序抓取.搬运物件或操作工具的自动化装置.机械手是最早出现的工业机器人,也是最早出现的现代机器人,它可代替人的繁杂劳动以实现生产的自动化,能在艰苦危险的环境下操 ...

  4. 基于STM32F103双轴机械臂完整电路板设计

    ➤01 机械臂设计   在 基于STM32对于三轴机械臂控制器设计 设计了机械臂的控制电路板.采用了双板分开设计方式.并分别进行了如下的测试:   1. 对于STM32F103三轴机械臂控制器进行基本 ...

  5. 双轴机械臂位置闭环控制:STC8H1K28,42HS48EIS,BH32

    ■ 背景介绍 对于 一款用于化学实验室样品操作机械臂 的调试过程中,在博文 双轴机械臂调试:步进电机42HS348E,BH32角度传感器,MCU:STC8H1K28 可以看到初步的通过带有 闭环控制的 ...

  6. 【DIY】简单粗暴低成本Arduino四轴机械臂方案,创客教育学习使用舵机首选方案!...

    制作时长:3天 制作成本:<200元 难度系数:容易 过去的一年小伙伴在QQ群内提了不少问题,其中最多应该是如何制作机械臂了.<利用舵机制作简单机械臂>这篇文章已经发布了几年,它是基 ...

  7. 机械臂颜色识别案例 | 路上捡到一台机械臂,给它点颜色瞧瞧?

    大家好,我就是那个走在路上经常捡到宝的铁熊老师,那么今天捡到了啥好玩的东西呢?一台五自由度机械臂,从天而降出现在我面前! 这话说出口,我自己都不信,哪有那么好的运气!其实这是朋友送我玩的,你也想要这台 ...

  8. 对于STM32F103三轴机械臂控制器进行基本功能测试-上下运动功能

    简 介: 本文针对基于在基于STM32对于三轴机械臂控制器设计 中设计了控制电路板.本文记录对其在机械臂实际部件进行调试的过程. 关键词: STM32F103,机械臂,三轴,上下运动 ➤01 机械臂控 ...

  9. 基于机器视觉的多机械臂煤矸石分拣机器人系统研究

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 基于机器视觉的多机械臂煤矸石分拣机器人系统研究 王鹏1,2,曹现刚 ...

最新文章

  1. Python 安全编程学习总结
  2. Python入门100题 | 第002题
  3. AI 经典书单 | 人工智能学习该读哪些书
  4. 柱底反力求和lisp软件_AutoLISP详细讲解
  5. deepblueai
  6. 《零基础看得懂的C++入门教程 》——(8)搞定二维数组与循环嵌套
  7. 今晚直播预告丨Oracle 19c避雷经验分享
  8. 随想录(移动app下的生活)
  9. tomcat的localhost_access_log日志文件
  10. linux系统切换清华源(自带的源下载速度太拉跨)
  11. Ceph FINDING AN OBJECT LOCATION
  12. jsoup的Node类
  13. 【EF】EF框架 Code First Fluent API
  14. console.log、toString方法与js判断变量类型
  15. Delphi TForm 转 TFrame
  16. android盒子多个DLNA冲突,说说DLNA、AirPlay 、Miracast那点事
  17. JAVA实现商品信息管理系统
  18. 将10件商品的英文名称存储在数组中,输出名称的第3个字符是‘b‘的所有商品英文名称;再输出名称的长度小于6个字符的商品英文名称。
  19. python:操作文档——TXT篇
  20. Linux软件的安装

热门文章

  1. mycat 分表子查询_MyCat分库分表策略详解
  2. pywinauto文档
  3. 火星直播纯净版:速度快、免登录、无广告,这个版本绝了!
  4. java三层架构实例
  5. 【bzoj 4627】 回转寿司 【BeiJing2016】
  6. 「6月雅礼集训 2017 Day7」回转寿司
  7. W3C DOM 事件模型(简述)
  8. 2023:软件测试的是不是没前景了?自学软件测试要学哪些内容?
  9. python最大堆_二叉堆 及 大根堆的python实现
  10. 基于STM32的常用数码管芯片TM1637驱动