① 基于STM32平衡小车学习—准备篇

1 简介

在科技不断发展进步的今天,对平衡小车的研究具有很重要的意义,现如今各高校在对小车平衡小车的研究上也在不断的投入资源,更是每一年的电子设计竞赛都会选择这类控制类的设计来刺激同学们对其相关控制策略的研究。这不仅提高了学生的学习积极性,更是提高了同学们对科学的认识系统基于陀螺仪等传感器利用PID平衡算法对小车的速度倾斜角度平衡状态来进行检测并通过单片机来控制电机来实现双轮小车自如平衡地运动。通过蓝牙模块实现与平衡车通信来控制前后左右和转圈还有使用OLCD显示倾斜参数。以平衡车的基本控制原理与自跟随功能的实现和无线遥控功能。对平衡车的基本控制理论进行分析并采用PID 算法进行闭环控制,选择MPU6050 作为姿态检测传感器,通过卡尔曼滤波对MPU6050的原始数据进行处理后,得到适合系统的姿态信息。然后,使用Altium Designer 软件画出相应电路图,并完成 PCB制板。最后,通过 KeilMDK 集成环境进行程序设计,在编译和调试成功后,烧写到实物中进行运行。

2 实现的功能

  • (1)小车初始化后,平衡小车能够平衡直立,且外力作用下仍然保)持平衡。
  • (2)通过蓝牙控制小车前进后退左转右转
  • (3)OLED模块显示陀螺仪的姿态参数。
  • (4)扩展功能,超声波、红外、openmv等

3 设计思路

  • (1)设计一个对称的平衡小车框架,需要有电池电压转换电路来供电和蓝牙模块,才能使用远程控制自由活动。
  • (2)通过了解PID算法的平衡原理,使用陀螺仪模块进行每隔毫秒级的时间使用中断检测各轴速度和加速度。通过算法计算处理和驱动模块控制反馈量来实现小车平衡。
  • (3)完成小车自我平衡后,完成蓝牙的控制,首先指定好命令,通过蓝牙传输的信息来调节小车的电机驱动状态。
  • (4)设计OLCD模块程序,设计较为独立的中断函数,检测MPU6050的参数并显示。

4 准备元器件

其系统主要由以下几个部分组成STM32F103CT6单片机控制系统、六轴陀螺仪检测模块、蓝牙控制模块、电机驱动模块、OLCD显示模块等组成。

4.1 STM32F103C8T6

  • STM32F103C8T6是一款基于ARM Cortex-M 内核STM32系列的32位的微控制器,程序存储器容量是64KB,需要电压2V~3.6V,工作温度为-40°C ~ 85°C。
  • STM32F103C8T6是一款由意法半导体公司(ST)推出的基于Cortex-M3内核的32位微控制器,硬件采用LQFP48封装,属于ST公司微控制器中的STM32系列。
  • STM32F103C8T6整个系统结构可以分为由ARM公司设计的Cortex-M3内核和ST公司在此基础上优化的总线矩阵、DMA(Direct Memory Access,直接内存读取)、AHB、APB1以及APB2上挂载的外设等两个部分。

    核心控制芯片模块选择STM32F103C8T6核心板。STM32是一个低功耗,高性能32位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器。主要性能有:与MCS-51单片机产品兼容、全静态操作:0Hz~33Hz、 三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器、八个中断源、全双工UART串行通道、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符、易编程。

4.2 TB6612 电机驱动

由于电机工作电压与单片机的不同且单片机本身带负载能力不强电机工作需要较大电流等因素无法用单片机直接驱动电机运转因此需要电机驱动模块来驱动电机。在此设计中所选用的电机驱动为TB6612FNG 驱动模块。

4.3 HC-05蓝牙模块

正版的HC-05已经100多了,我们可以购买替代品。

4.4 MPU6050 模块

芯片为mpu6050,带有3轴加速度传感器3轴陀螺仪。自带数据运动处理数据库(dmp)可以直接将读出的原始值转化四元数输出,经过计算得到欧拉角,从而得到X轴Y轴Z轴的角度和角速度。通过测量车模的倾角和倾角速度控制车轮的加速度来消除车的倾角。使用dmp可以减少对数学模型的分析,及其方便。 选择MPU6050模块作为小车姿态检测。MPU6050 芯片作为核心,该芯片内部整合了 3 轴陀螺仪和 3 轴加速度传感器,并可利用自带的数字运动处理器硬件加速引擎,通过主 IIC 接口,向应用端输出姿态解算后的数据。有了DMP,可以使用运动处理资料库,非常方便的实现姿态解算,降低了运动处理运算对操作系统的负荷,同时大大降低了开发难度。
本设计中所采用的六轴陀螺仪模块为MPU6050 模组之所以选择这个模块,是因为其有以下优点:
(1)集角度测量与加速度测量于一体
(2)其同时测量三轴上的角度与加速度测量
(3)其输出为数字信号便于处理于存储与传输
(4)测量范围大,反应快。
https://item.taobao.com/item.htm?spm=a230r.1.14.48.7825347bOOKGIk&id=43010632273&ns=1&abbucket=18#detail

4.5 OLED模块

模块有单色和双色两种可选,单色为纯蓝色,而双色则为黄蓝双色。单色模块每个像素点只有亮与不亮两种情况,没有颜色区分;
尺寸小,显示尺寸为0.96寸,而模块的尺寸仅为27mm_26mm大小;
高分辨率,该模块的分辨率为128_64;
多种接口方式,该模块提供了总共4种接口包括:6800、8080两种并行接口方式、 4线的穿行SPI接口方式、IIC接口方式;
不需要高压,直接接3.3V就可以工作了。

4.6 平衡小车的车架

机械硬件连接当中,减速编码电机和底板是核心要素,减速编码电机实际上的作用是反馈速度和位移,所以任何可以让处理器得到当前小车速度和位移的电机都可以作为选项,备选项常有黄色马达+编码盘组合、步进电机等,底盘最常见选项就是合金底盘,这里并不建议直接使用pcb板作为底盘,短路风险不好把控且pcb板强度并不见得可以支撑整个小车。同时建议,如果准备自己制作,最好把电机走线考虑进去。我们使用是下面这样子的。

https://item.taobao.com/item.htm?spm=a1z0d.6639537/tb.1997196601.68.6ac974841X4H3O&id=43575097124

4.7 电源

电源采用3.7V锂电池2个供电,通过DC-DC降压模块获取5V电压,在通过AMS1117降至3.3V。图中电解电容主要目的是滤低频纹波,瓷片电容主要目的是抑制高频噪声,需靠近管脚。

5 电路设计

平衡车的硬件设计,采用两轮自平衡小车双轮车架,使用自设计的PCB板配合STM32核心板组成整个控制电路。

5.1 原理图设计

5.2 PCB设计


5.3 3D图片


6 总结

该自平衡小车采用STM32单片机和各种传感器的组合构成了自平衡小车系统。其系统主要由以下几个部分组成单片机控制系统、陀螺仪加速度检测模块、测速仪模块、蓝牙控制模块、电机驱动模块、OLCD显示模块等组成。本设计的自平衡小车工作原理:给小车通电复位平衡放在地上,当小车开始倾斜时陀螺仪及时地采集的小车倾斜角度数据传给单片机,而加速度计将车子倾斜的瞬时加速度采集后也传给单片机同时测速仪也将车子的实时速度采集后传给单片机。单片机系统收集到以上三组数据,再对数据进行量化处理后,在PID平衡算法的控制下,控制电机及时地做出前进或后退或加速或减速的反应使车子在一个小角度范围内做平衡地来回摆动,以保持车子的不倒。

7效果视频

2020年我给我我的师弟们教学,基本都成功复刻并且学习了PID。

平衡小车演示视频

平衡小车演示视频