教程五 IMU数据读取例程

来自Waveshare Wiki
跳转至: 导航搜索

各模块使用教程

IMU数据读取

General Driver for Robots板载9轴IMU,可读取驱动板自身位置数据,以下提供IMU数据读取程序。

例程

上传程序

下载压缩包后打开9DOF_Demo.ino,用USB线将多功能驱动板和计算机连接起来(此处插入的是多功能驱动板USB的Type-C接口),点击“工具”→“端口”,再点击新出现的COM(我这里新出现的COM为COM26)。
五1.png
在Arduino IDE中,点击“工具”→“开发板”→“ESP32”→“ESP32 Dev Module”。开发板以及端口都选择好后上传程序。上传程序后,再打开Arduino IDE的串口监视器即可读取IMU数据,转动驱动板时数据会改变。
五2.png五3.png

程序解析

#include"IMU.h"

int   IMU_Roll = 100;
int   IMU_Pitch = 100;
int   IMU_Yaw = 100;
int   IMU_Temp = 100;

IMU_ST_ANGLES_DATA stAngles;
IMU_ST_SENSOR_DATA stGyroRawData;
IMU_ST_SENSOR_DATA stAccelRawData;
IMU_ST_SENSOR_DATA stMagnRawData;

void getIMU(){
  imuDataGet( &stAngles, &stGyroRawData, &stAccelRawData, &stMagnRawData);
  IMU_Temp = QMI8658_readTemp();
  IMU_Roll  = stAngles.fRoll;
  IMU_Pitch = stAngles.fPitch;
  IMU_Yaw   = stAngles.fYaw;
}

void DOF(){
  Serial.print("R:");
  Serial.println(IMU_Roll);
  Serial.print("P:");
  Serial.println(IMU_Pitch);
  Serial.print("Y:");
  Serial.println(IMU_Yaw);
  Serial.print("T:");
  Serial.println(IMU_Temp);

}

void setup() {

  Serial.begin(115200);
  while(!Serial){}
  imuInit();
} 


void loop() {
  getIMU();
  DOF();
  delay(1000);
}

资料