基于stm32两轮自平衡车控制系统设计.docx

上传人:l*** 文档编号:63205126 上传时间:2022-11-23 格式:DOCX 页数:27 大小:26.26KB
返回 下载 相关 举报
基于stm32两轮自平衡车控制系统设计.docx_第1页
第1页 / 共27页
基于stm32两轮自平衡车控制系统设计.docx_第2页
第2页 / 共27页
点击查看更多>>
资源描述

《基于stm32两轮自平衡车控制系统设计.docx》由会员分享,可在线阅读,更多相关《基于stm32两轮自平衡车控制系统设计.docx(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、基于stm32两轮自平衡车控制系统设计 基于STM32的两轮自平衡车限制系统设计 Control system design of two wheel self balancing vehicle based on stm32 内容摘要 本论文主要探讨两轮自平衡车限制系统的设计与实现。两轮自平衡车的机械结构简洁,直立行驶的方式给予敏捷的操控方式,能在不同的场景中投入运用,如日常生活的代步、工业生产特别搬运需求等等。其限制系统的相关算法和相关理论具有广袤的应用前景。 本文以STM32单片机为主控芯片,提出了系统设计方案,讲解两轮自平衡车限制系统的需求、框架和设计思路。然后对须要硬件进行选型和电路

2、设计,并且对系统进行软件开发。通过两轮平衡小车的姿态分析并解算后,运用PID算法的PD、PI、P算法对两轮平衡车的直立环、速度环和转向环进行限制。并且运用蓝牙无线通讯技术,实现两轮自平衡小车的无线操控功能,实现其限制便捷性。最终对系统进行调试和测试,证明来该两轮平衡车限制系统的可行性与稳定性。 关键词:两轮自平衡车 限制系统 STM32单片机 PID算法 蓝牙无线通讯 Abstract This paper mainly studies the design and implementation of a two-wheel self-balancing vehicle control sys

3、tem. The mechanical structure of the two-wheel self-balancing car is simple, and the upright driving mode gives flexible control methods, which can be put into use in different scenarios, such as daily life mobility, special handling requirements for industrial production, etc. The related algorithm

4、s and related theories of its control system have broad application prospects. This article takes STM32 microcontroller as the main control chip, puts forward a system design plan, and explains the requirements, framework and design ideas of the two-wheel self-balancing vehicle control system. Then

5、select the required hardware and circuit design, and software development of the system. After analyzing and solving the attitude of the two-wheel balancing car, the PD, PI, and P algorithms of the PID algorithm are used to control the upright ring, speed ring, and steering ring of the two-wheel bal

6、ancing car. And the use of Bluetooth wireless communication technology to achieve two-wheeled self-balancing car wireless control function, to achieve its control convenience. Finally, the system was debugged and tested to prove the feasibility and stability of the two-wheel balance car control syst

7、em. Keywords: Two-wheeled self-balancing car Control system STM32 single-chip PID algorithm Bluetooth 书目 第一章 绪论 1 1.1 论文探讨背景和意义 1 1.2 国内外两轮平衡车探讨历史和现状 1 1.3 论文探讨内容和目标 2 1.4 论文结构支配 2 其次章 系统设计方案 3 2.1 需求分析 3 2.2 系统框架 3 2.3 设计思路 4 第三章 硬件系统设计 5 3.1 STM32最小系统设计 5 3.1.1 主控芯片 5 3.1.2 最小系统的设计 6 3.2 电源系统 6 3.

8、2.1 降压芯片选型 6 3.2.2 电源系统原理图 7 3.3 MPU-6050六轴陀螺仪传感器模块 7 3.3.1 MPU-6050概述 7 3.3.2 MPU-6050系统原理图 8 3.4 TB6612FNG电机驱动模块 9 3.4.1 TB6612FNG模块概述 9 3.4.2 TB6612FNG原理图 9 3.5 BT04-A蓝牙串口模块 10 3.5.1 BT04-A蓝牙串口模块概述 10 3.5.2 BT04-A蓝牙串口模块原理图 10 3.6 OLED显示屏模块 11 3.6.1 OLED显示屏概述 11 3.6.2 OLED显示屏接线图 11 3.7 电机编码器 12 3.

9、8 本章小结 12 第四章 软件系统开发 13 4.1 总体方案 13 4.2 MPU-6050读取姿态信息 13 4.2.1 读取原始数据 13 4.2.2 读取DMP并转换为欧拉角 14 4.2.3 IIC通讯方式 14 4.3 霍尔编码器测速 16 4.3.1 程序框图 16 4.3.2 编码器软件四倍频 16 4.4 蓝牙无线传输 17 4.4.1 STM32串口通讯 17 4.5 遥控终端的开发 18 第五章 两轮平衡小车关键算法 20 5.1 MPU-6050姿态解算 20 5.1.1 DMP输出四元数 20 5.1.2 欧拉角转换 20 5.2 两轮平衡车的PID限制算法 20

10、5.2.1 PID算法的概述和应用 20 5.2.2 基于PD限制的直立环 21 5.2.3 基于PI限制的速度环 21 5.2.4 基于PD限制的转向环 22 第六章 系统测试 23 6.1 测试目的与测试环境 23 6.2 电源系统检测 23 6.3 STM32最小系统测试 24 6.4 蓝牙无线通讯测试 25 6.5 陀螺仪测试 25 6.6 两轮自平衡车PID调试 27 6.6.1 直立环PD算法的调试 27 6.6.2 速度环PI算法的调试 28 6.6.3 转向环PD算法的调试 28 6.7 两轮自平衡车遥控测试 30 6.8 本章小结 30 结论 31 参考文献 32 致谢 33

11、 第一章 绪论 1.1 论文探讨背景和意义 人类的生存发展已经步入21世纪,这是一个高科技的时代,我们的日常生产生活中离不开数字技术、计算机技术和机械设计技术等高科技技术。两轮自平衡电动车,以两轮共轴为机械结构,通过自带精密电子陀螺仪(Solid-State Gyroscopes)的电子平衡系统,实现了自动平衡和直立行走的功能。其外形小巧、行动敏捷、环保便利的特点,得到了市场的广阔认同和发展。目前各种须要移动运输操作的传统机械设备,基本都以后驱四轮式或者履带式的形式存在。这些传统的机械的移动方式已经满意不了人们生产生活对人工智能的要求。因此,市场上急需一种更为便利敏捷的机械协助移动设备,直立式

12、两轮自平衡电动车的出现满意了这一需求。 两轮自平衡车系统运行时,自平衡限制规划、行驶操控等多种功能同时运行。最关键一点是实现自平衡的同时,还要在不同的环境中直立行驶,实现限制操作。两轮自平衡车的概念,以其不稳定的动态性能和系统非线性,快速成为各种限制理论的探讨平台,具有较大的科研意义。1.2 国内外两轮平衡车探讨历史和现状 近年来全球各国对两轮自平衡机器人的探讨越来越火爆,使其得到了快速的发展。多国纷纷研发了试验机,两轮平衡车的平衡限制的方案接连被研发设计出来,呈现出限制系统的多样性。两轮自平衡车有了稳定的行驶平衡系统,再经过改造,可快速便利地应用到不同的环境里,如工业生产所需的承载运输、日常

13、生活代步等。对于各国来说这是一个巨大的机遇,使得一些外国公司也在市场上生产研发相应的商业产品,并且投放到市场。2002年,一台名为“Segway HT”的两轮直立式自平衡载人设备问世,该设备由美国Segway公司研制。该设备以其行驶敏捷、体型小巧的特点,被用于人员密集的机场中。机场的安保警务人员站立在该两轮平衡车上,可在人群中敏捷快速地移动行驶,居高临下的行驶方式满意了视察机场各处的需求,能够刚好地发觉和处理可疑状况。2006年,一家位于德国的Transport公司,针对室内外的现场摄影工作者,研发了两轮摄像车,该设备后来广泛应用于电视节目的录制,甚至用于电影特别情节的拍摄之中。2007年,日

14、本丰田汽车公司研发了一台丰田机动机器人(MobilityRobot),这台只有15千克的机器人,最高行驶速度高达每小时20千米。哈尔滨工程高校的探讨人员,运用两块C8051单片机与人机交互上位机,组成了一个限制系统,通过不同传感器测量计算得出车体姿态信息,运用脉冲宽度调制(PWM)限制两台直流电机,外加人机交互和无线传输等技术,制造了一台两轮直立自平衡机器人。中国科技高校研发了一款两轮自平衡代步电动车。采纳了左右轮共轴的机械结构,通过建立系统数学模型建立限制算法,计算输出脉冲宽度调制(PWM)限制,来限制两个伺服电机的转矩,使电动车在行驶过程中保持直立平衡。1.3 论文探讨内容和目标 本论文探

15、讨内容: (1)两轮自平衡车的系统设计方案; (2)两轮自平衡车的硬件选型和电路设计; (3)两轮自平衡车的限制算法; (4)限制系统的调试及测试。依据本设计的功能要求,在实现两轮自平衡小车自平衡的状况下,完成遥控操作两轮自平衡车的前进、后退、转弯等行驶功能。1.4 论文结构支配 本论文的主要由以下六个章节构成: 第一章,绪论。探讨本论文的背景和意义,分析国内外两轮自平衡车的历史和现状,提出论文探讨的意义和目的。其次章,系统设计方案。对两轮自平衡车的需求进行分析并设计系统框架,提出设计思路。第三章,硬件系统设计。结合两轮自平衡车的功能需求,对所需硬件进行选型分析,并设计其原理图。第四章,软件系

16、统开发。提出软件系统总体方案,分析各模块的软件系统开发和流程。第五章,两轮平衡车关键算法。对陀螺仪输出的姿态数据进行解算。运用PID算法对电机进行限制,从而使两轮自平衡车保持直立、平衡。第六章,系统测试。对两轮平衡车的系统进行测试,PID算法的调试。验证了两轮平衡车限制算法的可行性与稳定性。 其次章 系统设计方案 2.1 需求分析 本系统要求在两轮自平衡小车自平衡的状态下,通过蓝牙无线传输技术,遥控实现两轮自平衡车移动行驶功能。本系统运用STM32F103C8T6作为平衡小车的主控芯片,实现以下功能要求: (1)获得小车的平衡姿态,并进行姿态解算; (2)运用PID算法限制两轮自平衡车,在静止

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

18、结构图 2.3 设计思路 依据各模块和传感器与STM32之间的连接通讯方式,系统设计思路图如图2.2所示。 图2.2 硬件设计思路 第三章 硬件系统设计 3.1 STM32最小系统设计 3.1.1 主控芯片 两轮自平衡车的系统工作时,需反复快速地读取陀螺仪、电机编码器等传感器的数据,并立刻经过算法处理,输出限制量反馈限制到直流电机。因此,限制系统对主控芯片的处理速度以及运行内存要求较高。 本限制系统的主控芯片选取意法半导体公司(ST)生产的STM32F103C8T6型号单片机。其内核Cortex-M3由ARM公司设计。主要参数如表3.1所示。表3.1 STM32C8T6参数表 工作电压 2V3

19、.6V 总线宽度 32位 速度 72 MHz FLASH容量 64KB RAM容量 20K 可以看到,其72MHz的速度和32位的总线宽度,满意了两轮平衡车限制系统对处理速度的要求,64 KB的FLASH存储器也是可以满意程序的存储。如图3.1为STM32F10x的系统构架图。该图供应了STM32F103C8T6单片机内部的结构关系,外设资源一目了然,对STM32的运用与开发供应帮助。 图3.1 STM32F10x系列系统构架图 3.1.2 最小系统的设计 单片机最小系统的定义为可满意单片机正常工作的系统。STM32单片机最小系统除了单片机之外,还有电源、复位、时钟三种电路和调试接口、boot

20、启动选项组。图3.2为本系统的最小系统原理图。 单片机选取LQFP-48封装的单片机。电源运用降压后的电源,电源系统的具体设计内容在下面章节中分析。复位电路设计为按键触发复位。将RST引脚通过按键S2。当按键按下后,引脚RST接地,RST引脚由高电平被拉低为低电平,触发单片机的复位功能。按键松开后,系统正常工作。复位电路中1uf电容和10k电阻,供应牢靠的复位时间。外置8MHz晶振时钟,并加入20uf的负载电容,该电容的作用是保证晶振的正常工作,使时钟电路供应精准时间。运用SWD下载模式,所需引脚较少,节约偏上资源。设置boot模式的设计较为简洁,只需把把boot0和boot1引脚引出,运用跳

21、线帽的方式设置即可。图3.2 STM32F103C8T6最小系统原理图。3.2 电源系统 3.2.1 降压芯片选型 由于直流电机的驱动电压、电流较大,本系统选取12V的锂电池来供电。但是12V的电压环境对单片机、各传感器和各模块来说电压太高,干脆供电会烧毁击穿各模块,所以还须要对电压进行降压处理。选用LM2596降压芯片,其最大可输入电压为40V,最大驱动电流达到3A,有热关断和限流爱护实力,负载调整实力强。12V的锂电池电压通过LM2596组成的降压电路后,输出稳定的5V电压。选用AMS111733正向低压降稳压器,把LM2596输出的5V电压进行降压,最终输出得到到3.3V的电压。3.2.

22、2 电源系统原理图 依据本设备所需电源要求,依据LM2596和AMS111733的数据手册,设计出本设备的电源系统如图3.3。图3.3 电源系统原理图 平衡车的输入电压为12V,经LM2596降压,输出电压为5V,最大负载3A。5V的电压经AMS111733降压后,输出3.3V电压。电源系统加入大电流开关S3,打开S3后系统电源开启,各降压模块起先工作,供应稳定电压,关闭S3后整个电源系统关闭。3.3 MPU-6050六轴陀螺仪传感器模块 3.3.1 MPU-6050概述 MPU-6050六轴陀螺仪传感器,内含MEMS 陀螺仪、MEMS加速度计各三轴。内嵌DMP(Digital Motion

23、Processor)数字运动处理器,其通讯方式为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.2 MPU-6050引脚说明 引脚名称 说明 VCC 电源输入3.3V或5V GND

24、接地 SCL IIC从时钟信号线SCL SDA IIC从数据信号线SDA AUX_DA IIC主串行数据信号线,用于外接传感器 AUX_CL IIC主串行时钟信号线,用于外接传感器 AD0 接地、悬空时地址为0x68;接VCC地址为0x69 INT 中断输出引脚 3.3.2 MPU-6050系统原理图 翻阅MPU-6050数据手册,设计出接线原理图,如图3.4所示。 图3.4 MPU-6050原理图 MPU-6050的电源引脚3.3V的电压,并且在电源入口和器件旁边加入滤波电容,用来滤除沟通成分,使输出的直流更平滑,确保MPU-6050硬件稳定性,满意限制系统对高精度姿态数值的须要。 AD0引

25、脚接地,AD0的值为0,设置MPU-6050的设备地址为0x68。IIC通讯引脚SDA与SCL分别接入STM32的PB9和PB8引脚,并且加入了一个4.7K的上拉电阻,作用是保证有正常的高电平输出,起到爱护芯片的作用。3.4 TB6612FNG电机驱动模块 3.4.1 TB6612FNG模块概述 两轮平衡车自带两个直流电机,12V的锂电池虽然可以使电机转动,但是无法干脆限制其转速来限制车体保持平衡。所以须要一块特地负责驱动、限制电机的芯片。东芝半导体公司生产的TB6612FNG芯片,是一款直流电机驱动器件。该芯片自带来大电流MOSFET-H桥结构,能够输出双通道的电路。刚好可以驱动两轮自平衡车

26、的两个电机,而且该芯片有低热耗,不须要加散热片。100KHz的PWM信号输入频率也满意了两轮平衡车限制系统的需求。TB6612FNG的主要参数如表3.3所示: 表3.3 TB6612FNG的参数表 工作电压 5V 最大输入电压 15V 最大输出电流 3.2A 功能模式 正反转、短路刹车、停机 图3.5 TB6612FNG芯片图 3.4.2 TB6612FNG原理图 TB6612FNG与电机连接的原理图如图3.6。图3.6 TB6612FNG原理图 TB6612FNG芯片的PWMA引脚和PWMB引脚分别接到STM32单片机PA11引脚和PA8引脚,用于单片机输出PWM信号限制两个电机,TB661

27、2FNG的输出引脚O1、O2和O3、O4引脚分两组引出来,便利点机的接线。AN1、AN2和BN1、BN2分别连接到单片机对应IO口上来限制电机转向,其真值表如表3.4所示。表3.4 TB6612FNG限制电机运转方向真值表 引脚 停止 正转 反转 AN1 0 1 0 AN2 0 0 1 3.5 BT04-A蓝牙串口模块 3.5.1 BT04-A蓝牙串口模块概述 此设备运用BT04-A蓝牙模块。该模块采纳蓝牙V2.1+EDR技术并且兼容UART接口。成本低,功耗低,接收灵敏性高。其外围电路只需少许几个元件,就能实现蓝牙无线传输的功能。 图3.7 BT04-A蓝牙串口通讯模块 BT04-A蓝牙串口

28、模块的主要参数为: 表3.5 BT04-A参数表 工作电压 3.3V 通讯模式 UART 通讯有效距离 15米左右 用户可依据须要,通过AT模式输入对应的AT指令,来设置本蓝牙模块的名字、主角色(Master)或者从角色(Slave)以及配对码等信息。 3.5.2 BT04-A蓝牙串口模块原理图 BT04-A蓝牙串口模块原理图如图3.8所示。 图3.8 BT04-A蓝牙串口模块原理图 BT04-A模块的串口通讯引脚跟STM32上的串口通讯引脚交叉相连,即STM32上的串口输出引脚连接到BT04-A模块的串口输入引脚,STM32上的串口输入引脚连接到BT04-A模块的串口输出引脚。BT04-A模

29、块的P12引脚外接LED灯,用于显示蓝牙模块的状态。 3.6 OLED显示屏模块 3.6.1 OLED显示屏概述 0.96寸的OLED显示屏,用显示于两轮自平衡车上电时的电压、车体的倾斜姿态、电机编码器的数值等信息。其主要参数如表3.6所示。表3.6 OLED显示屏参数表 工作电压 3.3V 辨别率 12864 显示内存 12864位字节 响应时间 几微秒到几十微秒 表3.7为OLED显示屏模块的引脚说明。表3.7 OLED显示屏模块的引脚表 GND 电源地线 SDA 数据线 VCC 输入电压 RST 复位 SCL 时钟线 D/C 吩咐/数据 3.6.2 OLED显示屏接线图 OLED显示屏的

30、接线如图3.9所示。其输入电压为3.3V。SCL、SDA、RST和D/C引脚分别接STM32的PC15、PC14、PC13和PB4引脚上。 图3.9 OLED显示屏接线图 3.7 电机编码器 编码器可以把轴角度方向的位移,转换成数字脉冲,是一种的旋转式的传感器。将编码器设置到电机转动轴的位置,输出对应波形,得到电机转动的速度信息。 本设备采纳AB相输出的增量式霍尔编码器,如图3.10。只需给编码器接上5V的工作电源,电机上电后便输出AB相的方波信号,可以辨别转向和测量速度。 图3.10 增量式霍尔编码器 3.8 本章小结 本章的主要针对硬件的选型并设计对应外围电路。从自平衡车的功能动身来设计硬

31、件系统,对各芯片模块进行介绍并设计工作电路。各模块与主控芯片STM32连接,完成硬件系统的设计。 第四章 软件系统开发 4.1 总体方案 软件系统起先时,初始化各函数,读取电压值,推断定时器是否定时时间到,假如定时时间未到则回到定时起先,假如定时时间到了,陀螺仪输出DMP数据,并转换为欧拉角,显示屏显示车体状态信息。推断自平衡启动按键是否按下,按键没有按下则循环检测按键,假如按键按下则进行PID运算,并以输出PWM 限制电机运转来限制小车自平衡。检测蓝牙是否连接,假如蓝牙已连接则点亮指示灯,接收指令,并输出对应PWM限制小车行驶状态,假如蓝牙没有连接,则回到自平衡启动按键的检测检。软件系统流程

32、图如图4.1所示。 图4.1 软件系统流程图 4.2 MPU-6050读取姿态信息 4.2.1 读取原始数据 MPU-6050原始数据获得流程如图4.2所示。 图4.2 MPU-6050姿态读取流程图 依据IIC协议的通讯方式,运用软件的方式限制STM32的两个IO口,模拟出IIC通讯协议。然后对MPU-6050陀螺仪进行初始化操作,配置其时钟、陀螺仪最大量程、加速度最大量程等,初始化后就可以通过软件模拟的IIC协议读取MPU-6050寄存器的值,得到加速度和角加速度的信息。 4.2.2 读取DMP并转换为欧拉角 读取MPU-6050内置DMP的姿态信息并转换为欧拉角流程如图4.3所示。 图4

33、.3读取DMP并转换为欧拉角流程图 对MPU6050初始化设置后,通过IIC读取FIFO寄存器中的值,得到q30格式的值,再进行浮点数计算,最终经过欧拉角转换计算出Pitch和Roll。 4.2.3 IIC通讯方式 本文中MPU6050与STM32的通讯方式为IIC通信。IIC是一种由数据总线SDA和时钟总线SCL两条串行总线组成的一种串行通信协议总线。IIC连接到设备上时,可以设置为主机和从机。当设置为主机模式时,地址总线须要获得从机的地址。当设置为从机模式时,须要再配置其匹配地址,从而才能对主机发出应答信号。在本设备中,MPU-6050倍设置为从机运用。整个IIC协议通信流程包含起始信号(

34、S)、应答信号(ACK)、数据传输(发送/接收)、停止信号(P)。当STM32须要读取MPU6050的数据时,STM32先发起起先信号 (S),其方式为数据总线SDA和时钟总线SCL保持高电平,数据总线SDA由高电平转换到低电平,形成一个下降沿,此周期为0.6us。当IIC通讯结束时,时钟总线SCL保持高电平,在0.6us内,数据总线SDA由低电平升到高电平形成上升沿,此为IIC通讯结束的标记(P)。IIC起先信号和结束时序如图4.4所示。 图4.4 IIC起先信号和结束信号图 IIC数据的宽度为8位字节,在IIC起先信号发出后,发送8位数据。当时钟总线SCL处于高电平且数据总线SDA保持稳定

35、的低电平常,发送数据0。反之,当时钟总线SCL处于高电平且数据总线SDA保持稳定的高电平电平常,则发送数据1。 图4.5 IIC数据发送方式 在发送完8位二进制的数后,还需跟随一个应答信号(ACK),此信号用于判定是否传输一次数据。假如在第9个时钟脉冲期间,时钟线为的高电平,且数据总线SDA为稳定的低电平,那么这就是一个有效应答位(Acknowledge)。假如在第9个时钟脉冲之前的低电平期间,数据总线SDA保持高电平,则此次应答信号为一个无效应答位。(Not-acknowledge)。 图4.6 IIC应答信号时序图 4.3 霍尔编码器测速 4.3.1 程序框图 电机编码器测速的流程如图4.

36、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中14所示,这样

37、在同样时间T内,可以计数8次,提高了测速的工作效率。 图4.8 编码器AB相波形4倍频 4.4 蓝牙无线传输 该设备运用的蓝牙无线传输技术是基于STM32的USART串口传输技术。连接好蓝牙模块后就可以以全双工的传输模式干脆串口数据传输。就相当于连接上一般的串口线,可以进行数据的无线传输。 4.4.1 STM32串口通讯 STM32的串口通讯流程图如图4.9所示。 图4.9 串口通讯流程图 4.5 遥控终端的开发 平衡小车限制系统内嵌了蓝牙无线传输技术,使得遥控终端的开发就较为简洁便利。首先在STM32编程设置好前进、后退、左转、右转等操作的指令,其指令表如表4.1所示。 表4.1 遥控操作指

38、令表 操作 字符指令 十六进制(HEX)指令 前进 A 0x41 后退 E 0x45 左转 B 0x42 右转 F 0x46 刹车 Z 0x5A 然后手机下载 “蓝牙调试器”APP,打开编程模式对“前进”、“后退”、“左转”、“右转”4个按键进行编辑。当“前进”按钮被按下时,发送前进指令“A”,当“前进”按钮松开时发送刹车指令“Z”以防陷入前进操作的循环。按键编程图如图4.10图4.13所示。 图4.10 “前进”按键设置 图4.11“后退”按键设置 图4.12 “左转”按键设置 图4.13 “右转”按键设置 设置好四个操作按键后,“蓝牙调试器”APP遥控界面如图4.14所示。 运用“蓝牙调试

39、器”APP连接平衡车主板上的蓝牙。当按下编程好的按键时,“蓝牙调试器”APP发送相应指令到平衡小车主板上,通过串口传输到STM32上,STM32计算好PWM来限制小车完成对应行驶操作。 图4.14 “蓝牙调试器”APP遥控界面 第五章 两轮平衡小车关键算法 5.1 MPU-6050姿态解算 5.1.1 DMP输出四元数 四元数是一种超复数,代表一个加入旋转角的三维空间。其表达式为: q=(q0,q1,q2,q3) (5.1) 其中q0为实数,q1q3为虚部的实数。 MPU-6050自带硬件运动处理器DMP(Digital Motion Processing),能够把原始角速度数据转换为四元数,

40、这减轻了主控芯片STM32的工作负担。DMP的运用较为简洁,只需下载其官方DMP驱动库文件,并移植到STM32即可。运用DMP得到各轴的加速度和角速度。须要留意的是DMP输出数据的格式为浮点数放大了230倍的q30模式,须要将输出的数转化为浮点数,表达公式为: q0=quat0 / q30 (5.2) q1=quat1 / q30 (5.3) q2=quat2 / q30 (5.4) q3=quat3 / q30 (5.5) 5.1.2 欧拉角转换 欧拉角是用来确定某个围绕定点转动的刚体位置的一组三个独立角参量,可理解为由X轴上的滚转角(roll)、Y轴上的俯仰角(pitch)、Z轴上的航偏角

41、(yaw) 组成。此系统应用到pitch和roll两个参数。pitch值转换式为: asin2q1q3+2q0q2/180 (5.6) roll值的转换式为: atan2(2q2q3+2q0q1, 2q1q12q22+1)180/ (5.7) 5.2 两轮平衡车的PID限制算法 5.2.1 PID算法的概述和应用 PID算法是常见的限制算法之一,由比例(Proportional)、积分(Integral)和微分(Differential)三种计算组成。在工程实践中,一般P是必需的,所以衍生出很多组合的PID限制器,如P、PI、PID等。本两轮自平衡车限制系统分为三部分。第一是两轮自平衡车直立限

42、制系统,其次是两轮自平衡车速度限制系统,第三是两轮自平衡车转向限制系统。这三个系统分别运用到不同的PID限制算法。 图5.1 PID算法图 5.2.2 基于PD限制的直立环 直立限制系统运用PD限制器,D(微分)限制的加入能够快速地响应车体受到的干扰,调整车体平衡状态。PD限制车体直立的程序框图如图5.2所示。 图5.2 PD限制直立流程图 5.2.3 基于PI限制的速度环 速度限制系统运用PI限制器。P限制器具有线性,利用实际输出值与给定值两者之间的偏差,将偏差的比例和积分进行线性组合,从而构成限制量,来限制目标对象。PI限制车体速度的程序框图如图5.3。 图5.3 PI限制直立流程图 5.

43、2.4 基于PD限制的转向环 PD限制车体速度的程序框图如图5.4。 图5.4 PD限制转向流程图 第六章 系统测试 6.1 测试目的与测试环境 两轮自平衡车的系统功能实现须要通过各个功能模块相互协作完成的,为了保证两轮自平衡车限制系统的正常运转,须要对两轮自平衡小车不同模块与PID算法进行调试,确保系统的稳定性。本系统在瓷砖表面的房间里进行不同的测试。 6.2 电源系统检测 测试方法:两轮自平衡车限制主板接好电池后,打开电源系统总开关。运用万用表测量LM2596芯片的2号输出引脚与电源地之间的电压,再测量AMS111733的2号输出引脚与电源地之间的电压。测试结果:LM2596芯片的2号输出

44、输出电压为4.98V,如图6.1所示。AMS111733的2号输出引脚输出电压为3.3V,如图6.2所示。结论:测试结果显示电源系统的功能正常。 图6.1 LM2596输出电压测试图 图6.2 AMS111733输出电压测试图 6.3 STM32最小系统测试 测试方法:运用Keil uVision5软件编写测试程序,限制LED灯以1S的时间间隔进行闪耀,编译并且通过ST-Link烧录器下载到两轮自平衡车限制主板的STM32芯片里,视察LED状况。测试结果如表6.1所示 表6.1 STM32最小系统测试 测试步骤 预期状况 实际状况 结论 限制主板上电 LED灯以1S的时间间隔进行闪耀 LED灯

45、以1S的时间间隔进行闪耀 下载调试、时钟和IO功能正常 长按复位按键 LED灯熄灭 LED灯熄灭 复位功能正常 松开复位按键 LED灯复原闪耀 LED灯复原闪耀 图6.3 最小系统点灯图 图6.4 最小系统熄灯图 6.4 蓝牙无线通讯测试 蓝牙无线通讯是实现小车与限制终端的重要通讯方式,它在两轮自平衡车的无线遥控过程中起到特别重要的作用,实现操控便捷性。 测试方法:蓝牙模块通过数据线连接到电脑,并在电脑上打开串口调试器。手机运用蓝牙调试助手,连接蓝牙模块。分别在空旷和有墙体的房间里面,依据手机端和蓝牙模块间的距离分别进行测试,视察电脑上串口调试器接受到的信息。测试结果如表6.2所示。表6.2

46、蓝牙无线通讯测试最小系统测试 空间状态 距离 预期状况 实际状况 结论 开阔且 无障碍 5米 电脑端串口调试器接受收到手机端发来的信息 电脑上接收到信息 通过 10米 电脑上接收到信息 通过 相隔一 面墙体 5米 电脑上接收到信息 通过 10米 电脑上接收到信息 通过 测试结果:STM32串口功能正常,蓝牙模块功能正常,无线通讯功能正常。6.5 陀螺仪测试 MPU6050六轴陀螺仪供应限制系统精准的姿态信息,其模块运行是否正常影响两轮自平衡小车的自平衡功能。 测试方法:小车限制系统主板上电,以MPU-6050的X轴为旋转轴变更主板倾斜角度,视察OLED屏上的角度信息。测试结果如表6.3所示 表

47、6.3 MPU-6050测试表 小车主板姿态 预期状况 实际状况 结论 主板正面朝上水平放置于桌面 显示屏显示角度为0 显示屏显示角度为359 通过 主板正面朝前垂直放置于桌面 显示屏显示角度为270 显示屏显示角度为275 通过 主板正面朝前垂直放置于桌面 显示屏显示角度为90 显示屏显示角度为90 通过 图6.5 MPU-6050读取主板正面朝上且水平于桌面姿态图 图6.6 MPU-6050读取主板正面朝前且垂直于桌面姿态图 图6.7 MPU-6050读取主板背面朝前且垂直于桌面姿态图 测试结果:MPU-6050测试出来的姿态方向信息正确,但是由于桌面无法保证水平的程度,加上手扶着主板视察

48、显示屏,其读取出来的数值存在误差,可通过后期PID限制调试来限制小车自平衡,所以该误差忽视不计。此测试还验证了OLED屏幕的功能正常。 6.6 两轮自平衡车PID调试 经过以上测试之后,两轮平衡车的关键系统均正常,接下来调试PID算法,验证平衡车的自平衡功能,测试其静止状态下和外力干扰下能否实现自平衡功能。6.6.1 直立环PD算法的调试 测试方法:变更kp值和kd值的大小,视察小车的平衡状态。测试结果如表6.4和表6.5所示。测试结果:当kp值为500且kd值为1时,小车趋于平衡但是还有抖动现象,一段时间后便倒下。此时对kp、kd值进行小幅放大或缩小,得到当kp、kd值缩小0.6倍时,也就是kp值为300且kd值为1时,基本没有抖动现象,但一段时间还是倒下,接下来须要加入速度环的限制才能保持

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁