极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 34101|回复: 7

MPU6050如何从传感器输出的数值转换成有效数值呢?

[复制链接]
发表于 2012-9-18 09:19:44 | 显示全部楼层 |阅读模式

各位

小弟目前在测试MPU6050,从Gyro和Accelemeter两个传感器输出了6个数值,仔细看了:
http://www.starlino.com/imu_guide.html 中的方法,首先要转换成有效数值:即通过类似如下的方法:

加速度传感器的有效数值:Rx = (AdcRx * Vref / (2^n-1) – VzeroG) / Sensitivity,其中 AdcRx 是加速度传感器在X轴上的输出数值值;

而陀螺仪的有效数值,如:GyroX = (AdcGyroX * Vref /  (2^n-1) – VzeroRate) / Sensitivity, 其中 AdcGyroX是陀螺仪在X轴上的输出数值。

得到上述数值后,再进行滤波处理等。

我想请教下,我们这个MPU6050也是用如上述的公司来进行转换吗? 还是其他更为简化的公式呢?

我看了下MPU6050 规范书中,对比上面的公式,能找到 n = 16, Vref = 3.3v,但是好像没有VzeroRate 和 Sensitivity的具体数值哈。

求教各位!


回复

使用道具 举报

发表于 2012-9-18 10:57:59 | 显示全部楼层
MPU6050是数字的,AD转换芯片自己完成了!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-9-18 12:10:47 | 显示全部楼层
拾瑞 发表于 2012-9-18 10:57
MPU6050是数字的,AD转换芯片自己完成了!

谢谢,那就是说出来的数值直接做滤波就行了,是吗?还需要咋处理呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-9-18 12:12:35 | 显示全部楼层
JerryLove 发表于 2012-9-18 12:10
谢谢,那就是说出来的数值直接做滤波就行了,是吗?还需要咋处理呢?


我咋看到有帖子的程序做 如下处理哈,看不懂,能解释下吗?

// 把原始数据转换为G44.      
RwAcc[0] = float(inputStringArr[0]) / 256.0;45.      
RwAcc[1] = float(inputStringArr[1])/ 256.0;46.      
RwAcc[2] = float(inputStringArr[2])/ 256.0;47. 48.     

// 把原始数据转换为"度/秒"49.      
Gyro[0] = float(inputStringArr[3]) / 14.375;50.      
Gyro[1] = float(inputStringArr[4]) / 14.375;51.      
Gyro[2] = float(inputStringArr[5]) / 14.375;
回复 支持 反对

使用道具 举报

发表于 2012-9-18 15:11:02 | 显示全部楼层
不懂,继续学习中。。。
回复 支持 反对

使用道具 举报

发表于 2012-9-19 18:07:02 | 显示全部楼层
我也有疑问,知道加速度除以256就是转化为g为单位,但是加速度就不知道了,有些说是输出单位是度/秒,但有些又说是弧度/秒。另外有些还会要求除以Sensitivity,有些又不做要求。积分时间也各不相同,难道说不管积分时间出来的结果都是一样的?
回复 支持 反对

使用道具 举报

发表于 2012-12-10 20:53:39 | 显示全部楼层
楼主,你好,现在你的这个模块调试的怎么样了?我最近也在调试这个,各种问题啊,输出值你是怎么处理的呢?
回复 支持 反对

使用道具 举报

发表于 2013-11-10 13:23:07 | 显示全部楼层
额,沉了~~~问题没解决啊,求大神秒解一下~~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-13 22:59 , Processed in 0.041406 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表