2 机械臂的设计
本章主要讲述机械臂的硬件设计,内容覆盖三个核心部分:机械臂外壳的设计流程、六个电机的控制方案以及机械臂硬件电路的构建。
2.1 机械臂的介绍
本机械臂为六轴机械臂,其中第一轴和第二轴选用57系步进电机,第三轴选用42系步进电机,第四轴和第五轴选用28系步进电机,第六轴选用22系步进电机。
对于驱动板的选择,由于22系和系步进电机所需驱动电流较小,本项目选用A4988驱动板进行驱动,而前三轴步进电机所需驱动电流较大,则选用TB6600驱动板进行驱动。
2.2 机械臂SolidWorks结构设计
2.2.1 SolidWorks软件介绍
SolidWorks 是一款高级的计算机辅助设计(CAD)和计算机辅助工程(CAE)软件程序,由Dassault Systèmes开发和销售。自1995年首次发布以来,它已经成为机械设计、工程和产品开发领域中广泛使用的软件之一。SolidWorks主要用于创建精确的3D模型和2D图纸,但它的功能远不止于此,它还包括对模型分析、模拟、以及产品数据管理的支持。
从用户界面来看,SolidWorks以其直观的用户界面而闻名,这使得初学者可以相对容易地开始使用,同时也为专业用户提供了强大的功能。而在核心的建模能力方面,它提供了一系列的工具来创建复杂的几何形状,包括曲面建模、实体建模和装配体建模。并且,SolidWorks拥有内置的模拟工具,可以进行力学、流体动力学、热分析等多种类型的工程分析,帮助设计者评估和优化他们的设计。广受使用者欢迎的是,SolidWorks能够导入和导出多种文件格式,这意味着它可以轻松地与其他CAD软件以及其他工具链集成[6]。
在工程设计领域,SolidWorks是一个功能强大、应用广泛的设计和工程工具,它通过提供高效的设计流程和强大的分析工具,帮助从事设计和工程工作的专业人士及团队实现他们的创意和产品。毫无疑问,SolidWorks是设计软件的最佳选择之一。
2.2.2 机械臂结构设计
机械臂外壳的各部分采用SolidWorks软件进行设计,并导出为stl文件进行切片。将切片得到的gcode代码导入到FDM3D打印机中,设置好各个参数,便可开始打印。其中,本机械臂的承重部件如连接轴、齿轮等的打印密度被额外调高以强化机械臂的机械强度。
如图2-1、图2-2所示,以下为部分零部件的建模:
图2-1 步进电机D的固定件 图2-2 第二臂右侧的固定件
2.3 机械臂外壳的3D打印
2.3.1 3D打印FDM技术介绍
FDM(Fused Deposition Modeling,熔融沉积成型)是一种3D打印技术,广泛应用于快速原型制作、功能性零件制造以及模型创建等领域。这项技术由Scott Crump在1980年代末期发明,并在1990年代初期商业化。FDM技术的核心在于使用热塑性塑料丝材,通过加热并挤压塑料来逐层构建三维物体。
FDM一般分为三个阶段。其一为准备阶段,设计好的三维模型被切片软件转换成一系列薄层,生成特定的打印指令。其二为打印过程,FDM打印机的打印喷头加热至特定温度,使塑料丝材熔化。随后,打印喷头按照切片软件的指令,沿着X和Y轴移动,将熔融塑料挤压并逐层沉积在打印平台上。每完成一层,打印喷头会沿Z轴微上升,为下一层的打印做准备。其三为冷却和固化,挤出的热塑性材料在接触到较冷的打印平台或已打印的部分后迅速冷却并固化,这样逐层叠加,直到整个物体被完全打印出来。
FDM具有材料多样性、成本效益高、易于使用、应用广泛等特点。同时,3D打印和传统铸造相比也具有速度快、便于定制等特点。并且,FDM打印机操作简单,维护相对容易,使得这项技术非常适合教育、小型企业和爱好者[7]。
但是,在实际使用中还发现,FDM具有一些局限性。在表面粗糙度这一方向看来,FDM打印的物体表面会有层状纹理,对于需要光滑表面的应用,可能需要后处理。从强度来看,FDM打印的零件通常在打印方向上较强,但在层与层之间可能存在弱点,影响零件的整体强度。表面具有层状纹理的打印件如图2-3所示:
图2-3 表面层状纹理的打印件
2.3.2 机械臂外壳3D打印
在进行3D打印时,若目标是制造强度较高的零件,PLA材料是一个不错的选择。这种材料不仅硬度较高,而且成本效益高,具有较低的打印温度和快速的打印速度等优势。此外,在调整打印参数以优化打印过程时,需要综合考虑包括支撑结构的使用、填充比例、打印温度、打印速度和分辨率等因素[6]。
部分机械臂外壳3D打印过程如图2-4所示:
图2-4 机械臂外壳打印过程
本项目的机械臂外壳使用PLA材料进行打印,先后使用了两种不同价位的PLA耗材,在打印过程中发现,PLA材料本身材质的好坏在一定程度上影响了打印件成品的质量。其中,材质较差的耗材打印出来的机械臂外壳零件普遍表面粗糙,支撑结构容易发生塌陷且不容易去除干净;而材质较好的耗材打印出来的机械臂表面光滑,支撑结构稳固且方便去除,打印件的良品率高。
2.3.3 机械臂主体组装
在机械臂零部件打印进度过四分之三时,开始组装以节省时间。本项目先将体积较小和末端机械臂零部件打印出,以方便至上而下组装机械臂。在组装过程中,需要将打印件的支撑结构去掉,将各轴连接处分别用低目和高目砂纸打磨光滑以免摩擦系数太高影响机械臂的运转。除此之外,六个电机各自的导线需要整理好并接线延长,以方便后续电机和驱动板、控制板之间的连接。最后,拧紧螺丝时需注意零件本身强度,由于FDM打印在层与层之间可能存在强度不足,螺丝拧过紧有可能导致打印件变形破裂。组装机械臂过程如图2-5所示,最后组装完成机械臂成品如图2-6所示:
图2-5 组装机械臂 图2-6 机械臂成品
4 机械臂运动测试
4.1 运动测试介绍
通过运动测试,可以有效的验证机械臂的运动能力和使用效果。而想要让六个步进电机运动起来,需要在合适的IDE上编写好程序,而本项目选择的IDE为Keil5 MDK。在此之后,把程序烧录到STM32F103C8T6单片机上,通过STM32F103C8T6单片机的通用定时器TIM2、TIM3发出PWM信号,通过驱动板放大信号,控制步进电机进行运动。
在本项目中,完成了两种运动测试结果。
第一种测试为六轴机械臂的六轴各自正向转动和反向转动。机械臂从初始位置开始,从A轴至F轴轮流正转和反转,充分体现每一轴的运动能力和运动区间。这六轴的运动必须重复多次,以验证每一轴的运动能力无误。
第二种测试为实现码垛机械臂搬运物品的效果。在工业和日常生活中,码垛机械臂的身影十分常见,而实现这一效果,则证明了本六轴机械臂在实际应用中也具有发挥空间,能在如物流、流水线等许多应用场景发挥重要作用。
4.2 六轴正反转程序展示
想要让六个步进电机运动,就至少需要让STM32F103C8T6单片机输出六个PWM信号传导至驱动板的STEP(PUL)端,而STM32F103C8T6单片机的一个定时器有四个通道。换而言之,至少需要6个通道也就是说两个定时器输出PWM信号。这里选用通用定时器TIM2、TIM3来输出信号。STM32F103C8T6的PA0、PA1、PA2、PA3、PA6、PA7引脚分别对应步进电机AF的STEP(PUL)端,而PB0、PB1、PB6、PB7、PB8、PB9引脚分别对应步进电机AF的DIR端。
部分程序如下:
图4-1 初始化六个步进电机的DIR端
图4-1为初始化六个步进电机的DIR端,内容包括打开GPIOB的时钟,设置一结构体,其内容包括将端口配置为推挽输出和频率配置为50MHz以及具体的引脚号[12]。同时,由于A4988的ENABLE端口未设成悬空,在这里需要手动将三个A4988的ENABLE端口逻辑电平设置为逻辑低电平。
图4-2 初始化定时器TIM2、TIM3
图4-2为初始化定时器TIM2、TIM3,并且设置PWM信号的相关参数。这里将ARR(自动重载寄存器值)设置为100-1,PSC(预分频器值)设置为360-1。这样设置的目的是满足步进电机对频率的需求,将PWM信号的频率调整为2000Hz。
图4-3 将A-step占空比设置为50
图4-4 停止函数
将占空比设置为0,就可以让步进电机停止。图4-3为步进电机的起动函数,图4-4为步进电机的停止函数。
图4-5 延时函数
总结
本文主要研究了基于单片机的控制系统,在机械结构上,使用SoildWorks软件设计机械臂结构并且运用FDM技术进行3D打印。而在硬件电路上,使用Altium Designer软件设计控制板电路, STM32F103C8T6单片机通过控制板和电机驱动板TB6600和A4988通信。在运动学分析上,对六轴机械臂进行了正逆运动学的分析和正向运动学的Matlab仿真。最后在软件编程方面,基于单片机STM32F103C8T6使用Keil5软件编写程序,实现了各轴独立控制和码垛机器人搬运问题的实际效果。
受限于本人自身在运动学方向水平不足,本文在运动学分析方面需要继续完善,对逆运动学和轨迹规划进行深化和拓展。
文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。