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 结果
编写完控制程序,模拟运行后,单击元器件能够修改传感器感知数值


四、相关案例演示
正在开发中
五、相关课程链接
正在开发中