本文档介绍了Betaflight中的LED灯条控制系统,该系统通过可编程RGB LED灯条提供有关飞行状态、警告和系统状态的视觉反馈。该系统支持WS2811/WS2812 LED灯条,并可配置其布局、颜色、功能和视觉效果。

LED配置系统
该LED系统采用分层配置方式,通过参数组实现持久性控制,并提供灵活的LED布局定义格式。每个LED的位置、方向、功能、叠加层和颜色均可单独配置。
配置数据结构
| 结构 | 目的 | 关键字段 |
|---|---|---|
ledStripConfig_t | 全局 LED 设置 | 轮廓、亮度、彩虹参数 |
ledStripStatusModeConfig_t | 状态模式布局 | LED配置、颜色、模式映射 |
ledConfig_t | 单个LED定义 | 位置、功能、方向、叠加层 |
hsvColor_t | 颜色定义 | 色相、饱和度、明度(HSV颜色空间) |

LED功能和叠加层
该系统支持多种决定 LED 行为的基本功能,并结合叠加效果来改变基本功能。
| 功能类型 | 枚举值 | 描述 |
|---|---|---|
| 颜色 | LED_FUNCTION_COLOR | 静态彩色显示 |
| 飞行模式 | LED_FUNCTION_FLIGHT_MODE | 显示当前飞行模式 |
| 武装国家 | LED_FUNCTION_ARM_STATE | 武装/解除武装指示 |
| 电池 | LED_FUNCTION_BATTERY | 电池电量指示器 |
| 全球定位系统 | LED_FUNCTION_GPS | GPS状态显示 |
| 推力环 | LED_FUNCTION_THRUST_RING | 旋转推力指示器 |
| 叠加类型 | 枚举值 | 描述 |
|---|---|---|
| 警告 | LED_OVERLAY_WARNING | 闪烁警告图案 |
| 彩虹 | LED_OVERLAY_RAINBOW | 彩虹色循环 |
| 垂直传输 | LED_OVERLAY_VTX | 视频发射机频率 |
| 风门 | LED_OVERLAY_THROTTLE | 节气门位置颜色变化 |
| 拉尔森扫描仪 | LED_OVERLAY_LARSON_SCANNER | 移动扫描仪效应 |
WS2811 驱动程序实现
WS2811 驱动程序提供底层接口,用于通过精确的时序和 DMA 传输来控制可寻址 LED 灯条。该驱动程序将 HSV 颜色值转换为 RGB,并管理 WS2811 协议复杂的时序要求。

驱动程序功能
- 渐进式更新:LED 指示灯以增量方式更新,以防止阻塞其他任务。
- 亮度控制:RGB转换期间应用全局亮度缩放
- DMA传输:使用硬件DMA进行非阻塞数据传输
- 格式支持:RGB、GRB 和 GRBW LED 灯条格式
LED层处理
该LED系统依次应用多个处理层,每个处理层负责视觉反馈的不同方面。主更新功能协调这些处理层并管理时序。
主更新循环
该ledStripUpdate()功能通过精确的定时控制和基于系统状态的条件更新来协调所有 LED 处理。

预警系统
警告层使用特定的颜色模式和时间,为各种系统状态提供关键的视觉反馈。
| 警告类型 | 颜色图案 | 触发条件 |
|---|---|---|
| 武装已禁用 | 绿/黑闪光 | isArmingDisabled() |
| 电量低 | 红/黑闪光 | 电池电压低 |
| 故障安全 | 黄/蓝闪光 | failsafeIsActive() |
| 翻滚 | 品红色/黑色闪光灯 | 翻滚模式已激活 |
| 可视蜂鸣器 | 可配置 | 蜂鸣器声音已激活 |
色彩管理
该系统采用 HSV(色调、饱和度、明度)色彩空间进行所有颜色处理,提供直观的颜色操控和流畅的过渡效果。颜色在配置中定义,并可通过 CLI 命令进行自定义。
默认调色板

颜色处理功能
- HSV色彩空间处理:颜色在HSV色彩空间中进行处理,以实现平滑过渡。
- 亮度缩放:在驱动程序级别应用全局亮度控制。
- 颜色插值:为油门叠加层实现平滑的颜色过渡。
- 色调偏移:基于传感器输入的动态颜色变化。
配置和设置
LED灯条配置通过CLI命令和参数组进行管理,并具有验证和实时更新功能。
配置参数
| 范围 | 默认 | 描述 |
|---|---|---|
ledstrip_profile | LED_PROFILE_RACE | 主动式 LED 配置文件模式 |
ledstrip_brightness | 100 | 全球亮度(0-100%) |
ledstrip_rainbow_delta | 0 | LED灯之间彩虹色调渐变 |
ledstrip_rainbow_freq | 120 | 彩虹动画频率 |
ledstrip_beacon_period_ms | 500 | 信标闪光周期 |
ledstrip_visual_beeper | 0 | 启用可视蜂鸣器 |
命令行界面命令
- LED配置:
led <index> <x>,<y>:<directions>:<functions>:<color> - 颜色定义:
color <index> <hue>,<saturation>,<value> - 模式颜色:配置飞行模式的方向颜色
- 配置文件选择:在种族、信标和状态配置文件之间切换
548

被折叠的 条评论
为什么被折叠?



