基于stm32的两轮自平衡车控制系统设计-毕业论文.docx

上传人:zf 文档编号:30803230 上传时间:2024-01-28 格式:DOCX 页数:35 大小:9.81MB
下载 相关 举报
基于stm32的两轮自平衡车控制系统设计-毕业论文.docx_第1页
第1页 / 共35页
基于stm32的两轮自平衡车控制系统设计-毕业论文.docx_第2页
第2页 / 共35页
基于stm32的两轮自平衡车控制系统设计-毕业论文.docx_第3页
第3页 / 共35页
基于stm32的两轮自平衡车控制系统设计-毕业论文.docx_第4页
第4页 / 共35页
基于stm32的两轮自平衡车控制系统设计-毕业论文.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

基于stm32的两轮自平衡车控制系统设计-毕业论文.docx

《基于stm32的两轮自平衡车控制系统设计-毕业论文.docx》由会员分享,可在线阅读,更多相关《基于stm32的两轮自平衡车控制系统设计-毕业论文.docx(35页珍藏版)》请在冰豆网上搜索。

基于stm32的两轮自平衡车控制系统设计-毕业论文.docx

---文档均为word文档,下载后可直接编辑使用亦可打印---

摘要

本论文主要研究两轮自平衡车控制系统的设计与实现。

两轮自平衡车的机械结构简单,直立行驶的方式赋予灵活的操控方式,能在不同的场景中投入使用,如日常生活的代步、工业生产特殊搬运需求等等。

其控制系统的相关算法和相关理论具有广阔的应用前景。

本文以STM32单片机为主控芯片,提出了系统设计方案,讲解两轮自平衡车控制系统的需求、框架和设计思路。

然后对需要硬件进行选型和电路设计,并且对系统进行软件开发。

通过两轮平衡小车的姿态分析并解算后,运用PID算法的PD、PI、P算法对两轮平衡车的直立环、速度环和转向环进行控制。

并且使用蓝牙无线通讯技术,实现两轮自平衡小车的无线操控功能,实现其控制便捷性。

最后对系统进行调试和测试,证明来该两轮平衡车控制系统的可行性与稳定性。

关键词:

两轮自平衡车控制系统STM32单片机PID算法蓝牙无线通讯

Abstract

Thispapermainlystudiesthedesignandimplementationofatwo-wheelself-balancingvehiclecontrolsystem.Themechanicalstructureofthetwo-wheelself-balancingcarissimple,andtheuprightdrivingmodegivesflexiblecontrolmethods,whichcanbeputintouseindifferentscenarios,suchasdailylifemobility,specialhandlingrequirementsforindustrialproduction,etc.Therelatedalgorithmsandrelatedtheoriesofitscontrolsystemhavebroadapplicationprospects.

ThisarticletakesSTM32microcontrollerasthemaincontrolchip,putsforwardasystemdesignplan,andexplainstherequirements,frameworkanddesignideasofthetwo-wheelself-balancingvehiclecontrolsystem.Thenselecttherequiredhardwareandcircuitdesign,andsoftwaredevelopmentofthesystem.Afteranalyzingandsolvingtheattitudeofthetwo-wheelbalancingcar,thePD,PI,andPalgorithmsofthePIDalgorithmareusedtocontroltheuprightring,speedring,andsteeringringofthetwo-wheelbalancingcar.AndtheuseofBluetoothwirelesscommunicationtechnologytoachievetwo-wheeledself-balancingcarwirelesscontrolfunction,toachieveitscontrolconvenience.

Finally,thesystemwasdebuggedandtestedtoprovethefeasibilityandstabilityofthetwo-wheelbalancecarcontrolsystem.

Keywords:

Two-wheeledself-balancingcarControlsystemSTM32single-chipPIDalgorithmBluetooth

目录

第一章绪论

1.1论文研究背景和意义

人类的生存发展已经步入21世纪,这是一个高科技的时代,我们的日常生产生活中离不开数字技术、计算机技术和机械设计技术等高科技技术。

两轮自平衡电动车,以两轮共轴为机械结构,通过自带精密电子陀螺仪(Solid-StateGyroscopes)的电子平衡系统,实现了自动平衡和直立行走的功能。

其外形小巧、行动灵活、环保方便的特点,得到了市场的广大认同和发展。

目前各种需要移动运输操作的传统机械设备,基本都以后驱四轮式或者履带式的形式存在。

这些传统的机械的移动方式已经满足不了人们生产生活对人工智能的要求。

因此,市场上急需一种更为方便灵活的机械辅助移动设备,直立式两轮自平衡电动车的出现满足了这一需求。

两轮自平衡车系统运行时,自平衡控制规划、行驶操控等多种功能同时运行。

最关键一点是实现自平衡的同时,还要在不同的环境中直立行驶,实现控制操作。

两轮自平衡车的概念,以其不稳定的动态性能和系统非线性,迅速成为各种控制理论的研究平台,具有较大的科研意义。

1.2国内外两轮平衡车研究历史和现状

近年来全球各国对两轮自平衡机器人的研究越来越火爆,使其得到了迅速的发展。

多国纷纷研发了实验机,两轮平衡车的平衡控制的方案陆续被研发设计出来,呈现出控制系统的多样性。

两轮自平衡车有了稳定的行驶平衡系统,再经过改造,可快速方便地应用到不同的环境里,如工业生产所需的承载运输、日常生活代步等。

对于各国来说这是一个巨大的机遇,使得一些外国公司也在市场上生产研发相应的商业产品,并且投放到市场。

2002年,一台名为“SegwayHT”的两轮直立式自平衡载人设备问世,该设备由美国Segway公司研制。

该设备以其行驶灵活、体型小巧的特点,被用于人员密集的机场中。

机场的安保警务人员站立在该两轮平衡车上,可在人群中灵活快速地移动行驶,居高临下的行驶方式满足了观察机场各处的需求,能够及时地发现和处理可疑情况。

2006年,一家位于德国的Transport公司,针对室内外的现场摄影工作者,研发了两轮摄像车,该设备后来广泛应用于电视节目的录制,甚至用于电影特殊情节的拍摄之中。

2007年,日本丰田汽车公司研发了一台丰田机动机器人(Mobility Robot),这台只有15千克的机器人,最高行驶速度高达每小时20千米。

哈尔滨工程大学的研究人员,使用两块C8051单片机与人机交互上位机,组成了一个控制系统,通过不同传感器测量计算得出车体姿态信息,使用脉冲宽度调制(PWM)控制两台直流电机,外加人机交互和无线传输等技术,制造了一台两轮直立自平衡机器人。

中国科技大学研发了一款两轮自平衡代步电动车。

采用了左右轮共轴的机械结构,通过建立系统数学模型建立控制算法,计算输出脉冲宽度调制(PWM)控制,来控制两个伺服电机的转矩,使电动车在行驶过程中保持直立平衡。

1.3论文研究内容和目标

本论文研究内容:

(1)两轮自平衡车的系统设计方案;

(2)两轮自平衡车的硬件选型和电路设计;

(3)两轮自平衡车的控制算法;

(4)控制系统的调试及测试。

根据本设计的功能要求,在实现两轮自平衡小车自平衡的情况下,完成遥控操作两轮自平衡车的前进、后退、转弯等行驶功能。

1.4论文结构安排

本论文的主要由以下六个章节构成:

第一章,绪论。

研究本论文的背景和意义,分析国内外两轮自平衡车的历史和现状,提出论文研究的意义和目的。

第二章,系统设计方案。

对两轮自平衡车的需求进行分析并设计系统框架,提出设计思路。

第三章,硬件系统设计。

结合两轮自平衡车的功能需求,对所需硬件进行选型分析,并设计其原理图。

第四章,软件系统开发。

提出软件系统总体方案,分析各模块的软件系统开发和流程。

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

对陀螺仪输出的姿态数据进行解算。

使用PID算法对电机进行控制,从而使两轮自平衡车保持直立、平衡。

第六章,系统测试。

对两轮平衡车的系统进行测试,PID算法的调试。

验证了两轮平衡车控制算法的可行性与稳定性。

第二章系统设计方案

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系统结构图

2.3设计思路

根据各模块和传感器与STM32之间的连接通讯方式,系统设计思路图如图2.2所示。

图2.2硬件设计思路

第三章硬件系统设计

3.1STM32最小系统设计

3.1.1主控芯片

两轮自平衡车的系统工作时,需反复快速地读取陀螺仪、电机编码器等传感器的数据,并马上经过算法处理,输出控制量反馈控制到直流电机。

因此,控制系统对主控芯片的处理速度以及运行内存要求较高。

本控制系统的主控芯片选取意法半导体公司(ST)生产的STM32F103C8T6型号单片机。

其内核Cortex-M3由ARM公司设计。

主要参数如表3.1所示。

表3.1STM32C8T6参数表

工作电压

2V~3.6V

总线宽度

32位

速度

72MHz

FLASH容量

64KB

RAM容量

20K

可以看到,其72MHz的速度和32位的总线宽度,满足了两轮平衡车控制系统对处理速度的要求,64KB的FLASH存储器也是可以满足程序的存储。

如图3.1为STM32F10x的系统构架图。

该图提供了STM32F103C8T6单片机内部的结构关系,外设资源一目了然,对STM32的运用与开发提供帮助。

图3.1STM32F10x系列系统构架图

3.1.2最小系统的设计

单片机最小系统的定义为可满足单片机正常工作的系统。

STM32单片机最小系统除了单片机之外,还有电源、复位、时钟三种电路和调试接口、boot启动选项组。

图3.2为本系统的最小系统原理图。

单片机选取LQFP-48封装的单片机。

电源使用降压后的电源,电源系统的详细设计内容在下面章节中分析。

复位电路设计为按键触发复位。

将RST引脚通过按键S2。

当按键按下后,引脚RST接地,RST引脚由高电平被拉低为低电平,触发单片机的复位功能。

按键松开后,系统正常工作。

复位电路中1uf电容和10kΩ电阻,提供可靠的复位时间。

外置8MHz晶振时钟,并加入20uf的负载电容,该电容的作用是保证晶振的正常工作,使时钟电路提供精准时间。

使用SWD下载模式,所需引脚较少,节约偏上资源。

设置boot模式的设计较为简单,只需把把boot0和boot1引脚引出,使用跳线帽的方式设置即可。

图3.2STM32F103C8T6最小系统原理图。

3.2电源系统

3.2.1降压芯片选型

由于直流电机的驱动电压、电流较大,本系统选取12V的锂电池来供电。

但是12V的电压环境对单片机、各传感器和各模块来说电压太高,直接供电会烧毁击穿各模块,所以还需要对电压进行降压处理。

选用LM2596降压芯片,其最大可输入电压为40V,最大驱动电流达到3A,有热关断和限流保护能力,负载调节能力强。

12V的锂电池电压通过LM2596组成的降压电路后,输出稳定的5V电压。

选用AMS111733正向低压降稳压器,把LM2596输出的5V电压进行降压,最后输出得到到3.3V的电压。

3.2.2电源系统原理图

根据本设备所需电源要求,根据LM2596和AMS111733的数据手册,设计出本设备的电源系统如图3.3。

图3.3电源系统原理图

平衡车的输入电压为12V,经LM2596降压,输出电压为5V,最大负载3A。

5V的电压经AMS111733降压后,输出3.3V电压。

电源系统加入大电流开关S3,打开S3后系统电源开启,各降压模块开始工作,提供稳定电压,关闭S3后整个电源系统关闭。

3.3MPU-6050六轴陀螺仪传感器模块

3.3.1MPU-6050概述

MPU-6050六轴陀螺仪传感器,内含MEMS陀螺仪、MEMS加速度计各三轴。

内嵌DMP(DigitalMotionProcessor)数字运动处理器,其通讯方式为IIC协议或SPI协。

VCC引脚接入3.3V或5V的电压,GND引脚接地。

SDA和SCL两组引脚为IIC通讯引脚的信号线。

当MPU-6050六轴陀螺仪传感器需要外接传感器时,XDA和XCL引脚分别接IIC主串行数据信号线和时钟信号线。

AD0可通过接地或接电来设置AD0的值为0或1,AD0=0时MPU-6050的地址为0x68,AD0=1时MPU-6050的地址为0x69。

INT引脚为中断输出引脚。

MPU-6050六轴陀螺仪传感器的引脚及其说明如表3.2。

表3.2MPU-6050引脚说明

引脚名称

说明

VCC

电源输入3.3V或5V

GND

接地

SCL

IIC从时钟信号线SCL

SDA

IIC从数据信号线SDA

AUX_DA

IIC主串行数据信号线,用于外接传感器

AUX_CL

IIC主串行时钟信号线,用于外接传感器

AD0

接地、悬空时地址为0x68;接VCC地址为0x69

INT

中断输出引脚

3.3.2MPU-6050系统原理图

翻阅MPU-6050数据手册,设计出接线原理图,如图3.4所示。

图3.4MPU-6050原理图

MPU-6050的电源引脚3.3V的电压,并且在电源入口和器件旁边加入滤波电容,用来滤除交流成分,使输出的直流更平滑,确保MPU-6050硬件稳定性,满足控制系统对高精度姿态数值的需要。

AD0引脚接地,AD0的值为0,设置MPU-6050的设备地址为0x68。

IIC通讯引脚SDA与SCL分别接入STM32的PB9和PB8引脚,并且加入了一个4.7KΩ的上拉电阻,作用是保证有正常的高电平输出,起到保护芯片的作用。

3.4TB6612FNG电机驱动模块

3.4.1TB6612FNG模块概述

两轮平衡车自带两个直流电机,12V的锂电池虽然可以使电机转动,但是无法直接控制其转速来控制车体保持平衡。

所以需要一块专门负责驱动、控制电机的芯片。

东芝半导体公司生产的TB6612FNG芯片,是一款直流电机驱动器件。

该芯片自带来大电流MOSFET-H桥结构,能够输出双通道的电路。

刚好可以驱动两轮自平衡车的两个电机,而且该芯片有低热耗,不需要加散热片。

100KHz的PWM信号输入频率也满足了两轮平衡车控制系统的需求。

TB6612FNG的主要参数如表3.3所示:

表3.3TB6612FNG的参数表

工作电压

5V

最大输入电压

15V

最大输出电流

3.2A

功能模式

正反转、短路刹车、停机

图3.5TB6612FNG芯片图

3.4.2TB6612FNG原理图

TB6612FNG与电机连接的原理图如图3.6。

图3.6TB6612FNG原理图

TB6612FNG芯片的PWMA引脚和PWMB引脚分别接到STM32单片机PA11引脚和PA8引脚,用于单片机输出PWM信号控制两个电机,TB6612FNG的输出引脚O1、O2和O3、O4引脚分两组引出来,方便点机的接线。

AN1、AN2和BN1、BN2分别连接到单片机对应IO口上来控制电机转向,其真值表如表3.4所示。

表3.4TB6612FNG控制电机运转方向真值表

引脚

停止

正转

反转

AN1

0

1

0

AN2

0

0

1

3.5BT04-A蓝牙串口模块

3.5.1BT04-A蓝牙串口模块概述

此设备使用BT04-A蓝牙模块。

该模块采用蓝牙V2.1+EDR技术并且兼容UART接口。

成本低,功耗低,接收灵敏性高。

其外围电路只需少许几个元件,就能实现蓝牙无线传输的功能。

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

BT04-A蓝牙串口模块的主要参数为:

表3.5BT04-A参数表

工作电压

3.3V

通讯模式

UART

通讯有效距离

15米左右

用户可根据需要,通过AT模式输入对应的AT指令,来设置本蓝牙模块的名字、主角色(Master)或者从角色(Slave)以及配对码等信息。

3.5.2BT04-A蓝牙串口模块原理图

BT04-A蓝牙串口模块原理图如图3.8所示。

图3.8BT04-A蓝牙串口模块原理图

BT04-A模块的串口通讯引脚跟STM32上的串口通讯引脚交叉相连,即STM32上的串口输出引脚连接到BT04-A模块的串口输入引脚,STM32上的串口输入引脚连接到BT04-A模块的串口输出引脚。

BT04-A模块的P12引脚外接LED灯,用于显示蓝牙模块的状态。

3.6OLED显示屏模块

3.6.1OLED显示屏概述

0.96寸的OLED显示屏,用显示于两轮自平衡车上电时的电压、车体的倾斜姿态、电机编码器的数值等信息。

其主要参数如表3.6所示。

表3.6OLED显示屏参数表

工作电压

3.3V

分辨率

128×64

显示内存

128×64位字节

响应时间

几微秒到几十微秒

表3.7为OLED显示屏模块的引脚说明。

表3.7OLED显示屏模块的引脚表

GND

电源地线

SDA

数据线

VCC

输入电压

RST

复位

SCL

时钟线

D/C

命令/数据

3.6.2OLED显示屏接线图

OLED显示屏的接线如图3.9所示。

其输入电压为3.3V。

SCL、SDA、RST和D/C引脚分别接STM32的PC15、PC14、PC13和PB4引脚上。

图3.9OLED显示屏接线图

3.7电机编码器

编码器可以把轴角度方向的位移,转换成数字脉冲,是一种的旋转式的传感器。

将编码器设置到电机转动轴的位置,输出对应波形,得到电机转动的速度信息。

本设备采用AB相输出的增量式霍尔编码器,如图3.10。

只需给编码器接上5V的工作电源,电机上电后便输出AB相的方波信号,可以辨别转向和测量速度。

图3.10增量式霍尔编码器

3.8本章小结

本章的主要针对硬件的选型并设计对应外围电路。

从自平衡车的功能出发来设计硬件系统,对各芯片模块进行介绍并设计工作电路。

各模块与主控芯片STM32连接,完成硬件系统的设计。

第四章软件系统开发

4.1总体方案

软件系统开始时,初始化各函数,读取电压值,判断定时器是否定时时间到,如果定时时间未到则回到定时开始,如果定时时间到了,陀螺仪输出DMP数据,并转换为欧拉角,显示屏显示车体状态信息。

判断自平衡启动按键是否按下,按键没有按下则循环检测按键,如果按键按下则进行PID运算,并以输出PWM控制电机运转来控制小车自平衡。

检测蓝牙是否连接,如果蓝牙已连接则点亮指示灯,接收指令,并输出对应PWM控制小车行驶状态,如果蓝牙没有连接,则回到自平衡启动按键的检测检。

软件系统流程图如图4.1所示。

图4.1软件系统流程图

4.2MPU-6050读取姿态信息

4.2.1读取原始数据

MPU-6050原始数据获取流程如图4.2所示。

图4.2MPU-6050姿态读取流程图

根据IIC协议的通讯方式,使用软件的方式控制STM32的两个IO口,模拟出IIC通讯协议。

然后对MPU-6050陀螺仪进行初始化操作,配置其时钟、陀螺仪最大量程、加速度最大量程等,初始化后就可以通过软件模拟的IIC协议读取MPU-6050寄存器的值,得到加速度和角加速度的信息。

4.2.2读取DMP并转换为欧拉角

读取MPU-6050内置DMP的姿态信息并转换为欧拉角流程如图4.3所示。

图4.3读取DMP并转换为欧拉角流程图

对MPU6050初始化设置后,通过IIC读取FIFO寄存器中的值,得到q30格式的值,再进行浮点数计算,最后经过欧拉角转换计算出Pitch和Roll。

4.2.3IIC通讯方式

本文中MPU6050与STM32的通讯方式为IIC通信。

IIC是一种由数据总线SDA和时钟总线SCL两条串行总线组成的一种串行通信协议总线。

IIC连接到设备上时,可以设置为主机和从机。

当设置为主机模式时,地址总线需要获取从机的地址。

当设置为从机模式时,需要再配置其匹配地址,从而才能对主机发出应答信号。

在本设备中,MPU-6050倍设置为从机使用。

整个IIC协议通信流程包含起始信号(S)、应答信号(ACK)、数据传输(发送/接收)、停止信号(P)。

当STM32需要读取MPU6050的数据时,STM32先发起开始信号(S),其方式为数据总线SDA和时钟总线SCL保持高电平,数据总线SDA由高电平转换到低电平,形成一个下降沿,此周期为0.6us。

当IIC通讯结束时,时钟总线SCL保持高电平,在0.6us内,数据总线SDA由低电平升到高电平形成上升沿,此为IIC通讯结束的标志(P)。

IIC开始信号和结束时序如图4.4所示。

图4.4IIC开始信号和结束信号图

IIC数据的宽度为8位字节,在IIC开始信号发出后,发送8位数据。

当时钟总线SCL处于高电平且数据总线SDA保持稳定的低电平时,发送数据0。

反之,当时钟总线SCL处于高电平且数据总线SDA保持稳定的高电平电平时,则发送数据1。

图4.5IIC数据发送方式

在发送完8位二进制的数后,还需跟随一个应答信号(ACK),此信号用于判定是否传输一次数据。

如果在第9个时钟脉冲期间,时钟线为的高电平,且数据总线SDA为稳定的低电平,那么这就是一个有效应答位(Acknowledge)。

如果在第9个时钟脉冲之前的低电平期间,数据总线SDA保持高电平,则此次应答信号为一个无效应答位。

(Not-acknowledge)。

图4.6IIC应答信号时序图

4.3霍尔编码器测速

4.3.1程序框图

电机编码器测速的流程如图4.7。

图4.7电机编码器测速流程

系统一开始,首先对STM32的定时器TIM2和定时器TIM4进行初始化,设置成编码器接口模式,然后打开2个定时器。

编码器接口的电平跳变触发定时器计算,读取STM32的定时器计数寄存器的值,计算得出速度。

4.3.2编码器软件四倍频

假如在时间T内,编码器输出的AB相2个波形,如图也就是图4.8所示。

使用M法则测量A相(或B相)的上升沿或者下降沿来测速的时候,那么在时间T内,这样的测速方式就只能计数2次。

使用软件四倍频算法,对编码器输出波形进行四倍频,在A相和B相各输出一个完整波形的波形时,同时测量A相和B相编码器的上升沿和下降沿,如图4.8中1~4所示,这样在同样时间T内,可以计数8次,提高了测速的工作效率。

图4.8编码器AB相

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 交通运输

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1