SH200Q

SH200Qは6軸IMUチップで、X、Y、Z三方向の角速度を測定するジャイロスコープとX、Y、Z三方向の加速度を測定する加速度計を含みます。

Init()

機能です:

SH200Qチップの初期化

原型関数です:

void Init()

使用例です:

#include <M5StickC.h>

void setup() {
  uint8_t c;
  M5.begin();
  M5.IMU.Init();
  M5.IMU.I2C_Read_NBytes(SH200I_ADDRESS, SH200I_WHOAMI, 1, &c);
  M5.Lcd.print("SH200Q I AM "); M5.Lcd.println(c, HEX);
}
void loop() {}

getGyroData()

機能です:

SH200Qチップの三軸ジャイロスコープデータの取得

原型関数です:

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

使用例です:

#include <M5StickC.h>

int16_t gyroX, gyroY, gyroZ;

void setup() {
  M5.begin();
  M5.IMU.Init();
}
void loop() {
  M5.IMU.getGyroData(&gyroX, &gyroY, &gyroZ);
  M5.Lcd.setCursor(0, 30);
  M5.Lcd.printf("X:%7.2f/nY:%7.2f/nZ:%7.2f mg",
                ((float)gyroX) * M5.IMU.gRes,
                ((float)gyroY) * M5.IMU.gRes,
                ((float)gyroZ) * M5.IMU.gRes);
  delay(500);
}

getAccelData()

機能です:

SH200Qチップの三軸加速度計データの取得

原型関数です:

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

使用例です:

#include <M5StickC.h>

int16_t accX, accY, accZ;

void setup() {
  M5.begin();
  M5.IMU.Init();
}
void loop() {
  M5.IMU.getAccelData(&accX, &accY, &accZ);
  M5.Lcd.setCursor(0, 45);
  M5.Lcd.printf("X:%5.2f/nY:%5.2f/nZ:%5.2f o/s",
                ((float)accX) * M5.IMU.aRes,
                ((float)accY) * M5.IMU.aRes,
                ((float)accZ) * M5.IMU.aRes);
  delay(500);
}
On This Page