Vol.19No.13ElectronicDesignEngineering
2011年7月Jul.2011
基于STM32的双轮平衡车
张志强
(武汉理工大学
湖北武汉430070)
摘要:针对市场上的平衡车售价过高,功能单一,失去平衡后不能自动恢复平衡的问题,提出了基于STM32的平衡车,它采用实时操作系统uCOS-II,借助陀螺仪、加速计、舵机控制器、编码器构成一个自平衡系统。此系统可遥控控制LCD显示方向,自动恢复平衡。通过观测陀螺仪数据、功能测试、价格比较,证明此系统运行平稳,功能丰富,成本低廉。
关键词:双轮平衡车;STM32;陀螺仪;加速计;uCOS-II中图分类号:TP242
文献标识码:A
文章编号:1674-6236(2011)13-0103-04
Two-wheeledself-balancevehiclebasedonSTM32
ZHANGZhi-qiang
(WuhanUniversityofTechnolgoy,Wuhan430070,China)
Abstract:Thepriceofself-balancevehiclesonthemarketsaretooexpensive,simplexfunction.Anditcannotautomaticallyrestorebalanceafterlostbalance.Accordingtothoseproblems,aself-balancevehiclebasedonSTM32ispresented,whichusesreal-timeoperatingsystemuCOS-IIwithgyroscopes,accelerometer,steeringgearcontroller,encodersconstitutingaself-balancingsystem.ThissystemhasthefunctionofremotecontrolsLCDdisplayandrestorationofbalance.Byobservingthegyroscopedata,itshowsthatthesystemisrunningsmoothly.Also,itismultifunctional,lowcost.Keywords:two-wheeledself-balancevehicle;STM32;gyroscope;accelerometer;uCOS-II
双轮平衡车突破了传统意义上的车的概念,它的特点是:两个轮子处于共轴的两个平行平面上,差动式运动,零半径转向,依照倒立摆的原理达到动态平衡。最早由美国发明家狄恩·卡门(DeanKamen)与他的DEKA研发公司(DEKA
ResearchandDevelopmentCorp.)发明设计,名为Segway。但
是其售价也是令人咋舌:7万人民币。如何能使其功能更加丰富而又成本低廉,是本文着重解决的问题。
在微处理器的选择上,基于ARM内核的32位微控器
STM32,CPU最高可工作在72MHz,占据了高性价比和低功
耗的优势,尤其是丰富的外设,快速的中断,强劲的运算速度完全满足设计平衡车的需求。
1平衡车的力学模型
为了获得平衡车的平衡方程
[1-2]
图1力学模型
Fig.1Mechanicalmodel
,需要分析其力学结构,
象得到如下方程:
左轮方程为:
··
平衡车的主要构成是车身和左右两个车轮,影响平衡的参数有:重心、质量、转动惯量、半径等。为保持动态平衡,车身重心应置于车轴的垂直上方的一定范围内,可建立力学模型,如图1所示。
假设平衡机器人为刚体,左右两轮完全对称,并且忽略车轮与地面之间的滑动与侧向滑动,以左轮和车身为研究对收稿日期:2011-04-24
稿件编号:201104117
xRLMRL=HTL-HL(1)(2)
··
θRLJRL=GL+HTLR
其中,xRM:水平位移(m);MRL:左车轮质量(kg);HL:车身施加于车轮的水平作用力(N);HTL:地面对车轮的水平作用力
基金项目:武汉理工大学自主创新研究基金(2010-ZY-JS-028)
作者简介:张志强(1978—),男,山西五台人,硕士研究生,工程师。研究方向:嵌入式系统设计。
-103-
《电子设计工程》2011年第13期
(N);θRL:左轮相对于垂直分量的倾角(rad);JRL:左轮相对于Z轴转动惯量(kgm2);CL:左轮电机产生的扭矩(kg·m);R:车轮半径(m)。
车身的方程为:
··
经由PID算法进行误差调整后再次将控制量发送到舵机控制器,形成一个闭环反馈。整个系统不断进行调整便可以维持平衡车的平衡。
平衡车行走和转弯是由遥控器的方向消息给出,当遥控
xpMp=HL+HRypMp=VL+VR-Mpg
(3)(4)
接收器收到消息后,引起主控制器中断,通过平衡算法处理以后给出合适的控制量,控制左右两个轮子行走和转弯,同时LCD要显示方向键的按下状态。
当检测到平衡车失去平衡的时候,主控制器进入特别处理模式,将启动舵机M1或M2,在机械臂的作用下重新归位到平衡状态,在动作完成后,机械臂回到初始位置。
··
··
(5)epJpθ=(VL+VR)Lsinθp-(HL+HR)Lcosθp-(CL+CR)
其中,xp:车身水平位移分量(m);yp:车身垂直位移分量
(m);Mp:车身质量(kg);VL,VR:左右两轮施加于车身的垂直作用力(N);HL,HR:左右两轮施加于车身的水平作用力(N);
L:质心距离车轴的距离(m);θp:车身对于y轴倾斜角(rad);Jpθ:车身对于z轴的转动惯量(kg·m2);CL,CR:连接左右两轮
的电机产生的扭矩(kg·m).
当平衡车达到平衡状态时,sinθP≈θp,cosθp≈1;根据式(1)(2)(3)(4)(5),得到微分方程:
(2MRL+2JRL+MPL+MPR)θRL=-
3硬件设计
本文主控制器采用意法半导体生产的STM32F103ZE[4]
作为主控制器,它使用来自于ARM公司具有突破性的
Cortex-M3内核,该内核集高性能、低功耗、实时应用、竞争
1(J+ML)+ML
θ+≈≈Rpθ
p2
p
p
..
性价格于一体。STM32F103ZE的主要性能参数有:主频最高
R
72MHz,90DMips,1.25DMips/MHz。512k字节闪存程序存
储器,64k字节SRAM。外设有:定时器、ADC、SPI、I2C、
gMpL1θp)
R(6)
USART和USB等。
三轴加速计选用飞思卡尔的MMA7260QT
··
2控制系统设计
由微分方程式(6)可知,如果测得车身的角加速度θp,和
··
[5]
,
MMA7260QT的量程有1.5g、2g、4g、6g4个,本文选择1.5g的量程范围,精度为800mV/g,内部集成了低通滤波器。将MMA7260QT的x轴y轴接入STM32的AD采样,其中一个轴
作冗余设计,以增强可靠性,12位的AD采样精度可达0.8mV,转换时间为1μs。
陀螺仪采用亚德诺半导体的ADXRS300
[6]
车身的垂直倾角θp,就可以控制两个车轮的角加速度θRL,使之达到平衡状态。角加速度和倾角可以借助传感器获得。加速计是用来测量运载体相对惯性空间运动的加速度,也可用来测得相对于重力的倾角θp。而陀螺仪一般是用来测量载体的运动角速度,经过积分和相关的运算可以得到载体的角度信息,经微分运算可获得载体角加速度,因此可以用它测量倾角θp与角加速度θp。同时左右两轮安置编码器得到平衡车车轮的实际运动信息。整体设计结构如图2所示。
当平衡车进入平衡状态时,安装于车身的陀螺仪和加速计实时采集数据,并传送至主控制器。主控制器将数据进行
,其量程
为±300°/s,线性误差小于0.1%,使用FPGA采样积分后,以串口方式输出角度信息。经信号处理后的误差小于
0.5°,温度漂移小于0.6°。
舵机控制器是用于控制平衡车左右车轮伺服电机,它可以同时控制16路舵机,通过串口接收命令,并输出PWM波形。舵机选择了比亚迪公司生产的MG995,其速度为·0.17s/60°(4.8V),扭矩为13kgcm,死区设定4μs。用于车轮的舵机需要去除销钉,并用两个2.5kΩ电阻取代滑动变阻器。
遥控器部分是采用PT2262与PT2272,分别用于调制解调,PT2272解调后的信号引脚分别与STM32的Remote1~
Remote4(PC8~PC11)连接,前后左右4个按钮对应其中Remote1~Remote4,当遥控器有按键按下时STM32产生中断
并作相应的处理。
编码器由两部分组成,即:码盘和信号采样电路。码盘与车轮共轴,车轮转动带动码盘转动,采用两个直射式红外光
图2
系统组成示意图
电传感器作采样电路的设计。本文选用南旭科技的光电传感器ST150,ST150的响应时间为5μs、光缝宽度0.4mm、遮光电流1μA、通光电流0.25mA,满足设计要求。同时使用两个
Fig.2Schematicdiagramofsystemcomponents
Kalman滤波[3]和平衡算法处理,得出姿态调整所需要的车轮
加速度值,换算为电机的控制量,通过串口3发送到舵机驱动器,控制两路由舵机改装的伺服电机作姿态调整。安装于车轮的编码器得到实际速度和运行距离,反馈回主控制器,
ST150是为了得到相位差调整为90°两路波形,这样就可以
检测出车轮的旋转方向。经过施密特触发器74HC14整形后输入到STM32的Encode1~Encode4(PC4~PC7)。编码器电路如
图4主控制器设计
Fig.4Designofmastercontroller
《电子设计工程》2011年第13期
3)左右两个编码器的I/O;4)遥控器4个方向按钮的I/O。
加速计的AD采样使用查询的方式。在得到陀螺仪的数据后,立即进行AD采样,使得加速计和陀螺仪得到的数据尽量保持在较短的时间内。系统软件流程如图6所示。
在室内无坡度的地面上,使用遥控器做S型曲线运动,倾角的范围为:-5°≤θp≤5°,并且LCD可正确显示出方向信息。当θp>25°,或者θp<-25°时,平衡车失去平衡。此时舵机M1与M2启动,将平衡车调整至-5°≤θp≤5°的范围内,重启动平衡控制。
此样车按照目前市场价格,总价约1500人民币,相对于
Segway成本大大降低。
6结束语
本文以STM32为处理器,从硬件搭建了一个自平衡系
统,以实时系统uCOS-II为片上系统,进行软件设计,并对平衡系统进行功能扩展。实验证明,本系统功能丰富,成本低廉,其中自动恢复平衡的功能,可用于机器人排爆,野外探测等领域。参考文献:
[1]CrasserF,D’ArrigoA,ColombiS,etal.JOE:Amobile,
invertedpendulum
[J].IEEETransactionsonIndustrial
Elec-tronics,2002,49(1):107-114.
[2]陈伟,延文杰,周超英,等.两轮自平衡机器人控制系统设
图6
系统软件流程图
计[J].传感器与微控制器,2008,27(4):117-120.
Fig.6Flowchartofsystemsoftware
CHENWei,YANWen-jie,ZHOUChao-ying.Controlsystemdesignoftwowheelsself-balancerobot[J].TransducerandMicrosystemTechnologies,2008,27(4):117-120.
5实验结论
使用ARM开发工具RealViewMDK
[8]
对平衡车进行调
[3]袁泽睿.两轮自平衡机器人控制算法的研究[D].哈尔滨:哈
尔滨工业大学,2006:22-31.
试,该开发工具自带的LogicAnalyzer窗口可实时跟踪变量的变化。因此,在平衡车进入平衡状态时,用LogicAnalyzer窗口观测到车身的倾角变化,软件中变量Gyro_degree代表陀螺仪得到的车身倾角θp,LogicAnalyzer窗口得到的数据如图7所示。
[4]STMicroelectronicsIntegratedProducts.STM32Referencemanual[EB/OL].(2011-01-01)[2011-04-01].http://www.stmi-croelectronics.com.cn/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/REFERENCE_MANUAL/CD00171190.pdf.
[5]FreescaleIntegratedProducts.MMA7260QT[EB/OL].(2008-05-03)[2011-04-01].http://cache.freescale.com/files/sensors/doc/data_sheet/MMA7260QT.pdf?fsrch=1&sr=1.
[6]AnalogDevicesIntegratedProducts.ADXRS300[EB/OL].(2004-01-01)[2011-04-01].http://www.datasheetarchive.com/pdf/getfile.php?dir=Datasheets-4&file=DSA-67061.pdf&scan=.[7]LabrosseJJ.嵌入式实时操作系统μC\\OS-Ⅱ[M].邵贝贝,
等译.北京:北京航天航空大学出版社,2003.
[8]李宁.ARM开发工具RealViewMDK使用入门[M].北京:北京
根据Gyro_degree的数据,θp的数据大部分在范围-5°≤
≤≤≤≤≤≤≤≤≤≤航空航天大学出版社,2008.
θp≤5°内振荡,说明系统运行平稳可靠。
≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤欢迎投稿!欢迎订阅!欢迎刊登广告!国内刊号:CN61-1477/TN在线投稿系统:http://mag.ieechina.com地址:西安市劳动南路210号5-1-3信箱国际刊号:ISSN1674-6236ad@ieechina.com(广告)邮政编码:710082≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤-106-
因篇幅问题不能全部显示,请点此查看更多更全内容