1. 程式人生 > >openCR-獲取IMU加速度值

openCR-獲取IMU加速度值

/*
  Range(取值範圍)   : +/- 2 g
  Scale(比例換算)   : 16384 = 1 g
  單位:牛頓
 */
 
//IUM感測器標頭檔案
//此程式碼主要測試IMU的加速度感測器的數值
#include <IMU.h>

cIMU    IMU;

//埠定義
uint8_t   led_tog = 0;
uint8_t   led_pin = 13;

void setup()
{
//設定的波特率為115200
  Serial.begin(115200);

  IMU.begin();
//定義led_pin埠(pin13腳)為輸出
  pinMode( led_pin, OUTPUT );
}

void loop()
{
  static uint32_t tTime[3];
  static uint32_t imu_time = 0;

//500ms交替閃爍
  if( (millis()-tTime[0]) >= 500 )
  {
//mills()函式返回以毫秒錶示的時間
    tTime[0] = millis();

    digitalWrite( led_pin, led_tog );
//LED管腳取反
    led_tog ^= 1;
  }

//micros()函式返回以微秒錶示的時間
  tTime[2] = micros();
//IMU呼叫update函式反應時間
  if( IMU.update() > 0 ) 
  imu_time = micros()-tTime[2];


//間隔50ms傳送一次資料
  if( (millis()-tTime[1]) >= 50 )
  {
//mills()函式返回以毫秒錶示的時間
    tTime[1] = millis();

    Serial.print(imu_time);
    Serial.print(" \t");
    Serial.print(IMU.accRaw[0]);    // ACC X
    Serial.print(" \t");
    Serial.print(IMU.accRaw[1]);    // ACC Y
    Serial.print(" \t");
    Serial.print(IMU.accRaw[2]);    // ACC Z
    Serial.println(" ");
  }
}

  結果: