基于单片机的机械臂控制系统设计

2023-05-24 05:35彭威
无线互联科技 2023年5期
关键词:机械臂蓝牙单片机

彭威

摘要:文章设计实现了一个基于51单片机的机械臂控制系统。该控制系统主要采用STM32f407最小系统开发板、机械臂和JDY-31蓝牙进行组装。其分为8大模块,分别是:PCA9685控制多路舵机模块、矩阵按键模块、LCD1702显示模块、DS18B20温度检测模块、独立按键模块、步进电机、ULN2003步进电机控制模和DS1302时钟模块。各模块协调工作,可显示当前年月日时分秒和步进电机开关状态,可通过矩阵按键模块调整时间,控制步进电机的开关。此机械臂由红外遥控器控制,LCD1702显示舵机状态。

关键词:单片机;机械臂;蓝牙;红外遥控

中图分类号:TP241文献标志码:A

1 背景及意义

随着科学技术的发展,机器人技术被广泛应用到各种结构化的场景,比如,3C消费电子和汽车工厂等标准化制造业流程[1]。这类场景,一般不需要复杂的规划算法,借助简单的正逆解计算工具,机器人可以一遍又一遍地执行相同的动作。但与这些标准化的加工制造行业不同,非结构化环境,如:家庭、医院和超市等,给机器人规划带来了更多挑战[2]。在这种情况下,机器人技术还没有准备好处理不同种类的任务无限数量的组合,甚至与人类合作。机械臂在近70年的发展中,从粗糙的工业生产用具变为多学科交叉融合的工业艺术,进入社会的各个角落。其应用领域遍及科研教育、机器视觉、医疗手术、智能轮椅和服务机器人等。机械臂的亮点强调支持ROS、嵌入式视觉、无限关节旋转、自由度冗余控制和全关节内置扭矩传感等[3]。

单片机集成CPU、程序储存器ROM、数据储存器RAM和输入输出接口,有的单片机内还集成了电机驱动电路、视频解码电路、AD转换器、无线传输电路等,使得单片机功能变得非常强大。单片机的特长在于可用单个芯片和简单外部电路去实现复杂的控制操作,因此非常适合机器人控制。在绝大多数机器人中都由单片机控制。简单的和中等复杂的机器人可用单片机直接控制,高度复杂的机器人用“个人电脑”或者“超級计算机”指挥许多单片机来完成机器人控制。本文实现的机械手臂使用51单片机进行控制,采用电源、晶振、LED和ISP接口组建单片机最小系统[4]。

2 分析与设计

2.1 需求分析与总体框架

本文设计的机械臂控制系统的软硬件部分由电源及调理模块、单片机控制系统、自由度机械臂机械结构、姿态控制蓝牙手柄、舵机组成,主控芯片为STM32单片机。首先,上位机使得用户在其界面拖动滑条,可以通过串口发送指令到单片机控制板;其次,单片机控制板中的固件程序,接收上位机发过来的串口指令并解析,根据指令控制机械臂的舵机运动;最后,单片机控制板采用一块Arduino板。机械臂的控制主要是通过控制父节点的旋转,带动子节点移动,子节点的旋转再带动自己的子节点移动以此类推。每个节点的旋转单一,通常是水平方向和垂直方向,即x轴旋转和y轴旋转,也有可能出现z轴旋转。本文系统的总体框架如图1所示。

2.2 机械臂的相关技术分析

2.2.1 单片机控制多个舵机

本文设计的硬件使用的是STC89C52,P30-P31 IO口对应控制的6个按键,一个舵机由两个按键控制,P24-P27对应舵机的控制端(SG90的橙色线)。按键可焊接,从IO口接出到按键再到GND。有关占空比的工作原理是利用定时器的分时复用。51的T0定时器50ms溢出一次,每溢出一次产生一次中断。本文利用这个概念给它加上一个标志flag,每一个flag对一个舵机进行控制,每当一个flag=1时,即产生中断,对应的舵机就会启动。算法流程阐述如下:首先,标定机械臂各关节,从KinectV2获取图像,经过处理得到关节点在空间中的坐标,通过几何运动学解算出此时各关节角的角度;其次,从KinectV2获取图像,经过处理得到目标物体位置,通过几何运动学解算出机械臂要抓到物体所要的角度(目标角度);再次,计算目标角度与当前角度的误差,使用反馈控制减少误差;最后,循环前3步,当误差足够小时即可命令机械臂抓起物体。

2.2.2 大臂和小臂设计技术

大臂设计在中座的右侧,由一个SG90的舵机驱动,带动大臂连杆进行旋转,大臂左右有两个连杆,两个连杆之间由一个连接板进行连接。大臂和连接板连接时,采用紧固方式,将凹槽设计的与螺栓长度相同,使螺栓拧紧时,螺母和螺栓都能恰巧顶到连板。为了使连接可靠,同时设计2个紧固结构和4个插槽,保证连接的稳定性。

小臂则将SG90驱动舵机放置在中座的左侧,电机轴通过花键与小臂曲柄连接,然后通过曲柄摇杆结构带动从动摇臂旋转,实现小臂的旋转,这样的设计可以减轻小臂的承重,对于亚克力板以及SG90这样小驱动力的电机非常合适。同时,在左右两条小臂之间,加一个鹰钩连接凹槽的连板,并且在小臂上加一块三角连板,三角连板连接两条从动杆,这样可以保证小臂连杆的稳定性,也可保证在小臂与钳子连接的稳定性。

2.2.3 组装技术分析

在组装过程中,为了减少螺母的使用或防止螺母对运动的阻碍,本文设计将大部分孔设计为M3的孔,并将某些终止孔设计为略小于M3,这样在拧螺栓时,可通过这样的预紧力紧固,而不需要使用螺母。

同时,在整个组装过程中不能用力过大,防止将零件撑坏。在组装中座时,原件是将中座分为4个部分,中间还有一个“小猪”,但是在中座与底座电机连接时,要用一个小螺栓连接拧紧,这时不要按装配说明上的顺序装,可先拧紧螺母,再安装中座。在拧小臂曲柄连杆结构的螺栓时,不要拧得太近,摩擦力过大的话,可能会导致电机带不动。

2.2.4 轨迹优化技术

从控制角度看,轨迹优化本质上是最优控制论的应用,即通过计算出一连串合适的系统状态和控制,在实现任务的同时尽可能降低完成任务需要付出的代价。在机械臂的运动规划中,优化类算法扮演了两个重要的角色:一是作为后处理算法,将其他运动规划器的输出路径(比如采样类算法输出的折线轨迹)做平滑处理或者细节简化。二是作为轨迹重规划算法,可以将一条直观但是存在碰撞(比如简单的点到点直线路径)的运动轨迹,转变成无碰撞且任务代价尽可能低的局部最优路径。轨迹优化类规划算法最大的特点是利用了实际生产(或者设计)场景中物理环境的变化往往是连续的这一特质。

使用轨迹优化算法的代价是其背后复杂的物理建模和数值求解技巧。实现这类基于优化的算法通常需要将机械臂、环境碰撞、目标工艺等工程问题通过高保真的方式翻译成由矩阵描述的优化问题并通过合适的数值方法进行求解。首先,建立层级凸包碰撞模型,即描述物理世界和机械臂之间的准静态关系;其次,优化问题的运动学近似,描述物理世界和机械臂之间的动态关系及工艺任务;最后,逐步二次规划求解器,调整机械臂状态来满足动/静态关系和工艺任务。

3 机械臂控制系统的实现

3.1 电机的控制实现

使用can等通信协议方式控制机械臂步进电机,可周期性同步位置到驱动器,实现位置的自由控制。脉冲加方向方式也可抽象为使用通信协议在与驱动器通信,只不过是使用增量方式在通信,通过对脉冲的累计得到目标位置。

程序使用两个定时器,一个中断频率为1k,用于周期采样目标位置,并计算当前速度。当前速度值用于修改另一个定时器中断频率,所以在第二个定时器中判断目标位置与当前位置的偏差,然后翻转电平,实现对脉冲发送,同时判断方向,对应控制方向控制IO电平。在其他函数中可给定任意形式的位置变化,根据采样定理,应该位置变化频率不大于500 Hz的都能被1k的定时器中断正常采样。由于发送脉冲需要以一定的频率发送,所以第二个定时器频率根据目标位置变化率而改变,可以让速度平滑,也可以减小CPU带宽占用。以此方式可实现对机械臂步进电机的自由控制,可使用编码器或函数随意控制电机。

3.2 蓝牙模块的连接与通信实现

为了降低单片机在非工作状态下的功耗,需要实现通过手机端软件和蓝牙通信的方式,发送待机指令,实现单片机进入待机模式、蓝牙通信模块实现低功耗运行。上述功能的手机端软件类似于机械臂的遥控器的功能,能够遥控单片机电路进入开机或待机状态下。

本文设计的机械臂工作在透传模式下,能配置标准 ibeacon 功能,或者发送自定义广播数据。默认情况下,模块启动后会自动进行广播,使用 BLE 主机对其进行扫描连接,连接成功之后就可以通过BLE在模块和 BLE主机之间进行数据透传。机械臂可以通过特定的串口 AT 指令,对某些通信参数进行修改。

单片机的管脚与蓝牙模块的连接为:PA9-USART1_TX;PA10-USART1_RX;PA0-P0.20;PA2-BL_RST。采用PA0口做一键唤醒用,PA0即WKUP引脚的上升沿,可以使MCU退出待机模式。

总体实现思路在需要省电待机时,手机App软件发送待机命令给MCU,MCU接收到后再发送低功耗设置的AT命令给蓝牙模块,蓝牙模块进入低功耗模式下,此时P0.20引脚由高电平变为低电平,设置PA0为下降沿外部中斷,中断服务程序中执行程序,使得MCU进入待机模式。本文设计中,因为正常情况下,蓝牙模块处于透传模式,手机App软件直接发送AT命令控制机械臂,蓝牙模块不会执行,只能透传到MCU接收变量的数据区内。当需要唤醒工作时,利用上述设置的低功耗模式,手机App软件发送任意数据,蓝牙模块接收到BLE数据可被唤醒,从而P0.20引脚由低电平变为高电平,此时,PA0引脚的上升沿实现MCU退出待机模式,进入正常工作状态。

3.3 显示与按键的实现

本文机械臂的显示屏采用LED显示器。该LED显示器必须清晰显示机械臂的舵机转动角度,以方便手机App的操控。在数据连接线上,每个P0口连接对应的限流电阻,以便实时进行动态扫描。

本文采用独立按键查询工作方式,通过 12个(6组)按键控制舵机的转动。即通过P2口低四位和P1口控制六个自由度的舵机正反转动。由于系统接口充足,所以采用独立按键即可。当有按键按下时,可控制不同的舵机转动,其中两个按键控制一个舵机,分别控制舵机的正向转动和反向转动。转动的度数可以通过按键时间的长短控制,最大的转动角度为 180°。

3.4 PID 仿真与优化实现

由于在实际工作过程中会出现一定误差,对自由度机械臂的每个关节单独引入PID控制,可减少机械臂在工作中受到外部因素的干扰。通过调整比例,可以提高系统的速度和响应峰值时间;通过改变积分,可以提高系统的稳态精度,减小系统的响应误差;通过改变微分,可以提前减小系统响应的超调量,提高系统的稳定性。在机械臂系统前加入PID控制环节实现对机械臂系统的校正,实际上各个机械臂的传递函数均不相同,一般通过实验输入单位阶跃得到输出,结合数学方法求出机械臂的实际传递函数。PID输出系统框图如图2所示。

4 结语

本文包含自由度机械臂的仿真和控制全过程,可应用至实际项目中并实现多种复杂环境下各关节的控制。该机械手臂承载能力较好,手臂的移动速度合适,惯性较小。机械臂动作较为灵活,在动臂上增加滚动轴承使得动臂轻快、平稳地运动。此外,由于该机械臂的刚度较低、重量力矩和惯性力等较高,使得手臂的位置精度不高,需要在后续研究中进一步改进。

参考文献

[1]庄艳.基于单片机的机械臂电子系统设计与实践[J].科学技术创新,2020(28):50-51.

[2]王勇,陈荟西.基于机器视觉与单片机结合的机械臂抓取系统[J].自动化技术与应用,2021(1):78-84.

[3]陈心怡,张春雨,朱丽华.基于单片机的六自由度机械手臂控制系统设计[J].铜陵学院学报,2021(2):106-109.

[4]高玉健,史小龙,冯俊.基于OneNET物联网的机械臂浇花系统[J].中国科技信息,2021(2):96-97,100.

(编辑 傅金睿)

猜你喜欢
机械臂蓝牙单片机
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
紧急:蓝牙指尖陀螺自燃!安全隐患频出
人机交互课程创新实验
Microchip推出两个全新PIC单片机系列