版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2016 的日常生活中也作为代步工具被越来越多的人群接受。本设计采用了基于ARMCORTEX-M3STM32单片机,使平衡车姿态调整速度更快,数据处理更准确,关键词:平衡车;MPU6050;STM32;PIDMoreandmorepeoplehavepaidattentiontoTheTwo-wheeledSelf-balancingRobotduetoitsuniqueflexibilityandconvenience.Peoplehadacceptitastransportinpeople'sdailylife.ThisstudyisjustbasedonthepurposeofexploretheTheTwo-wheeledSelf-balancingRobot.ThisdesignbasesonSTM32microcontrollerwhichbasedontheCORTEX-M3ARMcore.becauseofthat,therobotadjustfaster,dataprocessingmoreaccurate,performancebetter.Atthesametime,wedirectlyusingtheworld'sfirst9axismotionprocessingsensorMPU-6050insteadofthegyroandaccelerationmetersensorstogetthecar'sattitudeinformation.tocalculatetheangleThroughtheDMP.Andtoachievethecar'suprightbalancewalkingthroughthePIDcontrol.UsingBluetoothmoduletoachievecommunicationwiththecar.TheDesignedwillachievethebalanceofthecarstand,forward,backwardfunction.Toachievethebalanceofthecaruprightwalking,infact,istotimelycontrolofthemotor,electricmotorisanelectricmachineconversiondevicewhichthroughallareasofthenationaleconomyandpeople'sdailylife,sotheperfectcontrolofthemotorismoreimportantandisoneofthemainobjectivesofthisdesign.stm32f10xserieschipisnew32-bitembeddedmicroprocessor,ithasexcellentperformance,goodportabilityandimprovetheefficiencyoftheDCmotorcontrol,andwehavemodularthelsystem,whichwillbeconducivetothebalanceofthecarafterthefunctionexpansion.KeyWord:Self-balancing PID 绪 平衡车总体设计方 系统平衡原理分 系统整体设 系统硬件电路设 系统硬件选 最小系统设 姿态检测电路设 电源稳压模 电机驱动模块设 系统软件部分设 软件系统总体结 单片机初始 姿态检测系统软件设 MPU6050姿态获取方 卡尔曼滤波算 平衡PID控制软件实 直立环PD控 速度环PI控 系统调 角度矫 卡尔曼滤波调 PID参数的整 PD控制调 PI控制调 结 致 附录 程 附录 电路 参考文 中原工学院信息商务学院毕业设计(论文中原工学院信息商务学院毕业设计(论文PAGEPAGE1 最开始,瑞士研制了用DSPFPGA控制的基于倒立摆理论的双轮车,通过倾斜传感器和倾角传感器来检测车体,通过电机上的编码盘检测电机的速度。该设计采用了基于状态反馈的线性控制策略,车的运动被分解成直线和旋转运动,然后分析直线运动和旋转运动,得到电机需要的控制量,最终把控制量耦合叠加。其主要的设计思想是:使车子朝车体倾斜的方向运动来保持车身的平衡,该控制只能让小Segway53个传感器就够了,其他的两个传感器只是增加安全性。传感器采集到的数据发送给集成有许多处理器的电路板。这个集群是为了保证载人平衡车在其中任何一个处理器出现问题时能报告错误,保证了平衡车的安全性。它的设计是针对民用代步设计ADXL202及反射式红外线距离传感器来获得姿态信息的设计[1]PWMSway的数据交换和平衡直立控制。2-1θθ2-1时候,就要写出小车的运动方程[4]2-2
(2-Ldt
at 在角度θ很 时,运动方程简化为
(2-Ldt
a
Laat
Ldt
θl(2-2-2图2- 硬件结构STM32STM32STM32与预先设定车身平衡数据进行比较,计算出小车需要调整的余量,转化成PWM[5]控芯片STM32。重复这样一个过程,完成车模的直立平衡控制、直立运动控制[6],依姿态传感器选型:InvenSenseMPU-6050滤波器、自带的可扩展的数字运动处理器DMP。并且,InvenSense提供了一个MPU6050的嵌入式运动驱动库,结合MPU6050DMP元数输出,而得到四元数之后,就可以很方便的计算出欧拉角,从而得到yaw,roll,pitchDMPMPU-6050测量也很精确。MPU6050[8]。如果选用多9传感器可以把处理后的姿态角等信息用串口形式[9]发送。我们想要得到的是小车的俯仰角。要想得到车体的俯仰角,只需利用原始数据,进行姿态融合解算即可。电机选型:因为平衡车要进行速度控制的话还需要有编码器,为了减免不必要的工作量,并切保证质量,我们应尽量选取带有编码器的直流有刷电机。本设计采25GA20E2607~13V,越高的1326010405V,集成了上拉电阻和比较整形功能,可以直接输出方波。电机配有金属减速500rpm(转每分)。外形小巧,使用方便。电机驱动选型:TB6612FNGL298NPWM6TB6612FNG的微型金属减速马达控制器,当然也可用于控制一个双极步进电机。基于MOSFETHPWM100KhzTB6612L298N,效率mpu6050,25GA,TB6612,STM32C8T6LM2596:3.3V、5V、12V(-ADJ)等多个电压档次产品。它的输出1VAMS1117AMS11171.3V,随着负载电流的降低,电压差也慢慢变小。中原工学院信息商务学院毕业设计(论文中原工学院信息商务学院毕业设计(论文STM32[11]8M10PF3-13-1本设计选用的MPU6050有以下几点理由,在获取角度和加速度的同时,因为MPU6050DMP12]MPU6050977中原工学院信息商务学院毕业设计(论文中原工学院信息商务学院毕业设计(论文3-2MPU60503-2,Pin10C19,用于校准滤波;Pin1310KPB10;INTPB3专门设计了电压模块[13]为本系统所设计的各个模块提供电源。TB66123-312VSTM323.3VASM1117-3.3V3-3。 8中原工学院信息商务学院毕业设计(论文中原工学院信息商务学院毕业设计(论文TB6612L298NTB66121A。AINl/AIN2、BIN1/BIN2是控制信号输入端,其中AINl/AIN2、BIN1/BIN212V,VCC3-43-43-13-1 0后前外部中断串口初始化、PWM 0 0 0
中原工学院信息商务学院毕业设计(论文中原工学院信息商务学院毕业设计(论文4-1前面的部分主要介绍了整个小车系统的设计思想,硬件电路原理,接下来介绍4-1PWM化,在获取车身姿态数据,经过卡尔曼[14]融合算法,PID控制完成小车直立速度控4-28MHzSTM3272MHzSTM32APB1APB2,36MHz、72MHz。整个初始化步骤是:首先软件设I/OI2C4-2ADC、定时器、DMAGPIOMPU6050MPU6050MPU6050DMP,就不再需要考虑复杂的滤波算法,我们就可以直接得到Read_DMP(Accel表示。I2CMPU6050DMPq30QXpitchasin2q1q32q0q2
(3-(3-x0、1、2、33-2pitchRollYawMPU6050中陀螺仪部分:陀螺仪模块可以实时记录小车摆动时的角速度GyroAccelGyroPIDMPU60504-3我们知道仅仅依靠姿态传感器诸如陀螺仪和加速度传感器,我们就已经能获得校车的姿态信息,但是为什么还要卡尔曼滤波,其原因是在我们只是通过硬件提供的信息的话很难达到所需要的精度,硬件上的工艺水平是有限的,长时间下来,误我们引入了卡尔曼滤波,从软件算法的角度来优化车子的准确性能。卡尔曼滤波器包括过去、现在、甚至是下一步的状态信息,针对本设计而言,本设计所使用的惯性器件卡尔曼滤波将更合适。voidKalman_Filter(floatAccel,floatGyro)的入口参AngleAngle_dot[15]。Angle+=K_0*Angle_err;Angle_dot=Gyro-Q_bias;设置卡尔曼滤波参数如Q_angle0.01;Q_gyro0.01;R_angle0.005;charC_0为1;Q_bias,Angle_err;floatPCt_0,PCt_1,E;floatK_0,K_1,t_0,t_1;floatPdot[4]floatPP[2][2]={{1,0},{0,1}kalmandtPID这里首先形象的分别说明一下P、I、D控制的区别,以利于我们建立起感性认作用。DPDPDPPI控制就已经能满足要求,但是如果需要我们干扰迅速响应的D微分控制。intbalance(floatAngle,floatGyro)BiasBias=Angle-0。PWMkpPkdDpwmpwm:Balance。PI平衡小车速度环使用PI控制[16],既比例积分控制,速度控制使用频率最高的PIPIPI控制函数。velocity(encoder_left,intencoder_rightif(1==Flag_Qian)Movement=-90;1位移为负elseif(1==Flag_Hou)Movement=90;1elseMovement=0;Encoder_Least=(Encoder_Left+Encoder_Right)-Encoder*=EncoderEncoder_Least*0.3;Encoder_Integral+=Encoder;Encoder_Integral=Encoder_Integral-Movement;//接收遥控器数据,控制前if(Encoder_Integral>10000)Encoder_Integral=10000;if(Encoder_Integral<-10000)Encoder_Integral=-10000;度PIPWM。WIFI、红外线控if(USART2_RX_STA&0X8000)LED=!LED;reclenUSART2_RX_STA&0X7FFF;USART2_RX_BUF[reclen]=0;看是否正常,为了保证陀螺仪输出信号的准确性,需保持陀螺仪模块电路的偏置电0°、4590°,点必然又是卡尔曼滤波。为了方便调试,小车经串口[18]PCPIDPD0°kp(kd=0)。如果给定值之后,小车往哪边倒,电机kp极性反了。Pkd(kp=0)当我们旋转小车的时候,车轮会同向以相同的速kd的极性是正的。确定参数的原则是:kd一直增加,直到出现高频抖动。PDPIkp最大值=7200/(160*50%)=90。kp,kikp=80,ki=kp/200时,PI一方面可以改进成更为简洁方便的控制方式,诸如体感控制而不在采用手机端STM32控芯片本身就带有引脚服用功能,数据处理能力迅速,应该充分的利用这些资源,使平衡车实现更多的功能,诸如转弯,遇到障碍自动停止,这部分自然要加装类似对论文的理解还不够透彻,之后再有机会做相关设计时,肯定能实现更加人性化,智能化的平衡车。可想而知这边年来的成绩的取得肯定离不开老师、各位同学的同学的热情指导和帮助。第一个要感谢的是学校校提供各位的一个良好的优美的学习环境,而且还要感谢学院对我在进行毕业设计相关工作的整个过程中最初的精心的合理的安排,对于我的指导老师姜宏伟老师我要表达出我最真诚的谢意,姜老师在我们毕业设计的整个过程中不厌其烦的每周为大家作出指导,自始至终都不断地督促鼓励我们,在此同时,我还要感谢同班同学给于我的不管是在论文设计上的真诚指点还是在我遇到困难是鼓励,以及其他的各位前辈,各位认识不认识的同行朋友,发烧友的帮助,最终我度过了紧张而又充实的几个月。在这几个月中,不仅让我收获了能力和知识,也更让我也深刻感受到了师生情和友情的美好,这段珍贵的时光将成为不可忘记的回忆,我自然会以此鼓励自己继续努力前行。附录 程#include"stm32f10x.h"#include"bsp_SysTick.h"#include"bsp_usart1.h"#include"bsp_mpu6050.h"#include"bsp_key.h"#include"bsp_pwm.h"#include"bsp_motor.h"#include"bsp_12864.h"//#includevoidDelay(IOuint32_tVoidKalman_Filter(floatAccel,floatGyro);voidPWM_Calcu(void);void//Y//Xuint8_tvalue; //PWM PWM PWMfloat PWM//PIDstaticfloat =205; //185staticfloat =22; voidKalman_Filter(floatAccel,float{Angle+=(Gyro-Q_bias)*dt;Pdot[0]=Q_anglePP[0][1]PP[1][0];PkPdot[1]=-Pdot[2]=-*dt;//Pk*dt;**Angle_errAccelAngle;//zk-先验估计PCt_0=C_0*PP[0][0];PCt_1=C_0*E=R_angle+C_0*PCt_0;K_0=PCt_0/E;K_1=PCt_1/E;t_0=PCt_0;t_1=C_0*-*t_0;-*-*-*Angle+=K_0*Angle_err;//后验估计Q_bias+=K_1*Angle_err;Angle_dot=Gyro-Q_bias;}PDintbalance(floatAngle,float{floatBias,kp=300,kd=1;intbalance;Bias=Angle-0;//计算直立偏差balance=kp*Bias+Gyro*kd;PWMreturnbalance;PWM}PIintvelocity(intencoder_left,int{staticfloatVelocity,Encoder_Least,Encoder,Movement;staticfloatEncoder_Integral;floatif(1==Flag_Qian)Movement=-90;1elseif(1==Flag_Hou)Movement=90;1位移为正elseEncoder_Least=(Encoder_Left+Enc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 6.2 夫妻地位平等 课件-2025-2026学年高中政治统编版选择性必修二法律与生活
- 公司员工培训的
- 江苏省苏州市新草桥中学2026届数学高二上期末达标检测模拟试题含解析
- 2026届安徽省肥东县高级中学高二上生物期末含解析
- 2026届广西钦州市钦南区钦州港中学高二生物第一学期期末调研模拟试题含解析
- 河南省永州市新田县第一中学2026届数学高三上期末达标检测模拟试题含解析
- 2026届辽宁省四校高二上数学期末教学质量检测模拟试题含解析
- 四川省资阳市安岳县石羊中学2026届高二上生物期末经典试题含解析
- 2026届江西省赣州市信丰县信丰中学高一生物第一学期期末教学质量检测试题含解析
- 船形乌头在抗感染性疾病中的作用-洞察及研究
- 2025年GMAT逻辑推理解析试题
- 2025-2026学年苏教版(2024)小学数学二年级上册(全册)教学设计(附目录P226)
- 2025-2030电子特气行业纯度标准升级对晶圆制造良率影响深度分析报告
- 除夕年夜饭作文600字9篇范文
- 国企公房管理办法
- 公共政策概论-004-国开机考复习资料
- 空调售后维修管理制度
- 建筑装饰装修施工图设计说明
- 2025年河北石家庄印钞有限公司招聘13人笔试参考题库附带答案详解
- 《幼儿园保育教育质量评估指南》解读与培训
- DB37T 4839-2025电化学储能电站验收规范
评论
0/150
提交评论