版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于STM32单片机的两轮小车自平衡控制系统设计摘要本设计是对本质不稳定的两轮小车自平衡控制问题的研究,拟设计一种两轮自平衡的小车系统,并且实现蓝牙控制小车运动。该系统装置大致可分成步进电机电路、姿态解算电路、蓝牙控制电路三个电路。步进电机电路运用A4988驱动模块实现对HJ-42混合式步进电机的驱动;姿态解算电路融合了四元互补滤波算法和PID(ProportionIntegralDifferential)算法,在MPU6050六轴陀螺仪实时获取系统的姿态信息的基础上进行算法控制,以实现小车的直立平衡;蓝牙控制电路运用SPP-CA蓝牙模块,实现对小车的简单运动控制。本设计的其余电路还包括电源电路、8M晶振电路、电池电压采集电路等。本次设计是以STM32单片机为核心,结合相关算法、硬件外设等使本质不平衡的小车系统实现直立平衡,并由蓝牙控制其运动。该设计能胜任在一些狭窄、有大转角等工作场合的执行任务,有望日后在军用和民用领域大量运用。本设计的实现具有多方面的优势,主要有:功耗较低,反应速度较快,控制简便,运动灵活等。关键字:二轮自平衡车;STM32F103C8T6;MPU6050;PID算法;目录1.TOC\o"1-3"\h\u17873引言 -1-1.引言随着生活水平的提高、医疗技术的提升,世界人口数量屡创新高。而由于飞机、高铁等交通工具的发展,全球范围内的人员流动更加频繁、世界各国的物理界限被抹平,各类突发事件更容易在世界范围内蔓延,而二轮自平衡小车的设计就能很好适应各类重大风险的要求。同时,随着科技水平的不断提升,科学技术是第一生产力的观念也更加深入人心,全世界各国的科学家们都在不断地朝着科学技术的广度和深度探索。此时,能在一些狭窄、大转角的工作场合行动自如的二轮自平衡车,逐渐引起了各国科研工作者的关注,逐渐走进了大众的视野。为了在一些人力无法到达的极端狭窄、大转角的工作场合,实现救灾时的人员搜救、必要的安全排查等要求,体积小但灵敏便捷的二轮自平衡车应运而生,发展势头迅猛。就目前而言,单片机成本低廉、功能强大,PID算法、互补滤波算法等各类算法已发展成熟,适配单片机的各类型硬件拆装方便。因此,结合了单片机技术与各类复杂算法、硬件装置的二轮自平衡车很有可能是未来平衡机器人的发展趋势。将二轮自平衡车应用于救灾搜救、安全排查等警用、军用工作场合,既降低人力成本、缓解劳动力短缺的现状,又激发了平衡车行业的前景、优化了平衡车行业的生态。此外,基于单片机的二轮自平衡车还具有功耗低、精度高、反应速度快、控制简单方便等不可替代的优势,在未来有望成为造福大众的代步工具乃至娱乐工具,值得进一步的研究与开发。2.概述2.1研究的背景和意义随着研究的进一步深入,移动机器人需要适应的环境越来越复杂,需要执行的任务难度也越来越高,移动机器人技术不改革创新的话,将难以满足现代经济、政治、生活的各方各面的需求。尤其是遇到狭窄、大转角的工作地点时,传统的人力搜救难以到达、传统的器械探寻总会遭遇死角,那么为了使二轮自平衡小车在各类错综复杂的环境中快速有效的执行任务,需要我们继续努力。两轮自平衡小车是一种具有多变量、非线性、强耦合等等特点的移动机器人,各种控制方法可以通过该系统得到检验,而高度不稳定是其本质特征。此外,它还有很多优势,例如体积小、运动灵活、零转弯半径等,未来将会在警用、军用以及企业。那么,随着技术的进步以及行业的不断成熟,二轮自平衡车很大概率会进入民用领域,成为大众的代步工具乃至娱乐工具指日可待。2.2国内外研究的现状与发展趋势最早开始对自平衡车研究的是日本电气通信大学的KazuoYamafuji教授,他采用DSP(DigitalSignalProcess)处理器研究制造的移动机器人,是两轮自平衡车的雏形,更是自平衡车这一概念商业化、产品化,并逐渐形成完成的产业链的开端。但是教授所设计的平衡车在重心和行驶方向等方面也存在不足。但是当时多学科交叉融合的科研趋势尚不明朗,技术相对落后,所以自平衡车系统所能够实现的功能相对比较粗糙,但是经过了半个多世纪的发展,二轮自平衡车的发展己经从量的积累飞跃至质的突破。虽然我国从前的科学技术不够发达,对于平衡车的研究起步比较晚。但自改革开放以来,我国对科技创新越来越重视,“科技强国”战略等一系列政策、举措,都在推动着我国在科技领域勇往直前、奋起直追,在科技创新的各领域不断实现由追赶向并跑,甚至某些领域引领科技前沿的重大突破。自上世纪70年代起,我国有计划的从国外引进有关智能机器人的技术,在摸索中实现新的突破,由此我国的平衡机器人技术不断实现重大突破。近些年,我国国内科技水平不断提高,科研氛围不断浓郁,我国的科研工作者赓续奋斗,突破自我勇于改革创新,实现了突破性进展,所设计出的产品性能得到进一步优化,体验性更加优越,更具人性化,深受市场欢迎,甚至实现了自平衡车的产业化、商业化,助力行业的发展。自平衡车的功能更是包罗万千,涉及代步、娱乐、竞赛等诸多领域。同时,我国的自平衡车品牌在国际自平衡车市场的市场占有率也很高,新世纪i-ROBOT,骑客CHIC等品牌就十分具有代表性。图STYLEREF1\s2-SEQ图\*ARABIC\s11iROBOT实物图3.总体设计3.1总体结构设计本设计为基于单片机的二轮小车自平衡系统,实现本质不平衡的二轮小车的直立平衡与蓝牙控制运动。本设计由MPU6050六轴加速度计获取小车的实时姿态信息,通过PID算法与四元互补滤波算法相融合的算法计算,实现小车的直立平衡;通过SPP-CA蓝牙模块实现用蓝牙控制小车的运动。经过多次调试,尽可能达到直立平衡更稳定、蓝牙控制反应更灵敏的状态。此外,电机驱动电路采用A4988驱动模块来驱动42步进电机。该系统具有功耗低、反应快、控制简单灵敏的优势,能够在一些狭窄、有大转角等工作场合的执行任务,用作警用、军用装置。相信在不久的将来,有效降低成本、提升技术后,能推广至民用领域,发展成代步工具、娱乐产品等。本毕业设计的系统结构如图所示。图3–1总体系统结构图3.2电机驱动控制本毕业设计目的是制作一款能控制运动的平衡小车,因此需要电机的驱动。在这里选择两个HJ-42混合式步进电机,并运用A4988驱动模块分别驱动左右电机,为小车的左右两个轮子提供动力,驱使其运动。3.3直立平衡控制控制小车平衡就与让一个直木棒在手指尖上保持直立的原理一致。通过手掌的前后左右移动来抵消木棒的倾斜角度和趋势,从而使木棒保持直立平衡。这个过程实际上就是控制中的负反馈控制。图3–SEQ图\*ARABIC\s32木棒控制原理图保持小车的平衡相比于保持木棒平衡要简单些,只需控制其在一维空间上的平衡即可,也就是小车只需沿着轮胎方向前后移动保持直立平衡。图3–SEQ图\*ARABIC\s33小车平衡的三种状态因此,使本质不平衡的小车保持直立平衡,一方面需要收集小车的实时姿态信息,包括角度变化与速度变化,另一方面控制小车的运动来抵消小车的角度和速度变化。本设计运用MPU6050实时采集获取小车的姿态信息,通过四元互补滤波算法与PID算法进行处理运算,进而控制小车运动。图3–SEQ图\*ARABIC\s34平衡小车直立平衡原理图3.4蓝牙控制基于SPP协议实现小车与SPP-CA蓝牙模块进行通信。通过串口(Tx、Rx)通信收发AT指令实现运用蓝牙简单控制小车的运动。3.5研究技术关键(1)MPU6050实时采集获取系统的姿态信息。(2)互补滤波与PID算法实现对所采集姿态信息的处理、运算。(3)A4988电机驱动模块驱动42步进电机。(4)蓝牙模块控制小车运动。3.6主要技术指标(1)在没有外力干预的情况下,本质不平衡的二轮自平衡小车能实现直立平衡。(2)通过蓝牙能控制小车的简单前后左右运动。4.硬件设计4.1单片机电路单片机具有微型计算机的属性,是由一片半导体硅片集成了中央处理单元(CPU)、存储器(RAM、RAM)、GPIO、定时器、中断系统、系统时钟电路及系统总线。单片机的发展已经历经三十余年,单片机相关技术也实现了多次突破性进展。对单片机的需求越来越大源自于智能化的产品越来越多。目前用于智能系统开发的单片机种类繁多,如STM、STC等,它们的操作位数、运算速度及内部资源各有不同,需要根据不同的需求选择不同型号的单片机并加以设计。STM32属于一个微控制器,适用于控制类,自带了各种常用通信接口,可接非常多的传感器,可以控制很多的设备。现实生活中,我们接触到的很多电器产品都有STM32的身影,比如智能手环、微型四轴飞行器、移动POS机、3D打印机等等。故本次设计拟选择STM32F103系列单片机。STM32单片机具有ARM内核、运算速度高、函数代码易移植、内部资源丰富,还具备自带的AD转换器,功能相对于51单片机来说更加强大,满足设计后续的接口、功耗等方面的需求,因此更加适合于本次设计。本设计选择的单片机型号是STM32F103C8T6,是一款基于ARMCortex-M3内核的32位的微控制器,采用LQFP48封装,2个12bitADC合计12路通道,37个通用I/O口,4个16bit定时器,2*IIC,2*SPI,3*USART,1*CAN,工作电压2V~3.6V,工作温度为-40°C~85°C,系统时钟最高可到72MHz。图4–1STM32F103C8T6管脚图4.2电源电路本设计主要采用了3.3V电压作为电源进行供电为了保证电源电压的稳定,两者都需要进行电容滤波。其中,3.3V电源电压由AMS1117-3.3芯片产生。3.3V电源电路图如下:图4–23.3V电源电路图4.3步进电机电路4.3.1步进电机及其驱动器的选择本毕业设计的研究对象是平衡小车,需要利用电机驱动。电机常用的有直流电机、舵机、步进电机三类,三者原理、功能不尽相同,本设计拟选择HJ-42混合式步进电机与A4988驱动模块。42步进电机具有力矩大、自感电抗小、供电足、响应快等优势,额定电流、电压等参数符合此次设计的要求,因此选择42步进电机。图4–342步进电机实物图A4988驱动模块输出阻抗低、功耗低、操作简单、价格实惠,可调节驱动模式,具有可选择的自动电流衰减模式,混合和慢速电流衰减模式,模块上还有一个电位器,便于调节输出电流。输出电压:Vref=Imax*Rcs*8输出电流:Iref=Vref*2尤其是在3D打印以及数控机床领域,A4988十分常见。这里选择的是16细分的A4988模块,控制时更准确、更安静。通过A4988控制步进电机时,还需要额外的电解电容以保护A4988控制板。注意在A4988模块上安装一个散热片来保证必要的散热,增大可通过的额定电流。图4–4A4988引脚说明图4.3.2步进电机驱动原理驱动模块是介于驱动器与电机之间的一个模块,通过控制器控制驱动板间接控制电机,本设计选择A4988驱动模块来控制42步进电机。此驱动过程需要额外的电解电容以保护A4988控制板。并且模块上安装一个散热片来保证必要的散热,使最大通过电流由1A增大至2A。通过MS1、MS2、MS3三个引脚调节A4988驱动模块的驱动模式为全、半、1/4、1/8及1/16步进模式,本设计选择十六细分,三个引脚全部上拉。通过A4988驱动模块的引脚控制电机的步数与方向,STEP引脚为步数控制,控制电机的转动速度、角度大小,接受控制器发来的脉冲信号,一次脉冲走一步(半步进就走半步,以此类推),通过控制脉冲的次数来控制电机的转动角度,脉冲间距越短,转速就越快。转动角度=脉冲数*一步角度*步进模式参数DIR引脚为方向控制,低电平顺时针方向转动,高电平逆时针方向转动。图4–5步进电机电路图4.4姿态解算电路4.4.1MPU6050模块的选择本设计需要捕获小车实时的姿态信息,控制系统的角度,以实现小车的自平衡。为求姿态信息的完整,需获取小车的角速度以及加速度。已知陀螺仪能输出被测系统在某一方向上的角速度,通过对速率的积分处理得到系统的角度变化,但是陀螺仪极易被外界噪声、温度等因素所干扰,后者甚至会引起温漂,从而产生较大的误差。加速度计可以测量物体运动或者地球引力产生的加速度,然而,当系统以加速度运动时,该加速度就会在z轴方向产生一个分量,这个分量会叠加到重力加速度的分量上,进而也产生较大的误差。综上,单独使用陀螺仪和加速度计都会对结果产生较大误差,此时拟选择MPU6050陀螺仪。MPU6050免除了组合陀螺仪与加速器时之轴间差的问题,也减少了安装空间。其内部整合了3轴陀螺仪和3轴加速度传感器,并且含有一个第二IIC接口,可用于连接外部磁力传感器,并自带的数字运动处理器DMP(DigitalMotionProcessor),可利用其硬件加速引擎,同时通过主IIC接口,向应用端输出完整的9轴融合演算数据。以便更好更方便更精确地实现姿态解算,从而进一步降低了误差,提高了设计的精度。图4–6MPU6050基本特性图4–7MPU6050模块实物图4.4.2四元互补滤波算法MPU6050陀螺仪由于制作工艺与栖见特性等原因,容易受到如振动、电磁干扰、温度变化等各种外界因素的影响,导致原始数据不稳定、出现偏差等问题。如果不进行及时的过滤误差,会使得输出的小车实时姿态信息混乱,可信度降低。而互补滤波算法可以有效处理惯性器件的高低频误差,提高系统的精度与可信度,并且互补滤波器的设计结构简单、计算量小,实际运用中十分实用。图4–8四元互补滤波算法流程图4.4.3PID算法PID调节器出现于上世纪30年代,对偏差进行比例、积分、微分的控制。具有算法简单、稳定性好、工作可靠、调整方便等优势,只要设置不同的PID参数,就能适用于温度、压力、流量、液位等几乎所有现场,且只要参数设置合理就能达到良好效果,精度可达0.1%,甚至更高。当被控对象的结构和参数具有较大的不可控性,或得不到精确的数学模型时,控制理论的其它技术难以采用时,结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。 PID由三个单元组成,分别为比例(P)单元、积分(I)单元、微分(D)单元。但在实际应用中,并不是每次应用都需要三个单元同时使用,可以单独使用一个单元(微分单元不能单独使用),也可以两两灵活组合使用。比例(P)控制可快速、及时、按比例调节偏差,提高控制灵敏度,但有静差,控制精度低。积分(I)控制能消除偏差,提高控制精度、改善稳态性能,但易引起震荡,造成超调。微分(D)控制是一种超前控制,能调节系统速度、减小超调量、提高稳定性,但其时间常数过大会引入干扰、系统冲击大,过小则调节周期长、效果不显著。比例、积分、微分控制相互配合,合理选择PID调节器的参数,即比例系数KP、积分时间常数i和微分时间常数D,可迅速、准确、平稳的消除偏差,达到良好的控制效果。位置闭环控制是根据编码器的脉冲累加测量电机的位置信息,并与目标值进行比较,得到控制偏差,通过对偏差的比例、积分、微分进行控制,使偏差趋近于零的过程。位置式离散PID公式:速度闭环控制就是根据单位时间获取的脉冲数测量电机的速度信息,并与目标值进行比较,得到控制偏差,然后通过对偏差的比例、积分、微分进行控制,使偏差趋向于零的过程。位置式离散PID公式:4.5蓝牙控制电路4.5.1SPP-CA蓝牙模块的选择SPP-CA蓝牙模块是专为智能无线数据传输而打造,遵循V2.1+EDR蓝牙规范支持UART接口、SPP(SerialPortProfile)蓝牙串口协议,具有成本低、体积小、功耗低、收发灵敏性高等优点,只需配备少许的外围元件就能实现其强大功能。图4–9SPP-CA蓝牙模块实物图4.5.2串口通信的实现可以通过串口与SPP-CA芯片实现通信,串口使用Tx,Rx两根信号线,波特率支持1200,2400,4800,9600,14400,19200,38400,57600,115200,230400,460800,921600bps。SPP-CA蓝牙串口模块指令为Command指令集。利用AT指令实现测试、复位、查询、设置等功能。5.软件设计5.1总体设计本设计所涉及的软件部分比较多,以下着重介绍比较重要的几个模块,主要为MPU6050初始化及数据读取模块、互补滤波模块、蓝牙控制模块等模块。本设计的软件设计部分,采用汇编语言和C语言编写为主,运用KeiluVision5编译运行,该编译器操作比较简单、适用性强,支持多种语言,调试功能强大。5.2流程框图图5–SEQ图\*ARABIC\s31程序流程图该设计的主程序基本内容:首先进行初始化,对LED、蓝牙、MPU6050、A4988、电池电压采集电路、用户按键采集电路等各个外部设备进行初始化,初始化完成的标志为小灯闪烁。其次判断是否按下按键,若返回按键值1,则判断按下按键,则进行四元互补滤波与PID数据处理,并且A4988驱动模块驱动电机工作,使小车保持直立平衡。期间更新按键值,若返回按键值0,则停止数据处理与电机驱动。再次,若连接上蓝牙,则由蓝牙控制小车运动,否则继续保持直立平衡。5.3系统程序设计该设计的程序编写可分成以下几个模块:主程序,MPU6050模块程序设计,四元互补滤波模块程序设计、蓝牙模块程序设计等。而在主程序中包括各模块的初始化工作、处理后数据的显示和报警驱动。5.3.1主程序设计主程序包括对LED、蓝牙、MPU6050、A4988、电池电压采集电路、用户按键采集电路等各个外部设备的初始化,小车的平衡控制与蓝牙控制、按键的更新。(1)小车平衡控制与蓝牙控制:#if1 if(run_state==0||S_Roll>50||S_Roll<-50) { if(run_state==1) { run_state=0,LED1=0; } A4988_en(1) } else { crt(); A4988_en(0); } #endif(2)按键的更新:if(Mcount%10==0) { sta=up_key(); if(sta==1) { if(run_state==0) { run_state=1,LED1=1; } else { run_state=0,LED1=0; } } }5.3.2MPU6050模块程序设计本设计需要MPU6050读取小车的实时姿态信息,供后续算法的处理,以保持小车的平衡。该模块主要包括MPU6050初始化以及数据读取两部分。(1)MPU6050初始化:voidmpu6050_init(void){u8data_buf=0;/*iicbypassen*/data_buf=0x02;iic_rw(&data_buf,1,INT_PIN_CFG,MPU6050_ADDR,WRITE);/*iicmasterdisable*/data_buf=0x00;iic_rw(&data_buf,1,USER_CTLR,MPU6050_ADDR,WRITE);/*mpu6050sleepdisable,temperatureen,in8Mosc*/data_buf=0x00;iic_rw(&data_buf,1,PWR_MGMT1,MPU6050_ADDR,WRITE);/*mpu6050nostandbymode*/data_buf=0x00;iic_rw(&data_buf,1,PWR_MGMT2,MPU6050_ADDR,WRITE);/*DLPF*/data_buf=0x06;iic_rw(&data_buf,1,CONFIG,MPU6050_ADDR,WRITE);/*GYRO+-2000°/s*/data_buf=0x18;iic_rw(&data_buf,1,GYRO_CONFIG,MPU6050_ADDR,WRITE);/*ACC+-4g*/data_buf=0x08;iic_rw(&data_buf,1,ACCEL_CONFIG,MPU6050_ADDR,WRITE);}(2)MPU6050数据读取:voidmpu6050_get_data(s16*gx,s16*gy,s16*gz,s16*ax,s16*ay,s16*az,s16*temperature){u8data_buf[14];iic_rw(&data_buf[0],14,MPU6050_BURST_ADDR,MPU6050_ADDR,READ);*ax=data_buf[0]*0x100+data_buf[1];*ay=data_buf[2]*0x100+data_buf[3];*az=data_buf[4]*0x100+data_buf[5];*temperature=data_buf[6]*0x100+data_buf[7];*gx=data_buf[8]*0x100+data_buf[9];*gy=data_buf[10]*0x100+data_buf[11];*gz=data_buf[12]*0x100+data_buf[13];}5.3.3四元互补滤波模块程序设计由于四元互补滤波的概念较难理解,且比较陌生,通过一个系统框图来介绍四元互补滤波的主要流程:图5–2四元互补滤波程序设计流程图(1)定义四元数变量:staticfloatq0=1.0f;staticfloatq1=0.0f;staticfloatq2=0.0f;staticfloatq3=0.0f;(2)把加速度数据进行归一化处理:normalise=invSqrt(acc.x*acc.x+acc.y*acc.y+acc.z*acc.z); acc.x*=normalise; acc.y*=normalise; acc.z*=normalise;(3)使用叉积来计算估算的重力和实际测量的重力之间的误差:ex=(acc.y*veczZ-acc.z*vecyZ);ey=(acc.z*vecxZ-acc.x*veczZ);ez=(acc.x*vecyZ-acc.y*vecxZ);(4)把上述计算得到的重力差进行PI运算,结果累加到陀螺仪的数据中,用于修正陀螺仪数据。如果kp=ki=0,则完全信任陀螺仪数据。/*误差累计,与积分常数相乘*/ exInt+=Ki*ex*dt; eyInt+=Ki*ey*dt; ezInt+=Ki*ez*dt;/*用叉积误差来做PI修正陀螺零偏,即抵消陀螺读数中的偏移量*/ gyro.x+=Kp*ex+exInt; gyro.y+=Kp*ey+eyInt; gyro.z+=Kp*ez+ezInt;(5)把修正过后的陀螺仪数据整合到四元数中:q0Last=q0; q1Last=q1; q2Last=q2; q3Last=q3;/*四元数微分方程*/ q0+=(-q1Last*gyro.x-q2Last*gyro.y-q3Last*gyro.z)*halfT; q1+=(q0Last*gyro.x+q2Last*gyro.z-q3Last*gyro.y)*halfT; q2+=(q0Last*gyro.y-q1Last*gyro.z+q3Last*gyro.x)*halfT; q3+=(q0Last*gyro.z+q1Last*gyro.y-q2Last*gyro.x)*halfT;(6)把上述运算后的四元数进行归一化处理,得到了物体经过旋转后的新的四元数。 normalise=invSqrt(q0*q0+q1*q1+q2*q2+q3*q3); q0*=normalise; q1*=normalise; q2*=normalise; q3*=normalise;5.3.4蓝牙控制模块程序设计经调试,该设计的平衡环up_kp=310.0;速度环speed_kp=1.50,speed_ki=0.001;转向环trun_kp=0.8。蓝牙控制模块程序如下:staticvoidble_crt(charflag){ //蓝牙控制速度和转向的大小 shortspeed=2000; shorttrun=2000; staticu16speed_count=0; switch(flag) { //控制小车停止 case0x30: //停止时,转向和速度均为0 bel_trun=0; bel_speed=0; up_kp=310.0; speed_kp=1.5; if(speed_count<100) { cha1=0; speed_count++; } //一段时间后进入速度i调节 if(speed_count==100) { cha1=0; } break; //控制小车前行 case0x31: cha1=0; //speed_ki=0; speed_count=0; bel_speed=speed; break; //控制小车后退 case0x32: cha1=0; //speed_ki=0; speed_count=0; bel_speed=-speed; break; //控制小车左行 case0x33: // speed_kp=5; bel_trun=trun; //up_kp=110.0; break; //控制小车右行 case0x34: //speed_kp=5; bel_trun=-trun; //up_kp=110.0; break; } }6.制作与调试本次设计涉及MPU6050陀螺仪、SPP-CA蓝牙模块、两块A4988驱动模块等功能外设,电源电路运用了ASM11173.3v芯片,电路中还包括电阻电容、LED灯、晶振、插槽、按键等实现该设计功能所必需的硬件,电路相对比较复杂,对于焊接的工艺要求较高。此外,该设计的MPU6050模块、SPP-CA模块、A4988模块选择使用接插的方式与单片机连接,目的是方便更换,通用性更强。6.1硬件电路的布线与焊接6.1.1总体特点该设计所涉及的各部分硬件电路,总体的特点是:(1)电路原理简单,但是所需功能外设与硬件较多,焊接较为复杂。焊接时应耐心仔细,注意焊接顺序。(2)由于该设计是以小车为载体的,因此需要注意配备合适的轮子与轮塞,电机支架等必备硬件。因此,为了降低焊接难度,布线时要注重合理布线,设计小车的结构应尽量轻便美观。6.1.2焊接焊接前熟悉电路原理图以及芯片的引脚、方向,电容电阻的大小、极性等。准备好焊枪、焊锡丝、镊子、剪刀等焊接用具。焊接时时刻对照原理图,耐心、仔细焊接。注意:(1)为确保各芯片有正确的工作电压,先焊接各芯片的电源线和地线;(2)先焊接贴近电路板板面的芯片、电阻等,在依次从低到高焊接其他硬件,方便操作,更加安全快速。(3)焊接完一个模块后检查一遍,若有错误可以及时调整,否则会酿成更大的错误。图6–SEQ图\*ARABIC\s31焊接实物图6.2调试出于自平衡小车应实现的功能的考虑,除常规调试外,本次调试的重点是A4988电位器的调试与平衡环速度环转向环的调试。6.2.1A4988电位器的调试A4988驱动模块的电位器可以调节输出电流,用以驱动电机。为保证电机运动动力足够,本设计中将其调整至最大。6.2.2小车平衡环和速度环的调试(1)调试平衡环up_kp。注意:在调试平衡环时要屏蔽速度环与转向环。小车的平衡环使用P(比例)控制器,调试平衡环主要需确定平衡小车的机械中值,确定kp的极性与大小。把小车放在水平地面上,绕电机轴旋转小车,记录使小车接近平衡的角度,通常在0°附近;预估up_kp取值范围,观察up_kp处于哪个极性时,小车能产生正反馈,即平衡小车有直立趋势,那么up_kp就处于该极性;在up_kp的相应极性下,反复调试up_kp数值,使小车的自平衡能较快响应。在本设计中,up_kp=310.0时,小车的响应较快,来回用手轻推小车时,小车会大幅度的低频抖动,说明该数值是一个比较合适的数值。(2)调试速度环speed_kp、speed_ki。速度环使用PI(比例积分)控制器,PI控制器是一种线性控制器,根据给定值与实际输出值构成控制偏差,将偏差的比例(P)和积分(I)通过线性组合构成控制量,对被控对象进行控制。根据经验,不同的系统中,speed_kp与speed_ki会存在一定的比例关系,并且速度控制为正反馈。由于速度控制是正反馈,所以速度环极性为正;由于speed_kp与speed_ki会存在一定的比例关系,所以只需确定speed_kp即可,打开平衡环,反复调试speed_kp的值,使得小车保持平衡时,速度接近于0。在本设计中,speed_kp=1.50,speed_ki=0.001时,小车保持平衡的同时,速度接近于0。7.总结本设计完成了任务书的要求,实现了使本质不平衡的小车保持直立平衡,且蓝牙控制运动。结合了MPU6050、SPP-CA蓝牙模块、A4988驱动模块等功能外设,以及四元互补滤波算法和PID算法两类算法,能较好的完成任务。本次设计实现功能如下:(1)拨动按键后,LED1常量,说明电源接通;同时LED0闪烁,提示系统初始化完成。(2)按下按键后,MPU6050模块获取小车实时姿态信息,进行数据处理,A4988模块驱动电机,使小车保持直立平衡。同时,系统随时更新按键信息,若按键状态改变,小车直立平衡功能关闭。(3)蓝牙控制小车简单的前后左右运动。在本次设计中,我对STM32系列单片机又有了一个深入的认识,弥补了我此前的某些知识盲区。在临近毕业时,重温了STM32系列单片机的相关内部资源、引脚数量与功能、库函数的使用等的相关知识,相信对于我日后的就业大有裨益。 在本次设计中,需要运用大量的C语言、汇编语言来编写代码,倒逼我去提升自己的编程能力,使我的专业学习更加全面、完善。在本次设计中,我还掌握了基于单片机的二轮自平衡车的相关原理,一些常用的模块功能与运用,例如MPU6050模块、A4988驱动模块、SPP-CA蓝牙模块,以及一些常用的串口协议,丰富了我的专业知识。在本次设计中,由于全过程主要是由自己独立完成的,在这个过程中我大大的提升了自己自学的能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030智慧医院管理平台发展行业市场发展现状及投资风险评估规划研究分析报告
- 2025-2030智慧医疗行业市场发展分析及投资前景研究分析报告
- 2025-2030智慧区块链金融技术应用项目投资风险评估及融资规划
- 2025-2030智慧农业项目资本增值技术研究及发展策略报告
- 2025-2030智慧农业设备制造行业分析投资规划政策研究讨论报告
- 2025-2030智慧农业行业无人机喷洒技术与其精准农业生产分析报告
- 2025-2030智慧农业行业市场深度调研及投资前景研学报告
- 2025-2030智慧农业系统应用需求与产业化投资配置评估分析报告
- 2025-2030智慧农业种植系统供需动态跟踪分析环境适配投资分析对照表
- 2025-2030智慧农业气象服务系统开发及投资机会
- 4-三氟甲基烟酸及其衍生物的合成研究的开题报告
- GB/T 4339-2008金属材料热膨胀特征参数的测定
- GB/T 36197-2018土壤质量土壤采样技术指南
- 无人机驾驶员航空知识手册培训教材(多旋翼)课件
- 六西格玛改善案例课件
- 标准法兰、阀门螺栓对照表
- 《艺术概论》考试复习题库(附答案)
- Soreha-Biodex-S4-多关节等速肌力测试训练系统课件
- 派车单(标准样本)
- 混凝土膨胀剂检试验报告
- 村卫生室基本公共卫生服务项目绩效考核指标明细表格模板(参照省级标准)
评论
0/150
提交评论