两轮自平衡小车控制系统设计(原理图、仿真、源代码、高质量、15000字)
密级:公开
两轮自平衡小车控制系统设计
Design of Control System for Two-wheeled Self-balancing Robot Car
摘 要
随着嵌入式技术与小型移动机器人领域的快速发展,嵌入式教学实训、小型服务机器人研发对设备的姿态稳定性与便捷操控性需求日益迫切。传统两轮移动设备多依赖人工辅助平衡,存在易倾倒、遥控响应滞后、控制精度不足等局限,难以满足自动化应用场景与教学实践需求。为解决这一痛点,本研究设计了一款两轮自平衡小车控制系统,旨在实现车体自主直立平衡与灵活蓝牙遥控,提升系统集成性与实用价值,为相关领域教学与研发提供技术参考。
本研究综合采用文献研究法、因果分析法与实验验证法:通过梳理STM32嵌入式技术、姿态传感技术及PID控制算法在自平衡设备中的应用现状,借鉴现有系统设计经验;分析车体姿态参数与平衡稳定性的关联,明确传感器数据处理与控制参数整定依据;在室内不同路况场景中验证系统硬件适配性与软件控制逻辑有效性。系统以STM32F103C8T6为控制核心,整合MPU6050姿态传感器、MP1584降压模块、JDY31蓝牙模块与OLED显示模块,构建一体化架构。
该控制系统通过MPU6050传感器精准采集车体倾角、角速度数据,结合PID闭环算法实现自主直立平衡,在轻微扰动下可快速恢复稳定;通过JDY31蓝牙模块接收移动端指令,实现前进、后退、转向等动作的精准响应,遥控延迟低于0.2秒;OLED模块实时显示姿态参数与遥控状态,便于调试与观测。系统创新融合姿态检测与蓝牙遥控协同控制,优化数据滤波与控制算法,兼顾低成本、低功耗与高稳定性,既解决了传统两轮设备“难自稳、操控繁”的问题,又贴合嵌入式教学实训与小型移动设备研发的推广需求。实验验证表明,系统平衡精度达±1°,运行稳定可靠,为嵌入式技术与机器人技术的融合应用提供了典型案例,具有良好的教学价值与工程实用性。
关键词:STM32F103C8T6;两轮自平衡小车;直立平衡控制;蓝牙遥控;PID算法
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.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
第1章 绪论
1.1 研究背景
STM32系列单片机凭借高性价比、强扩展性与精准控制能力,已成为嵌入式智能设备研发的优选核心部件。STM32F103C8T6型号单片机兼具性能与成本优势,能够高效整合姿态检测、无线通信、电机驱动等多模块协同工作。以此为核心设计两轮自平衡小车控制系统,可有效突破传统设备“难自稳、操控繁”的局限,同时控制开发与推广成本,既符合嵌入式教学实训的实操需求,也能为小型服务机器人的轻量化研发提供技术支撑。
1.2 研究目的及意义
1.2.1 研究目的
本研究以STM32F103C8T6单片机为控制核心,整合MPU6050姿态传感器、MP1584降压模块、JDY31蓝牙模块与OLED显示模块,构建“姿态检测-闭环控制-无线遥控-状态反馈”的一体化控制系统。研究目的在于深入探索姿态传感融合技术与PID闭环控制算法的协同适配机制,突破传统两轮设备单一功能模块独立工作的局限,实现车体自主直立平衡与灵活蓝牙遥控的高效集成。
本研究旨在兼顾技术实用性与成本可控性,通过优化MPU6050姿态数据滤波逻辑、改进PID控制参数整定方法,提升系统在动态工况下的平衡精度与抗干扰能力;同时简化硬件架构设计,控制开发成本,形成结构简洁、操作便捷、性能稳定的系统方案,验证STM32F103C8T6在小型自平衡设备中的应用可行性与适配性,为嵌入式教学与小型移动机器人研发提供标准化技术参考。
1.2.2 研究意义
本研究融合姿态传感融合、PID闭环控制、蓝牙无线通信与STM32嵌入式控制技术,突破传统两轮自平衡设备“控制算法粗糙、传感与控制集成度低、蓝牙通信抗干扰能力弱”的技术瓶颈,构建了“姿态检测-闭环控制-无线遥控”的一体化设计架构。通过优化数据滤波与控制算法,提升了动态工况下的平衡精度与遥控响应速度,丰富了小型移动设备控制技术体系,为同类嵌入式控制系统的研发提供了可借鉴的技术方案。
本研究设计的控制系统能够精准维持车体直立姿态,实现蓝牙遥控下的灵活移动,有效解决了传统两轮设备“稳定性差、操控门槛高”的痛点,可直接适配嵌入式教学实训、小型服务机器人研发等场景。系统硬件成本可控、结构简洁,便于高校电子信息类专业开展实践教学,帮助学生直观理解嵌入式系统设计、姿态控制算法、多模块协同等核心知识点,助力实践教学质量提升。
1.3 国内外研究现状
1.3.1 国外研究现状
Mon J Y在Symmetry 2025年发表的研究中,提出基于图像跟踪驱动的对称转向控制方法,结合长短期记忆网络(LSTM)应用于基于线阵电荷耦合器件(CCD)的两轮自平衡小车。核心通过CCD图像传感器实现轨迹跟踪,利用LSTM网络优化转向控制策略,提升小车行驶过程中的转向对称性与稳定性[1]。原理如图1-1所示。

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

图1-2 滑模神经网络控制方法方法图
Ma Y、Meng F、Xiong S在Applied Sciences 2024年发表的研究中,设计并实现了基于模糊卡尔曼滤波的两轮自平衡车系统。核心通过模糊卡尔曼滤波算法对MPU6050等姿态传感器采集的数据进行降噪处理,提升车体姿态检测精度,结合PID控制实现直立平衡[3]。Hao R、Cong Z在Journal of Shanghai Jiaotong University (Science) 2021年发表的研究中,开展了两轮自平衡车控制系统的研究。核心构建了以微控制器为核心的控制系统架构,整合姿态检测、电机驱动与闭环控制模块,提出基于状态反馈的平衡控制策略[4]。
Jie T、Jie D、Yongpeng 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 平衡小车控制框图

图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 直立平衡功能调试实现
附 录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);
更多推荐


所有评论(0)