esp32 mpu9250数据获取

做这个的目地是获取mpu9250数据

按键处理按键按下 mcu暂停读取数据两秒 在loop 循环里面开始就是结束结束就是开始

用到这几库

//============================================
//mpu9250 配置
#include "MPU9250.h"
// an MPU9250 object with the MPU-9250 sensor on I2C bus 0 with address 0x68
MPU9250 IMU(Wire,0x68);
int status;
//scl sdc pin22 pin21
//============================================
#include "OneButton.h" //引入头文件
#define BTN 0 //默认按键
OneButton button(BTN, true); //实例化一个OneButton对象
void click()
{    
    delay(1000); 
    Serial.println("Stop");
    delay(1000);    
}
//============================================
void setup() {
  //============================================
  // serial to display data
  Serial.begin(115200);
  //============================================
  button.setClickTicks(500);//设置单击时间
  button.attachClick(click);//关联单击事件
  //============================================
  while(!Serial) {}
  // start communication with IMU 
  status = IMU.begin();
  if (status < 0) {
    Serial.println("IMU initialization unsuccessful");
    Serial.println("Check IMU wiring or try cycling power");
    Serial.print("Status: ");
    Serial.println(status);
    while(1) {}
  }
  // setting the accelerometer full scale range to +/-8G 
  IMU.setAccelRange(MPU9250::ACCEL_RANGE_8G);
  // setting the gyroscope full scale range to +/-500 deg/s
  IMU.setGyroRange(MPU9250::GYRO_RANGE_500DPS);
  // setting DLPF bandwidth to 20 Hz
  IMU.setDlpfBandwidth(MPU9250::DLPF_BANDWIDTH_20HZ);
  // setting SRD to 19 for a 50 Hz update rate
  IMU.setSrd(19); 
}
void Rmpu9650(){
   // read the sensor
  IMU.readSensor();
  // display the data
  Serial.print("AccX:");
  Serial.print(IMU.getAccelX_mss(),6);
  Serial.print("\t");
  Serial.print("AccY:");
  Serial.print(IMU.getAccelY_mss(),6);
  Serial.print("\t");
  Serial.print("AccZ:");
  Serial.print(IMU.getAccelZ_mss(),6);
  Serial.print("\t");
  Serial.print("GyroX:");
  Serial.print(IMU.getGyroX_rads(),6);
  Serial.print("\t");
  Serial.print("GyroY:");
  Serial.print(IMU.getGyroY_rads(),6);
  Serial.print("\t");
  Serial.print("GyroZ:");
  Serial.print(IMU.getGyroZ_rads(),6);
  Serial.print("\t");
//  Serial.print(IMU.getMagX_uT(),6);
//  Serial.print("\t");
//  Serial.print(IMU.getMagY_uT(),6);
//  Serial.print("\t");
//  Serial.print(IMU.getMagZ_uT(),6);
//  Serial.print("\t");
  Serial.print("T:");
  Serial.println(IMU.getTemperature_C(),6);
  delay(20);
  }
void loop() {
  Rmpu9650();
  button.tick();//监视按钮
}

数据显示

先到这里吧简单的到这里先,构思下上位机程序准备做数据处理 每个动作执行后的。

posted @ 2022-12-15 15:27  Yang-blackSun  阅读(13)  评论(0编辑  收藏  举报  来源
1 3