APP下载

基于STM32 的三维机械手臂控制器设计

2021-12-21刘义杰王艳梅

装备制造技术 2021年8期
关键词:舵机手臂串口

刘义杰,王艳梅

(沈阳理工大学,沈阳 110159)

随着社会的不断进步,在农业和工业生产中经常应用到的机械手臂,而如何使机械手臂像人类的手臂一样灵活地随意运动,受限于现有的科学工具和技术手段。由处理器控制的机械手臂可以根据程序完成一系列特定的工作,更加灵活,精度也有所提高[1,2]。

本文设计了三维机械手臂控制器,主控芯片采用STM32F103C8T6,使用ISP 串口通讯,实现对4 路舵机的控制;舵机使用SG90 用来控制机械手臂的各个方向的运动控制;使用了8MB 的FLASH 存储器W25Q64 作为程序扩展存储器;三维机械手臂的工作方式设计了遥控工作方式和自动工作方式两种工作方式。

1 三维机械臂控制器的硬件电路设计

三维机械臂控制器主要用来控制三维机械手臂的运动,通过控制器的控制,可以实现手臂的上下、前后、左右的三维立体运动,其结构框图详见图1 所示。

图1 三维机械手臂控制器结构框图

STM32F103C8T6 作为主控芯片具有耗能低、性能高、处理速度快、硬件资源丰富以及价格便宜等优点。STM32F103C8T6 有48kB 的静态随机存储器和256kB 的闪存,同时还拥有11 个定时器,2 个I2C 通信接口,5 个串口,1 个USB,3 个串行外设接口,3 个12 位模数转换接口,2 个12 位数模转换接口和51个通用输入输出口。

电源模块:舵机供电需要7.4 V 的直流电源,外围芯片需要5 V 直流电源,主控制芯片需要使用3.3 V 直流电源。所以电源模块将7.4 V 电源通过AMS1117 调压器件转换成5 V 电压,供需要的外围器件使用,然后使用SPX5205M5-L3.3 将5 V 转换成3.3 V 电源给处理器使用。

机械手臂各个方向的运动采用舵机控制,选用SG90 舵机,SG90 接收脉宽调制信号转动一定的角度实现某个方向的运动。

系统扩展了FLASH 存储器,W25Q64 是支持串行外设接口闪存芯片,容量是8MB;工作速度是普通闪存的数倍以上,而且能耗低,同时还具有连续读取的模式。

无线手柄用于完成遥控工作方式的系统管理、发送指令、运动轨迹规划等。无线手柄通过按键将指令发送给处理器,处理器根据从无线手柄得到的指令输出脉冲宽度调制矩形波,进而控制机械臂的各个关节的运动,进而使其按照预定的轨迹完成运动。

对系统供电电源电压进行分压后进行A/D 转换,监测电源的供电情况,电压过低时报警电路启动。

STM32 单片机支持使用ISP 串口下载、SWD 下载和JTAG 下载,为方便下载调试,采用ISP 串口下载,STM32F103C8T6 上电复位后默认启动JTAG 模式,需要关闭该模式。

2 三维机械臂控制器的软件设计

三维机械手臂是通过调节脉冲宽度调制波的占空比来控制舵机从而调节其运动的。利用处理器STM32 实现同时控制4 路舵机的功能,需对定时器使用分时复用的方法,通过算法分配不同的引脚电平的高低从而实现同时控制4 路舵机的功能。

STM32 芯片内部集成了多个定时器,有用来为嵌入式系统提供定时服务的SysTick 定时器,还有用来提供复位功能的WDT 和分别拥有4 路和6 路输出脉宽调制波的通用定时器和高级定时器。而基本定时器通常只用来实现计数的功能。

相比于模拟控制来说,PWM 有着许多的优势可以优化系统。如从处理控制器一直到系统中的信号传输全由数字信号进行传递,这是PWM 的一个优势,这也就意味着不需要再花成本进行信号转换,这样使得环境比较安静。在这种情况下,噪声对系统的影响只有在可以更改逻辑方式时才会产生影响,这也就说明使用PWM 这种技术可以使得环境噪音减小,使得系统的运行更加符合要求。正因为这些优势,使得这种类型已经广泛的应用于当前生活中,使用在通信之中时可以使得距离得到升级。在接收信号的过程中,这类处理器一般的可以其选择性地修改为模拟信号[3]。

由于舵机需要一个时间基准控制信号的周期为20 ms,舵机的控制信号高电平持续时间通常为0.5 ms~2.5 ms。因此可以控制线性变化的机械手臂做水平运动呈线性,具有良好的跟随性能指标。由于舵机是一种位置伺服驱动器。因此它会将输入信号和基准信号进行比较,从而判断方向和大小,最终得到两个信号的压差,从而决定电机的转动。由于舵机的控制信号是时间基准脉冲信号,根据时基信号的特性,并且机械手臂是180°摆动,因此相对应的角度关系是:0.5ms-0° ;1.0ms-45° ;1.5ms-90° ;2.0ms-135° ;2.5ms-180°。

为了实现三自由度同时带动四个舵机运行,必须对定时器的利用率达到最大。由于单个舵机的脉冲宽度最多持续时间是2.5 ms,而其控制信号的周期为20 ms,因此可以将一个周期分成8 份,配合使用中断指令,即可控制每一份,采用分时复用的方法,当第一个舵机的受控时间为定时器第一次发生溢出中断时,中断程序会对定时器寄存重新赋值,同时将所有的I/O 口变为高电平,直到定时器发生第二次溢出中断时重复以上操作。因此在理论上一个信号周期内最多可完成8 个舵机同时受控。因此完全可以达到要求的三自由度即同时控制四个舵机运行的要求。

本控制器主要是通过STM32 芯片输出PWM 波形给舵机,从而调节机械臂的运动,程序框图如图2所示。当7.4 V 锂电池给三维机械手臂供电后。机械臂将通过上电复位的功能,将整个系统所有端口初始化同时包括定时器初始化使从而控制舵机,使机械臂摆动的角度也恢复到初始状态。本系统使用通用定时器TIM2 和TIM3 定时器,一个用来做脉宽调制波的输出,一个用来做定时功能。定时器功能流程图如图3。此时无线手柄同样也准备就绪,当按下任意按键后,将按键的变化转换为电信号写入存储器模块之中,然后将相关的指令传送给定时器控制的舵机,使其按照预定的位置进行摆动[4,5]。

图2 机械手臂程序流程图

图3 定时器功能流程图

本文设计三维机械臂用于验证三维机械臂控制器的运行情况,选用多关节型的机械臂,它具有动作角度大的优点,还可以使机械臂在更大的空间内的运动,由底座、U 型支架和机械爪组成。机械手臂的底座负责主要的支撑,安装一个舵机,负责转向;U型支架,实现的功能是控制机械手臂的长度,也是比较重要的一个部位,要注意连接处的安装,有可能是活动部位要保证关节的灵活,还要注意支架和舵机的安装方向,另外舵机在安装的时候必须复位,即让舵机处于中间位置;机械爪部分是最直观的执行部分,是机械手臂的末尾,主要负责张开合适的角度夹取物件,由对称的两部分组成。

通过实验,主控制器输出脉宽调制矩形波实现三轴的控制,实现了三个方向的机械手臂的运动控制设计,图4 表现了机械手臂U 框型架的运动情况。

图4 三维机械手臂U 型框架的运动

3 结论

基于三维运动的机械手臂控制器主控制芯片为STM32F103C8T6,SG90 舵机带动机械臂作为受控对象,使得该机械臂可以在三个方向完成空间运动,舵机输出精度较高,可以夹取一些质量较轻的物体到指定位置。但在设计过程中依然发现了很多不足和困难,三轴运动的机械手臂要想实现仿生功能很困难,三维机械手臂的灵敏度和强度不够,无法执行高强度的任务。如果选用材料的性能更加优秀,选用的舵机的参数更加优越,同时设计得更加合理,三维机械手臂将完全可以完成在教学、生活中使用的功能。

猜你喜欢

舵机手臂串口
浅谈AB PLC串口跟RFID传感器的通讯应用
手臂上的抓痕
含齿隙弹载舵机的全局反步模糊自适应控制
基于dsPIC单片机的飞艇舵机控制实现
基于高速同步485总线通信的多通道舵机控制器设计
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
完美的手臂
基于云模型的舵机同步控制