基于STM32单片机的双轮自平衡小车系统的设计
本文介绍了基于 STM32F103C8T6 单片机的双轮自平衡小车系统的设计,以 MPU6050 三轴陀螺仪加速计为传感器的姿态感知系统,通过卡尔曼滤波对传感器的数据进行滤波融合,采用 PID 算法实现小车两轮自平衡,使用 TB6612 电机驱动模块实现小车的驱动电机,综合实现小车的直立行走。通过蓝宙的线性 CCD 实现小车的循迹功能。
标签:姿态感知;卡尔曼滤波;PID控制;MPU6050三轴陀螺仪加速计;TB6612电机驱动;线性CCD
1 电路设计
1.1 MPU6050三轴陀螺仪加速计模块子系统框图
1.2 TB6612电机驱动模块子系统框图
1.3 线性CCD模块子系统框图
2 程序设计
2.1 程序功能描述
国力汽车(1)实现直立平衡控制
(2)平衡的基础上实现行走
(3)进而实现循迹功能
2.2 程序设计思路
首先写程序要有整体思路,小车最先应该让电机先转,然后达到平衡的目的,利用MPU6050三轴陀螺仪加速计为传感器的姿态感知系统,通过卡尔曼滤波对传感器的数据进行滤波融合,采用PID算法实现小车两轮自平衡,使用TB6612电机驱动模块实现小车的驱动电机,综合实现小车的直立行走,差速转向。进而写出线性CCD的部分程序。
所以程序中应该有平衡部分,速度控制部分,转向控制部分,然后应该根据芯片与电路的链接方法,写出芯片的初始化程序。
3 测试分析与结论
3.1 根据直立控制调试,由此可以得出结论见表1,表2
(1)可以确定得到kp=500,kd=1.7是P、D 参数的最大值;(2)对每个系数乘以0.6,取整得到 kp=300,kd=1,为理想的值。(3)小车的机械中值在0°。
3.2 根据速度控制调试,由此可以得出结论见表3
(1)kp=80,ki=kp/200是速度控制P、I参数的理想值;(2)kp=80,ki=kp/200是正极性。
3.3 根据转向控制调试,由此可以得出结论见表4
发布评论