mpu6050数据分析与滤波

mpu6050数据分析与滤波

ID:13593263

大小:52.46 KB

页数:8页

时间:2018-07-23

mpu6050数据分析与滤波_第1页
mpu6050数据分析与滤波_第2页
mpu6050数据分析与滤波_第3页
mpu6050数据分析与滤波_第4页
mpu6050数据分析与滤波_第5页
资源描述:

《mpu6050数据分析与滤波》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、DS-学习笔记02--MPU6050数据分析与滤波[复制链接]论坛关于6050的帖子看了个遍也没整明白哪些东西可以用,哪些数据是干什么的。沉寂了2天,尽可能的在网上收集资料,但是关于6050的太少了在本论坛问题区提的问题有人看,没人回答,估计是看的人不会,会的人不会去问题区,要么就是大家对6050不熟悉或者是没用过吧。也没人来问津下我们初学者。让我想起卜学亮一首歌:搞不懂就问人,搞得懂就答人,没有人懂还可以问神!其实整到现在有的地方我还是不太明白,将就先贡献出来,给大家参考。我参考的是飞思卡尔官方给出的

2、设计参考。1.关于6050陀螺仪和加速度计的角速度和角度计算。A.陀螺仪角度计算,很多帖子中都提到了用的是积分,但是我这里还是重新讲下。angle_n=angle_n-1+(Gyro-C_Gyro)*R_Gyro;angle_n当前角度值,它的单位是度(°)angle_n-1上一次计算出的角度值Gyro陀螺仪敏感轴偏转值,也就是当前敏感轴读数C_Gyro陀螺仪零点偏移值,这个值的测量方法是:将陀螺仪敏感轴水平放置静止时的读数,我的零点偏移值是水平、垂直、倒置,分别取1024次,作平均值得出的,读数是-1

3、77.8865041,但是最后在程序实践中,调整到-99.90。或许还有别的办法,自己看着办吧。R_Gyro是陀螺仪比例。飞思卡尔的参考中提到这个值是可以计算出来的,下面我会提供下载,大家自己去看看怎么算的,但是在其论坛和调试手册中都提到,这个比例值还是实验法测量出来的比较准确。B.加速度仪角度计算。加速度仪的角度计算有很多方法,论坛里就有2中。但是都用到了三角函数,数学没学好,照抄了也不行。参考了飞思卡尔的计算方法后大概是这样的。Angle_Z=(az-C_Z)*R_Z;angle_z加速度计敏感轴Z

4、轴产生倾角计算出的角度,单位度(°)az是加速度仪Z轴读数C_ZZ轴零点偏移量测量方法和陀螺仪的一样。R_Z加速度计Z轴比例C.反复试验,MPU6050加速度计Z轴对应的是陀螺仪的X轴。不知道是不是我的有问题,还是就这么设计的?2.关于滤波,实验了一天,大概滤出个这么样个波形。2012-7-502:12上传下载附件(37.98KB)红色:加速度计算出的角度橙色:陀螺仪积分出的角度黑色:滤波后的角度比较大的浮动是我将mpu6050旋转大约45°的波形。后面是没放稳产生的前后晃动。3.代码部分ARDUINO

5、代码复制打印1.#include"Wire.h"2.#include"I2Cdev.h"3.#include"MPU6050.h"4.MPU6050accelgyro;5.int16_tax,ay,az;6.int16_tgx,gy,gz;7.8.floatC_Z=-1343.91;//Z轴零点偏移量9.floatC_Gyro=-99.90;//陀螺仪零点偏移量10.floatZ_Min=-17873.76;//最小极值11.floatZ_Max=15186.91;//最大极值12.floatT_Z=3

6、;//Z轴角度补偿时间常数13.floatR_Z=180/(Z_Max-Z_Min);//Z轴比例14.floatR_Gyro=0.081;//陀螺仪比例15.unsignedlongT_Now=0;//系统当前时间16.unsignedlongT_Last;//上次时间17.floatAngle_G,Angle_AG,Angle_GG;18.inti;19.floatGYRO;20.21.voidsetup(){22.Wire.begin();23.Serial.begin(38400);24.//i

7、nitializedevice25.Serial.println("InitializingI2Cdevices...");26.accelgyro.initialize();27.//verifyconnection28.Serial.println("Testingdeviceconnections...");29.Serial.println(accelgyro.testConnection()?"MPU6050connectionsuccessful":"MPU6050connectionfai

8、led");30.}31.32.voidloop(){33.accelgyro.getMotion6(&ax,&ay,&az,&gx,&gy,&gz);//读取6050数据34.if(i>20)35.{36.GYRO=GYRO/20;1.floatAngle_Z=(az-C_Z)*R_Z;//加速度计角度计算(读取值-偏移量)*比例单位:°2.Angle_G=-(GYRO-C_Gyro)*R_Gyro;//陀螺仪采样(采样值-偏移量)*比例

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。