Xadow IMU 6DOF 6轴运动处理模块

From Wiki
Jump to: navigation, search

产品简介

Xadow IMU 6DOF是一款运动处理模块。它集成了全球首例6轴运动处理传感器MPU6050,MPU6050传感器内部组合了一个三轴加速度和一个三轴陀螺仪,还有一个可扩展的数字运动处理器DMP,可连接一个第三方的数字传感器,并且对加速度和陀螺仪分别用了三个16位的ADC,可以实现很高的转换精度。为了精确跟踪快速和慢速的运动,用户可自己选择传感器的测量范围。


300px-Imu 6dof 01.jpg


规格参数

工作电压:3.3V 陀螺仪测量范围:±250,. ±500,. ±1000,. ±2000°/秒 加速度测量范围:±2g,. ±4g,. ±8g,. ±16g 控制方式:I2C 外形尺寸: 25.43mm x 20.35mm 应用示例

利用我们现成的库文件,可以很方便地了解到当前的加速度值和角速度值。下面我们就来演示如何操作。 硬件连接: Picture 测试代码: 从Github 上下载[Xadow - IMU 6DOF https://github.com/Seeed-Studio/Xadow_IMU_6DOF 库文件],并将文件夹中的I2Cdev文件和MPU6050文件安装到你的Arduino Library路径下。关于库文件的安装方法,请查考wiki首页的Arduino库文件的安装. 通过路径File - >Examples -> MPU6050 ->Examples->MPU6050_DMP6,打开例程MPU6050_DMP6。

  1. include <I2Cdev.h>//add neccesary headfiles
  2. include <MPU6050.h>//add neccesary headfiles
  3. include <Wire.h>

//====the offset of gyro===========

  1. define Gx_offset -1.50
  2. define Gy_offset 0
  3. define Gz_offset 0.80

//====the offset of accelerator===========

  1. define Ax_offset -0.07
  2. define Ay_offset 0.02
  3. define Az_offset 0.14

//==================== MPU6050 accelgyro;

int16_t ax,ay,az;//original data; int16_t gx,gy,gz;//original data; float Ax,Ay,Az;//Unit g(9.8m/s^2) float Gx,Gy,Gz;//Unit deg/s


void setup() {

 Wire.begin();
 Serial.begin(9600);

 Serial.println("Initializing I2C device.....");
 accelgyro.initialize();
 
 Serial.println("Testing device connections...");
 Serial.println(accelgyro.testConnection() ? "MPU6050 connection successful":"MPU6050 connection failure");

} void loop() {

 accelgyro.getMotion6(&ax,&ay,&az,&gx,&gy,&gz);//get the gyro and accelarator   
  //==========accelerator================================
  Ax=ax/16384.00;//to get data of unit(g)
  Ay=ay/16384.00;//to get data of unit(g)
  Az=az/16384.00;//to get data of unit(g)
  Serial.println("Acce data.....");
  Serial.print(Ax+Ax_offset);
  Serial.print("   ");
  Serial.print(Ay+Ay_offset);
  Serial.print("   ");
  Serial.println(Az+Az_offset);
  //===============gyro================================
  Gx=gx/131.00;
  Gy=gy/131.00;
  Gz=gz/131.00;
  Serial.println("Gyro data.....");
  Serial.print(Gx+Gx_offset);
  Serial.print("   ");
  Serial.print(Gy+Gy_offset);
  Serial.print("   ");
  Serial.println(Gz+Gz_offset);
 //blinkState=!blinkState;
 //digitalWrite(LED_PIN,blinkState); 
 delay(1000);//control time of sampling

} 上传代码到Xadow主板。上传代码前记得选择板子类型为Seeeduino Xadow。打开串口,可以看到传感器的输出结果。

静止状态时,传感器Z轴的加速度应该是0.98g左右,可以以此来检测你的传感器是否可以正常工作。 轴向定位 下图标明了传感器的参考坐标系(XYZ组成右手系)以及3个测量轴的旋转方向。


MPU6050 轴向定位.png


File:MPU6050.pdf