ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:1.23MB ,
资源ID:16286114      下载积分:5 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-16286114.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于STM32控制的平衡小车系统设计.docx)为本站会员(b****7)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于STM32控制的平衡小车系统设计.docx

1、基于STM32控制的平衡小车系统设计基于STM32控制的平衡小车系统设计作者:陈昱 沈林涛 王凯来源:软件导刊2020年第08期摘要:为了响应节能环保、绿色出行倡议,缓解城市交通拥挤状况,提出一种基于STM32F103C8T6芯片控制的两轮平衡小车设计方案。以MPU-6050作为小车姿态传感器获取小车车体倾角和角速度,基于卡尔曼滤波算法对姿态传感器采集到的的数据进行滤波融合,利用霍尔编码器测量小车车轮转向和转速,运用PID算法对控制要求和采集的数据信息进行计算分析并输出控制PWM,经由TB6612电机驱动模块驱动电机,实现小车自主平衡并具备一定的抗干扰能力。另外小车通过蓝牙模块与手机APP通信

2、,可通过手机端控制小车前进、后退、转弯等动作。关键词:STM32;PID;MPU-6050;卡尔曼滤波;自平衡DOI:10. 11907/rjdk. 201087 开放科学(资源服务)标识码(OSID):中图分类号:TP319 文献标识码:A 文章编号:1672-7800(2020)008-0117-05Abstract:In order to response to the initiatives of energy conservation and environmental protection, green travel, and alleviate the urban traffic

3、 congestion, this paper introduces the design of self-balancing two-wheeled vehicle based on STM32F103C8T6 chip control.Sensors with MPU - 6050 is used to obtain car attitude angle and velocity of the vehicle body. The Kalman filter algorithm is used to filter and fuse the data collected by the atti

4、tude sensor. The Hall encoder is used to measure the steering and rotation speed of the trolley, and the PID algorithm is used to calculate and analyze the control requirements and collected data information and output the control PWM. The motor is driven by the TB6612 motor drive module to realize

5、the autonomous balance of the trolley which has certain anti-interference ability. In addition, the car communicates with the mobile APP via bluetooth module, and the cars forward and backward movements, turn and other actions can be controlled through the mobile end.Key Words: STM32; PID; MPU-6050;

6、 Kalman filter; self-balance0 引言隨着社会发展,环境污染日益加剧,与此同时公众环保意识逐步增强,绿色出行成为城市交通规划和公众出行首选。新能源汽车、折叠式电动车、便携式平衡车等逐渐成为日常代步工具。其中平衡车因为轻巧便携、转弯半径小,特别适用于在场地空间有限的地方运行,如大型购物中心、办公大楼、生活住宅小区、国际性会议或展览场所、生态旅游风景区等1。平衡车如何高效稳定地获取实时姿态信息、有效控制车体状态,在复杂环境下成功执行目标任务等成为研究热点。两轮平衡小车概念顺应当前研究浪潮,可有效解决复杂环境下小车运动问题,同时随着远程控制技术的发展,远程监控平衡车在军用、

7、民用领域有广阔的发展空间2。平衡小车是一种自然不稳定体,其原理是在倒立摆基础上对普通倒立摆的发展,因此比普通倒立摆具有更大的运动空间,使其不仅局限于实验室,更贴近现实生活3。国内外学者对此进行了研究,并取得了相应成果。韩竺秦等4对平衡车进行建模,利用KL25和MPU6050搭建实验平台,结合四元数、互补滤波和PID算法实现小车自主平衡,并利用MATLAB仿真验证方法有效性;陈木桂等5以MC9S12XS128为核心控制器,采用加速度传感器MMA7260、ENC-03陀螺仪结合PID控制算法提出一种光电平衡智能车设计方案,该两轮车能够按照预定的轨迹稳定运行;束方耀等6以STM32作为主控设计了一种

8、声控自平衡小车,该平衡小车可在近距离内进行语音控制;文献7提出了一种基于Arduino的平衡小车设计方案。综上所述,平衡小车控制的关键在于车体倾斜角、角速度、车轮转向及速度测量准确性和实时性。针对该问题,本文采用STM32F103C8T6作为主控,利用霍尔编码器获取小车车轮转速,将MPU-6050作为姿态传感器采集车体倾角和角速度,结合卡尔曼滤波算法与PID控制算法实现小车自主平衡。1 总体设计方案1.1 原理分析两轮平衡小车受力点在底部轮子上,如果不施加外力,车体将无法保持平衡。在日常生活中该原理的应用实例也较为常见,比如将木棒放置在手掌中,来回调整手的位置,可以实现木棒直立不倒8。在维持木

9、棒平衡的过程中,必须满足两个条件:木棒下面的手掌可来回移动;必须实时观察木棒倾斜角度和倾倒趋势(角速度),凭借手掌的来回移动消除木棒倾斜角度和趋势,保持手掌中的木棒直立不倒。木棒维持平衡采用的控制方式是闭环负反馈控制,如图1所示。平衡小车自动维持平衡也采用负反馈调节的控制方式,如图2所示,由于小车底部只有两个并排的车轮,车体上部分只能在车轮前后方向出现倾斜时,通过控制车轮的转动方向和速度消除该倾斜方向上的倾角,保证小车车体平衡。将平衡小车离开垂直位置的倾角作为偏差量,凭借负反馈控制将该偏差量保持在0附近,通过控制电机转动方向维持小车直立状态。依据小车自平衡功能要求,小车底部并排的两个车轮是保持

10、车体直立前后移动的控制目标,而小车轮胎的转动受电机控制,因此从控制思维看,受控对象是小车车体,车体底部两个电机转动速度作为控制输入量9。两轮平衡小车通过姿态检测模块检测出倾斜角,然后控制器接受姿态信息并进行处理,最后车轮电机在主控制器的控制下实现变速和换向,实现小车动态平衡。1.2 系统设计方案本文以STM32处理器为控制核心,接收并处理传感器传递的小车数据信息,MPU6050模块负责采集小车倾角和角速度数据信息,利用霍尔编码器获取小车车轮转速和转向数据信息并反馈给主控制器。STM32结合卡尔曼滤波算法与串级PID算法将控制信号输入至电机驱动模块TB6612FNC,驱动电机正反转和变速,实现小

11、车上电后自主平衡。手机APP和小车通过蓝牙模块连接,实现小车动作控制,系统总体框架见图3所示。2 系统硬件设计系统硬件主要有主控制器、姿态传感器模块、电源模块、蓝牙模块、超声波模块、电机测速模块、电机和电机驱动模块等。2.1 电源模块两轮自平衡小车正常运行离不开电源支撑,本文设计以航模电池作为电源,相对于普通干电池,航模电池可有效改善电池漏液的安全问题,且可多次充放电,使用方便。电源模块原理如图4所示,12V航模电池经过低压差线性稳压器LM2596T与AMS1117模块变压后可降至5V和3V,为姿态传感器MPU-6050和主控芯片和测速等模块供电,保证各硬件模块正常工作。2.2 主控制器模块主

12、控制器为ST公司推出的STM32F103C8T6,该微控制器内核为Cortex-M3,CPU为32位,存储器为SRAM, 6-64kB。其增强型系列处理速度达72MHz ,具有高性能、低成本等特点10。在该控制器的支持下,控制车轮实现车体平衡,主控模块电路原理如图5所示。2.3 姿态传感器模块车体姿态信息对于实现车体平衡至关重要,本文姿态检测采用MPU-6050模块,如图6所示。其内部自带稳压电路可兼容3.3V/5V供电电压,采用先进的数字滤波技术,有效解决了测量噪声跟随精度上升的问题。通信方面,权限高的用户可通过保留的I2C接口采样底层测量数据。芯片集成了DMP数字动态处理器(实现平衡小车姿

13、体平衡),从陀螺仪、加速度计及外接传感器接收并处理数据,处理结果可从DMP寄存器读出或通过FIFO缓冲11。为了满足实时获取姿态信息的要求,联合使用陀螺仪与加速度计,共同构成姿态读取模块。2.4 电机驱动模块因为单片机IO口输出功率较小,无法使电机正常运行,为使电机速度和换向控制,需要一个功率放大器件。电机驱动选择是使用东芝半导体生产的直流电机驱动TN6612FNG,相对于传统的L298N电机驱动,TB6612FNG外围电路简单,在运行中发热量很小,且支持的PWM 调速频率更高,同时也有利于减小系统的尺寸。2.5 电機测速模块选用增量式输出的霍尔编码器进行小车测速。编码器为AB相输出,不仅可测

14、速,还可辨别转向。只给编码器电源5V供电,在电机转动时编码随电机同步转动即可通过AB相输出存在相位差的方波信号。编码器自带上拉电阻,所以无需外部上拉,可直接连接单片机IO进行读取,这样就可判断电机实时转速和转动方向。2.6 蓝牙模块蓝牙模块选用HC-05,该模块价格低、能耗低、尺寸小、收发灵敏高。HC-05有两种工作模式:自动连接工作模与命令响应工作模式。前者又分为3种形式:主、从、回环。当蓝牙工作在第一种模式时模块以预先设定的步骤进行通信;当蓝牙工作在第二种模式时,设置模块参数需用户向蓝牙发送AT指令进行控制。通过控制引脚电平高低,实现模块工作模式转换。2.7 超声波模块测距模块选用HC-S

15、R04,该超声波模块测距范围2cm400cm,测距精度达高到3mm;模块有Trig(控制端)、Echo(接收端)、VCC和GND等4个引脚。模块Trig(控制端)有1个10us以上的高电平就可在Echo(接收端)等待高电平输出,一旦有输出即可开启模块内部定时器计时,当该端口变为低电平时可读取定时器的值,作为该次测距时间,根据时间可算出距离。测试距离=(高电平时间*声速(340M/S)/2。3 系统软件设计平衡小车上电后实现自主平衡是一个复杂的控制过程,主要包含:系统初始化、按键检测、车体姿态信息采集、数据滤波、PID控制算法等功能的设计,其控制流程如图7所示。(1)读取姿态。MPU-6050每

16、间隔5ms检测一次车体倾角和角速度,与此同时,编码器测量电机转速和方向,然后将测量值传递给主控制器。(2)数据滤波。主控制器接收小车姿态信息后,借助卡尔曼滤波算法对姿态数据进行平滑滤波输出。(3)PID控制。采用PID控制算法,结合优化后的姿态数据与当前电机运行信息,输出控制数据。(4)PWM输出。最终在主控制器的控制下输出PWM波控制电机转向和速度,并再次等待定时中断。3.1 系统初始化在小车正式运行之前, 需对整个系统进行初始化,其流程如图8所示。(1)时钟初始化。因为小车运行过程中需要每隔5ms获取一次车体姿态信息,因此系统中需要设置时钟,对时钟进行初始化是保证系统正常运行的前提。(2)

17、NVIC中断初始化。为了保证按时中断的准确性,5ms后实现中断,并开始读取MPU-6050所采集的小车姿态数据的过程,必须保证将定时中断初始化12。(3)定时器初始化。同样是为了确保每5ms实现一次中断,让MPU-6050读取车体运行姿态和传递参数顺利进行。(4)通信初始化。系统采用I2C通信,为了实现参数采集和数据在各模块间的有效快速的传输,需要进行初始化。(5)测速模块初始化。实现车体稳定的平衡状态除需要准确获取车体倾角和角速度外,还需要准确获取车轮的转速和转向,测速模块的功能便在于实时检测车轮运行状态。(6)MPU-6050初始化。姿态检测模块MPU-6050初始化的意义在于实现对小车的

18、姿态检验。(7)电机PWM初始化。在对车体姿态和车轮运行状态进行解析后输出控制PWM,控制电机不同的速度和方向转换。3.2 卡尔曼滤波融合算法在动态测量过程中, 测量小车倾角和角速度数值。与实际情况相比, 必定存在偏差。采用卡尔曼滤波算法将陀螺仪与加速度计采集的数据融合, 克服陀螺仪造成的漂移误差和加速度计造成的动态误差,得出最优值消除误差,可有效优化小车姿态数据信息 13。3.3 PID 控制算法在一些简单的PID控制系统中,一般加入单独的P控制或PI控制即可实现要求,但在要求提高干扰响应速度情况下,需加入D控制。本文系统采用双闭环串级PID算法进行角度环(PD)控制和速度环(PI)控制。其

19、中将速度环输出作为角度环输入,将角度环输出作为系统输出,这是一个串级控制系统,PID调节流程如图9所示。由式(6)和式(7)得到让小车保持直立且速度为给定值的控制算法。由一个负反馈的直立PD控制器与一个正反馈的速度PI控制器组成平衡和速度的双闭环控制串级PID控制算法。4 系统调试在软件调试前先组装平衡小车硬件,在设计安装车体硬件各部分的过程中必须使车体重心尽可能在小车中心点,后续平衡调试才更容易。组装好车体后,小车通过下载线连接到电脑USB串口,经过软件Kile5编译烧录程序到主控芯片,软件调试主要有角度环调试和速度环调试,在倾斜角度和车轮速度控制共同作用下实现小车平衡。4.1 调试角度环将

20、小车放在光滑地面上,调试角度环时,需屏蔽速度环,角度环调试步骤包括:确定小车平衡中值、确定 Kp、Kd极性及其大小。(1)确定机械中值。将小车放在光滑地面,小车在零度附近有直立趋势,因此可确定小车机械中值为0。(2)确定Kp极性(令 Kd=0),如表1所示。当Kp值为正时,小车上电启动后有回复力驱使小车保持平衡,可确定Kp极性为正。(3)确定Kp大小,如表2所示。当Kp取值从300增加至500时,响应速度逐渐加快,直至Kp=500时出现大幅度抖动,表明设定的Kp值很大,抑制低频抖动需增加微分控制,削弱比例控制。(4)确定Kd极性(令Kp=0),如表3所示。当Kd值为正时,上电启动小车后倾斜车体

21、,车轮会跟随傾角方向转动,保证调节转速达到平衡目的,可确定Kd极性为正。(5)确定Kd大小(令Kp=500),如表4所示。Kp=500,Kd=1.7是Kp和Kd的最大值,超过该数值会影响小车平衡状态。根据工程经验可知,将调试得到的最大值分别乘以0.6,然后取整得Kp=300,Kd=1,这是实现最好平衡状态的理想参数值14。此时小车能保持一定时间的平衡,但是十几秒后小车仍会向一个方向倒下,这是因为需依靠直立控制和速度控制两者的共同作用才能实现小车长时间平衡,因此需进行速度环参数调试。4.2 调试速度环将小车放在光滑地面上,在调试速度环时,需屏蔽角度环,通过确定 Kp、 Ki极性及大小完成速度环调

22、试。(1)为确定Kp、Ki极性进行第一次调试,如表5所示。当Kp、Ki取值为正时,转动小车其中一个车轮,另一个可以实现同向转动,说明调节速度可实现两个车轮同步控制,因此可确定Kp、Ki两参数极性为正。(2)为确定Kp、Ki极性进行第二次调试,如表6所示。逐渐增大Kp、Ki的取值,当Kp=80、Kd=0.4时,小车整体性能良好。确定角度环和速度环后,经过调试实现小车上电后在无外力作用下自主平衡,并且在遇到一定外力作用时,小车能抗干扰,迅速回到稳定平衡状态。5 结语本文设计以STM32为主控制器, 以MPU-6050和霍尔编码器为数据采集模块,结合卡尔曼滤波算法与PID算法对姿态数据进行处理,系统

23、上电后按下启动按钮,可实现小车在无外力作用下自主平衡。通过蓝牙连接手机APP后,可在手机端控制小车前进、后退、转弯等动作。在一定范围内的外力干扰下,小车能维持车体不倒且在短时间内恢复到平衡状态。通过对平衡小车的研究,为进一步学习倒立摆及对更复杂的控制系统(如四轴飞行器)研究打下了坚实基础。参考文献:1 季鹏飞. ;基于STM32的两轮自平衡小车控制系统设计J. 电子科技,2014,27(11):96-105.2 王素青,熊维堂. ;基于STM32的两轮自平衡小车系统设计J. 实验室研究与探索,2016,35(5):146,150.3 李满. ;基于积分分离PID 控制的自平衡车设计J. 武汉交

24、通职业学院学报,2016,18(2):82-86.4 韩竺秦,张丽娜. 两轮平衡机器人控制系统设计与仿真研究J. 软件导刊,2019,18(3):86-90.5 陈木桂,张谦,黄睿,等. ;一种光电平衡智能车设计J. 教育教学论坛,2019(39):76-80.6 束方耀,戴丽华,邹壮志,等. 声控自平衡小车的设计与研究J. 电子制作,2018(17):17-18,16.7 HOU Z Y. Design of intelligent balancing vehicle control system based on arduinoJ. International Journal of Pla

25、nt Engineering and Management,2018,23(3):164-167.8 李澍源,冯奇杰,兰家祥,等. 基于超声波测距式的自平衡车控制系统J. 内燃机与配件,2017(2):9-11.9 王宇坤,陈沃源. 基于PI控制器的两轮平衡小车设计J. 信息记录材料,2018,19(7):215-216.10 徐猛. 基于STM32自平衡小车的设计与制作J. 计算机产品与流通,2019(9):110.11 熊跃军,史明政,林金勇,等. 一种两轮自平衡小车的设计与实现J. 长沙大学学报,2016,30(2):39-42.12 李详鹏,陈春,周子文,等. 基于MEMS传感器的两轮平衡小车设计J. 科技创新与应用,2019(22):27-29.13 杨柳. 两轮自平衡小车控制系统探讨与分析J. 中国新通信,2018,20(19):152-152.14 林伟捷,黄唯佳,蔡剑卿. 基于四元数互补滤波和PID控制算法的两轮自平衡车系统设计J. 软件导刊,2016,15(6):80-82.(责任编辑:江 艳)

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2