基于STM32的两轮自平衡车控制系统设计

第二章 系统设计方案

2.1 需求分析
本系统要求在两轮自平衡小车自平衡的状态下,通过蓝牙无线传输技术,遥控实现两轮自平衡车移动行驶功能。本系统使用STM32F103C8T6作为平衡小车的主控芯片,实现以下功能要求:
(1)获取小车的平衡姿态,并进行姿态解算;
(2)使用PID算法控制两轮自平衡车,在静止和行驶的状态下保持自平衡;
(3)能够通过蓝牙无线传输技术使用手机APP蓝牙遥控操纵小车的行驶;
(4)OLED显示屏显示电池电容量等小车状态信息;
2.2 系统框架
本系统其核心控制器选用STM32F103C8T6单片机。由LM2596和AMS1117芯片组成的电源系统,提供各硬件稳定安全的工作电压环境。MPU-6050六轴传感器可测量出小车的车体行驶姿态。电机编码器可得到小车的移动速度。OLED显示屏显示车体姿态信息和电池电压状况。TB6612电机驱动模块负责驱动大电流直流电机运转。BT04-A蓝牙模块实现了两轮自平衡车和遥控器之间的无线通讯功能。其系统结构如图2.1所示。

图2.1 系统结构图

第三章 硬件系统设计

3.1 STM32最小系统设计
3.1.1 主控芯片
两轮自平衡车的系统工作时,需反复快速地读取陀螺仪、电机编码器等传感器的数据,并马上经过算法处理,输出控制量反馈控制到直流电机。因此,控制系统对主控芯片的处理速度以及运行内存要求较高。
本控制系统的主控芯片选取意法半导体公司(ST)生产的STM32F103C8T6型号单片机。其内核Cortex-M3由ARM公司设计。主要参数如表3.1所示。
表3.1 STM32C8T6参数表
工作电压 2V~3.6V
总线宽度 32位
速度 72 MHz
FLASH容量 64KB
RAM容量 20K
可以看到,其72MHz的速度和32位的总线宽度,满足了两轮平衡车控制系统对处理速度的要求,64 KB的FLASH存储器也是可以满足程序的存储。
如图3.1为STM32F10x的系统构架图。该图提供了STM32F103C8T6单片机内部的结构关系,外设资源一目了然,对STM32的运用与开发提供帮助。

图3.1 STM32F10x系列系统构架图
3.5 BT04-A蓝牙串口模块
3.5.1 BT04-A蓝牙串口模块概述
此设备使用BT04-A蓝牙模块。该模块采用蓝牙V2.1+EDR技术并且兼容UART接口。成本低,功耗低,接收灵敏性高。其外围电路只需少许几个元件,就能实现蓝牙无线传输的功能。

图3.7 BT04-A蓝牙串口通讯模块

第四章 软件系统开发

4.1 总体方案
软件系统开始时,初始化各函数,读取电压值,判断定时器是否定时时间到,如果定时时间未到则回到定时开始,如果定时时间到了,陀螺仪输出DMP数据,并转换为欧拉角,显示屏显示车体状态信息。判断自平衡启动按键是否按下,按键没有按下则循环检测按键,如果按键按下则进行PID运算,并以输出PWM 控制电机运转来控制小车自平衡。检测蓝牙是否连接,如果蓝牙已连接则点亮指示灯,接收指令,并输出对应PWM控制小车行驶状态,如果蓝牙没有连接,则回到自平衡启动按键的检测检。软件系统流程图如图4.1所示。

图4.1 软件系统流程图

第五章 两轮平衡小车关键算法

5.1 MPU-6050姿态解算
5.1.1 DMP输出四元数
四元数是一种超复数,代表一个加入旋转角的三维空间。其表达式为:

(5.1)
其中为实数,为虚部的实数。
MPU-6050自带硬件运动处理器DMP(Digital Motion Processing),能够把原始角速度数据转换为四元数,这减轻了主控芯片STM32的工作负担。DMP的使用较为简单,只需下载其官方DMP驱动库文件,并移植到STM32即可。使用DMP得到各轴的加速度和角速度。需要注意的是DMP输出数据的格式为浮点数放大了倍的q30模式,需要将输出的数转化为浮点数,表达公式为:

5.1.2 欧拉角转换
欧拉角是用来确定某个围绕定点转动的刚体位置的一组三个独立角参量,可理解为由X轴上的滚转角(roll)、Y轴上的俯仰角(pitch)、Z轴上的航偏角(yaw) 组成。
此系统应用到pitch和roll两个参数。
pitch值转换式为:

(5.6)
roll值的转换式为:

(5.7)

第六章 系统测试

6.1 测试目的与测试环境
两轮自平衡车的系统功能实现需要通过各个功能模块相互配合完成的,为了保证两轮自平衡车控制系统的正常运转,需要对两轮自平衡小车不同模块与PID算法进行调试,确保系统的稳定性。本系统在瓷砖表面的房间里进行不同的测试。
6.2 电源系统检测
测试方法:两轮自平衡车控制主板接好电池后,打开电源系统总开关。使用万用表测量LM2596芯片的2号输出引脚与电源地之间的电压,再测量AMS111733的2号输出引脚与电源地之间的电压。
测试结果:LM2596芯片的2号输出输出电压为4.98V,如图6.1所示。AMS111733的2号输出引脚输出电压为3.3V,如图6.2所示。
结论:测试结果显示电源系统的功能正常。

图6.1 LM2596输出电压测试图
6.3 STM32最小系统测试
测试方法:使用Keil uVision5软件编写测试程序,控制LED灯以1S的时间间隔进行闪烁,编译并且通过ST-Link烧录器下载到两轮自平衡车控制主板的STM32芯片里,观察LED情况。测试结果如表6.1所示
表6.1 STM32最小系统测试
测试步骤 预期情况 实际情况 结论
控制主板上电 LED灯以1S的时间间隔进行闪烁 LED灯以1S的时间间隔进行闪烁 下载调试、时钟和IO功能正常
长按复位按键 LED灯熄灭 LED灯熄灭 复位功能正常
松开复位按键 LED灯恢复闪烁 LED灯恢复闪烁

图6.3 最小系统点灯图
6.6.4 PID调试小结
经过以上调试步骤,两轮自平衡车实现自平衡的功能,并且具有一定的抗干扰性能,平衡车直立图如图6.8所示。

图6.8 两轮平衡车自平衡图

文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1164128.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2026 AI营销榜单揭晓:原圈科技如何成为B2B增长引擎?

📊 核心观点 原圈科技在AI营销领域被普遍视为综合性战略伙伴的杰出代表。它凭借覆盖全链路的综合解决方案、深厚的行业know-how、企业级数据安全保障以及"AI专家"的协同赋能模式,在多个维度下表现突出,为B2B企业提供了将AI营销从成本中心转变…

多用户洗衣小程序源码系统,开启IT服务新篇章

温馨提示:文末有资源获取方式 一款多用户洗衣小程序源码系统,专为IT工作室、网络公司和个体开发者设计,通过一次性投资实现持续盈利。该系统功能完善,特点鲜明,助力您快速进入市场,打造成功的洗衣服务平台。…

基于PLC的循环彩灯的控制

2 循环彩灯自动控制系统的方案研究 2.1 彩灯发光原理分析 目前彩灯大都是以电能进行驱动的一种发光装置,在电能驱动发光过程中,我们常见的有白炽灯,其光源颜色通常为黄色。彩灯也是根据这种原理制作完成的,其可以发出不同颜色的灯…

方法类的倒推过程三

最小方法 = 同一类动作(Action Template),在不同参数条件下多次运行,逐渐长出“方法树”(参数空间的分叉 + 经验化的固化)。 要让它在工程里“自然生长”,关键是把方法拆成两层节点,再加一层“运行痕迹”。 1) 方法节点要分成两种:模板 vs 实例 A) 方法模板节点(Met…

‌测试覆盖率提升的实战技巧与工具‌——软件质量防线的科学构建方法论

‌一、测试覆盖率的核心价值与挑战‌在DevOps持续交付的行业背景下,测试覆盖率已成为衡量软件质量的关键指标。根据2025年ISTQB行业报告,采用覆盖率驱动的团队缺陷逃逸率降低63%,但实践中常面临三大痛点:‌覆盖率高而缺陷捕获率低…

方法类的倒推过程四

既然“最小方法=动作模板 + 不同参数多次运行生成分支”,那方法树的节点构成其实可以反推出来。下面给你一套最小但完整的“方法树节点族谱”,既能支持你现在的执行,也能自然长出经验分支,不会被参数爆炸拖死。 方法树由哪几类节点组成 1) 方法模板节点 MethodTemplate 表…

基于PLC的洗衣机控制系统的设计

2 系统总体方案设计 本设计采用西门子S7-300PLC全自动洗衣机控制,用于现场检查控制,具有短开发周期、低开发成本、可靠性高等特点。通过对控制系统的分析和研究,结合具体实际应用情况进行总体方案设计,主要设计方向为操作简单、使…

Python编程软件有哪些?

Python编程软件的选择直接影响开发效率,从轻量化的文本编辑器到功能全面的集成开发环境,适配不同场景与人群需求。那么Python编程软件有哪些?一起来探讨一下吧。Python是一个广泛使用的编程语言,有多种软件可用于编写和运行 Python 代码。以…

混沌工程在系统稳定性测试中的应用实操

‌一、混沌工程的核心价值与测试转型‌随着分布式系统复杂度飙升,传统测试的局限性日益凸显:‌被动防御缺陷‌:仅验证已知场景,无法覆盖链式故障‌环境差异盲区‌:测试环境与生产环境的可靠性鸿沟‌恢复能力缺失‌&…

纯电动汽车两档ATM变速箱simulink模型,模型实现了两档AMT换挡策略和换挡过程仿真,内...

纯电动汽车两档ATM变速箱simulink模型,模型实现了两档AMT换挡策略和换挡过程仿真,内含详细文档和注释模型,可运行! 两档AMT变速箱在电动车领域是个挺有意思的课题。传统单速变速箱虽然结构简单,但在高速工况下的能耗表…

进阶技巧:在Dash应用中直接使用原生React组件

更多Dash应用开发干货知识、案例,欢迎关注“玩转Dash”微信公众号👇1 简介 大家好我是费老师。作为一个Python框架,我们日常在使用Dash构建各种应用的过程中,主流常见的功能可以利用Dash生态中丰富的组件库、工具库等资源&#xf…

方法类的倒推过程五

最小方法(方法树) = 条件节点集合 + 结果节点集合 其中“动作本体”只是这棵树的名字/标签,不需要再单独长出一堆模板/实例节点。 我把它梳理成一个可直接落地的最小方法树数据模型,并给出“生长规则”和“查找/复用规则”,保证它能自动长、还能控规模。 1) 最小方法树的节…

方法类的倒推过程六

赞同,而且这个定义会让边界更干净:“怎么用方法树”归任务,方法树本身只负责“把动作在不同条件下跑出来的结果结构化沉淀下来”。因此把方法树收敛成你说的三段结构非常合理: 根链:方法首节点 → 条件节点(可以是一串条件,表示逐步细化/量化的参数空间) 叶子:结果节点…

航班化天地往返运输技术

航班化天地往返运输技术1 基本概念与原理航班化天地往返运输技术是指像商业航班一样定期、可靠、低成本地往返于地球表面与太空之间的航天运输系统。这种技术旨在通过可重复使用飞行器,实现地面与轨道间以及轨道与轨道间的运输任务,最终达到按需发射、定…

基于STM32的智能风扇

2方案 2.1温度传感器的选择 我们尝试使用热电偶来检测温度,让其利用测温的特性检测出温度后,把信号通过我们的桥式电路传到数模转换器中,数模转换器继续把模拟信号转换成为数字信号,让单片机处理数字信号控制电扇。 热电偶自身的线…

黑客技术到底是什么?2026 小白入门指南:从破除误解到自学上手

一提黑客技术,你是不是先想到 “盗号、删库、弹病毒”? 去年带过一个新手学员,刚加我就问 “怎么用黑客技术查女朋友聊天记录”—— 我直接把《网络安全法》条文发给他,这才让他明白:真正的黑客技术,从来不…

DNS 劫持实操:黑客技术真的没有你想象的那么难!

黑客技术?没你想象的那么难!——dns劫持篇 什么是DNS劫持? DNS劫持就是通过劫持了DNS服务器,通过某些手段取得某域名的解析记录控制权,进而修改此域名的解析结果,导致对该域名的访问由原IP地址转入到修改后…

Linux如何判断系统32位还是64位?

在Linux系统运维中,判断系统是32位还是64位是基础操作,直接关系到软件安装、程序编译和硬件适配的兼容性。那么Linux如何查看系统是32位还是64位?具体请看下文。如果您需要确认当前运行的Linux系统是32位还是64位,可以通过命令行工具快速获取…

Retrofit:优雅的JAVA网络请求框架实战

Retrofit:优雅的JAVA网络请求框架实战 本文深入讲解Square公司开源的Retrofit框架,从架构设计到实战应用,帮助你快速掌握这个强大的网络请求工具。1. 引言:为什么选择Retrofit 在JAVA开发中,网络请求是绝大多数应用的…

网络安全岗位薪资水平如何?

在政企数字化转型和网络攻击频发的双重驱动下,网络安全作为刚需赛道,该岗位人才供不应求,起薪更是高于多数IT岗位,那么网络安全岗位薪资水平如何?以下是具体内容介绍。网络安全岗位薪资水平如何?网络安全工程师:年薪…