25.加速度传感器

一、功能以及原理

MPU6050 IMU 在单芯片上集成了一个 3 轴加速度计和一个 3 轴陀螺仪。陀螺仪沿 X、Y 和 Z 轴测量角位置随时间的旋转速度或变化率。它使用 MEMS 技术科里奥利效应进行测量。陀螺仪的输出以每秒度数为单位,因此为了获得角度位置,我们只需要对角速度进行积分。

二、引脚介绍以及对应开发板可用引脚

针脚
可连接引脚
功能
VCC
5V
提供工作电压
GND
GND
GND
SCL
SCL(A5)
输出时钟信号
SDA
SDA(A4)
I2C数据线,用于在主控器和MPU6050之间双向传输数据(如加速度原始数据、寄存器配置等)
XDA
暂无
作为MPU6050的辅助I2C数据线,用于与外部从设备(如磁力计)进行通信。
XCL
暂无
作为辅助I2C的时钟线,与XDA配合,为外部从设备提供同步时钟信号。
ADO
VCC或GND
决定MPU6050的I2C从设备地址,避免总线冲突。
INT
数字引脚
输出中断信号,通知主控器特定事件(如数据就绪、运动检测等)。

三、代码控制(如何使用文本代码或图形化代码控制)

在 AI Lab 平台中,图形化 ADO 默认为 LOW,ADO 针脚接地即可,下面提供一个示例代码。

3.1 文本代码

#include <Wire.h>
#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>

Adafruit_MPU6050 mpu;

void setup() {
  Serial.begin(9600);
  mpu.begin();
  mpu.setAccelerometerRange(MPU6050_RANGE_8_G);
  mpu.setGyroRange(MPU6050_RANGE_500_DEG);
  mpu.setFilterBandwidth(MPU6050_BAND_260_HZ);

}

void loop() {
    sensors_event_t a, g, temp;
    mpu.getEvent(&a, &g, &temp);
    Serial.print("X加速度为:");
    Serial.println(a.acceleration.x);
    Serial.print("Y加速度为:");
    Serial.println(a.acceleration.y);
    Serial.print("Z加速度为:");
    Serial.println(a.acceleration.z);
    Serial.print("X旋转为:");
    Serial.println(g.gyro.x);
    Serial.print("X旋转为:");
    Serial.println(g.gyro.y);
    Serial.print("X旋转为:");
    Serial.println(g.gyro.z);
    delay(1 * 1000);

}

3.2 图形化代码

可在“传感器”中的“加速度传感器”,找到相关图形化代码。

图形化代码已经封装初始化操作,直接调用即可。

3.3 结果

编写完控制程序,模拟运行后,单击元器件能够修改传感器感知数值

四、相关案例演示

正在开发中

五、相关课程链接

正在开发中

results matching ""

    No results matching ""