Arduino Nano + MPU6050 实现加速度转倾斜角度(Visuino 图形化编程)
组件清单
| 组件 | 数量 |
|---|---|
| Arduino Nano R3(或兼容板) | 1 |
| MPU-6050 六轴传感器模块(I2C) | 1 |
| 母对母杜邦线 4 根 | 1 |
软件工具
- Arduino IDE 1.6.7+
- Visuino 图形化开发环境(visuino.com)
硬件接线(I2C)
| MPU-6050 | Arduino Nano |
|---|---|
| VCC | 5V |
| GND | GND |
| SCL | A5 (SCL) |
| SDA | A4 (SDA) |
Visuino 图形化建模步骤
- 新建项目 & 选板:启动 Visuino,点击 Arduino 组件“Tools”按钮,选择“Arduino Nano”。
- 添加传感器组件:工具箱搜“6050”,拖入 Accelerometer Gyroscope MPU6000/MPU6050 I2C。
- 添加转换组件:搜“angle”,拖入 Acceleration To Angle,将加速度计的 X/Y/Z 输出批量连线到该组件的 In 端口。
- I2C 总线连接:将 MPU6050 组件的 Out 端口连到 Arduino 组件的 I2C Channel In 端口。
- 数据打包发送:添加 Packet 组件,设置 Head Marker 如
55 55;在 Packet 中添加 3 个 Binary Analog 元素,分别连接 Angle 组件的 X/Y/Z 输出;Packet Out 连至 Arduino Serial[0] In。 - 生成、编译、上传:按 F9 生成代码并自动打开 Arduino IDE,点击上传。
运行与可视化
- Visuino 中选择串口,Format 下拉选
Packet1,点击 Connect。 - 切换到 Scope 标签页,实时观测 X/Y/Z 角度波形。
- 切换到 Instruments 标签页,查看三路仪表盘指示。
原理速记
加速度计测得三轴重力分量 Ax, Ay, Az,倾斜角由反三角函数得出:
Roll (X轴) = atan2(Ay, sqrt(Ax² + Az²)) * 180/π
Pitch (Y轴) = atan2(-Ax, sqrt(Ay² + Az²)) * 180/π
Yaw (Z轴) 需磁力计融合,MPU6050 单独无法得绝对偏航角
Visuino 内部 Acceleration To Angle 组件已封装上述算法,并自动处理单位换算与滤波。
进阶提示
- 若需更高精度,可在 Visuino 中加入互补滤波器或卡尔曼滤波器组件融合陀螺仪数据。
- 波特率默认 115200,可在 Arduino 组件属性中修改。
- 完整 Visuino 项目文件(
.visuino)可从 Code 栏下载,双击直接打开修改。
制造工艺
- 树莓派+$5 I²C传感器打造温度记录仪
- BMP180 I2C 气压传感器树莓派接入指南
- 两块 Arduino 通过 Firebase 传递温湿度数据
- K30 CO₂ 传感器:室内空气质量实时监测
- DIY 数字身高仪:Arduino Nano + VL53L0X 激光测距 + OLED 显示
- DFRobot 电容指纹传感器 (ID809) 接入 Arduino/ESP8266 完整教程
- Arduino Cloud 传感器塔:温度、动作与气体监测
- 基于 Arduino Nano 的智能运动感应水枪
- 紧凑型Arduino雷达系统:HC-SR04超声波传感器配1.8英寸显示屏
- Arduino 电容式触控开关:一枚硬币点亮 LED 的极简 DIY
- 优化高精度倾角测量:加速度计基础原理
- 加速度计传感器:工作原理与应用领域