基于SX1280LoRa 模块的移动平台控制系统设计

2022-09-28 14:50姚科李国利咸尚君邹惟清
电子设计工程 2022年18期
关键词:解码驱动电机

姚科,李国利,咸尚君,邹惟清

(金陵科技学院机电工程学院,江苏南京 211169)

随着科技的发展,机器人已逐渐融入人们的生活、工作、社会的发展和稳定中,成为了不可缺少的角色。在机器人控制系统中,移动平台的控制是极重要的部分[1-2]。机器人运行路迹固定且实现了功能统一的自动化项目,通常已经实现了机器人移动平台的自主定位和自主循迹,使机器人能长期高效稳定运行[3]。但在工作环境复杂、机器人实现功能特殊的场景中,如火场救援灭火等,针对机器人移动平台实现远程高效稳定控制具有重要的意义[4-6]。

随着机器人在灭火救援特种作业等高危复杂工作中优势的体现,移动平台的远程稳定、高效控制拥有巨大的应用领域和广阔的发展前景,近些年来更是呈现优异的发展态势[7-8]。这种对人员生命安全、财产安全敏感的特种作业来说,机器人远程移动平台控制具有稳定、安全、高效、环境适应性强等优点[9-10]。在科技不断发展的今天,机器人越来越普及,将机器人移动平台的远程控制应用到特殊工作环境的特种作业中,对提高特种作业的工作效率、保障工作人员的生命安全都具有深远意义。所以一种能在复杂作业环境下实现机器人移动平台远程控制的方案就显得十分重要。该文设计了基于SX1280LoRa 模块远程传输数据的移动平台控制方案,控制信号发送板采集控制元件状态参数,将参数远程发送给接收板,接收板将接收的数据解码成移动平台各电机控制信号,控制各“H 桥”电机驱动电路,针对该方案制作样机进行了调试和验证。

1 系统硬件电路设计

1.1 控制信号发送/接收电路硬件设计

1.1.1 控制信号采集编码硬件电路设计

文中移动平台远程控制系统设计中,采集电路左右摇杆、钮子开关、自锁按键、拨码开关的状态作为控制信号,由这些控制元件状态决定移动平台的工作模式、移动速度、移动方向。

控制信号发送板和控制信号接收板的控制系统采用STM32 系列的主控芯片,控制系统电路包括最基本的电源供电电路、外部复位电路、外部时钟电路、启动方式BOOT 控制接口、状态指示电路和在线调试JTAG 接口。

外部复位电路中,按下复位按钮,NRST 复位引脚被拉低,从而产生复位脉冲,对控制系统执行强制复位操作。外部时钟电路是为了给单片机运行程序提供精准的时钟信号。程序启动控制BOOT 接口控制主控芯片启动方式。程序下载和在线调试采用五线 制TCK/TMS/TDO/TDI/TRST 的JTAG 接 口,通 过JTAG 接口可以访问处理器的内部寄存器,从而对处理器进行在线调试。

信号发送板的控制系统读取钮子开关、自锁开关、拨码开关的电平信号,ADC 采集左右两摇杆的数值。发送板主控电路将控制参数编码成控制数据通过SX1280LoRa 模块发送,接收板主控电路将接收到的控制数据解码成移动平台各电机的控制信号,控制各电机的转向和转速[11]。

1.1.2 通信部分硬件电路设计

SX1280LoRa 模块是该项目中无线发送板和无线接收板的核心。该模块是基于SX1280 的射频模块,是一款高性能无线收发器,特殊的LoRa 扩频调制技术可以极大地提升通信距离,而且其无线收发模块的体积小、传输距离远、功耗低、具有线性度,抗干扰能力强[12-13],模块内部没有集成微控制芯片,故需要配合MCU 使用,SX1280LoRa 通信电路原理图如图1 所示。

图1 SX1280LoRa通信电路原理图

NRST 和BUSY 分别为复位引脚和状态指示输出引脚,模块采用SPI通信接口。SPI用四根信号线通信,在该模块中NSS_CTS 为片选引脚,SCK_RTS 为时钟输入引脚,MOSI_RX 为SPI 数据输入,MISO_TX为SPI 数据输出。SPI 通信采用一主一从的通信方式,具有同步全双工通信性质。无论接收数据还是发送数据都是单向传输的。主机的SCK 时钟作为主从机的同步时钟信号,同步主、从机的时钟频率[14-15]。主机片选信号接高电平,从机片选信号接低电平,因为这是一主一从的通信系统,所以从机的片选信号一直为低电平且时钟被选中。

1.2 移动平台驱动控制板硬件电路设计

对移动平台电机的驱动而言,主控单片机是可以输出电压的,但其输出的电流很小,驱动能力十分有限。所以通过单片机输出信号做驱动信号来驱动MOS 管是一种普遍的电机驱动方案。MOS 管实质是一个电子开关,通过关断MOS 管控制驱动电机的供电电源,并且可以通过调PWM 占空比大小来控制驱动板加在电机上的电压,从而达到电机调速的目的[16]。

移动平台驱动控制板采用MP1584 降压型芯片将供电电压降至5 V,以对控制电路供电,控制系统采用STM32C8T6 作为MCU。控制H 桥驱动的IR 2104S 半桥驱动芯片需要12 V 电压,故使用SX1308将MP1584 降压后的电压升压至12 V。

在H 桥驱动电路中,使用IR2104S 作为半桥驱动芯片。H 桥电路驱动原理图如图2 所示。

图2 H桥电路驱动原理图

当驱动电路下桥臂MOS 处于导通状态,此时上桥臂MOS 管处于关断状态,VS 引脚的电平接近于低电平。芯片的VCC电压(+12 V_motor)经过二极管向自举电容充电,使自举电容上端电压近似于VCC电压。此时下桥臂MOS 关断,VS 的电位将由近似于0 V 开始升高,此时VB 的电压为电源电压加VS 引脚电压。由于芯片内部HO 与VB 导通,也就是HO 与VS 之间电压为VCC,这个电压差足够打开上桥臂。当上桥臂MOS 管关断,下桥臂MOS 管导通,电路开始给自举电容补充电量,电压达到阈值时交替导通。全桥驱动的两个IN 信号为一对相反的信号,控制半桥上、下桥臂MOS 管进行交替导通,达到全桥驱动的目的。

2 平台远程控制方案程序设计

2.1 控制信号发送板数据编码程序设计

在基于SX1280LoRa 模块的无线信号发送板程序设计中,采用定时器中断设定每20 ms 对需要发送的数据进行编码并判断编码内容是否与上一组数据相同,若相同,则返回1,否则返回0。当返回值为1时执行SX1280 模块的无线数据发送函数,发送结束后复位编码完成标志位和20 ms 计时标志位。程序流程图如图3 所示。

图3 无线信号发送板的程序流程图

在数据采集编码函数中引入三个形参,分别为目标地址、源地址、待发送数据。在对数据进行采集编码中通过ADC 采样获取左右遥感X轴和Y轴的值以及左右电位器的值,并读取按键的状态。获取无线遥控控制数据后,对数据进行编码。定义存放编码数据数组由目标地址、源地址、左右遥感X、Y轴参数、各按键参数、左右电位器参数、检验位和数据尾组成。编码完成后会对要发送的数据和上一组数据进行比较,只有数据不同才会进入数据发送程序。在数据编码函数中针对刚刚编码完成准备进入发送函数的数据生成校验位sum,sum 是由数组中除数据尾外的数据累计相加得到,在接收函数中会有对应的检验位验证函数,用于判别接收的数据包是否正确。

2.2 控制信号接收板数据解码程序设计

接收到的数据包内容包括目标地址、源地址、左摇杆X轴数据、左摇杆Y轴数据、右摇杆X轴数据、右摇杆Y轴数据、旋转工作模式、运行工作方式、遥控左电位器信号、遥控右电位器信号、遥控左右面板按键信号、校验位、数据尾共计13 类数据。在数据包验证流程中,定义一个验证数据标志参数sum。首先确定目标地址和源地址是否正确,然后把接收到的数据从目标地址到校验位前的数据累计相加放入sum 中,和校验位数据进行比较。两参数相同证明数据包接收无误,接收数据指示灯闪烁,否则清空接收数据。数据校验流程图如图4 所示。

图4 数据校验流程图

在数据接收校验完毕,对数据进行解码。分别进行地址段解码、功能段解码和遥感数据解码。定义全局变量,存放针对移动平台解码后的控制信号,发送的数据依次为接收地址、发送地址、功能、方向、速度1、速度2、速度3、速度4、紧急切换信号和校验、数据尾,如表1 所示。

表1 电机驱动板接收数据字节定义

2.3 移动平台控制程序设计

对于驱动单个电机需要电机转动方向和电机转动快慢两个参数。文中用三个参数控制一台电机的转动状态,分别是motor_A、motor_B、PWM_motor。前两个参数为一对相反的量,为全桥驱动电路的两个半桥驱动芯片输入相反的控制信号,控制电机的转动方向。后者PWM 控制电机的转动速度。由上述四路电机硬件驱动控制板硬件介绍可知,控制一个H 桥驱动需要两个半桥驱动IR2104S 芯片,根据H 桥驱动原理,两个半桥驱动芯片的“IN”脚为一对相 反 的PWM 波。故motor_A=motor.dir、motor_B=~motor.dir。

移动平台驱动行进方式涉及整体的运动方向和行进速度,分散到每个电机就转化为四个电机单独的转动方向和转动速度配合问题。

在电机驱动控制程序中,会用到许多不同的驱动直流电机的参数,因为其零散性且是共属驱动直流电机的参数,该程序将这些属于驱动直流电机参数的“属性”,组成“motor_drive”结构体,更加有整体性,且效率高、方便调用、传递参数简洁。现将该程序入口参数结构体变量介绍如下:

3 机器人调试与功能实现

在接收到SX1280LoRa 模块发出的信号后,无线接收板会对接收到的数据进行解码,将接收到的摇杆、自锁开关、钮子开关等状态数据解码成移动平台各电机控制参数。将设备如图5 所示硬件接线图相连接。通过串口助手监测解码后移动平台的控制参数,监测数据解码和再编码如图6 所示。

图5 无线接收板调试硬件接线图

图6 监测数据解码和再编码

将解码后的数据再编码成用于驱动控制的参数,放入RS485_TX_BUF 数组中。第一、二个数据为数据发送目标地址和数据发送源地址,第三个数据是移动平台工作的模式,有前进、后退、停车、向左、向右、左前、左后、右前、右后、顺时针旋转和逆时针旋转。第四个数据的低四位存放四路电机的转动方向。第五到第八位是四个电机的速度。第九位是紧急切换信号,包括手动模式和急停模式。

例如右侧第二行数据:AA 表示数据由移动平台电机驱动控制板接收,AB 表示数据由遥控接收板发出,03 代表机器人向左移动,故09 是机器人的四个电机转动方向“1001”,后四个数据为四个电机的速度,00为特殊状态位,倒数第二位是校验位,最后为数据尾。而在第三项数据中06 代表电机朝左后方向运动,虽然电机四个转动方向为“1111”,但四个电机中的第二第三电机速度为0,故运动方向是正确的。

文中共进行了6 次控制信号连接成功率测试,每次测试连续输出15 min 移动平台控制信号,通过串口调试助手对信号发送端和接收端进行对比监测,该实验实际测试结果如表2 所示,每次远程控制数据传输成功时,串口调试助手监测控制信号发送端输出数据与控制信号接收端所接收的数据均一致,该系统数据采集上传成功率最低为97.3%,通信网络丢包率平均为1.97%,系统数据传输丢包率测试统计如表2 所示。

表2 系统数据传输丢包率测试统计

在实验室运行环境下,当移动平台移动距离和速度给定时,对移动平台进行了前后直行、斜行、侧向横行、等多状态轨迹运动,以对其轨迹运动性能进行评估。文中运动性能测试了500 cm 距离时的定位精度,测试时在移动平台不同的移动速度条件下,记录实际运行距离与目标值之间的误差,平台定距定速运行性能测试数据如表3 所示。

表3 平台定距定速运行性能测试数据

4 结论

该文介绍了一款远程移动平台控制系统,包括基于SX1280LoRa 模块的控制信号发送板、基于SX1280LoRa 模块的控制信号接收板、移动平台电机驱动控制板,实现机器人移动平台远程高效稳定控制功能。移动平台的整体行进状态由其各个电机共同决定,在移动平台电机驱动控制板中,通过“H 桥”电路驱动电机,远程控制信号发送板读取和采样控制元件状态,将控制元件状态数据进行编码发送。无线信号接收板对接收到的数据进行校验解码,将控制元件状态参数解码成移动平台的各路电机控制参数,传至移动平台电机驱动控制板的各路“H 桥”驱动电路半桥驱动芯片中,完成移动平台的远程控制。最后该系统经过调试运行,结果表明,各电路硬件设计方案可行、远程数据发送正确稳定、控制算法正确、控制系统运行高效稳定。

猜你喜欢
解码驱动电机
《解码万吨站》
《防爆电机》期刊
数据驱动世界。你得懂它 精读
基于模糊PI控制的驱动防滑仿真系统分析
泵用电机水润滑轴承选择与应用
关于电机滚动轴承的选择与计算
瞻望电机的更新换代
屈宏斌:未来五年,双轮驱动,砥砺前行
解码eUCP2.0
深入实施创新驱动发展战略