← Swipe for prev/next tutorial →
intermediate Level

高度计解密

读取气压计数据,计算真实高度,并实现更精准的定高功能。

⏱️ 1.5 小时 📋 完成项目 02

概述

气压计是无人机定高功能的核心传感器。在本项目中,你将学习如何读取气压计数据,计算真实高度,并实现更精准的定高功能。

你将学到什么

  • 气压计工作原理
  • 高度计算方法
  • 数据滤波技术
  • 死区控制

所需材料

物品数量说明
ESP32 无人机1已组装完成
BMP280 气压计模块1测量气压和高度
串口调试助手1serial_debug.exe

步骤 1:硬件接线

将 BMP280 连接到 ESP32:

BMP280ESP32
VCC3.3V
GNDGND
SCLGPIO 22
SDAGPIO 21

步骤 2:打开项目

解压 barometer.zip,用 VS Code 打开。

步骤 3:修改气压校准

打开 sensors_bmp280.c,找到 bmp280_init 函数:

void bmp280_init(void) {
  // ... 初始化代码 ...
  p0 = 101325; // 海平面气压(Pa)
}

用手机天气 APP 查询当地当前气压(如 100800 Pa),修改 p0

p0 = 100800; // 当地当前气压

步骤 4:编译烧录

编译烧录代码,打开串口调试助手,观察数据:

  • 静止时,气压值应稳定
  • 上下移动无人机,高度值应随之变化

步骤 5:优化定高功能

打开 altitude_hold.c,添加”高度保持死区”:

if (fabs(current_altitude - target_altitude) < 0.1) {
  // 高度差小于 0.1 米,不调整
  return;
}

步骤 6:测试

设置目标高度 1 米,观察无人机是否能稳定保持。

故障排除

高度数据波动大

  • 添加低通滤波器
  • 检查传感器连接

高度计算不准确

  • 校准当地气压值
  • 检查温度补偿

成就感

恭喜你!你已经掌握了气压计的使用方法,实现了精准的定高功能!

下一步

在下一个项目中,你将学习如何读取 IMU 数据,用互补滤波算法计算无人机姿态。

继续项目 04:姿态魔术师 →

← 教程