一、元器件介绍

  

NanoFramework操作ESP32(一)_基础元器件篇(三十一)_ MPU6050陀螺仪模块_加速度计

  MPU-6050是InvenSense公司生产的一款六轴运动处理器,集成了3轴加速度计和3轴陀螺仪;内置的数字运动处理器(DMP)可以实现高级运动处理功能,如六轴运动融合、姿态估计等。这款传感器广泛应用于运动控制和测量领域,如无人机、智能手机、运动手环等。

  • 通信接口:I2C(双线串行接口)
  • 测量范围

    加速度计测量范围:±2g、±4g、±8g、±16g(可配置)
    加速度计灵敏度:16384 LSB/g(±2g)、8192 LSB/g(±4g)、4096 LSB/g(±8g)、2048 LSB/g(±16g)
    陀螺仪测量范围:±250°/s、±500°/s、±1000°/s、±2000°/s(可配置)
    陀螺仪灵敏度:131 LSB/°/s(±250°/s)、65.5 LSB/°/s(±500°/s)、32.8 LSB/°/s(±1000°/s)、16.4 LSB/°/s(±2000°/s)

  • 分辨率

    加速度计:16位ADC(模拟数字转换器)
    陀螺仪:16位ADC

  • 自带一个数字温度传感器,用于自身温度检查;
  • 可程序控制的中断(interrupt),支持姿势识别、摇摄、画面放大缩小、滚动、快速下降中断、high-G 中断、零动作感应、触击感应、摇动感应功能。

  

NanoFramework操作ESP32(一)_基础元器件篇(三十一)_ MPU6050陀螺仪模块_引脚_02

1、针脚用途

编号

名称

功能

1

VCC

电源正

2

GND

电源地

3

SCL

IIC通讯时钟引脚

4

SDA

IIC通讯数据引脚

5

XDA

外接IIC设备数据引脚

6

XCL

外接IIC设备时钟引脚

7

ADD

IIC从地址LSB

8

INT

用于指示数据准备就绪的中断引脚

二、示例代码

1、代码:

mpu6050元器件的针脚

ESP32模块的针脚

VCC(红色)

3V3

GND(黑色)

GND

SCL(绿色)

IO22;Output

SDA(黄色)

IO21;Input

XDA

 

XCL

 

ADD

 

INT

 

var gyroData = mpu6050Gyroscope.GetGyroscopeReading();  // 获取角速度
 var accData = mpu6050Gyroscope.GetAccelerometer();      // 获取加速度
 var tempData = mpu6050Gyroscope.GetTemperature();       // 获取芯片温度

 Debug.WriteLine($"角速度:GYRO_X:{gyroData.X}; GYRO_Y:{gyroData.Y}; GYRO_Z:{gyroData.Z};");
 Debug.WriteLine($"加速度:ACCEL_X:{accData.X}; ACCEL_Y:{accData.Y}; ACCEL_Z:{accData.Z};");
 Debug.WriteLine($"芯片温度:{tempData.Value}");
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
2、计算欧拉角

  Euler欧拉角(姿态角):机体坐标系与地面坐标系的关系是三个角,反应了飞机相对地面的姿态:

  • 横滚角Φ(roll):绕X轴旋转。横滚角是指运载体横轴与水平线之间的夹角。也叫滚转角,代表运载体绕纵轴的转动,绕纵轴轴向顺时针转动为正,否则为负,可以想象成飞机做翻滚运动。
  • 俯仰角θ(pitch):绕Y轴旋转。机体坐标系x轴与水平面的夹角,俯仰角在水平面上面为正,否则为负,可以想象成飞机抬头向上与俯冲向下。
  • 偏航角ψ(yaw):绕Z轴旋转。相对于纵轴的旋转角度,改变偏航角可以改变飞机的飞行方向,机头往右为正,这个跟平时开车,左转弯右转弯一样
// 欧拉角:航向角(yaw)、横滚角(roll)和俯仰角(pitch)
 q0=quat[0] / q30; //q30 格式转换为浮点数 
 q1=quat[1] / q30; 
 q2=quat[2] / q30; 
 q3=quat[3] / q30; 
 //计算得到俯仰角/横滚角/航向角 
 pitch=asin(-2 * q1 * q3 + 2 * q0* q2)* 57.3; //俯仰角 
 roll=atan2(2 * q2 * q3 + 2 * q0 * q1, -2 * q1 * q1 - 2 * q2* q2 + 1)* 57.3; //横滚角 
 yaw=atan2(2*(q1*q2 + q0*q3),q0*q0+q1*q1-q2*q2-q3*q3) * 57.3; //航向角
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

  

作者:꧁执笔小白꧂