pdf-icon

Arduino 上手教程

StickC SH200Q IMU 姿态传感器

SH200Q 是一款 6 轴 IMU 芯片,包括测量 X, Y, Z 三个方向角速度值的陀螺仪和测量 X, Y, Z 三个方向加速度的加速度计

Init()

功能说明:

初始化 SH200Q 芯片

函数原型:

void Init()

案例程序:

cpp
1 2 3 4 5 6 7 8 9 10
#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)

案例程序:

cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#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)

案例程序:

cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#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