极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: lucsong

关于mpu6050调试

  [复制链接]
 楼主| 发表于 2012-5-15 10:38:27 | 显示全部楼层
本帖最后由 lucsong 于 2012-5-15 10:40 编辑

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

使用道具 举报

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

使用道具 举报

发表于 2012-5-15 13:54:48 | 显示全部楼层
lucsong 发表于 2012-5-15 10:48
对了还有,现在虽然读数对了。可是要换算到自带角就比较麻烦。要牵扯到卡尔曼滤波。不知道有没有朋友有。ar ...

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

使用道具 举报

 楼主| 发表于 2012-5-15 22:30:35 | 显示全部楼层
先把测试程序贴出了
  1. #include "Wire.h"
  2. #include "I2Cdev.h"
  3. #include "MPU6050.h"
  4. MPU6050 accelgyro;

  5. int16_t ax, ay, az;
  6. int16_t gx, gy, gz;

  7. bool blinkState = false;

  8. void setup() {
  9.    
  10.     Wire.begin();
  11.     Serial.begin(38400);
  12.    
  13.     accelgyro.initialize();
  14.    
  15.    
  16. }

  17. void loop() {
  18.    
  19.     accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
  20.     Serial.print("a/g:\t");
  21.     Serial.print(ax/[color=Red]8192[/color]); Serial.print("\t");
  22.     Serial.print(ay/[color=Red]8192[/color]); Serial.print("\t");
  23.     Serial.print(az/[color=Red]8192[/color]); Serial.print("\t");
  24.     Serial.print(gx/[color=Red]65.5[/color]); Serial.print("\t");
  25.     Serial.print(gy/[color=Red]65.5[/color]); Serial.print("\t");
  26.     Serial.println(gz/[color=Red]65.5[/color]);
  27.     blinkState = !blinkState;

  28. }
复制代码
大家看我付的两张表格中的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受温度的影响精度相差比较大。
以上就是我调试的结果。大家试试。我也是初学菜鸟说的不对的地方希望各位指正。谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2012-5-15 23:12:25 | 显示全部楼层
占座 我的 mpu6050 马上也要到了

学习先
回复 支持 反对

使用道具 举报

发表于 2012-5-16 09:13:21 | 显示全部楼层
lucsong 发表于 2012-5-15 22:30
先把测试程序贴出了

#include "Wire.h"

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

使用道具 举报

 楼主| 发表于 2012-5-18 17:41:51 | 显示全部楼层
看到这个函数我笑了
angle=atan2(aX,aY);
回复 支持 反对

使用道具 举报

发表于 2012-5-19 23:33:42 | 显示全部楼层
请教下楼主,最近我也在搞这个芯片,
我 先就配置了I2C_Write( MPU6050_AW,PWR_MGMT_1,0x21);实验,但发现我只读到加速度的数值,还有温度的数值,角加速度始终是0.(我摇晃了板子)不解,看了手册,没发现角加速度有什么要开启的寄存器哈?最多是自我测试和分辨率调整·晕了~
回复 支持 反对

使用道具 举报

发表于 2012-5-20 03:59:54 | 显示全部楼层
其实我一直有一个疑问,通过加速度传感器,是否可以计算出位移量?利用积分?积分运算放大器?
是不是还有某种位移量的传感芯片?

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

使用道具 举报

发表于 2012-5-20 10:51:10 | 显示全部楼层
GeMarK 发表于 2012-5-20 03:59
其实我一直有一个疑问,通过加速度传感器,是否可以计算出位移量?利用积分?积分运算放大器?
是不是还有 ...

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

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

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

使用道具 举报

发表于 2012-5-20 12:54:19 | 显示全部楼层
本帖最后由 GeMarK 于 2012-5-20 12:56 编辑
弘毅 发表于 2012-5-20 10:51
加速度传感器和陀螺仪,一般用作姿态识别。位移方面现在貌似有问题。

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


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

使用道具 举报

发表于 2012-5-20 14:20:06 | 显示全部楼层
GeMarK 发表于 2012-5-20 12:54
谢谢,那么到底惯性传感器可不可以计算出位移量呢?

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

使用道具 举报

发表于 2012-5-20 17:57:14 | 显示全部楼层
弘毅 发表于 2012-5-20 14:20
额。。。。偶是没想到啥好方法=.=可以用他检测位移量。不知道国外有没有相关论文。。。。

谢谢,虽然很疑惑,不过没关系,等到后面用arduino做这类实验的时候在慢慢研究。谢谢
回复 支持 反对

使用道具 举报

发表于 2012-5-21 16:04:39 | 显示全部楼层
MPU6050_raw.cpp:38:20: error: I2Cdev.h: No such file or directory{:soso_e127:}
回复 支持 反对

使用道具 举报

发表于 2012-5-21 16:43:29 | 显示全部楼层
重启电脑 搞定{:soso_e183:}
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 23:06 , Processed in 0.052714 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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