当前位置:底盘 >> 行业资讯    

机器人控制电机串口通信的数据协议

编辑:创泽底盘      发布时间:2022/9/1      来源:COONEO

在机器人控制中,单片机(Arduino/STM32)与上位机(Raspberry Pi/NVIDIA Jetson nano)之间的通信经常采用串口通信的方式,那应该如何使用STM32的串口通信以及根据自己定义的协议来完成数据的接收与发送呢?

确定串口的数据协议

"e" 反馈两个电机的编码器脉冲计数值,该计数值达到Z大值或Z小值时自动清零。

"m" l_speed r_speed "m"为控制标志,l_speed为左轮的速度值,r_speed为右轮的速度值,该值单位为 cm/s

配置串口

为了提G串口通信的效率,减少因为字节传输而不断引起中断导致资源的浪费,可以采用DMA+串口空闲中断的方式对数据进行接收。

DMA

DMA:Direct Memory Access,可以实现一个数据从一个地址空间拷贝到另一个地址空间,并且在数据拷贝过程中无需CPU的干预,在数据拷贝结束后才告知CPU进行处理。因此使用DMA功能可以释放CPU资源。

串口空闲中断

普通的串口处理数据方式为单字节接收,并且接收一帧数据时,需要自行判断帧头帧尾确定是否为一帧完整数据,并且当数据量大会导致频繁进入中断。而采用串口空闲中断,在串口空闲时(发送完一帧数据)产生中断,并且可以在中断服务函数中计算得到的数据长度,对整帧数据进行处理。

STM32CubeMX中的配置

在串口1配置中打开DMA功能,其余配置可参考之前的工程

推荐信息
»STM32CubeMX配置及测速驱动代码
»两轮四轮差速及阿克曼移动底盘设计转向机器人/小车
»动手实现一台阿克曼ROS小车
»四轮驱动机器人的转向方式是什么
»全向轮运动模型规律-量化分析三个全向轮转速与移动平台中心点运动速度的关系
»三轮全向轮移动平台坐标系说明示意图
»麦克纳姆轮运动速度分解-麦轮平台运动学模型分析
»麦克纳姆轮受力分析-受力方向为轮毂坐标系y轴正方向
产品中心
 
 
 
 
版权所有 © 北京创泽智慧机器人科技有限公司       地址:北京 清华科技园C座五楼       电话:4006-937-088       京ICP备20010582号-2