本帖最后由 GrootBrain 于 2023-6-3 20:56 编辑
#申请原创# #有奖活动#
AC7802 + FreeRTOS+gcc实现Ros serial 控制电机速度
本贴将用AC7802来实现直流电机PID调速,并通过串口实现ROS(Robot Operating System, 机器人操作系统) Serial通信,通过ROS可以发送目标速度,由7802实现电机速度控制,并将实时速度返回给ROS。 为了更好的模块化设计程序代码,也为了让整个工程逻辑更加清晰化,7802侧代码将使用FreeRTOS操作系统。 由于ROS是在linux下开发的,为了方便开发,7802侧工程也将在linux下开发,使用gcc-arm工具链编译,使用pyOCD工具烧录。
方案框架图如下:
本方案的应用层将基于FreeRTOS开发,包含串口通信模块、LED模块和电机转速PID控制模块。 串口通信主要用于与ROS进行通信,接收ROS下发的目标转速,以及上传实时电机转速。 LED控制将实现LED周期性闪烁,主要目的是指示系统正常运行状态。 电机转速PID控制,由转速控制和转速检测两个模块组成。转速控制是计算出转速差值后经过PID计算,得到PWM占空比,输出给电压调制电路,电压调制电路输出对应电压,使直流电机产生对应扭矩达到一定的转速。电机转动带动正交编码器,产生经过正交编码脉冲,转速模块检测正交编码值变化规律,计算出转速和方向。
由于该方案设计到内容非常多,后续将以下涉及到的内容,单独整理成帖子分享出来。涉及到的内容有: 1.gcc环境下移植AC7802 FreeRTOS 已完成。https://bbs.21ic.com/icview-3305428-1-1.html
2.基于AC7802 PWM实现直流电机开环控制 已完成。https://bbs.21ic.com/icview-3305994-1-1.html
3.基于AC7802正交编码实现电机测速 已完成。https://bbs.21ic.com/icview-3306404-1-1.html
4.基于AC7802实现电机PID调速 --待完成 5.基于AC7802实现ROS serial通信 --待完成
|