lucsong 发表于 2012-5-15 10:38:27

本帖最后由 lucsong 于 2012-5-15 10:40 编辑

这几天忙,回来一看,有很多朋友有和我一样的问题,我这里就先粗略的讲一下,晚上回去给大家详细说。大家买到mpu6050后手里都有英文的说明把。注意看有两个表格,一个是介绍加速度的一个是介绍角速度的,在表格的前4行是相对应的精度,分了四档 。0 ,1,2,3,(好像是这样我在公司,资料在家回去后补全)在这四哥精度下有相对应的精度值。大家在我给的那个测试程序输出六个参数后除以精度值就可以了。

lucsong 发表于 2012-5-15 10:48:21

对了还有,现在虽然读数对了。可是要换算到自带角就比较麻烦。要牵扯到卡尔曼滤波。不知道有没有朋友有。arduino的滤波程序。这样就能直接出姿态角了就是欧拉角。在读出mpu6050数据后。看了大量的关于上述两个东东的文章 ,发现自己又头大了。{:soso_e134:}。
我看到论坛里有朋友就是那个自拍的哈哈,自己做自平衡车,好像试验成功了。希望能分享一下加速度和角速度融合代码哈哈开源吗,就是为我等“懒人”准备的:P

Randy 发表于 2012-5-15 13:54:48

lucsong 发表于 2012-5-15 10:48 static/image/common/back.gif
对了还有,现在虽然读数对了。可是要换算到自带角就比较麻烦。要牵扯到卡尔曼滤波。不知道有没有朋友有。ar ...

期待你整理一下这个的资料,我不是很懂,对于算法真是小白。

lucsong 发表于 2012-5-15 22:30:35

先把测试程序贴出了#include "Wire.h"
#include "I2Cdev.h"
#include "MPU6050.h"
MPU6050 accelgyro;

int16_t ax, ay, az;
int16_t gx, gy, gz;

bool blinkState = false;

void setup() {
   
    Wire.begin();
    Serial.begin(38400);
   
    accelgyro.initialize();
   
   
}

void loop() {
   
    accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
    Serial.print("a/g:\t");
    Serial.print(ax/8192); Serial.print("\t");
    Serial.print(ay/8192); Serial.print("\t");
    Serial.print(az/8192); Serial.print("\t");
    Serial.print(gx/65.5); Serial.print("\t");
    Serial.print(gy/65.5); Serial.print("\t");
    Serial.println(gz/65.5);
    blinkState = !blinkState;

}大家看我付的两张表格中的TYP项131、15.5、32.8、16、4是角速度的LSB/(°/秒)“不知道LSB的去百度一下”。
16384、8192、4096、2048是加速度的LSB/g。
用读出的mpu6050的数值除以不同的LSB值就得出了不同精度的角速度和加速的值。
板子的链接大家都知道吧。A4接SDA   A5接SCL   vcc接3v3商家说可以接5v但是保守起见还是接了3.3v   GND接GND
不过mpu受温度的影响精度相差比较大。
以上就是我调试的结果。大家试试。我也是初学菜鸟说的不对的地方希望各位指正。谢谢

GIOCHEN 发表于 2012-5-15 23:12:25

占座 我的 mpu6050 马上也要到了

学习先

Randy 发表于 2012-5-16 09:13:21

lucsong 发表于 2012-5-15 22:30 static/image/common/back.gif
先把测试程序贴出了

#include "Wire.h"


6050,我打样的板子也准备到了,到时候要研究一下到底是什么回事才行!期待更多人的参与!

lucsong 发表于 2012-5-18 17:41:51

看到这个函数我笑了
angle=atan2(aX,aY);

ppa2001 发表于 2012-5-19 23:33:42

请教下楼主,最近我也在搞这个芯片,
我 先就配置了I2C_Write( MPU6050_AW,PWR_MGMT_1,0x21);实验,但发现我只读到加速度的数值,还有温度的数值,角加速度始终是0.(我摇晃了板子)不解,看了手册,没发现角加速度有什么要开启的寄存器哈?最多是自我测试和分辨率调整·晕了~

GeMarK 发表于 2012-5-20 03:59:54

其实我一直有一个疑问,通过加速度传感器,是否可以计算出位移量?利用积分?积分运算放大器?
是不是还有某种位移量的传感芯片?

如果有位移传感芯片,能不能测试到X,Y,Z方向上位移的量呢?
(不好意思,问了个题外问题。希望有前辈能解惑。)

弘毅 发表于 2012-5-20 10:51:10

GeMarK 发表于 2012-5-20 03:59 static/image/common/back.gif
其实我一直有一个疑问,通过加速度传感器,是否可以计算出位移量?利用积分?积分运算放大器?
是不是还有 ...

加速度传感器和陀螺仪,一般用作姿态识别。位移方面现在貌似有问题。

位移如果是飞行器基本都是通过GPS,气压计等进行计算。

如果是小车之类的,基本就是通过码盘,计算轮子转了多少圈,然后通过电子罗盘,记录位移方向。

GeMarK 发表于 2012-5-20 12:54:19

本帖最后由 GeMarK 于 2012-5-20 12:56 编辑

弘毅 发表于 2012-5-20 10:51 static/image/common/back.gif
加速度传感器和陀螺仪,一般用作姿态识别。位移方面现在貌似有问题。

位移如果是飞行器基本都是通过GP ...

谢谢,那么到底惯性传感器可不可以计算出位移量呢?
{:soso_e106:}

弘毅 发表于 2012-5-20 14:20:06

GeMarK 发表于 2012-5-20 12:54 static/image/common/back.gif
谢谢,那么到底惯性传感器可不可以计算出位移量呢?

额。。。。偶是没想到啥好方法=.=可以用他检测位移量。不知道国外有没有相关论文。。。。

GeMarK 发表于 2012-5-20 17:57:14

弘毅 发表于 2012-5-20 14:20 static/image/common/back.gif
额。。。。偶是没想到啥好方法=.=可以用他检测位移量。不知道国外有没有相关论文。。。。

谢谢,虽然很疑惑,不过没关系,等到后面用arduino做这类实验的时候在慢慢研究。谢谢
:)

GIOCHEN 发表于 2012-5-21 16:04:39

MPU6050_raw.cpp:38:20: error: I2Cdev.h: No such file or directory{:soso_e127:}

GIOCHEN 发表于 2012-5-21 16:43:29

重启电脑 搞定{:soso_e183:}
页: 1 [2] 3 4 5 6 7
查看完整版本: 关于mpu6050调试