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();//监视按钮
}

数据显示

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

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值