(SKU:RB-02S073)LSM9DS0- 9軸姿態(tài)傳感器

來自ALSROBOT WiKi
2015年10月9日 (五) 11:22Arduino77討論 | 貢獻(xiàn)的版本

跳轉(zhuǎn)至: 導(dǎo)航、 搜索
9zzt.jpg

目錄

產(chǎn)品概述

LSM9DS0-9軸姿態(tài)傳感器選用的是LSM9DS0芯片,它是一種可實(shí)現(xiàn)動(dòng)作感應(yīng)的系統(tǒng)芯片,里面包括了一個(gè)3軸加速計(jì),一個(gè)3軸陀螺儀和一個(gè)3軸磁力計(jì)。在LSM9DS0中,每種傳感器都有良好的檢測(cè)范圍:LSM9DS0線性加速滿量程為±2g/±4g/±6g/±8g/±16g;磁場(chǎng)滿量程為±2 /±4 /±8 /±12高斯;陀螺儀滿量程為±245 /±500 /±2000°/S。9軸姿態(tài)傳感器還包含了I2C串行總線接口,支持標(biāo)準(zhǔn)和快速模式(100 kHz和400 kHz)及SPI串行接口標(biāo)準(zhǔn)。

規(guī)格參數(shù)

  1. 模擬電源電壓范圍:2.4V~3.6V
  2. 3軸加速度計(jì):±2/±4/±6/±8/±16 g
  3. 3軸陀螺儀:±245/±500/±2000°/S
  4. 3軸磁力計(jì):±2/±4/±8/±12高斯
  5. 16位的數(shù)據(jù)輸出
  6. SPI/ I2C串行接口
  7. 嵌入式FIFO(先入先出的隊(duì)列);
  8. 可編程中斷發(fā)生
  9. 嵌入式自測(cè)試
  10. 嵌入式溫度傳感器
  11. 尺寸大?。?3.302cm x 1.524cm
  12. 重量大小:10g

使用方法

引腳定義

9軸姿態(tài)傳感器 引腳定義
CSG 陀螺儀芯片操作方式選擇引腳
CSXM 加速度芯片操作方式選擇引腳
SDOG 地址選擇引腳
SDOX SPI模式輸出陀螺儀數(shù)據(jù)
SCL 信號(hào)時(shí)鐘引腳
SDA 數(shù)據(jù)引腳
VDD 電源正極
GND 電源地
DEN 陀螺儀數(shù)據(jù)使能引腳
INTG 陀螺儀可編程中斷
DRDYG 陀螺儀數(shù)據(jù)準(zhǔn)備引腳
INT1XM 加速度中斷1
INT2XM 加速度中斷2


連接圖示

首先需要安裝一下LSM9DS0的Arduino庫,然后圖中右側(cè)的小紅色芯片為電平轉(zhuǎn)換芯片。

9軸姿態(tài)傳感器 Arduino
CSG、CSXM、SDOG、SDOXM、DEN、INTG 不接
SCL SCL
SDA SDA
VDD 3.3V
GND GND
DRDYG D4
INT1XM D2
INT2XM D3


9zzt1.jpg

應(yīng)用例程

示例代碼

庫文件官方下載地址

#include <SPI.h> 
#include <Wire.h>
#include <SFE_LSM9DS0.h>
#define LSM9DS0_XM  0x1D 
#define LSM9DS0_G   0x6B 
LSM9DS0 dof(MODE_I2C, LSM9DS0_G, LSM9DS0_XM);
#define PRINT_CALCULATED
#define PRINT_SPEED 500
void setup()
{
  Serial.begin(115200); 
  uint16_t status = dof.begin();
  Serial.print("LSM9DS0 WHO_AM_I's returned: 0x");
  Serial.println(status, HEX);
  Serial.println("Should be 0x49D4");
  Serial.println();
}

void loop()
{
  printGyro();  // Print "G: gx, gy, gz"
  printAccel(); // Print "A: ax, ay, az"
  printMag();   // Print "M: mx, my, mz"
  printHeading((float) dof.mx, (float) dof.my);
  printOrientation(dof.calcAccel(dof.ax), dof.calcAccel(dof.ay), 
                   dof.calcAccel(dof.az));
  Serial.println();
  
  delay(PRINT_SPEED);
}

void printGyro()
{
  dof.readGyro();
  Serial.print("G: ");
#ifdef PRINT_CALCULATED
  Serial.print(dof.calcGyro(dof.gx), 2);
  Serial.print(", ");
  Serial.print(dof.calcGyro(dof.gy), 2);
  Serial.print(", ");
  Serial.println(dof.calcGyro(dof.gz), 2);
#elif defined PRINT_RAW
  Serial.print(dof.gx);
  Serial.print(", ");
  Serial.print(dof.gy);
  Serial.print(", ");
  Serial.println(dof.gz);
#endif
}

void printAccel()
{
  dof.readAccel();
  Serial.print("A: ");
#ifdef PRINT_CALCULATED
  Serial.print(dof.calcAccel(dof.ax), 2);
  Serial.print(", ");
  Serial.print(dof.calcAccel(dof.ay), 2);
  Serial.print(", ");
  Serial.println(dof.calcAccel(dof.az), 2);
#elif defined PRINT_RAW 
  Serial.print(dof.ax);
  Serial.print(", ");
  Serial.print(dof.ay);
  Serial.print(", ");
  Serial.println(dof.az);
#endif

}

void printMag()
{
  dof.readMag();
  Serial.print("M: ");
#ifdef PRINT_CALCULATED
  Serial.print(dof.calcMag(dof.mx), 2);
  Serial.print(", ");
  Serial.print(dof.calcMag(dof.my), 2);
  Serial.print(", ");
  Serial.println(dof.calcMag(dof.mz), 2);
#elif defined PRINT_RAW
  Serial.print(dof.mx);
  Serial.print(", ");
  Serial.print(dof.my);
  Serial.print(", ");
  Serial.println(dof.mz);
#endif
}
void printHeading(float hx, float hy)
{
  float heading;
  
  if (hy > 0)
  {
    heading = 90 - (atan(hx / hy) * (180 / PI));
  }
  else if (hy < 0)
  {
    heading = - (atan(hx / hy) * (180 / PI));
  }
  else // hy = 0
  {
    if (hx < 0) heading = 180;
    else heading = 0;
  }
  
  Serial.print("Heading: ");
  Serial.println(heading, 2);
}
void printOrientation(float x, float y, float z)
{
  float pitch, roll;  
  pitch = atan2(x, sqrt(y * y) + (z * z));
  roll = atan2(y, sqrt(x * x) + (z * z));
  pitch *= 180.0 / PI;
  roll *= 180.0 / PI;
  Serial.print("Pitch, Roll: ");
  Serial.print(pitch, 2);
  Serial.print(", ");
  Serial.println(roll, 2);
}

程序效果

下載完程序,然后打開串口監(jiān)視器,將波特率調(diào)到115200,然后按照顯示的內(nèi)容輸入相應(yīng)數(shù)字進(jìn)行功能選擇,可以觀察到多種數(shù)據(jù)。

RB-02S0731.jpg

產(chǎn)品相關(guān)推薦

Erweima.png

產(chǎn)品購買地址

9軸姿態(tài)傳感器

周邊產(chǎn)品推薦

Arduino 9 Axes Motion Shield 9軸運(yùn)動(dòng)擴(kuò)展板

相關(guān)問題解答

Arduino 9 Axes Motion Shield 9軸運(yùn)動(dòng)擴(kuò)展板 三軸加速度計(jì)

相關(guān)學(xué)習(xí)資料

產(chǎn)品應(yīng)用視頻 電路原理圖
數(shù)據(jù)表(lmv324)
安裝指南
GitHub(設(shè)計(jì)文件)
奧松機(jī)器人技術(shù)論壇