当前位置:   article > 正文

《从零开始打造固定翼飞控》arduino平台esp32-c3芯片mpu6050 卡尔曼滤波kalman_esp32 飞控

esp32 飞控

使用市面上最常用esp32c3合宙开发板无串口芯片9.9包邮
mpu6050模块
一开始按照拼夕夕官网链接I2C导致没有输出亲们按照我的来链接

GPIO08—>SDA
GPIO09—>SCL

在这里插入图片描述

需要在arduino平台安装库文件名字和版本号可以参考我截图
在这里插入图片描述
在这里插入图片描述

复制粘贴下面的代码到界面

#include <Wire.h>
#include <MPU6050.h>
#include <Kalman.h>

MPU6050 mpu;
Kalman kalmanX;
Kalman kalmanY;

unsigned long t;
void setup() {
  Serial.begin(9600);
  Wire.begin();
  mpu.initialize();
  Serial.println("MPU6050 init done");
  kalmanX.setAngle(0);
  kalmanY.setAngle(0);
}

void loop() {
  int16_t ax, ay, az, gx, gy, gz;

  mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);

  double roll = atan2(ay, az) * 180.0 / PI;
  double pitch = atan2(-ax, sqrt(ay * ay + az * az)) * 180.0 / PI;
  double kalmanRoll = kalmanX.getAngle(roll, gx, (double)(micros() - t));
  double kalmanPitch = kalmanY.getAngle(pitch, gy, (double)(micros() - t));
  t = micros();
  // double kalmanRoll = kalmanX.getAngle(roll, gx, (double)1 / 100);
  // double kalmanPitch = kalmanY.getAngle(pitch, gy, (double)1 / 100);
  Serial.print("Roll: ");
  Serial.print(kalmanRoll);
  Serial.print("\tPitch: ");
  Serial.println(kalmanPitch);
  delay(10);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

然后打开arduino自带的串口示波器
就可以看到这样的图形
放在桌子上不动的时候
在这里插入图片描述
摇摆开发板的时候
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/666634
推荐阅读
相关标签
  

闽ICP备14008679号