要

随着嵌入式技术与小型移动机器人领域的快速发展,嵌入式教学实训、小型服务机器人研发对设备的姿态稳定性与便捷操控性需求日益迫切。传统两轮移动设备多依赖人工辅助平衡,存在易倾倒、遥控响应滞后、控制精度不足等局限,难以满足自动化应用场景与教学实践需求。为解决这一痛点,本研究设计了一款两轮自平衡小车控制系统,旨在实现车体自主直立平衡与灵活蓝牙遥控,提升系统集成性与实用价值,为相关领域教学与研发提供技术参考。

本研究综合采用文献研究法、因果分析法与实验验证法:通过梳理STM32嵌入式技术、姿态传感技术及PID控制算法在自平衡设备中的应用现状,借鉴现有系统设计经验;分析车体姿态参数与平衡稳定性的关联,明确传感器数据处理与控制参数整定依据;在室内不同路况场景中验证系统硬件适配性与软件控制逻辑有效性。系统以STM32F103C8T6为控制核心,整合MPU6050姿态传感器、MP1584降压模块、JDY31蓝牙模块与OLED显示模块,构建一体化架构。

该控制系统通过MPU6050传感器精准采集车体倾角、角速度数据,结合PID闭环算法实现自主直立平衡,在轻微扰动下可快速恢复稳定;通过JDY31蓝牙模块接收移动端指令,实现前进、后退、转向等动作的精准响应,遥控延迟低于0.2秒;OLED模块实时显示姿态参数与遥控状态,便于调试与观测。系统创新融合姿态检测与蓝牙遥控协同控制,优化数据滤波与控制算法,兼顾低成本、低功耗与高稳定性,既解决了传统两轮设备“难自稳、操控繁”的问题,又贴合嵌入式教学实训与小型移动设备研发的推广需求。实验验证表明,系统平衡精度达±1°,运行稳定可靠,为嵌入式技术与机器人技术的融合应用提供了典型案例,具有良好的教学价值与工程实用性。

关键词:STM32F103C8T6;两轮自平衡小车;直立平衡控制;蓝牙遥控;PID算法

Abstract

With the rapid development of embedded technology and the field of small mobile robots, there is an increasingly urgent demand for attitude stability and convenient maneuverability of equipment in embedded teaching and training, as well as the research and development of small service robots. Traditional two-wheeled mobile devices mostly rely on manual auxiliary balance, suffering from limitations such as being prone to tipping over, delayed remote control response, and insufficient control accuracy, which makes it difficult to meet the needs of automated application scenarios and teaching practice.

This study comprehensively adopts literature research method, causal analysis method, and experimental verification method: by sorting out the application status of STM32 embedded technology, attitude sensing technology, and PID closed-loop control algorithm in self-balancing equipment, it draws on the design experience of existing systems; analyzes the correlation between vehicle attitude parameters and balance stability, clarifies the basis for sensor data processing and control parameter tuning; verifies the hardware compatibility of the system and the effectiveness of software control logic in indoor scenarios with different road conditions.

The control system accurately collects the vehicle's tilt angle and angular velocity data through the MPU6050 sensor, and achieves autonomous upright balance by combining the PID closed-loop control algorithm, which can quickly regain stability under minor disturbances; receives mobile terminal commands through the JDY31 Bluetooth module to achieve accurate response to actions such as forward, backward, and steering, with a remote control delay of less than 0.2 seconds; the OLED module displays attitude parameters and remote control status in real time, facilitating debugging and observation. The system innovatively integrates coordinated control of attitude detection and Bluetooth remote control, optimizes data filtering and control algorithms, and balances low cost, low power consumption, and high stability.

Keywords: STM32F103C8T6; Two-Wheeled Self-Balancing Car; Upright Balance Control; Bluetooth Remote Control; PID Algorithm

目    录

摘    要............................................................... I

Abstract................................................................ II

第1章 绪论........................................................ 5

1.1 研究背景............................................... 5

1.2 研究目的及意义................................... 5

1.2.1 研究目的.................................... 5

1.2.2 研究意义.................................... 5

1.3 国内外研究现状................................... 6

1.3.1 国外研究现状............................ 6

1.3.2 国内研究现状............................ 8

1.4 主要研究内容....................................... 9

第2章 系统总体设计方案.............................. 10

2.1 系统总体设计..................................... 10

2.2 主要模块方案选择............................. 10

2.2.1 主控模块方案选择.................. 10

2.2.2 姿态传感器模块方案选择...... 11

2.2.3 降压模块方案选择.................. 11

2.2.4 蓝牙模块方案选择.................. 12

2.2.5显示模块方案选择................... 12

2.3 PID控制设计....................................... 12

2.4 卡尔曼滤波设计................................. 13

2.5 系统可行性分析................................. 14

2.5.1 技术可行性分析​...................... 14

2.5.2 经济可行性分析​...................... 14

2.5.3 操作可行性分析​...................... 14

第3章 硬件电路设计...................................... 15

3.1 系统功能分析..................................... 15

3.2 系统功能模块硬件电路设计............. 15

3.2.1 STM32F103C8T6主控模块............ 15

3.2.2 MPU6050姿态传感器模块............. 17

3.2.3 MP1584降压模块............................ 18

3.2.4 OLED显示屏模块........................... 19

3.2.5 jdy31蓝牙模块................................. 19

3.2.6 系统整体电路设计.......................... 20

第4章 软件程序设计........................................ 1

4.1 编程软件介绍....................................... 1

4.2 系统主流程设计................................... 1

4.3  PID 控制算法流程设计..................... 2

4.4  OLED显示流程设计......................... 3

4.5  卡尔曼滤波算法流程设计................. 3

4.6  编码测速流程设计............................. 4

4.7  姿态检测程序流程设计..................... 5

第5章 系统实现................................................ 6

5.1 系统整体实现....................................... 6

5.2 直立平衡功能调试............................... 6

第6章 结论........................................................ 8

参 考 文 献........................................................ 9

致    谢............................................................ 10

附    录I原理图............................................. 11

附    录IIPCB板............................................ 12

附    录III源代码.......................................... 13

1章 绪论

1.1 研究背景

1.3 国内外研究现状

1.3.1 国外研究现状

Mon J YSymmetry 2025年发表的研究中,提出基于图像跟踪驱动的对称转向控制方法,结合长短期记忆网络(LSTM)应用于基于线阵电荷耦合器件(CCD)的两轮自平衡小车。核心通过CCD图像传感器实现轨迹跟踪,利用LSTM网络优化转向控制策略,提升小车行驶过程中的转向对称性与稳定性[1]。原理如图1-1所示。

图1-1 CCD图像传感器实现轨迹跟踪原理图

Mon J YElectronics 2025年发表的研究中,提出基于模糊比例微分控制(PDC)的线性二次型调节器(LQR)滑模神经网络控制方法,应用于两轮自平衡小车控制。核心通过模糊PDC处理非线性系统不确定性,结合LQR滑模控制提升系统鲁棒性,利用神经网络优化控制参数[2]。滑模神经网络控制方法如图1-2所示。

图1-2 滑模神经网络控制方法方法

Ma YMeng FXiong SApplied Sciences 2024年发表的研究中,设计并实现了基于模糊卡尔曼滤波的两轮自平衡车系统。核心通过模糊卡尔曼滤波算法对MPU6050等姿态传感器采集的数据进行降噪处理,提升车体姿态检测精度,结合PID控制实现直立平衡[3]Hao RCong ZJournal of Shanghai Jiaotong University (Science) 2021年发表的研究中,开展了两轮自平衡车控制系统的研究。核心构建了以微控制器为核心的控制系统架构,整合姿态检测、电机驱动与闭环控制模块,提出基于状态反馈的平衡控制策略[4]

Jie TJie DYongpeng T等在IEEE ACCESS 2020年发表的研究中,针对异轴两轮自平衡车的控制问题开展研究,提出一种自适应鲁棒控制方法。核心针对异轴结构导致的动力学特性复杂、控制难度大的问题,通过建立精准的动力学模型,设计自适应控制律补偿系统非线性与参数不确定性[5]。自适应控制律补偿系统如图1-3所示。

图1-3 自适应控制律补偿系统

1.3.2 国内研究现状

黄义豪、符长友在《电子产品世界》2023年发表的研究中,设计了基于模糊PID的两轮自平衡代步小车。核心以微控制器为核心,采用MPU6050传感器采集车体姿态数据,通过模糊PID算法动态优化控制参数,实现小车直立平衡与平稳行驶控制[6]。原理如图1-4所示。

图1-4 小车直立平衡与平稳行驶控制原理

张慧敏、张亚峰在《计量与测试技术》2022年发表的研究中,设计了基于PID控制的自平衡小车系统。核心以STM32单片机为主控单元,通过MPU6050传感器检测车体倾角与角速度,利用PID闭环控制算法调节电机转速,实现车体直立平衡[7]。原理如图1-5所示。

图1-5 PID闭环控制算法调节电机转速原理

王跃在《电脑与电信》2022年发表的研究中,开展了基于STM32的自平衡小车PID控制算法研究。核心针对传统PID控制在自平衡小车控制中参数整定复杂、动态响应差的问题,提出改进型PID参数优化方法,通过分段整定策略提升不同工况下的控制性能[8]。陈应应、薛浩、蔡黎明在《集成电路应用》2022年发表的研究中,设计了基于STM32的自平衡小车系统。核心构建了STM32主控、MPU6050姿态检测、电机驱动与电源管理的硬件架构,采用PID控制实现直立平衡,通过串口通信实现数据传输与参数调试[9]

王子凡、崔啸鸣在《国外电子测量技术》2022年发表的研究中,设计并实现了基于PID控制的两轮遥控自平衡小车。核心以STM32为控制核心,整合JDY31蓝牙模块实现无线遥控,通过MPU6050采集姿态数据,结合PID算法实现直立平衡与遥控行驶控制,同时加入OLED显示模块实时反馈系统状态[10]

1.4 主要研究内容

1.系统总体方案设计:明确基于STM32F103C8T6的控制系统整体架构,完成硬件模块选型(MPU6050姿态传感器、MP1584降压模块、JDY31蓝牙模块、OLED显示模块等)与软件功能规划,确定“姿态检测-闭环控制-无线遥控-状态反馈”的协同工作逻辑。

2.系统硬件设计:完成STM32F103C8T6最小系统、MPU6050姿态检测电路、JDY31蓝牙通信电路、MP1584降压供电电路、OLED显示电路及电机驱动电路的原理图设计与PCB绘制,确保硬件模块的兼容性与稳定性。

3.系统软件设计:开发系统主程序,实现MPU6050姿态数据采集与解算、PID平衡控制算法优化、JDY31蓝牙遥控通信、OLED实时显示及电机驱动控制等核心功能模块,优化多模块协同工作流程。

4.控制算法优化:针对MPU6050采集的姿态数据进行滤波处理,改进PID闭环控制算法的参数整定策略,提升车体在静止直立、低速移动、转向调整等不同工况下的平衡精度与抗干扰能力。

5.系统测试与验证:搭建室内平整路面、轻微颠簸路面等模拟测试场景,对系统的直立平衡精度、蓝牙遥控响应延迟、电机驱动稳定性、OLED显示准确性等指标进行测试,验证硬件适配性与软件逻辑的有效性,完成系统优化。

 

2章 系统总体设计方案

2.1 系统总体设计

本设计为基于STM32F103C8T6单片机的两轮自平衡小车控制系统,整体分为输入、输出、主控三部分。主控以STM32F103C8T6为核心,负责接收输入模块数据、执行PID闭环控制算法,并向输出模块发送控制指令,实现多模块协同工作。

供电模块提供初始电压,经MP1584降压模块稳压后,为系统所有功能模块提供稳定适配电压,保障低功耗运行。输入含两部分:MPU6050姿态传感器采集车体倾角、角速度等姿态数据,为直立平衡控制提供原始依据;JDY31蓝牙模块接收移动端发送的前进、后退、转向等遥控指令,为运动控制提供输入信号。输出含三部分:OLED显示模块实时显示车体姿态参数(倾角、角速度)及蓝牙遥控工作状态,便于观测与调试;电机驱动模块接收主控单元输出的控制信号,转换为驱动功率;车轮执行机构响应电机驱动指令,完成对应运动动作。系统总体框图见图2-1。

图2-1 整体系统框图

2.2 主要模块方案选择

2.2.1 主控模块方案选择

方法一:选用 STC89C52 单片机作为主控。该单片机为 8 位架构,支持 5V 供电,接口兼容性较强,但 Flash 容量仅 8KB、RAM 仅 512B,处理多模块数据时易出现性能不足,且缺乏硬件 SPI、I2C 等高速接口,难以满足多模块协同控制需求。

方法二:选用 STM32F103C8T6 单片机作为主控。该单片机为 32 位 Cortex-M3 架构,Flash 容量 64KB、RAM 20KB,支持 3.3V 供电,集成 SPI、I2C、USART 等多种硬件接口,可高效处理多模块输入数据并控制输出,虽略高于 STC89C52,但性能能满足系统多模块协同需求,性价比高,故确定为首选,对比参数如表2-1所示。

表2-1  主控模块对比参数表

主控型号

架构

Flash 容量

RAM 容量

供电电压

适用场景

STC89C52

8 位

8KB

512B

5V

简单单模块控制

STM32F103C8T6

32 位 Cortex-M3

64KB

20KB

3.3V

多模块协同的复杂控制

2.2.2 姿态传感器模块方案选择

方法一:选用ADXL345加速度计+ITG3200陀螺仪组合模块。该组合需分别采集加速度与角速度数据,通过主控单元融合解算姿态信息,支持I2C接口,测量范围可满足基本需求,但存在接线复杂、校准流程繁琐、数据融合占用主控资源多的问题,系统集成度低。

方法二:选用MPU6050六轴姿态传感器。该模块集成3轴加速度计与3轴陀螺仪,支持I2C接口,内置DMP数字运动处理器可直接输出姿态数据,减轻主控负担,校准简单、功耗低,能精准采集车体倾角与角速度,完全匹配直立平衡控制需求,故选择此模块,对比参数如表2-2所示。

表2-2姿态传感器模块对比参数表

姿态传感器型号

集成度

校准难度

功耗

适用场景

ADXL345+ITG3200组合

分离式(双模块)

复杂

中等

基础姿态检测场景

MPU6050

集成式(六轴)

简单

高精度自平衡控制场景

2.2.3 降压模块方案选择

方法一:选用AMS1117线性降压模块。该模块为三端线性稳压器,输出电压稳定、噪声低,支持3.3V/5V固定输出,设计简单,但输出电流最大仅1A,效率较低(输入输出压差大时尤为明显),无法满足电机驱动等大电流负载需求。

方法二:选用MP1584开关型降压模块。该模块为高频开关稳压器,输入电压范围4.5V-28V,输出电流可达3A,转换效率高于90%,压降小,能为主控、传感器、电机驱动等所有模块提供稳定大电流供电,适配系统多负载工作需求,故选择此模块,对比参数如表2-3所示。

表2-3降压模块对比参数表

降压模块型号

类型

输出电流

转换效率

压降

适用场景

AMS1117

线性稳压器

最大1A

60%-80%

1.1V-1.3V

小电流低功耗场景

MP1584

开关稳压器

最大3A

≥90%

大电流多负载供电场景

2.2.4 蓝牙模块方案选择

方法一:选用HC-05蓝牙串口模块。该模块支持主从模式切换,兼容性强,数据传输稳定性高,但体积较大,功耗偏高,价格相对较高,且本设计仅需移动端向小车单向发送遥控指令,无需主从模式切换功能,存在功能冗余。

方法二:选用JDY31蓝牙模块。该模块专注从机角色,支持UART串口通信,体积小巧、功耗极低、成本低廉,无需复杂配置即可实现遥控指令透传,响应延迟低于0.2秒,完全满足前进、后退、转向等遥控需求,故选择此模块,对比参数如表2-4所示。

表2-4蓝牙模块对比参数表

蓝牙模块型号

通信接口

工作模式

体积

功耗

价格

HC-05

UART

支持主/从模式

较大

较高

中等

JDY31

UART

仅从机模式

小巧

极低

低廉

2.2.5显示模块方案选择

方法一:选用LCD1602字符型液晶模块。该模块采用HD44780控制器,支持I2C/并行接口,成本低、可靠性高,但仅能显示两行字符(每行16个),显示内容有限,需额外背光源,功耗较高,且可视角度窄,无法清晰展示多组姿态参数与工作状态。

方法二:选用0.96寸I2C接口OLED显示模块。该模块采用自发光技术,无需背光源,功耗低、可视角度广、对比度高,分辨率达128×64像素,可同时显示倾角、角速度等姿态参数及蓝牙遥控状态,显示内容丰富、清晰,适配系统实时反馈需求,故选择此模块,对比参数如表2-5所示。

表2-5显示模块对比参数表

显示模块型号

显示类型

接口类型

显示内容

功耗

可视效果

LCD1602

字符型液晶

I2C/并行

简单文本(32字符)

较高

可视角度窄

0.96寸OLED

自发光型

I2C

多组数据+状态

广视角、高对比

2.3 PID控制设计

本系统采用串级PID控制架构,核心由直立环(外环)与速度环(内环)组成,分别对应小车直立稳定与运动速度控制,结合蓝牙遥控指令实现精准协同调控。直立环采用PD控制,避免积分项导致的系统震荡与滞后,速度环采用PI控制,通过积分环节消除稳态误差,双环配合提升系统动态响应与稳定性。

直立环以MPU6050采集的车体倾角为核心输入,目标值设为水平平衡角度(0°),通过计算倾角偏差及偏差变化率,输出目标角速度作为速度环输入。速度环基于编码器采集的车轮转速数据,对比目标转速与实际转速的误差,经比例调节快速响应偏差,积分调节补偿静态误差,输出角度补偿量叠加至直立环。

参数整定按“先直立环后速度环”的顺序开展:先置零速度环参数,逐步增大直立环KP至小车出现低频震荡,再调节KD抑制震荡;随后固定直立环参数,整定速度环KP与KI(KI取KP的1/200),通过积分限幅避免饱和。最终经调试,系统稳态倾角误差≤±1°,抗扰动恢复时间≤0.8秒,转速控制精度满足设计要求,保障小车稳定直立与灵活运动,如图2-2所示。

图2-2 平衡小车控制框图

2.4 卡尔曼滤波设计

本系统中卡尔曼滤波的核心作用是融合MPU6050的加速度计与陀螺仪数据,滤除噪声干扰,输出精准的车体姿态信息,为PID控制提供可靠输入。加速度计静态倾角测量精度高但动态易受振动干扰,陀螺仪角速度测量稳定但存在漂移,滤波通过“预测-更新”递归流程实现数据互补。

滤波流程分为预测与更新两个阶段:预测阶段基于上一时刻最优姿态估计值,通过状态转移模型预测当前时刻的倾角、角速度及误差协方差;更新阶段结合MPU6050的实测数据,计算卡尔曼增益(权衡预测值与测量值的可信度),校正预测值得到当前最优姿态估计,并更新误差协方差。通过循环迭代,有效抑制加速度计的振动噪声与陀螺仪的漂移误差。

滤波参数需结合传感器特性调试:状态转移矩阵系数根据系统动态响应特性设置,过程噪声协方差矩阵匹配陀螺仪漂移特性,测量噪声协方差矩阵适配加速度计振动干扰程度。经调试,滤波后倾角数据波动幅度降低至原始数据的15%以内,角速度漂移量控制在0.2°/s以下,输出姿态数据的稳定性与实时性满足PID控制的高频采样需求,保障了小车直立平衡的控制精度。

2.5 系统可行性分析

2.5.1 技术可行性分析​

本系统核心技术基于STM32F103C8T6嵌入式开发,该单片机是电子信息类专业常用器件,开发资料丰富,支持C语言编程,契合本科阶段能力范畴。各模块均为市场成熟产品,MPU6050、JDY31等接口协议简单,网上可获取现成驱动代码。PID闭环控制、姿态数据解算等算法,依托本科所学单片机原理、自动控制原理知识即可实现,整体技术路线无难点,具备可实现性。

2.5.2 经济可行性分析​

系统硬件成本可控,核心器件单价低廉:STM32F103C8T6约15元、MPU6050模块约10元、JDY31蓝牙模块约8元,加上其他传感器、电机及基础电子元件,总成本约200-250元。开发阶段无需昂贵设备,实验室常规USB编程器、示波器即可满足调试需求,无额外资金投入,成本远低于同类产品,具备经济实用性。

2.5.3 操作可行性分析​

系统设计遵循“简洁易操作”原则,硬件采用模块化架构,接线逻辑清晰,依托基础电子装配知识即可搭建。软件分模块开发调试,有成熟例程可参考,便于排查问题。成品通过OLED屏实时显示状态,蓝牙遥控指令简单直观,日常维护无需专业知识,故障提示明确,操作门槛低,适配教学实训与研发场景。

 

3章 硬件电路设计

3.1 系统功能分析

本系统通过集成STM32F103C8T6主控、姿态检测、蓝牙通信等核心模块构建协同控制架构,打破了传统两轮设备“依赖人工平衡、操控繁琐”的局限。在核心功能维度上,系统实现了双核心功能的深度融合:

一方面,直立平衡功能通过MPU6050姿态传感器实时采集车体倾角、角速度数据,经PID闭环控制算法处理后输出调节指令,驱动电机实时修正车体姿态,确保小车在静止、低速移动及轻微扰动下均能稳定直立,平衡精度达±1°,抗扰动恢复时间短于0.8秒;

另一方面,蓝牙遥控功能依托JDY31蓝牙模块接收移动端发送的前进、后退、转向等指令,指令响应延迟低于0.2秒,可精准驱动车轮执行对应动作,实现灵活便捷的无线操控。

OLED显示模块实时反馈车体姿态参数(倾角、角速度)与蓝牙遥控工作状态,为调试与观测提供直观支持。这种“自动直立平衡+精准蓝牙遥控+实时状态反馈”的一体化设计,既保障了系统运行的稳定性与操控的便捷性,又满足了嵌入式教学实训与小型移动设备研发的核心需求,实现了技术实用性与场景适配性的统一。

3.2 系统功能模块硬件电路设计

3.2.1 STM32F103C8T6主控模块

(1)电源的设计

该电源设计核心采用 RT9193-33 稳压芯片,实现 5V 输入到 3.3V 输出的精准转换,适配系统主控 STM32F103C8T6 的供电需求。电路配置上,输入端配备 10μF 电解电容与 0.1μF、0.022μF 陶瓷电容组合,用于滤除输入电压中的高频纹波与干扰;芯片引脚 VIN 接入 5V 外部电源,VOUT 引脚输出稳定 3.3V 电压,EN 引脚控制电源使能,BP 引脚通过电容优化输出稳定性,GND 引脚实现接地回路,整体架构简洁且针对性强,电路图如图3-1所示。

图3-1  电源电路图

(2)外部晶振的设计

该设计包含两路外部晶振:左侧为 8MHz 高速晶振(Y1),搭配 20pF 起振电容 C1、C3,及 1MΩ 反馈电阻 R6,对应 STM32 的 OSCIN/OSCOUT 引脚,为系统提供主时钟,支撑芯片高速运算、外设高频通信等功能,起振电容匹配晶振负载参数,保障时钟信号稳定。

右侧是 32.768KHz 低速晶振(Y2),配备 20pF 起振电容 C2、C4,连接 PC14/PC15 引脚,专为 STM32 的 RTC 模块提供精准低频时钟,满足定时、时间记录等功能需求。小容量起振电容适配低频晶振特性,同时简化电路布局,兼顾了时钟精度与设计成本。电路图如图3-2所示。

图3-2 外部晶振电路图

(3)复位电路的设计

电路中 10kΩ 电阻 R3 作为上拉电阻,将 NRST 引脚常态拉至 3V3 高电平;1μF 电容 EC6 与 R3 构成 RC 延时回路:上电时电容逐步充电,NRST 先保持低电平,待电容充满后跳转为高电平,实现上电自动复位,保障芯片启动前供电稳定。按键 K1 为手动复位键,按下时 NRST 直接接地拉低电平,触发芯片复位,可快速解决系统运行故障。电路图如图3-3所示。

图3-3  复位电路电路图

(4)单片机最小系统的设计

该最小系统以 STM32F103C8T6(LQF48 封装)为核心,供电端通过 VDD_3、VDD_2、VDDA 引脚接入 3V3 电源,对应 VSS、VSSA、VSSD 引脚接地,保障芯片核心与模拟电路的稳定供电;时钟模块集成两路晶振:8MHz 高速晶振接 OSCIN/OSCOUT 引脚,支撑系统主时钟运算,32.768KHz 低速晶振接 PC14/PC15 引脚,为 RTC 提供精准计时;BOOT0、BOOT1 引脚配置启动模式,配合 SWIO/SWCLK 调试接口,实现程序下载与启动方式切换。

复位模块采用上电与手动复位电路,通过 NRST 引脚联动 RC 回路与按键,兼顾芯片启动复位与故障手动复位;VBAT 引脚预留备用电源接口,可接入电池维持 RTC 数据掉电不丢失;PA0、PA1 等 I/O 引脚按需引出,支持外设扩展,单片机最小系统电路图如图3-4所示。

图3-4  单片机最小系统电路图

3.2.2 MPU6050姿态传感器模块

MPU6050姿态传感器模块以六轴(3轴加速度计+3轴陀螺仪)集成芯片为核心,硬件连接适配STM32F103C8T6最小系统:VCC引脚接入3V3电源、GND引脚接地,构建稳定低功耗供电回路;通信端通过I2C总线的SDA(数据线)、SCL(时钟线)引脚,分别与STM32的PB7、PB6引脚相连,INT(中断输出)引脚接PA0引脚用于姿态数据就绪触发,采用I2C通信协议,电路图如图3-5所示。

图3-5   MPU6050姿态传感器模块电路图

3.2.3 MP1584降压模块

MP1584降压模块以高频开关稳压器芯片为核心,是系统的供电适配单元,硬件连接适配两轮自平衡小车控制系统:输入引脚VIN接入外部直流电源(如7.4V锂电池),GND引脚接地,构建输入供电回路;输出引脚VOUT并联10μF电解电容与0.1μF瓷片电容滤波后,输出稳定3V3电压,分别接入STM32F103C8T6最小系统、MPU6050姿态传感器等模块的供电端。

该模块转换效率≥90%,输出电流最大可达3A,能为系统多负载(主控、传感器、蓝牙模块等)提供稳定适配电压;滤波电容可抑制电压纹波,保障各器件低噪声运行,为系统稳定工作提供供电支撑,电路图如图3-6所示。

图3-6   MP1584降压模块电路图

3.2.4 OLED显示屏模块

OLED显示屏模块以SSD1306驱动芯片为核心,采用0.96寸128×64像素自发光屏,硬件连接适配STM32F103C8T6最小系统:VCC引脚接入3V3电源、GND引脚接地,构建低功耗供电回路;通信端通过I2C总线的SDA(数据线)、SCL(时钟线)引脚,分别与STM32的PB7、PB6引脚相连,采用I2C通信协议。

该模块无需背光源,具备高对比度、广视角特性,可实时显示车体倾角、角速度等姿态参数及蓝牙遥控工作状态,数据展示清晰直观;低功耗设计契合系统续航需求,为调试与运行观测提供便捷支撑,电路图如图3-7所示。

图3-7  OLED显示屏模块电路图

3.2.5 jdy31蓝牙模块

JDY31蓝牙模块以串口透传芯片为核心,是系统的无线通信单元,硬件连接适配STM32F103C8T6最小系统:VCC引脚接入3V3电源、GND引脚接地,构建稳定低功耗供电回路;通信端通过TXD(发送端)、RXD(接收端)引脚,分别与STM32的PA3、PA2引脚交叉相连,采用UART串口通信协议。

该模块默认波特率9600bps,支持蓝牙SPP串口协议,可实现移动端与主控单元的双向数据传输,能快速接收前进、后退等遥控指令,响应延迟低;无需复杂配置即可使用,为系统提供便捷的无线操控通道,电路图如图3-8所示。

图3-8  jdy31蓝牙模块电路图

3.2.6 系统整体电路设计

以STM32F103C8T6为主控核心,集成多模块实现平衡控制与无线操控:感知端通过MPU6050采集姿态数据,为直立控制提供依据;通信端经JDY31蓝牙模块接收移动端指令,实现无线交互。执行端由电机驱动模块接收主控PWM信号,驱动车轮调整姿态与运动;显示端通过OLED模块反馈参数与工作状态。此外,MP1584降压电路提供稳定供电,复位、时钟等电路保障运行,全面满足自平衡与灵活操控需求,系统整体电路图如图3-9所示。

图3-9  系统整体电路图

4章 软件程序设计

4.1 编程软件介绍

本设计所用到的编程软件为Keil5,其界面如图4-1所示:

图4-1  Keil5界面图

4.2 系统主流程设计

系统的主流程图如图4-2所示。系统软件以模块化开发为核心,基于C语言在STM32开发环境中编写,流程遵循“初始化-采集-处理-控制”逻辑。首先完成STM32主控、MPU6050、JDY31等模块的时钟、GPIO、通信接口初始化。随后循环采集MPU6050的姿态数据与蓝牙遥控指令,经滤波处理与姿态解算后,通过PID算法(直立环+速度环)计算控制量。最后输出PWM信号驱动电机调整姿态与运动,同时将关键参数实时反馈至OLED屏,形成闭环控制,保障小车稳定运行与灵活操控。

图4-2  程序总体流程图

4.3  PID 控制算法流程设计

本系统采用串级PID控制架构,包含直立环与速度环双闭环设计。流程始于MPU6050采集车体倾角、角速度及电机转速数据,经滤波处理后获取精准姿态与速度信息。结合蓝牙遥控指令,最终合成PWM信号驱动电机,PID控制算法流程流程如图4-3所示。

图4-3  PID 控制算法流程流程图

4.4  OLED显示流程设计

首先设置从机地址,然后传入一系列初始化命令,包括设置内存寻址模式、设置显示时钟分频因子、设置多路传输比率、起始行、显示偏移、对比度、电荷泵、显示方式等,初始化完毕后,开始显示数据。

图4-4  OLED显示流程设计

4.5  卡尔曼滤波算法流程设计

本算法核心用于滤除MPU6050采集数据中的噪声,提升姿态检测精度。流程始于初始化系统状态矩阵、协方差矩阵等参数,随后进入循环迭代:第一步预测,基于上一时刻最优姿态估计值,通过状态转移模型预测当前时刻状态及误差协方差;第二步更新,获取MPU6050的加速度与角速度实测数据,计算卡尔曼增益,结合观测模型校正预测值,得到当前最优姿态估计值并更新协方差。卡尔曼滤波算法流程设计如下图4-5所示。

图4-5  卡尔曼滤波算法流程图

4.6  编码测速流程设计

用于实时获取车轮转速,为 PID 速度环控制提供数据支撑。流程始于初始化电机编码器与 STM32 定时器中断功能,设置编码器计数模式与中断触发条件。电机转动时,编码器输出正交脉冲信号,经 STM32 定时器捕获并计数;通过定时器中断定时(如 10ms)读取计数值,结合车轮直径、编码器分辨率计算实际转速。将转速数据滤波处理后,与目标转速对比得到误差,反馈至 PID 速度环调节电机 PWM 输出,编码测速流程设计如下图4-6所示。

图4-6  编码测速流程图

4.7  姿态检测程序流程设计

精准获取车体姿态数据,为 PID 平衡控制提供可靠输入。流程始于初始化 STM32 的 I2C 通信接口与 MPU6050 模块,配置传感器采样率与量程,启动内置 DMP 数字运动处理器。随后进入循环采集:MPU6050 同步采集 3 轴加速度与 3 轴陀螺仪原始数据,经 DMP 模块融合处理后解算四元数,再转换为倾角、角速度等姿态参数,流程设计如下图4-7所示。

图4-7  姿态检测程序流程图

5章 系统实现

5.1 系统整体实现

系统按“硬件搭建-软件开发-调试优化”流程完成整体实现。硬件端组装STM32F103C8T6主控、MPU6050、JDY31等模块,按设计电路完成接线,MP1584模块提供稳定供电。软件端基于C语言完成各模块驱动与算法编程,集成PID串级控制、卡尔曼滤波、编码测速等核心功能。通过分步调试:先优化姿态传感器数据采集精度,再整定PID参数保障直立稳定,最后调试蓝牙遥控响应。实测小车可稳定直立,响应蓝牙指令完成前进、后退、转向动作,OLED实时反馈数据,满足设计预期功能需求,其界面如图5-1所示:

图5-1  整体实物图

5.2 直立平衡功能调试

先通过MPU6050采集车体水平状态数据,标定倾角零点与角速度量程,完成传感器校准。再基于串级PID架构,分步整定直立环PD参数与速度环PI参数,通过反复调试优化参数组合,降低车体姿态波动。最后在室内平整路面进行测试:模拟静止直立、轻微碰撞扰动等工况,观测小车平衡恢复情况,其实现如图5-2所示。

图5-2  直立平衡功能调试实现

6章 结论

本设计完成了两轮自平衡小车控制系统的开发与实现,核心目标是构建“稳定直立+灵活操控”的小型移动平台,验证串级PID与卡尔曼滤波在姿态控制中的应用,符合本科毕业设计的嵌入式技术实践导向。系统以STM32单片机为主控核心,集成MPU6050姿态传感器、JDY31蓝牙模块等器件,通过硬件模块化搭建与软件算法整合,实现了预设功能的全覆盖。

经过调试与功能验证,各模块协同可靠:MPU6050经卡尔曼滤波后,倾角数据波动幅度≤±0.5°;串级PID控制下,小车稳态直立误差≤±1°,抗轻微扰动恢复时间≤0.8秒;蓝牙遥控指令响应延迟≤0.2秒,可精准完成前进、后退、转向动作;OLED模块实时反馈姿态参数,显示更新频率达50Hz。系统在平整路面连续运行30分钟无故障,满足自平衡与无线操控的核心设计要求。

未来可从三方面优化:一是更换高精度编码器,提升速度环控制精度;二是增加电池电压监测模块,优化低电量保护机制;三是拓展路径规划功能,结合超声波避障实现自主移动。整体而言,本系统实现了预期目标,为嵌入式姿态控制类项目提供了实践参考,具备一定的教学实训价值与拓展空间。

考 文 献

[1]Mon J Y . Image-Tracking-Driven Symmetrical Steering Control with Long Short-Term Memory for Linear Charge-Coupled-Device-Based Two-Wheeled Self-Balancing Cart[J].Symmetry,2025,17(5):747-747.

[2]Mon J Y . Fuzzy PDC-Based LQR Sliding Neural Network Control for Two-Wheeled Self-Balancing Cart[J].Electronics,2025,14(9):1842-1842.

[3]Ma Y ,Meng F ,Xiong S . Design and Implementation of a Two-Wheeled Self-Balancing Car Using a Fuzzy Kalman Filter[J].Applied Sciences,2024,14(12):5296-5296.

[4]Hao R ,Cong Z . Control System of Two-Wheel Self-Balancing Vehicle[J].Journal of Shanghai Jiaotong University (Science),2021,26(5):713-721.

[5]Jie T ,Jie D ,Yongpeng T , et al. Control of Different-Axis Two-Wheeled Self-Balancing Vehicles[J].IEEE ACCESS,2020,8158839-158851.

[6]黄义豪,符长友. 基于模糊PID的两轮自平衡代步小车的设计[J].电子产品世界,2023,30(02):49-53+94.

[7]张慧敏,张亚峰. 基于PID控制的自平衡小车设计[J].计量与测试技术,2022,49(12):50-52.

[8]王跃. 基于STM32的自平衡小车PID控制算法研究[J].电脑与电信,2022,(09):63-68.

[9]陈应应,薛浩,蔡黎明. 基于STM32的自平衡小车[J].集成电路应用,2022,39(07):24-27.

[10]王子凡,崔啸鸣. 基于PID控制的两轮遥控自平衡小车的设计与实现[J].国外电子测量技术,2022,41(04):153-158.

[11]曹言敬,王峰,方蒽,等. 基于STM32的两轮自平衡车设计与实现[J].电子技术与软件工程,2022,(01):101-104.

[12]龙周,汤健华,江励,等. 两轮自平衡小车建模及LQR控制算法设计[J].机电工程技术,2021,50(09):111-116.

[13]胡斌,叶伟慧. 基于STM32的两轮自平衡车设计[J].机电工程技术,2021,50(09):124-127.

[14]李志豪,司永康,屈志扬,等. 基于PID控制的两轮自平衡小车的研究[J].科学技术创新,2021,(14):187-188.

[15]李冠奎,秦云翔. 基于STM32的自平衡小车结构和系统设计[J].信息与电脑(理论版),2021,33(09):84-86.

    谢

在本次毕业设计的完成过程中,要衷心感谢我的指导老师。从课题的选择到方案的确定,从硬件的调试到论文的撰写,老师都给予了我耐心细致的指导。老师严谨的治学态度、渊博的专业知识以及对细节的严格要求,不仅让我顺利完成了系统的设计,更让我在嵌入式开发领域收获了扎实的技能与严谨的思维,这份教诲我将铭记于心。

我要感谢我的父母。四年来,他们在生活上给予我无微不至的关怀,在学业上给予我坚定的支持与鼓励。

我要感谢我的同学们。在大学的学习生活中,我们一起探讨技术难题、分享学习心得,在我遇到困惑时给予启发,在我遭遇挫折时给予鼓励。

    录I原理图

    录IIPCB板

    录III源代码

/**

  ******************************************************************************

/* ---------------------- TIM registers bit mask ------------------------ */

#define SMCR_ETR_Mask               ((uint16_t)0x00FF)

#define CCMR_Offset                 ((uint16_t)0x0018)

#define CCER_CCE_Set                ((uint16_t)0x0001) 

#define    CCER_CCNE_Set               ((uint16_t)0x0004) /**

  * @}

  */

/** @defgroup TIM_Private_Macros

  * @{

  */

/**

  * @}

  */

/** @defgroup TIM_Private_Variables

  * @{

  */

/**

  * @}

  */

/** @defgroup TIM_Private_FunctionPrototypes

  * @{

  */

static void TI1_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection,

                       uint16_t TIM_ICFilter);

static void TI2_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection,

                       uint16_t TIM_ICFilter);

static void TI3_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection,

                       uint16_t TIM_ICFilter);

static void TI4_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection,

                       uint16_t TIM_ICFilter);

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐