文章目录
- 一、设计内容
- 二、控制理论
- 三、材料列表
- 四、控制图
- 五、硬件介绍
- 1、TB6612FNG电机驱动模块
- 2、DX-BT04 2.0蓝牙模块
- 3、MPU6050陀螺仪模块
- 4、电源模块
- 5、520编码器直流减速电机
- 六、PID理论与算法控制
- 七、代码解析
- 八、参考博文
一、设计内容
- 使用 STM32 作为主处理器进行开发制作,由对倒立摆控制系统的分析进而分析平衡车的控制理论, 其中包括直立行驶和转弯。
把控制原理【PID闭环控制】转化成代码从而实现MCU对硬件的控制
。 - 通过对滤波算法的分析对 MPU6050 中的陀螺仪和加速度数据进行融合,使滤波后的结果可以满足设计要求。
- 对 PID 算法进行分析, 为闭环控制系统找到合适的 PID 控制器模型
二、控制理论
-
一阶倒立摆模型
-
两轮平衡小车则与倒立摆系统类似, 当倒立摆离开平衡位置时它受到的重力作用与运动方向相同, 不是抑制它的变化反而促使它向偏离平衡点更远的地方运动, 也就是它向着不稳定方向发展, 所以摆杆要想平衡就必须有其它形式的外力作为辅助, 所以这就引出了速度,给小车一个与摆杆运动方向相同的速度使摆杆因自身的惯性产生一个回复力, 这个回复力就可以使摆杆具有向着稳定状态运动的趋势
-
所以根据上述的原理,
通过测量小车的倾角和倾角速度控制小车车轮的加速度来消除小车的倾角
。因此,小车倾角以及倾角速度的测量成为控制小车直立的关键。
平衡小车的控制任务可以分解成三个基本控制任务。(对应直立环、速度环、转向环)
-
1 首先是控制小车的平衡, 控制小车的平衡可以通过控制平衡小车的两个车轮的正反转实现平衡小车可以在两个运动方向都可以获得产生回复力的加速度, 这样平衡任务就可以实现。
-
2 然后是控制小车的速度, 由以上分析可知小车的速度与倾角有着密不可分的关系, 所以小车的速度变化应该与倾角相对应。
-
3 最后是控制小车的方向, 控制小车的方向可以利用两个车轮之间的转速差进行控制,转向速度应该与速度差的大小成正比 。
三、材料列表
- 编码电机(A/B相)(2个):获取速度信息并作为控制目标。
- 电机驱动TB6612FNG:驱动电机(STM32I/O口直接驱动电机能力不足)优点:体积小。
- MPU6050陀螺仪:获取平衡车角度信息。
- OLED:显示采集到的角度以及PID参数等(方便调试)。
- BT-04蓝牙模块:无线控制小车状态。
- 12V航模电池/3节18650电池串联:给电机供电
- 亚博智能STM32平衡车扩展版:内含稳压模块
- 红外循迹模块:循迹
- 超声波模块HC-SR04:避障(跟随)
四、控制图
五、硬件介绍
1、TB6612FNG电机驱动模块
STM32——TIM输出比较中第五章:PWM驱动直流电机的硬件介绍
2、DX-BT04 2.0蓝牙模块
智能无障碍轮椅——DX-BT04 2.0蓝牙模块
3、MPU6050陀螺仪模块
STM32——I2C通信中第六章:MPU6050简介
4、电源模块
-
使用12V航模电池或者三节18650电池串联构成一个电压12V的电源,12V的电直接接入TB6612电机驱动模块的VM引脚,之后再通过LM2596降压(通过调节降压模块的电位器来控制电压降到5V)给单片机供电。
-
1200mAh即1200毫安时,安时和毫安时是蓄电池的容量单位,1安时等于1000毫安时,1200毫安时等于1200毫安时/1000=1.2安时。如果一个蓄电池的容量等于1.2安时,额定电压等于12伏特,则电池的存电量等于12伏*1.2安时=14.4瓦时,电池的功率等于14.4瓦。
-
mwh与mAh单位的换算关系
举例:一块标有“2960mWh 3.7V”的电池,实际电量用mAh表示应等于2960÷3.7=800mAh。
5、520编码器直流减速电机
智能无障碍轮椅—— 520编码器直流减速电机
六、PID理论与算法控制
智能无障碍轮椅——PID算法控制
七、代码解析
智能无障碍轮椅——平衡功能代码解析
八、参考博文
三天让车立起来!STM32平衡车入门PID —— 第一天(硬件搭建)
基于STM32和MPU6050的平衡车制作报告
平衡小车在线编程课程视频(b站行走天下)