跳转到内容

高度计解密

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

  • 气压计工作原理
  • 高度计算方法
  • 数据滤波技术
  • 死区控制
物品数量说明
ESP32 无人机1已组装完成
BMP280 气压计模块1测量气压和高度
串口调试助手1serial_debug.exe

将 BMP280 连接到 ESP32:

BMP280ESP32
VCC3.3V
GNDGND
SCLGPIO 22
SDAGPIO 21

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

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

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

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

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

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

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

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

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

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

  • 添加低通滤波器
  • 检查传感器连接
  • 校准当地气压值
  • 检查温度补偿

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

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