BetaFlight代码解析(7)— 传感器系统

介绍

本页面介绍了Betaflight固件中的传感器系统。传感器系统负责收集和处理来自各种硬件传感器的数据,从而向飞行控制器提供有关其姿态、运动、位置和电源状态的信息。传感器数据是飞行稳定、导航功能和状态报告的基础。

Betaflight的传感器系统包括:

  1. 陀螺仪系统——测量角速度(旋转速率)
  2. 加速度计系统- 测量线性加速度
  3. 磁力计(罗盘)系统- 提供航向信息
  4. 气压计系统——测量大气压力以估算海拔高度
  5. GPS系统——提供位置、速度和海拔信息
  6. 电池监控系统- 跟踪电压和电流

有关传感器在飞行控制算法中的使用详情,请参阅飞行控制系统

传感器系统架构

Betaflight中的每个传感器子系统都遵循一个共同的模式:

  1. 初始化- 在启动期间调用,用于配置传感器硬件
  2. 更新- 定期调用以从传感器读取新数据
  3. 处理——数据过滤、校准和处理
  4. 集成——飞行控制系统如何使用处理后的数据

传感器数据流管道

传感器初始化

Betaflight 使用级联初始化系统来初始化传感器:

初始化过程中的关键函数:

  • sensorsPreInit()- 执行初步设置,例如引脚配置
  • sensorsAutodetect()- 检测并初始化可用传感器
  • 各个传感器初始化函数(例如gyroInit(),,accInit()等等)

检测到的传感器信息存储在一个全局数组中detectedSensors[],固件会引用该数组来检查传感器是否可用。

陀螺仪系统

陀螺仪是 Betaflight 中最关键的传感器,它提供角速度测量,这对飞行稳定至关重要。

陀螺仪处理流程

陀螺仪主要部件

  1. 数据结构

      <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值