pdf-icon

IMU

Init

機能です:

初期化姿勢センサです

原型関数です:

int Init()

使用例です:

#include "M5Atom.h"
void setup(){
    M5.begin(true, true, true); //清空串口缓冲区,设置串口波特率为 115200;初始化I2C;初始化LED矩阵
}

SetGyroFsr

機能です:

ジャイロスコープの感度を設定します

原型関数です:

void SetGyroFsr(Gscale scale)

パラメータです 対応値です
GFS_250DPS 0
GFS_500DPS 1
GFS_1000DPS 2
GFS_2000DPS 3

使用例です:

#include <M5Atom.h>

void setup(){
  M5.begin(true, false, true);
  M5.IMU.Init();
}

void loop(){
  M5.IMU.SetGyroFsr(M5.IMU.GFS_2000DPS);
  delay(100);
}

SetAccelFsr

機能です:

加速度計感度をつけます

原型関数です:

void SetAccelFsr(Ascale scale)

パラメータです 対応値です
AFS_2G 0
AFS_4G 1
AFS_8G 2
AFS_16G 3

使用例です:

#include <M5Atom.h>

void setup(){
  M5.begin(true, false, true);
  M5.IMU.Init();
}

void loop(){
  M5.IMU.SetAccelFsr(M5.IMU.AFS_2G);
  delay(100);
}

getAccelAdc

機能です:

加速度計の生データを読みます

原型関数です:

void getAccelAdc(int16_t* ax, int16_t* ay, int16_t* az)

使用例です:

#include "M5Atom.h"

void setup(){
  M5.begin(true, false, true);
  M5.IMU.Init();
}

int16_t x,y,z;

void loop(){
  M5.IMU.getAccelAdc(&x,&y,&z);
  Serial.printf("Ax:%d Ay:%d Az:%d/n",x ,y,z);
  delay(100);
}

getGyroAdc

機能です:

ジャイロスコープの生データを読み取ります

原型関数です:

void getGyroAdc(int16_t* gx, int16_t* gy, int16_t* gz)

使用例です:

#include "M5Atom.h"

void setup(){
  M5.begin(true, false, true);
  M5.IMU.Init();
}

int16_t x,y,z;

void loop(){
  M5.IMU.getGyroAdc(&x,&y,&z);
  Serial.printf("Gx:%d Gy:%d Gz:%d/n",x ,y,z);
  delay(100);
}

getTempAdc

機能です:

キーの状態を読み取ります。

原型関数です:

void getTempAdc(int16_t *t)

使用例です:

void M5Atom::update()
{
    M5.Btn.read();
}

getAccelData

機能です:

三軸加速度計の値を読み取ります

原型関数です:

void getAccelData(float* ax, float* ay, float* az)

使用例です:

#include "M5Atom.h"

void setup(){
  M5.begin(true, false, true);
  M5.IMU.Init();
}

float accX = 0.0F;
float accY = 0.0F;
float accZ = 0.0F;

void loop(){
  M5.IMU.getAccelData(&accX,&accY,&accZ);
  Serial.printf("accX,   accY,  accZ/n");
  Serial.printf("%5.2f  %5.2f  %5.2f G/n", accX, accY, accZ);
  delay(100);
}

getGyroData

機能です:

3軸ジャイロの値を読み取ります

原型関数です:

void getGyroData(float* gx, float* gy, float* gz)

使用例です:

#include "M5Atom.h"

void setup(){
  M5.begin(true, false, true);
  M5.IMU.Init();
}

float gyroX = 0.0F;
float gyroY = 0.0F;
float gyroZ = 0.0F;

void loop(){
  M5.IMU.getGyroData(&gyroX,&gyroY,&gyroZ);
  Serial.printf("gyroX,  gyroY, gyroZ/n");
  Serial.printf("%6.2f %6.2f%6.2f o/s/n", gyroX, gyroY, gyroZ);
  delay(100);
}

getTempData

機能です:

センサーの温度を読み取ります

原型関数です:

void getTempData(float *t)

使用例です:

#include "M5Atom.h"

void setup(){
  M5.begin(true, false, true);
  M5.IMU.Init();
}

float temp = 0.0F;

void loop(){
  M5.IMU.getTempData(&temp);
  Serial.printf("Temperature : %.2f C/n", temp);
  delay(100);
}

getAttitude

機能です:

姿勢を読み取ります

原型関数です:

void getAttitude(double *pitch, double *roll)

使用例です:

#include "M5Atom.h"

void setup(){
  M5.begin(true, false, true);
  M5.IMU.Init();
}

double pitch, roll;
double r_rand = 180 / PI;

void loop(){
  M5.IMU.getAttitude(&pitch, &roll);
  double arc = atan2(pitch, roll) * r_rand + 180;
  double val = sqrt(pitch * pitch + roll * roll);
  Serial.printf("%.2f, %.2f, %.2f, %.2f/n", pitch, roll, arc, val);  //serial port output the formatted string
  delay(100);
}

getAhrsData

機能です:

姿勢を読み取ります

原型関数です:

void getAhrsData(float *pitch,float *roll,float *yaw)

使用例です:

#include "M5Atom.h"

float pitch, roll, yaw; //Stores attitude related variables.  存储姿态相关变量

void setup(){
  M5.begin(true, false, true);
  M5.IMU.Init();
}

void loop(){
  M5.IMU.getAhrsData(&pitch,&roll,&yaw);
  Serial.printf("pitch:%.2f, roll:%.2f, yaw:%.2f", pitch,roll,yaw);
  delay(100);
}
On This Page