1 摘要
双轮平衡车是一种利用倒立摆原理的高度不稳定两轮机械装置,其力学特性具有多变量,非线性和不稳定等特点。本文使用STM32F103C8T6作为MCU,利用MPU6050六轴加速度陀螺仪和带霍尔编码器的GA25-370减速电机搭建平衡小车。通过整合小车的加速度、倾角进而速度信息,应用串级PID算法实现对小车的直立行走以及差速转向。此外,还使用HC-05蓝牙模块实现对小车的无线控制,外加超声波模块实现测距和避障功能,并通过oled进行分析显示,经过试验本系统具有较强的适应性和稳定性。
关键词:STM32F103C8T6;双轮平衡车;MPU6050;串级PID;
2 PID小车的系统设计
硬件方面主要由STM32F103C8T6最小系统,TB6612电机驱动,稳压模块,HC-06蓝牙,OLED显示屏,编码电机,超声波组成。通过单片机输出的PWM控制左右电机的转速,完成前后作用运动。
3 PID小车的硬件设计
3.1 硬件电路构成
系统选用STM32f103c8t6为控制核心,其他各部分模块包括mpu6050传感器,编码器电机,开关,OLED显示模块和超声波模块组成,系统原理图如图3-1所示:
3.2控制模块的选择
单片机是指一种集成在电路芯片上的微型计算机,它包括中央处理器CPU、随机存储器RAM、只读存储器ROM、并行I/O口、串行I/O口、中断系统、定时器/计数器、定时电路及元件等部件集成到一块芯片上构成的一个小而完善的计算机系统。
单片机内部设有定时电路,工作时外接振荡元件可接可不接。
在这个项目中我用的是stm32f103c8t6,功耗较低,符合设计要求,
整个硬件电路原理图如图3-2:
TM32的优点可以从多个角度进行详细分析,包括其性能、外设、开发工具、功耗管理等方面。以下是更加深入的详细分析:
处理性能高
- STM32微控制器基于ARM Cortex-M系列核心,具有很高的处理能力。不同的Cortex-M内核(如M0, M3, M4, M7等)覆盖了从低功耗到高性能的广泛应用:Cortex-M0:适用于基础控制应用,支持高效的指令执行,但处理能力较为有限。
- Cortex-M3:适合一般控制和信号处理任务,支持更强的中断管理和更高的计算性能。
- Cortex-M4:集成了数字信号处理(DSP)功能和硬件浮点单元(FPU),适用于复杂的算法和实时控制。
- Cortex-M7:提供更高的计算能力,适用于高性能、低延迟要求的应用,如图像处理、音频处理等。
- 这些处理器核心的性能范围覆盖了从低成本到高性能的广泛应用需求。
3.3 0.96OLED显示模块
一种显示屏模块,它包括一个0.96英寸的OLED显示屏和4个引脚。这种OLED屏幕模块通常用于嵌入式系统和小型电子设备中,可以显示文本、图像和其他类型的信息。由于其小尺寸和低功耗,它们也常用于智能手表、健康追踪器和其他便携式设备中。此类模块通常使用SPI或I2C接口进行通信,并且支持多种分辨率和颜色模式。
该模块有4个引脚,分别为VCC、GND、SCL和SDA。VCC是电源引脚,用于提供模块的电源,一般是3.3V或5V电源。GND是地引脚,用于提供模块的接地。需要接到负极电源上。SCL是时钟引脚,用于传输数据时的时钟信号。通常需要连接到主控芯片的时钟引脚。SDA是数据引脚,用于传输数据。通常需要连接到主控芯片的数据引脚。在使用I2C接口时,这个引脚也可以被称为SDA(串行数据线)。
3.4 mup6050姿态传感器模块
读取的三轴角速度和倾角信息作为基本的控制信息,再加上霍尔编码器输出的左右轮转速作为反馈信息实现。算法方面使用串级PID算法,包括PD直立环、PI速度环以及PD转向环三个方面综合计算实现小车的稳定运行,软件框架如图所示:
MPU6050 为全球首例集成六轴传感器的运动处理组件,内置了运动融合引擎,用于手持和桌面的应用程序、游戏控制器、体感遥控以及其他消费电子设备。它内置一个三轴 MEMS 陀螺仪、一个三轴 MEMS 加速度计、一个数字运动处理引擎(DMP)以及用于第三方的数字传感器接口的辅助 I2C 端口(常用于扩展磁力计)。当辅助 I2C 端口连接到一个三轴磁力计,MPU6050 能提供一个完整的九轴融合输出到其主 I2C 端口。
对于传统的惯性陀螺仪,主要