基于STM32的两轮自平衡小车研究
基于STM32双轮自平横车的设计与实现
在实现智能窗户的过程中,我们首先根据硬件设备的设计,编写了相应的程 序。程序中包括了数据采集、数据处理、联动控制等功能。其中,数据采集部分 通过读取传感器的数值来进行;数据处理部分则通过对采集到的数据进行分析, 判断环境因素的变化情况,从而决定是否需要调节窗户的开关状态;联动控制部 分则通过与其他智能设备的通信,实现更加便捷的控制。
电路设计完成后,我们需要通过软件编程来实现车辆的自主平衡和控制。在 STM32单片机上,我们可以使用C语言或者汇编语言进行编程。软件设计主要包括 以下几个环节:数据采集、数据处理、控制算法实现、输出控制等。通过编程, 我们可以将电路系统采集到的数据进行处理,并根据控制算法计算出车辆的平衡 状态,最终实现对车辆的精确控制。
实现
在STM32双轮自平横车的实现过程中,需要完成以下任务:
1、硬件设备的搭建:包括STM32微控制器、传感器、电机等硬件设备的选型 和连接,以及必要的电源、通信等辅助设备的配置。
2、软件程序的调试:包括控制算法的编写和调试、传感器数据的采集和处 理、电机驱动等方面软件的调试。
3、系统整合测试:将所有硬件设备和软件程序整合在一起进行测试,验证 整个系统的稳定性和性能是否达到预期要求。
硬件实现
在硬件方面,本次演示选用STM32F4系列单片机作为主控制器,其具有高性 能、低功耗、丰富的外设接口等优点。此外,我们选择了ESPOS陀螺仪和加速度 计作为传感器,用于实时监测车辆的状态;选用Maxon电机作为驱动电机,通过 PWM调制方式实现电机的无级调速;同时,我们还设计了降压转换器以适应电池 的供电范围。
文献综述
两轮自平衡车的研究始于20世纪90年代,其控制系统通常采用PID控制、模 糊控制、神经网络等算法。然而,由于两轮自平衡车的动态特性复杂,不同情况 下需要不同的控制策略,因此上述算法在实际应用中存在一定的局限性。此外, 现有研究在驱动系统、平衡控制系统和传感系统等方面也存在不足,如驱动系统 效率低下,平衡控制系统不够精准,传感系统可靠性不高。
基于STM32的两轮自平衡小车研究
基于STM32的两轮自平衡小车研究作者:赵磊来源:《数字技术与应用》2017年第01期摘要:本文以STM32单片机为核心控制器,以MPU-6050为姿态读取模块,实现两轮自平衡小车的设计,能够使小车的控制效果得到提高,以电池为电源,设计两轮自平衡小车的硬件和软件设计;用卡尔曼滤波算法作为数据的平衡滤波,用PID算法作为控制算法,提高控制精度,从而设计和实现了小车的自平衡。
关键词:STM32;自平衡;卡尔曼滤波;PID中图分类号:TP273+.4 文献标识码:A 文章编号:1007-9416(2017)01-0035-02微控制器STM32的内核为Cortex-M3,CPU为32位,存储器为SRAM,大小为6-64kB。
以STM32为基础,实现对姿态检验传感器等系统各方面数据的控制,能够使小车的姿态更加合理,控制精度高,控制速度快。
1 基于STM32的两轮自平衡小车的硬件设计基于STM32的两轮自平衡小车的硬件设计包括电源模块、主控制器模块、姿态读取模块与驱动模块四个部分。
1.1 电源模块电源提供是两轮自平衡小车行驶的动力支撑。
本设计以电池作为电源,为小车的行驶提供能量[1]。
小车电机电压须要12V,拟用3节3.6V的锂电池作为电源。
控制器STM32和MPU-6050均需要3.3V电压支撑。
本设计以3节锂电池的12电压进行降压供电。
采用LM2596-3.3设计降压稳压电路。
1.2 主控制器模块主控制器为STM32,是ST公司突出的一款微控制器。
内核为Cortex-M3,CPU为32位,存储器为SRAM,6-64 kB。
其增强型系列处理速度能达到72MHz,具有高性能,低成本等特点。
在上述主控制器的支持下,实现对两轮自平衡小车的控制,使其能够在控制下平衡行驶[2]。
1.3 姿态读取模块姿态读取的目的在于将两轮自平衡小车的姿态控制在合理的范围,保证其在控制下能够平衡行驶。
系统以MPU-6050为姿态读取模块与STM32内的运动处理器程序相结合。
基于STM32F103RCT6两轮自平衡小车设计
第32卷第4期黑㊀龙㊀江㊀工㊀程㊀学㊀院㊀学㊀报V o l 32,N o 42018年8月J o u r n a l o fH e i l o n g j i a n g I n s t i t u t e o fT e c h n o l o g yA u g.,2018D O I :10.19352/j.c n k i .i s s n 1671G4679.2018.04.002基于S TM 32F 103R C T 6两轮自平衡小车设计宣丽萍,李艳丽(黑龙江科技大学电气与控制工程学院,黑龙江哈尔滨150022)摘㊀要:采用P I D 算法㊁卡尔曼滤波算法,实现一个基于S TM 32F 103R C T 6两轮自平衡小车系统.运用M P U 6050模块来获取数据信息,进而弥补加速度计的动态误差以及陀螺仪的漂移误差,获得更精确的倾角值,然后经S TM 32芯片处理输出适当指令,控制电机的运行,并通过蓝牙模块与手机蓝牙A P P 的通信,实现小车循迹.实验表明:小车通信可靠,保持平稳,且能实时控制小车的运动姿态,达到预期目的.关键词:两轮自平衡小车;卡尔曼滤波算法;M P U 6050模块;P I D 算法中图分类号:T P 273㊀㊀㊀文献标识码:A㊀㊀㊀文章编号:1671G4679(2018)04G0006G05D e s i g no f t w o Gw h e e l s e l f Gb a l a n c i n g ca rb a s e d o nS T M 32F 103R C T 6X U A NL i p i n g,L IY a n l i (S c h h o l o fE l e c t r i c a l a n dC o n t r o l E n g i n e e r i n g ,H e i l o n g j i a n g U n i v e r s i t y o f S c i e n c e a n dT e c h n o l o g y,H a r b i n150022,C h i n a )A b s t r a c t :I n t h i s d e s i g n ,t h eP I Da l g o r i t h ma n d c a l m a n f i l t e r a l go r i t h ma r e u s e d t o r e a l i z e a t w ow h e e l s e l f b a l a n c i n g c a r s ys t e m b a s e d o n S T M 32F 103R C T 6.A n M P U 6050m o d u l ei s u s e d t o g e tt h e d a t a i n f o r m a t i o n ,a n dt o m a k eu p f o rt h ea c c e l e r o m e t e rd y n a m i ce r r o ra n d g y r od r i f te r r o r ,t h ea n g l e m o r e a c c u r a t ev a l u e ,a n dt h e nt h e S TM 32c h i p p r o c e s s i n g o u t p u t sa p p r o p r i a t ei n s t r u c t i o n st oc o n t r o lt h e o p e r a t i o no f t h em o t o r ,a n d t h r o u g h t h e c o m m u n i c a t i o nm o d u l e a n d t h eB l u e t o o t hm o b i l e p h o n eB l u e t o o t h A P P ,t h e c a r t r a c k i n g i s c o m p l e t e d .T h ee x pe r i m e n t s h o w s t h a t t h e c o m m u n i c a t i o nof t h e c a r i s r e l i a b l e a n d s t a b l e ,w h i c hc a n c o n t r o l t h em o t i o n p o s t u r e o f t h e c a r i n r e a l t i m e a n d a c h i e v e t h e d e s i r e d p u r p o s e .K e y w o r d s :t w o Gw h e e l s e l f Gb a l a n c i ng c a r ;K a l m a n f i l t e r a l g o r i th m ;M P U 6050m o d u l e ;P I Da l g o ri t h m 收稿日期:2018G03G12基金项目:中国煤炭工业协会科学技术研究指导性计划项目(2014)第一作者简介:宣丽萍(1971-),女,副教授,研究方向:电气工程与智能控制.㊀㊀近年来,两轮自平衡小车的研究㊁发展逐步加快,在很多领域都有应用,同时伴随其执行任务的复杂性,对其适应环境的能力要求逐渐提高.比如,在空间狭窄的地方,交通堵塞的情形,或者弯道较大的场所,就小车如何在较短的时间处理所获取的信息,并执行相应的任务,已成为研究的热点.两轮自平衡小车概念的提出,顺应了日前研究的热点,可很好地解决上述复杂环境下小车的运动,加之无线遥控技术,可远距离控制两轮自平衡小车的运动姿态,未来在军用㊁民用领域有广泛的发展空间.1㊀系统整体方案设计本设计以S T M 32处理器为核心,采用M P U 6050模块获取小车的运动信息,运用K a l m a n滤波算法得到小车的运行数据㊁角度值与角速度值.然后选用P I D 算法得到实时的P WM 波形,达到对小车的控制以保持小车的平衡,通过手机蓝牙A P P 与小车通信,控制小车实现前进㊁左右转㊁后退以及停止等运动姿态.系统的整体设计方案如图1所示.图1㊀小车硬件总体结构2㊀系统硬件设计2 1㊀主控芯片使用S T M32F103R C T6处理器芯片,该芯片以C o r t e xGM3为内核,最高工作频率为72MH z,48K 字节的S R AM,其板载资源有D MA㊁A D C㊁定时器㊁I I C以及U A R T等外围设备,可产生多路P WM用以控制电机.2 2㊀直流电机驱动电路设计电机驱动芯片选用S T公司生产的一种电机,其驱动芯片型号为L298N.主要参数:工作电压的最大值46V,输出电流瞬间峰值3A,持续工作电流2A.拥有2个H桥高电压㊁大电流的桥式驱动器,用以驱动电机;控制使用标准逻辑电平信号;拥有2个控制端,即在没有输入信号干扰的场景下许可或禁止器件运转,有1个逻辑电源输入端,可使逻辑电路在低电压情形运行;也可外接1个测试电阻,将变化量传达到控制电路.其原理如图2所示.图2㊀L298N模块原理2 3㊀电源模块采用三节3 7V大容量电池供电,用以提供电机的驱动电压,电源变换电路采用稳压芯片L M2940把电池组电压稳定在+5V,然后再经稳压芯片AM S1117G3 3把电压稳定在+3 3V.为更好地降低电磁干扰,得到精度更高的数据信息,采用两路+3 3V电源分别给S T M32F103和M P U6050供电,然后把多路输入源各自接地,可达到提高系统稳定性的目的以及抗干扰水平.其原理如图3所示.2 4㊀车体姿态控制模块选用I n v e n S e n s e公司发行的一种6轴运动的整合性器件M P U6050,即3轴陀螺仪传感器以及3轴加速度传感器,能在外围连接磁力传感器,并运用本身的数字运动处理器以及I I C接口,把所测得的模拟量转换为数字量,最终传达至主控芯片,但要获取实际的角度值以及角速度值,仍需一个转换关系,才能得到二者的实际值.为得到更确切的车体倾角值,降低陀螺仪的漂移㊁车体摆动等对小车加速度计的干扰,需要对陀螺仪与加速度计的输出值进行融合,本设计将采用图3㊀电源变换原理K a l m a n滤波算法进行数据融合.该算法属于一类效率很高的递归滤波器,可从一连串复杂的噪声测试中,估算出动态系统的姿态.当小车失去平衡时,该P I D算法就会起作用,处理小车车体的角度与角速度值,产生实时的P WM波形,用以驱动电机来让小车的车体维持平衡,小车姿态平衡控制如图4所示,其中,k d,k p,k s p,k i s为P I D控制器参数.其7第4期㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀宣丽萍,等:基于S TM32F103R C T6两轮自平衡小车设计控制框图如图4所示.图4㊀小车姿态平衡控制2 5㊀蓝牙模块蓝牙无线模块选用的型号为H C G05,选用U A R T 协议,其优点为价格低㊁尺寸小㊁能耗低㊁发送接收灵敏等.H C G05有两种工作模式:自动连接工作模式与命令响应工作模式.前者又分为3个形式:主(M a s t e r )㊁从(S l a v e )㊁回环(L o o p b a c k ).当模块工作在自动连接模式,它能依照预先设置好的步骤进行数据传输,当模块工作在命令响应工作模式,用户能向该模块传送任一A T 指令,为模块设置所需的执行参数或者指令.该模块工作状态的合理切换,取决于其外部引脚的输入电平情况.2 6㊀循迹传感器模块循迹传感器模块可让小车依照预先设置的任意路线运动,该模块工作电压为3~5V ,可发射某一频率的光线,运动过程中会对所走的路线做出反应,若所走的路线为白色,该光线能反射回来且能被该模块获取,然后经该模块处理会产生高电平,若所走线路为黑线,则能吸收该光线不能被该模块获取,此时经该模块处理会产生低电平,所以它能依照所测电平实时调整运动姿态,让小车的两轮产生差速,用以保持预定的路线运行.3㊀系统软件设计该系统软件主要有系统初始化㊁M P U 6050模块信息采集㊁卡尔曼滤波算法㊁P I D 算法以及P WM 的产生等功能函数的设计,其控制流程如图5所示.3 1㊀卡尔曼滤波融合算法K a l m a n 滤波的思路为:利用信号㊁噪声的状态空间模型,以最小均方误差为最优估计准则.根据前一时刻的估算值与此刻的观测值实时替换状态变量的值,得出此刻状态变量的估算值.依据建立的系统方程与观测方程,然后对所需处理的信号,作出适合的最小均方差估计.跟互补滤波比较,该算法处理起来虽复杂,但它有更好的性能.对于大图5㊀系统程序设计流程多数问题的求解,其最优㊁效率又高甚至最有用的特点尽显.所以本设计的数据融合算法选用的是卡尔曼滤波算法.卡尔曼滤波方程如下所示:X (k k -1)=A X (k -1k -1)+BU (k ),(1)P (k k -1)=A P (k -1k -1)+A T+Q ,(2)K g (k )=P (k k -1)H T /(H P (k k -1)H T +R ),(3)X (k k )=X (k k -1)+K g (k )(Z (k )-H X (k k -1)),(4)P (k k )=(I -K g (k )H )A P (k k -1).(5)㊀㊀式(1)为状态预测方程,X (k k -1)为k 时刻的估算值,为2维列向量,系统中X (k k -1)=a n gl e Q -b i a s(a n gl e 为k 时刻倾角的估计值,Q 为k 时刻陀螺仪的位偏差),A 为2维方阵,A =1-d t 01(d t 为采样时间),X (k -1k -1)为k - 8 黑㊀龙㊀江㊀工㊀程㊀学㊀院㊀学㊀报㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀第32卷1时刻的最优估计值,B为2维列向量,B=d t0, U(k)=g y r o(g y r o为陀螺仪k-1时刻测得的角速度值).式(2)为系统的协方差方程,Q为向量a n g l eQ-b i a s的协方差矩阵.式(3)为卡尔曼增益方程,K g(k)为2维列向量,K g(k)=k0k1,H=10,R为角度测量噪声值,程序中定义R-a n g l e=0 5式(4)为状态估计方程,Z(k)=a c c e l为加速度计的角度测量值.式(5)为估计均方误差方差,I=11T.其程序设计如下:v o i dk a l m a n_f i l t e r(f l o a t a n g l e_m,f l o a t g y r o_m,f l o a t∗a nGg l e_f,f l o a t∗a n g l e_d){a n g l e+=(g y r o_mGq_b i a s)∗d t;P d o t[0]=Q_a n g l eGP[0][1]-P[1][0];P d o t[1]=-P[1][1];P d o t[2]=-P[1][1];P d o t[3]=Q-g y r o;P[0][0]+=P d o t[0]∗d t;P[0][1]+=P d o t[1]∗d t;P[1][0]+=P d o t[2]∗d t;P[1][1]+=P d o t[3]∗d t;a n g l e_e r r=a n g l e_mGa n g l e;P C t_0=C_0∗P[0][0];P C t_1=C_0∗P[1][0];㊀E=R_a n g l e+C_0∗P C t_0;㊀K_0=P C t_0/E;㊀K_1=P C t_1/E;㊀t_0=P C t_0;㊀t_1=C_0∗P[0][1];P[0][0]G=K_G0∗t_0;P[0][1]G=K_0∗t_1;P[1][0]G=K_1∗t_0;P[1][1]G=K_1∗t_1;a n g l e+=K_0∗a n g l e_e r r;q_b i a s+=K_1∗a n g l e_e r r;a n g l e_d o t=g y r o_mGq_b i a s;∗a n g l e_f=a n g l e;∗a n g l e_d o t_f=a n g l e_d o t;}3 2㊀电机控制P I D算法在小车电机控制中,本设计选用了控制原理中普遍用到的P I D算法.传感器得到的角度与角速度值的误差值作为其输入,其输出为电机的P WM 占空比的大小.很显然在P I D算法中,系统的稳定与否跟这3个参数有很大关系.由于系统中不可避免地含有计算误差,因此,选用的算法为增量式P I D 算法.针对小车的平衡,可从下述3个环节去调试:直立环㊁速度环㊁转向环.1)直立环程序.本小车直立环采用P D(比例微分)控制器,事实上,大多数控制系统P或者P I控制就能满足要求,但若要对干扰快速作出反应,就要引入D(微分)控制了.以下为本小车直立P D控制的代码:i n t b a l a n c e(f l o a t a n g l e,f l o a t g y r o){f l o a t b i a s,k p=300,k d=1;i n t b a l a n c e;b i a s=a n g l eG0;//计算直立偏差b a l a nc e=k p∗b i a s+g y r o∗k d;//计算直立P WMr e t u r nb a l a n c e;//返回直立P WM}函数的参数为小车的倾角与Y轴陀螺仪,所设定的小车前进方向为M P U6050的X轴正方向,电机轴跟Y轴平行.此时可注意到,小车无任何抖动,很稳定,但不能维持长久的直立,会朝某一个方向快速倾倒,也即仅有直立环让小车保持很好的直立效果有点困难.2)速度环程序.本小车速度环采用P I控制器,一种很常用的线性控制器.能依照给定值与实际输出值组成控制偏差,把偏差的P与I经过线性组合形成控制量,达到对被控对象的控制.以下是其控制的代码:i n t v e l o c i t y(i n t e n c o d e r_l e f t,i n t e n c o d e r_r i g h t) {s t a t i c f l o a tV e l o c i t y,E n c o d e r_L e a s t,E n c o d e r; s t a t i c f l o a tE n c o d e r_I n t e g r a l;f l o a t k p=80,k i=0 4;E n c o d e r_L e a s t=(E n c o d e r_L e f t+E n c o d e r_ R i g h t)G0;E n c o d e r∗=0 7;E n c o d e r+=E n c o d e r_L e a s t∗0 3;E n c o d e r_I n t e g r a l+=E n c o d e r;V e l o c i t y=E n c o d e r∗k p+E n c o d e r_I n t e g r a l ∗k i;r e t u r nV e l o c i t y;}9第4期㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀宣丽萍,等:基于S TM32F103R C T6两轮自平衡小车设计函数的参数为左右轮编码器.上述代码达到的效果为:可让小车保持平衡且速度为0.3)转向环程序.本小车转向环采用P或者P D控制器,上面提到,大多数控制系统P或者P I控制就能满足要求,而转向环就是此类控制系统,要求不太高,因此,选用P控制.在平衡小车里,跟直立环㊁速度环比较起来,转向环显得不那么重要了.它的作用为在小车行驶途中,保持预定的Z轴角速度,换句话说,若设置的Z轴角速度为0,则小车会走直线,这就是本实验要达到的目标之一.以下是其控制的代码:i n t t u r n(i n t e n c o d e r_l e f t,i n t e n c o d e r_r i g h t,f l o a t g y r o){f l o a tT u r n,K p=1,b i a s;b i a s=g y r oG0;T u r n=Gb i a s∗K p;r e t u r nT u r n;}函数的参数为左右轮编码器与Z轴陀螺仪,其中,左右轮编码器在遥控部分才运用到.上述代码达到的效果:协作直立环㊁速度环,让小车保持短距离直线运行.4㊀结束语本设计主要以S TM32为控制芯片来处理小车运行时的各种数据信息.主要由卡尔曼滤波㊁M P U6050模块信息采集以及循迹模块等功能函数构成,围绕主控制程序将各功能函数连接起来,然后组建相应的软硬件平台及调试,测试表明,小车能在复杂的干扰下实现快速调整运行姿态,其最大可控倾斜角达ʃ15ʎ,且能在蓝牙A P P的指令下遥控小车,具有普遍的实用价值及现实意义.参考文献[1]㊀杨莘.基于S TM32的两轮自平衡遥控小车[J].数控技术应用,2014(5).[2]㊀董杰.基于S TM32的智能循迹往返小车设计[J].电子设计工程,2013,12.[3]㊀季鹏飞.基于S TM32的两轮自平衡小车控制系统设计[J].电子科技,2014,27(11):96G105.[4]㊀杨凌霄,李晓阳.基于卡尔曼滤波的两轮自平衡车姿态检测方法[J].计算机仿真,2014,1(6):406G409.[5]㊀武俊峰,孙雷.两轮自平衡机器人的控制方法研究[J].哈尔滨理工大学学报,2014,19(6):22G26.[6]㊀刘二林,姜香菊.基于卡尔曼滤波的两轮自平衡车姿态检测[J].自动化与仪器仪表,2015(2):52G54.[7]㊀王素青,熊维堂.基于S TM32的两轮自平衡小车系统设计[J].实验室研究与探索,2016,35(5):146G150.[8]㊀马思远,鲁庭勇,张丽君.两轮自平衡车运动姿态的测量和控制[J].测控技术,2015,34(4):71G73.[9]㊀张团善,何颖.卡尔曼滤波在两轮自平衡代步车姿态检测中的应用[J].单片机与嵌入式系统应用,2014(5):33G35.[10]蒋纬洋,邓迟,肖晓萍.两轮自平衡小车系统制作研究[J].国外电子测量技术,2012,31(6):76G79.[11]熊跃军,史明政,林金勇,等.一种两轮自平衡小车的设计与实现[J].长沙大学学报,2016,30(2):39G42.[12]郝丽英,宋起超.基于神经网络的移动机器人预瞄轨迹跟踪控制算法研究[J].黑龙江工程学院学报,2017,31(5):37G41.[13]蒋涛.基于卡尔曼滤波的优化GM(1,1)模型在建筑物沉降预测中的应用[J].黑龙江工程学院学报,2016,30(4):7G10.[14]符新新,高俊强,石岩.K a l m a n滤波在G P S非差相位精密单点定位中的应用[J].黑龙江工程学院学报,2015,29(3):6G8.[15]宣丽萍,李朕.基于D S P的开关电源系统优化设计[J].黑龙江工程学院学报,2015,29(2):8G12.[责任编辑:郝丽英]01 黑㊀龙㊀江㊀工㊀程㊀学㊀院㊀学㊀报㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀第32卷。
基于STM32的两轮自平衡小车控制系统设计
基于STM32的两轮自平衡小车控制系统设计本文主要对两轮自平衡小车的姿态检测算法、PID控制算法两方面进行展开研究。
用加速度传感器和陀螺仪传感器融合而成的姿态传感系统与互补滤波器组合得到自平衡小车准确而稳定的姿态信息,然后PID调节器则利用这些姿态信息输出电机控制信号,控制电机的转动,从而使小车得以平衡。
标签:STM32;自平衡小车;控制系统;控制算法1 研究意义应用意义:两轮平衡车是一种新型的交通工具,它与电动自行车和摩托车车轮前后排列方式不同,而是采用两轮并排固定的方式,就像一种两轮平行的机器人一样。
两轮自平衡控制系统是一种两轮左右平行布置的,像传统的倒立摆一样,本身是一个自然不稳定体,必须施加强有力的控制手段才能使之稳定。
两轮平衡车具有运动灵活、智能控制、操作简单、节省能源、绿色环保、转弯半径为0等优点。
因此它适用于在狭小空间内运行,能够在大型购物中心、国际性会议或展览场所、体育场馆、办公大楼、大型公园及广场、生态旅游风景区、城市中的生活住宅小区等各种室内或室外场合中作为人们的中、短距离代步工具。
具有很大的市场和应用前景。
理论研究意义:车体状态运算主要是将各传感器测量的数据加以融合得出车体倾斜角度值、倾斜角速度值以及行车速度等。
平衡控制运算根据车体状态数据,计算保持平衡需要的行车速度和加速度,或者转弯所需要的左右电机速度变化值,向电机控制驱动模块发送控制指令。
运算模块相当于两轮自平衡电动车的大脑,它主要负责的工作是:控制电机的起停,向控制模块发出加速、减速、电机正反转和制动等速度控制信号,接收电机Hall信号进行车速度计算,并通过RS 一232串口向PC发送车速数据以供存储和分析。
另外,还负责接收车体平衡姿态数据,进行自平衡运算。
现有的自平衡车结构种类繁多,但车体都归根于由三层的基本结构组成,从上到下依次是电池层、主控层、电机驱动层。
电池层用于放置给整个系统供电的6V锂电池,主控层由主控芯片系统和传感器模块组成,电机驱动层接受单片机信号,并控制电机。
基于STM32的两轮自平衡遥控小车
期 , 轮 自平衡遥控小车
杨莘 刘海涛
( 武汉科技 大学信息学院 湖北武汉 4 3 0 0 6 2 )
基于STM32F103C8T6的两轮自平衡车系统设计
文章编号:1007-757X(2021)01-0010-03基于STM32F103C8T6的两轮自平衡车系统设计聂茹(华南理工大学广州学院电子信息工程学院,广东广州510800)摘要:在STM32F103C8T6微控制器芯片基础上,提出了两轮自平衡车系统的一种设计方案。
系统方案包括STM32F103C8T6微控制器电路设计、车体姿态传感器MPU6050检测电路设计、电机驱动电路设计、以PID控制器为核心的软件设计。
经过测试,两轮自平衡车系统样机能够保持车体自我平衡并简单的直立行走,验证了硬件设计和软件设计的有效性和可靠性。
关键词:MPU6050;STM32;PID控制器;自平衡车中图分类号:TP212.9文献标志码:ADesign of Two-wheel Self-balancing Vehicle System Based on STM32F103C8T6NIE Ru(School of Electronic Information Engineering,Guangzhou College of SouthChina University of Technology,Guangzhou510800,China)Abstract:On the basis of STM32F103C8T6microcontroller chip,this paper presents a design scheme of two-wheel self-balancing vehicle system.The system scheme includesthe circuit design of STM32F103C8T6microcontroller,the detection circuit design of vehicle body attitude sensor MPU6050,the circuit design of motor drive,software design with PID controller as the core.After test,two-wheel self-balancing vehicle system prototype can maintain the self-balance of the car body and simply walk upright,which verifies the effectiveness and reliability of hardware design and software design.Key words:MPU6050;STM32;PID controller;self-balanced vehicle0引言当今社会,生活向着智能化、便捷化发展,两轮平衡车顺应时代潮流,成为适合多种场合使用的代步工具。
基于STM32C8T6的智能二轮自平衡小车的设计
0 引言因为二轮自平衡小车的不仅具有独特的外形和结构,还有因为其自身的本质优势和使用特点,让其拥有很高的研究价值。
我国在二轮自平衡机器人方面的研究也取得了相当受关注的进步:西安电子科技大学科研团队利用日渐成熟的控制学研制了一种功率较大的两轮自平衡小车,采用左右轮并行的结构。
哈尔滨工业大学设计研制的两轮自平衡小车,是对小车的数据处理有完善的算法,以及在对电机的控制上也是有严格的稳定控制。
在硬件和软件对两轮自平衡小车有比较完善的研究加速度传感器和陀螺仪是用来检测小车车体倾斜角度的。
两台电机的转速都是通过PWM技术来控制的。
基于这些完整而且过硬的硬件设计,采用了一套精妙的软件算法,从而完成了该体系的平衡控制。
1 系统总体设计思路二轮自平衡小车的控制系统分为硬件电路系统和软件设计系统,控制对象就是自平衡小车的两个独立的驱动电机,由分析系统要求我们可知,之所以控制输出量是转速采集数据和数据分析很重要,数据分别来自两个独立直流电机驱动车轮的,维持小车直立状态和运动过程中的动力都来自于小车的两个独立驱动的车轮,随之控制平衡小车达到各种运动状态效果,要使自平衡小车保持直立平衡的姿态。
平衡小车的状态控制可以被分成以下三个部分:(1)二轮自平衡小车的平衡控制:借助姿态检测仪获得的小车倾角为输入量,通过直流电机对车轮的正反转和加速度控制从而达到小车的直立平衡状态。
(2)二轮自平衡小车的速度控制:在小车处于非平衡状态的时候,通过单片机(STM32C8T6系列)调节直流电机转速而达到控制小车速度的理想效果,并且在速度控制的过程中形成有效的负反馈环,从而保持二轮自平衡小车的稳定状态。
(3)二轮自平衡小车的方向控制:对于二轮小车方向的控制,即是对小车车轮转速的控制,通过控制车轮转速的转Abstract: With the development and progress of electronic science and technology, mobile robots are more and more widely used in various production and living areas, and have become the darling of emerging science and technology.This paper proposes a microprocessor based on STM32C8T6 chip as data processing control. It uses the sensor MPU6050 to provide real-time data for data measurement and acquisition, and then obtains relatively accurate body attitude data through the first-order filtering algorithm. After data fusion, two independent.The speed of the motor, so as to reach the expected state of the car upright plete the required data collection, integration, regulation, etc. to achieve the control of the movement status of the car.The entire system is divided into a hardware system and a software system: the hardware realizes the attitude balance of the car, and the software implements a scientific analysis of the data fed back by each sensor of the car, so as to control the rotation of the independent motor through the IO port to complete the car self-balancing.The required effect. Keywords: Unstable system; STM32; Attitude sensor; Motor drive; Filtering algorithm即使得小车车轮向后产生一个加速度,使得小车向后运把二轮自平衡小车的偏离角度作为偏差,通过负反馈让好比小车哪边倾斜角度过大,则平衡小车需要通过独立直流电机和控制系统随之往相对应目的是达到消除倾斜姿态保持直立的姿态平衡小车示意图所示。
基于STM32单片机红外遥控两轮自平衡小车的设计
GND1:5V电源地;
EN:5V使能引脚(5V工作,0V关闭,禁止悬空);
PWM1:控制电机1的转速;
DR1:控制电机1的转向;
PWM2:控制电机2的转速;
DR2:控制电机2的转向;
系统的整体设计框图如图2-2所示:
图2-2系统整体框图
3
3.1
STM32F1系列屈于中低端的32位ARM微控制器,其内核是Cortex-M3㈡。
STM32F103是一款常用的中等容量增强型、低功耗、32位基于ARM核心的带64K或128K字节闪存的微控制器,拥有USB、CAN、7个定时器(3个16位定时器、1个16位带死区控制和紧急刹车、2个看门狗定时器、系统时间定时器:24位自减型计数器)、2个ADC、9个通信接口(2个I2C接口、3个USART接口、2个SPI接口、CAN接 口USB 2.0全速接口)等众多资源。这款芯片运行时的最高频率可达到72MHz,其供 电电压为2.0V至3.6V,拥有64K或128K字节的闪存程序存储器,带有4个片选的静 态存储器控制器15o该芯片还具有看门狗定时器,系统时间定时器,低功耗空闲和CRC计算单元,使得STM32F103芯片在众多嵌入式控制应用系统提供高灵活、超有效的解 决方案。
2.3
程序是系统稳定运行的大脑神经,如果一个单片机控制系统没有可以用來控制的 程序,那么再好的电路也是没有实际意义的。
程序的编写过程中需要注意以下儿点:
1、程序的编写一定要按照预先搭建好的电路进行,操作一定要针对与被操作的对 象。
2、程序的编写应该做到以尽量少的编程语言去实现更复杂的控制内容,只有这样, 编写的程序才能够简洁完整。
基于stm32的自平衡小车
学 术 诚 信 承 诺本人郑重声明:所呈交的论文是我个人在导师指导下进行的研究工作及取得研究成果。
尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得佳木斯大学或其他教育机构的学位或证书所使用过的材料。
与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说明并表示了谢意。
签名:___________ 日期:____________关于论文使用授权的说明本人完全了解佳木斯大学有关保留、使用学位论文的规定,即:学校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文。
签名:___________ 导师签名:___________ 日期:____________摘 要电动平衡车的动力来源于电机,通过控制电机的正反转是平衡车前进和后退,从而达到自平衡的目的。
目前市场上的平衡车大多数是依靠人的重心改变来控制车的状态,而本次设计通过在自平衡的基础上加上了自跟随功能和无线遥控功能,实现了平衡车的灵活控制。
以平衡车的基本控制原理与自跟随功能的实现和无线遥控功能的实现作为研究目标。
首先,对平衡车的基本控制理论进行分析并采用PID算法进行闭环控制,选择MPU6050作为姿态检测传感器,通过卡尔曼滤波对MPU6050的原始数据进行处理后,得到适合系统的姿态信息。
然后,使用Altium Designer软件画出相应电路图,并完成了PCB制板。
最后,通过Keil MDK集成环境进行程序设计,在编译和调试成功后,烧写到实物中对设计结果进行验证和总结。
关键字:平衡车;卡尔曼滤波;PID算法;Altium Designer;Keil MDK;MPU6050AbstractThe power of the electric balance vehicle comes from the motor. By controlling the positive and reverse of the motor, the balance vehicle goes forward and backward, thus achieving the purpose of self balancing. At present, the balance of the car on the market mostly relies on the weight change to control the status of the car and the design by adding the auto tracking function and wireless remote control function based on self balance, realize the flexible control of the balance of the car.The basic control principle of balancing vehicle, the realization of self follow function and the realization of wireless remote control function are studied. First of all, the basic control theory of the balance of the car were analyzed and the PID algorithm for the closed-loop control, MPU6050 is selected as the attitude sensor, the original data were processed by Calman filter of MPU6050, get the attitude information for the system. Then, using Altium Designer software to draw the corresponding circuit diagram, and completed the PCB board. Finally, through the Keil MDK integrated environment for programming, after compiling and debugging successfully, burning to the physical, the design results are verified and summarized.Key Words:balance car; Kalman filter; PID algorithm; Altium Designer; Keil MDK; MPU6050目录摘要 (I)Abstract (II)第1章绪论 (1)1.1 课题研究背景及意义 (1)1.2 国内外发展情况 (1)1.2.1 国内发展现状 (1)1.2.2 国外发展现状 (2)1.3 主要研究内容 (3)第2章控制方案设计 (4)2.1 系统原理分析 (4)2.2 关键算法分析 (5)2.2.1 PID算法 (5)2.2.2 卡尔曼滤波 (6)2.3 方案制定 (7)2.4 本章小结 (8)第3章硬件系统设计 (9)3.1 主处理器的选择 (9)3.2 传感器的选择 (10)3.2.1 姿态检测传感器 (10)3.2.2 电机转速传感器 (10)3.2.3 距离检测传感器 (10)3.3 无线传输模块及电机驱动芯片 (11)3.4 电路设计与PCB制板 (12)3.4.1 电路设计 (12)3.4.2 PCB制板 (14)3.5 本章小结 (15)第4章软件系统设计 (16)4.1 平衡车控制板程序设计 (16)4.2 平衡车遥控程序设计 (17)4.3 本章小结 (18)第5章实物搭建和调试 (19)5.1 实物搭建 (19)5.2 系统测试 (19)5.2.1 程序调试 (19)5.2.2 结果分析 (20)5.3 本章小结 (20)结论 (21)致谢 (22)参考文献 (23)附录 1 中文原文 (23)附录 2 外文原文 (30)第1章绪论1.1课题研究背景及意义本课题的研究主要是为了设计出可以在小范围内活动的轻巧灵活的绿色代步工具,并且在自平衡的功能上加上一些新功能,如自跟随功能和遥控功能,这样平衡车不仅可以当作交通工具来使用还可以作为人们的助手,如可以制造出平衡车形式的拉杆箱、平衡车形式的超市购物车等。
基于STM32双轮自平横车的设计与实现
基于STM32双轮自平横车的设计与实现一、概述随着科技的不断发展,自平衡横车成为了一种非常有趣和实用的机器人。
本文基于STM32单片机,设计并实现了一种双轮自平横车。
二、硬件设计1.STM32单片机:选择STM32系列单片机作为控制核心,具有丰富的外设和强大的计算能力,适合用来控制自平横车。
2.MPU6050:使用MPU6050六轴传感器来检测横车的倾斜角度和加速度。
3.电机驱动模块:通过通过PWM信号来控制电机的速度和方向。
4.电机:选择高速直流无刷电机,具备较好的动力和精度。
5.电源模块:选择锂电池作为电源,提供稳定的供电电压。
三、软件设计1.硬件初始化:通过STM32的引脚初始化相应的硬件模块,包括MPU6050、电机驱动模块和电源模块。
2.传感器校准:由于每个传感器存在一定的误差,需要进行校准。
校准过程包括读取传感器原始数据,并根据标定数据进行修正。
3.控制算法设计:根据传感器读取到的倾斜角度和加速度数据,设计PID控制算法来控制电机的速度和方向,使横车保持平衡状态。
4.通信模块设计:通过蓝牙或Wi-Fi模块与外部设备进行通信,实现远程控制和数据传输功能。
5.电源管理:监测电池电量,当电量低于一定阈值时发送警报信号或自动充电。
四、实现与优化1.双轮控制算法的优化:根据实际使用情况和测试数据,不断调整PID控制算法的参数,提高车辆的稳定性和响应速度。
2.软件功能的拓展:可根据用户需求,增加更多实用功能,如避障、跟随等。
3.硬件的优化:选择高精度的传感器和电机,提高车辆的控制精度和稳定性。
4.界面的设计:通过增加LCD显示屏和按键等外设,可以实现更友好的用户交互界面,提高操作便利性。
五、结论本文基于STM32单片机,设计并实现了一种双轮自平横车。
通过在硬件上选择合适的传感器和电机,并结合PID控制算法进行软件设计,实现了横车的自平衡功能。
通过优化和拓展,可以进一步提高横车的性能和功能。
自平横车的设计和实现不仅有趣,而且具有一定的实用性,在科研和娱乐领域都有广阔的应用前景。
基于STM32单片机的双轮自平衡小车系统的设计
基于STM32单片机的双轮自平衡小车系统的设计本文介绍了基于STM32F103C8T6 单片机的双轮自平衡小车系统的设计,以MPU6050 三轴陀螺仪加速计为传感器的姿态感知系统,通过卡尔曼滤波对传感器的数据进行滤波融合,采用PID 算法实现小车两轮自平衡,使用TB6612 电机驱动模块实现小车的驱动电机,综合实现小车的直立行走。
通过蓝宙的线性CCD 实现小车的循迹功能。
标签:姿态感知;卡尔曼滤波;PID控制;MPU6050三轴陀螺仪加速计;TB6612电机驱动;线性CCD1 电路设计1.1 MPU6050三轴陀螺仪加速计模块子系统框图1.2 TB6612电机驱动模块子系统框图1.3 线性CCD模块子系统框图2 程序设计2.1 程序功能描述(1)实现直立平衡控制(2)平衡的基础上实现行走(3)进而实现循迹功能2.2 程序设计思路首先写程序要有整体思路,小车最先应该让电机先转,然后达到平衡的目的,利用MPU6050三轴陀螺仪加速计为传感器的姿态感知系统,通过卡尔曼滤波对传感器的数据进行滤波融合,采用PID算法实现小车两轮自平衡,使用TB6612电机驱动模块实现小车的驱动电机,综合实现小车的直立行走,差速转向。
进而写出线性CCD的部分程序。
所以程序中应该有平衡部分,速度控制部分,转向控制部分,然后应该根据芯片与电路的链接方法,写出芯片的初始化程序。
3 测试分析与结论3.1 根据直立控制调试,由此可以得出结论见表1,表2(1)可以确定得到kp=500,kd=1.7是P、D 参数的最大值;(2)对每个系数乘以0.6,取整得到kp=300,kd=1,为理想的值。
(3)小车的机械中值在0°。
3.2 根据速度控制调试,由此可以得出结论见表3(1)kp=80,ki=kp/200是速度控制P、I参数的理想值;(2)kp=80,ki=kp/200是正极性。
3.3 根据转向控制调试,由此可以得出结论见表4(1)kp=0.6为它的正极性;(2)kp=1是转向控P参数的理想值。
基于STM32F103RCT6两轮自平衡小车设计
设计思路
设计思路
两轮自平衡小车的设计主要包括底盘、动力系统、平衡系统等几个关键部分。 底盘设计:小车的底盘应具有足够的刚性和稳定性,以支撑上部结构并保持 平衡。我们选择铝合金材料制作底盘,并使用精密加工技术确保其精度和稳定性。
设计思路
动力系统设计:动力系统包括电机、电调、电池等组件,为小车提供运动所 需的能量。我们采用无刷电机作为驱动源,通过电子调速器(电调)控制电机转 速,实现小车的运动控制。
参考内容
引言
引言
智能小车作为移动机器人的一种形式,具有广泛的应用前景和研究价值。随 着嵌入式系统、传感器和技术的不断发展,智能小车的性能和功能也不断提升。 本次演示旨在基于STM32F103单片机设计一款智能小车,并实现对其速度和方向 的控制,提高小车的自主性和适应性。
关键词
关键词
智能小车、STM32F103单片机、传感器、控制算法、自主性、适应性
为了验证小车的性能和稳定性,我们进行了多项测试,包括平衡性测试、稳 定性测试等。
平衡性测试:我们通过在光滑的地面上和小型障碍物上测试小车的平衡性能, 发现小车能够在不同情况下保持稳定平衡状态。
测试与结果
稳定性测试:我们对小车进行了不同速度和不同地形条件的稳定性测试,以 检验小车在不同情况下的稳定性能。测试结果显示,小车在各种条件下均具有较 好的稳定性。
实现方法
硬件制作:硬件制作包括底盘和车轮的制作、电路板的焊接和传感器元件的 安装等。我们利用铝合金材料制作底盘,精确加工车轮,并在电路板上焊接了电 源管理芯片、电机驱动芯片和传感器接口电路。在制作过程中,我们注意保证各 部分的装配精度和连接可靠性,以确保小车的稳定性和耐用性。
测试与结果
测试与结果
细节描述
基于STM32的两轮自平衡遥控小车设计
【 A b s t r a c t 】 r h e t w o w h e e l e d v e h i  ̄ 。 l e i s a n e w t y p e a f v e h i t 。 l e , d r i v i n g t h e n n v e l , h y y o u n g 1 ) e o p l e l o v e , a n d b e c a a s e i t i s t h e d r i v i n g p o w e r , a k i n d o f
e l e a n e n e r g y , t o a l l e v i a t e t h e i n c r e a s i n g l y s e r i o u s a i r p o l l u t i o n , e n e r g y c r i s i s a n d t h e p mh l e m o t ’ t r a f i f , ‘ 【 - ( ng i e s t i o n . i s a r e l a t i v e l y g o o d s o l u t i o n a t t h e s a n l e t i me . du e t o t h e s t r t L ( ’ t u r e o f s e l f h a l a n c i n g t h e e a r t w o r o u n d s o f i n s t a b i l i t y . i s“ g r e a t【 . h a l t e n g e t o t h e c o n t r o l a l g o r i t h m. a n d f o r t h i s r e a s o n t h e b a l a n  ̄ ‘ P o f t h e e a r h a s b e c o me a g o o d p l a t i f mn t o t e s t t h e c o n t r o l a l g o r i l h m. U s i n g S TM3 2 mi ( 。 r o c o n t r o l l e r a s c o n t r o l c o r e . r e a l —t i me a c c e s s t o v e h i c l e s p e e d a n ( I a t t i t u d e d a t a t h mu g h t h e mn t , ”e n c o d e t a n d g y r o s c ’ o p e u s i n g t h e Pl D c o n t r o l a l g o r i t h m ma k e s t h e e a r t o ma i n t a i n b a l a n c e .
1万8字 基于STM32单片机的两轮平衡车设计
论文题目:基于STM32单片机的两轮平衡车设计摘要本文主要讲述了如何使用微控制器STM32F103C8T6实现控制两个直流步进电机使平衡车能够达到平衡状态且可用手机蓝牙遥控。
本文首先对毕业设计进行方案的论证和选择。
本设计选择了ST公司的STM32F1系列单片机作主控MCU,采用编码直流无刷步进电机,TB6612FNG芯片作步进电机驱动,姿态传感器MPU6050作陀螺仪,0.96寸OLED液晶屏作显示屏,蓝牙模块作为特殊的通信串口与手机APP进行通信,锂电池电源在直流稳压后提供各个模块的所需的工作电压,使平衡车能够直立平衡。
然后本文介绍了STM32和系统的硬件电路设计方案,对直流稳压电路、姿态传感器、步进电机、OLED屏显示电路、驱动电路设计进行分析介绍,对STM32系统的设计流程、卡尔曼滤波算法及PID算法(步进电机控制算法)的原理和实现进行详细的说明,进行上位机程序的调试和工作的逻辑进行讲解。
最后本文讲述了毕业设计的机械安装与整机性能测试部分。
本设计在机械安装全部完成后,对上位机和通电后实际情况进行性能测试,通过观察数据和现象来判断平衡车系统的性能效果,在不同状态和场合下测试平衡车的抗干扰以及运动能力。
关键词:STM32,平衡,步进电机,互补滤波,PIDAbstractThis paper mainly describes how to use the microcontroller STM32F103C8T6 to realize the control of two dc stepper motors so that the balance car can reach the balance state and the bluetooth remote control of mobile phones.This article first carries on the demonstration and the choice to the graduation project project. This design chose the ST's STM32F1 series single chip microcomputer as main control MCU, using encoding brushless dc stepper motor, TB6612FNG chip for step motor drive, position sensors MPU6050 gyroscope, 0.96 inch OLED display LCD screen, bluetooth module as a special communication serial communication with the phone APP, lithium battery power after the dc voltage to provide various modules of the working voltage, you need to make balance of the car can upright balance.Then this paper introduces the STM32 and system design of hardware circuit, the dc voltage circuit, posture sensor, stepper motor, OLED display circuit, drive circuit design analysis is introduced, design process of the STM32 system, kalman filtering algorithm and PID algorithm (stepper motor control algorithm) of detail, the principle and implement of PC logic of the program debugging and work.Finally, this paper describes the graduation design of mechanical installation and machine performance testing part. After the mechanical installation is completed, the design tests the performance of the upper computer and the actual situation after electrification, judges the performance effect of the balance car system by observing data and phenomena, and tests the anti-interference and movement ability of the balance car in different states and occasions.Key words:STM32, Balance, Stepper motor, Complementary filter, PI目录摘要 (Ⅰ)Abstract (Ⅱ)第一章绪论 (1)1.1平衡技术的发展 (1)1.2 设计意义和应用背景 (1)1.2.1设计意义 (1)1.2.2 应用背景 (2)1.3主要工作及结构安排 (2)第二章系统方案设计 (3)2.1平衡原理 (3)2.2平衡小车的性能要求 (4)2.3系统总体设计框图 (4)2.4系统方案论证及选型 (5)2.4.1主控芯片MCU的选型 (5)2.4.2直流步进电机的选型 (5)2.4.3电机驱动的选型 (5)2.4.4解姿态算法的选型 (6)2.5本章小结 (6)第三章系统硬件设计 (7)3.1 STM32C8T6的核心板 (7)3.1.1 STM32最小系统 (8)3.1.2启动模式BOOT[1:0] (9)3.1.3 USB转TTL电路 (9)3.1.4 SWD接口 (11)3.2直流稳压电路 ....................................................................................... 错误!未定义书签。
基于STM32的平衡车设计
基于STM32的平衡车设计文章鉴于平衡车在当今世界的发展热潮提出了一种设计方案。
文章基于STM32微处理器,通过卡尔曼滤波法和PID控制实现了两轮平衡车的自平衡控制。
该设计方案采用加速度计和陀螺仪共同采集获取姿态角,得到可靠的输出。
标签:平衡车;加速度计;陀螺仪;卡尔曼滤波;PID算法前言平衡车作为一种交通工具,广泛应用于航空、安保等领域。
鉴于其绿色、节能、方便、灵活、轻巧等优点,解决了很多诸如交通、能源、环保等问题带来的压力,平衡车作为一种理想的交通工具具有很大的市场。
随着现代科技的不断进步,对于市场上平衡车的响应的精确度和速度的要求不断提高,文章设计方案通过陀螺仪测量角度和角速度,并通过加速度计来矫正陀螺仪的角度漂移,实现了精确度的提高。
1 力学原理分析如图1所示,类比倒立摆,控制车轮做加速运动,得到车模恢复力:F=mgsin?兹-macos?兹≈mg?兹-mk1?兹(1)式(1)中k1是车轮加速度a与偏角θ的比例。
因为空气中存在摩擦力,即阻尼力,则式(1)变作:F=mg?兹-mk1?兹-mk2■ (2)可得:a=k1?兹+k2■ (3)式(3)中k1大于g,k2大于0;k1决定了车模平衡的位置,k2决定了车模的响应时间。
从上述数学模型中可以看出,只需知道车模的倾角及角速度,即可推得车轮的加速度,从而可以控制电机的转速,实现对车轮的正确控制。
2 控制系统设计控制系统的整体设计方案是:通过陀螺仪测得车模的倾角和角速度,加速度计用来消除陀螺仪角度漂移。
两者测得数据经过A/D转换输入到控制器中,经过卡尔曼滤波得到可靠的车模角度。
同时编码器测得车轮速度传递到控制器中。
处理器经过PID算法结合车模角度和车轮速度输出PWM控制量驱动电机运转,改变车轮的转速。
具体框图如图2所示。
图2系统整体采用PID控制算法,如图3所示。
在速度控制和角度控制中都使用了微分环节,目的是使车模快速的稳定下来,加快了响应时间。
我的两轮平衡小车之路(基于STM32的脑洞大开设计)
我的两轮平衡小车之路(基于STM32的脑洞大开设计)本人小渣一枚,出于对平衡小车的强烈兴趣,决定要掉入此坑。
从今天起,连续三个月(预计)开展此工作,尽量每周一更(要理解苦逼电农狗的难处~T T~)。
希望在这个过程中,能与众大神们交流心得、共同进步。
整个过程的开发资料会全部开源,同时在过程中会同步更新部分干货,不喜求轻喷。
实现基本功能(两轮小车自平衡)外,还附带一些“浮夸”点的技能,喜欢的朋友可以后续关注一下。
最后PS一下,所有开源资源仅限学习交流,禁止进行商用,本人保留所有追究权利。
这段时间很多事要忙,所以耽搁了更新的工作,请大家见谅。
接下来,我们应该来认识一下自平衡小车的关键部件——MPU6050传感器模块。
这个模块俗称六轴陀螺仪(三轴加速度+三轴角速度)。
当然,这个模块可能已经被人用烂了,可是我还是按照进度来科普一下,求大神们轻喷。
回归正题,按照上述说,这款传感器就是用来测量加速度和角速度的,在我们需要保持小车的平衡的时候很自然可以想象到小车会受到外力作用而总会有向前或者向后倒的倾向,而这个时候,我们就需要用这款传感器,来测量出我们究竟需要修正多少才能恢复到平衡状态。
首先,我们来说明一下加速度的测量。
在这里我们需要用到就是矢量的分解和合成。
在我们认知得到的现实世界里是三维的,所以我们可以把某点分解为X、Y、Z三个坐标系。
当然,对于某一时刻的加速度也是可以分解为这三个方向上的分量。
而MPU6050就能实时地测量这三个方向上的加速度,可以给我们计算提供参考数据。
实际上,我们可以简化一下这个模型。
实际上,我们使用的时候是把该模块固定在小车底盘上的,所以Y轴是一直和底盘重叠的,所以我们可以将三维模型简化为二维模型(X、Z轴),如下图:在这里,我们得巧用到一个充斥在我们生活的东西——重力。
它总是垂直于水平面的,利用三角定理和矢量的分解、叠加原理,我们可以得到我们所想要的角度。
因为a+b=90度,c+b=90度,所以a=c,再根据平行四边形法则,c=d。
基于STM32的双轮平衡车
电子设计工程Electronic Design Engineering第19卷Vol.19第13期No.132011年7月Jul.2011基于STM32的双轮平衡车张志强(武汉理工大学湖北武汉430070)摘要:针对市场上的平衡车售价过高,功能单一,失去平衡后不能自动恢复平衡的问题,提出了基于STM32的平衡车,它采用实时操作系统uCOS-II ,借助陀螺仪、加速计、舵机控制器、编码器构成一个自平衡系统。
此系统可遥控控制LCD 显示方向,自动恢复平衡。
通过观测陀螺仪数据、功能测试、价格比较,证明此系统运行平稳,功能丰富,成本低廉。
关键词:双轮平衡车;STM32;陀螺仪;加速计;uCOS-II 中图分类号:TP242文献标识码:A文章编号:1674-6236(2011)13-0103-04Two -wheeled self -balance vehicle based on STM32ZHANG Zhi -qiang(Wuhan University of Technolgoy ,Wuhan 430070,China )Abstract :The price of self -balance vehicles on the markets are too expensive,simplex function.And it can not automatically restore balance after lost balance.According to those problems,a self -balance vehicle based on STM32is presented,which uses real -time operating system uCOS -II with gyroscopes,accelerometer,steering gear controller,encoders constituting a self -balancing system.This system has the function of remote controls LCD display and restoration of balance.By observing the gyroscope data,it shows that the system is running smoothly.Also,it is multifunctional,low cost.Key words :two -wheeled self -balance vehicle ;STM32;gyroscope ;accelerometer ;uCOS-II双轮平衡车突破了传统意义上的车的概念,它的特点是:两个轮子处于共轴的两个平行平面上,差动式运动,零半径转向,依照倒立摆的原理达到动态平衡。
基于STM32单片机的双轮小车近静态动平衡控制统
摘要本文介绍以STM32F103RCT6单片机为核心的智能自平衡小车技术的研究,本系统分为单片机最小系统,PID自动反馈调节,驱动控制电路。
通过MPU-6050传感器采集到姿态感知信号传给STM32F103RCT6单片机,经单片机PID反馈调节,发出命令控制驱动模块L298N,驱动2台直流电动机进行相应的动作,最终使得小车能够平稳站立。
为了提高平衡效果,本文引入了卡尔曼滤波器,在调试中应注意初始角度的矫正和PID的参数调节。
本设计现能实现小车在正负2度内平衡,时超超过4S,在小车的控制方面还有待改进。
关键词:STM32F103RCT6单片机姿态检测卡尔曼滤波 PID控制电机驱动AbstractIn this paper, we introduce STM32F103RCT6 single-chip microcomputer as the core of intelligent since the balance of the car technology research, this system is divided into single chip microcomputer minimum system, PID automatic feedback adjustment, the drive control circuit. By MPU - 6050 sensor collected posture perception to STM32F103RCT6 MCU signals, the microcontroller PID feedback control, a command control L298N drive module, drive two dc motor for the corresponding action, eventually making the car can stand steadily.In order to improve the effect of equilibrium, this paper introduced the Calman filter, in needing attention in debugging the parameters initial angle correction and PID regulation. This design is to achieve car in the positive and negative balance within 2 degrees, super than 4S, in control of the car has to require improvement.KeyWord: STM32F103RCT6 single-chip microcomputer Posture perception Kalman filter PID controller motor drive目录中英文摘要 (I)1 引言 (1)1.1 选题背景及实际意义 (1)2 整体方案设计 (1)2.1系统整体设计 (1)2.2姿态检测模块选型方案比较 (2)2.3项目设计要求 (2)2.4平衡小车的总体框图 (2)3 各单元模块的硬件设计 (3)3.1 STM32F103RCT6单片机系统 (3)3.2 稳压模块选型 (3)3.3 姿态检测模块 (4)3.3.1加速度计模块 (5)3.3.2陀螺仪模块 (7)3.4 电机驱动模块选型 (7)3.5电机选型 (8)3.6 电路接线表 (9)3.6.1电源接口解析 (9)3.6.2器件I/O口连接表 (9)4 理论分析与计算 (10)4.1 自平衡小车数学模型 (10)4.2 PID控制器设计 (11)4.2.1 PID控制器原理 (11)4.2.2 PID控制器设计 (11)4.3基于卡尔曼滤波的数据融合 (12)4.4 本章小结 (14)5 系统软件设计 (15)5.1软件系统总体结构 (15)5.2单片机初始化软件设计 (15)5.3姿态检测系统调试 (15)5.3.1角度矫正 (15)5.3.2卡尔曼滤波调试 (16)5.3.3控制系统PID参数整定 (18)6 系统测试 (19)6.1 平衡度测试 (19)6.2站立时间测试 (20)7 器件清单 (20)7.1元器件清单 (20)7.2平衡小车实物图 (21)8 总结与展望 (21)8.1 总结 (21)8.2 展望 (22)参考文献 (22)附录 (i)致谢 (vii)1 引言两轮自平衡小车是一种特殊轮式移动机器人,其动力学系统具有多变量、非线性、强耦合、参数不确定等特性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
始 化过程 时 , 需要 首先进 行时 钟的初始 化 。
—
l 数字哉 术 ’ ’ I与 — — — 应 — 一 用
卡 尔 曼 滤 波 算 法 的 功 能 在 于 将 陀螺 仪 与 加 速 度 计 所
NVI C中断初始化 : 为了保证 按时中断的准确性 , 并使 采 集 的数 据 进 行 融 合 , 并通过计 算 , 得 出其 最 优 值 。 两者 的
2 . 3 卡 尔曼滤波算法与P I D 控制算法
… …
上接第3 4 页
象、 更直观 的展 现 了B码 的特 点 , 为从业 人员理解和掌 握B
码, 以原 码 形 式 表 示 , 并且 也 是 低位 在 前 , 高位在后 , 插入P 码编码格 式提供 了帮助 。 随 着 现 代 微 电 子 技 术 和 工 艺 的 发 码与空位 后完成P 4 、 P 5 编码 , Ma t l a b 中用函数d a t e n u m来根 展 , 利用可编程器件(  ̄ N C P L D、 F P GA) 来产生标准化时间信 量 变 为 二 进 制 数 即可 , 修正量与 时间 、 日期 、 地 址 编 码 唯 一 信 、 数据 处理 、 军 事 和 航 空 航 天 等 众 多 领 域 得 到 了 广 泛 应 不 同 的是 采 用 反 码表 示 , 插入 P 码 与 空位 后完 成 P 6、 P 7 、 P 8 、 用 。 P 9 、 P 0 编码 ; 其 中所有 P 码用“ 2 ” 表示 , 空位用“ 0 ” 表示 。 利 用 参 考文 献 MA TL AB 编 写 程序 _ 3 】 … _ 5 】 运行 结 果 分别 如 图3 、 图4 、 图5 所示 。
卡尔 曼滤 波算法 对传 感器 数据 进行 平滑 滤 波 。
[ 1 ] 杨莘, 刘海涛. 基于S T M 3 2 的两轮 自 平衡小车[ J ] . 数字技术与
[ 2 ] 季鹏 飞, 朱 燕, 程传 统, 杜 晓. 基于 S T M 3 2 的 两轮 自平衡 小 车控
P I D控制 : 将 数据滤 波之后 的结果 , 与电机速度检测结 应 用 , 2 0 1 4 。 0 5 : 1 5 1 —1 5 2 . 果相 结合 , 采用PI D控制算 法 , 输 出控制数据 。 P w M输 出: 在计算完成过后 , 输 出P w M波 , 控制 电机 制 系统 设计 [ J ] . 电子科 技。 2 0 1 4 , 1 1 : 9 6 - 9 9 + 1 0 5 . 的数度 , 并再次等 待定 时中断 。
通信 初始化 : 又称I 2 C初始化 , 其功 能在于使数据采集 同, PI D控制算法的功能同样在于消 除偏差 , 使控制效果达 到 最 好 , 使 小 车 姿 态 更 加 合 理 。 能够 有效 的实现 , 并使所 采集的数 据 , 能够 被 有 效 传 输 。
测速模 块初始化 : 为 了保 证 两 轮 自平 衡 小 车 在 被 控 制 的环 境 下 行 驶 的 稳 定 性 与 可 靠 性 , 提 高 姿态 控 制 的准 确 度 以及 时 实 性 非 常 重 要 , 而测速模 块的功能 , 便 在 于 保 证 上
2 . 4电机 控 制
电压 大 小 决 定 转 速 大 小 ,电机 控 制 的意 义 在 于 保 证 其
电压 合理 , 进 而使 小 车的速度 能够得 到 实时控 制 。 电机输
述 功 能的顺 利实 现 。 对 于 小车 的行 驶与控 制 非常重 要 。 出模块 输出两 路PW M 信号 , 分别控 制两个 电机 的速度。 与 MP U一6 0 5 0 初始化 : MP U一6 0 5 0 为姿态读取模块 , 初 此 同 时 , 通过其他设置 , 使 电机 控 制 得 以实 现 , 进 而 达 到提 始 化 的意义 在 于实 现对 小 车 的姿 态检验 。
5 ms 到达之后 , 能 够 实 现 中断 , 并 开 始 读取 M U 一6 0 5 O 所 采 各 方 面 数 据 能 够 达 到 平 衡 的状 态 , 使 小 车 在 被 控 制 的环 境 实 现 更 加 平 稳 的行 驶 。 因此 在 动 态 测 量 过程 中 , 其 数 值 集 的小车 姿态数 据的 过程 , 必 须 保 证 将 定 时 中断 初 始 化 。 下, 定时器 初始化 : 该 初 始 化 实 现 的 目的 同样 在 于 保 证 在 与 实 际 情 况 相 比 , 必定存 在偏 差 。 采 用 卡 尔 曼 滤 波 算 法 的 5 ms 时间达到时, 使 定时 中断 能 够 顺 利 实 现 , 并 开始 姿 态 数 意义在于 充分利用两者 的优 势 , 得出最 优值 , 消 除缺陷。 为 据 读 取过程 。 小 车 的 行 驶 提 供 良好 环 境 。 与 卡 尔 曼 滤 波 算 法 的 功 能 相
后 一个流程 , 保 证 电机 能 实 现 不 同速 度 的 输 出 。 2 . 2 定时中断设 计
高小 车可控制性 的 目的, 这对于小 车运 行状态 的 良好调整
电机P w M初始化 : 电机P W M输出, 为系统主程序的最 具 有 重 要 意 义 。 3设计结果与分析
以S TM3 2 为基础 , 以MP U一6 0 5 0 为姿态读取模块 , 实 基于s TM 3 2的两 轮 自平衡小车在完成 系统的初始化 现两轮 自平衡 小车的设计 , 能够使小 车的控 制效 果得到提 过程后 等 待定 时 中断产 生调 整姿态 的实 现 流程 。 高。 在做 好系统初始化后 , 利用卡尔 曼滤波算法与P I D控 制 读取姿态 : 如果5 ms 时间 已到 , 则可以直接读取M U 一 算法两 种算法 , 可 以使小车 的姿态达 到合理 化的水平 , 对 6 0 5 0 这一 姿态控 制模 块所采集 的小车姿态 数据 , 与此 同 于提高 小车 运行 的 稳定性 具有 重 大意 义 。 时, 完成 电机速度检 测( 编码器) 。 数据 滤波 : 在 小车姿 态数据 读取完 成之后 , 需要 利用 参 考文 献