☰
INAV 中的 AlienFlight 系列目标板:从硬件规格到源码级配置解读(ALIENFLIGHTNGF7 等)
2026/10/15 10:35:17 网站建设 项目流程
  • 无人机
  • 嵌入式
  • 智能硬件

【免费下载链接】inav

INAV: Navigation-enabled flight control software

项目地址:https://gitcode.com/gh_mirrors/in/inav
点击查看免费下载

AlienFlight(前身 AlienWii)是一系列开源设计的微型飞控,涵盖 F1/F3/F4 以及 Next Generation(NG)的 F7 目标。本文以 INAV 仓库中 AlienFlight.md 为骨架,结合 ALIENFLIGHTNGF7 与 ALIENFLIGHTF4 目标目录下的target.h、config.c、hardware_revision.c等源码,系统讲解 AlienFlight 板卡的硬件规格、DSM2/DSMX 卫星接收机与 SBUS 接线配置、绑定的两种方式、有刷/无刷电机自动识别,以及固件刷写流程。读完本文,你将能够理解 INAV 如何为 AlienFlight 提供即插即用的差异化默认配置,并能在 CLI 中正确完成卫星接收机绑定、串口接收协议切换和八轴混控激活等实操。

一、AlienFlight 是什么:目标系列与许可证背景

AlienWii 现已更名为 AlienFlight。这些设计一部分以 CC BY-SA 4.0 许可公开发布,一部分仅限非商业使用(CC BY-NC-SA 4.0),发布在 alienflight.com;AlienFlightNG(下一代)设计则采用 CC BY-NC-SA 4.0 或 CC BY-NC-ND 4.0,发布在 alienflightng.com。F3 的 Eagle 工程文件位于 MJ666/Flight-Controllers 仓库,NG 的更多细节可参考 OpenSky 项目。

在 INAV 源码树中,AlienFlight 系列对应四个构建目标:

  • ALIENFLIGHTF1
  • ALIENFLIGHTF3
  • ALIENFLIGHTF4
  • ALIENFLIGHTNGF7(板卡标识符为AFF7)

所有已发布的设计均经多人实飞验证,目标读者是具备一定动手能力的用户,部分变体可从小型零售商处购买。

二、通用硬件规格一览

AlienFlight 各变体共享以下通用规格(依据 AlienFlight.md):

  • MCU:ALIENFLIGHTF4使用 STM32F405RGT6;ALIENFLIGHTNGF7使用 STM32F711RET6(即 F722 系列,见 CMakeLists.txt 中的target_stm32f722xe(ALIENFLIGHTNGF7 ...))
  • 惯性传感器:MPU6050 / 6500 / 9250 / ICM-20602 加速度计+陀螺仪(部分集成磁力计)
  • 传感器中断:所有已发布设计的 MPU 中断引脚均连接至 MCU,并在固件中启用
  • 有刷电调:集成 4–8 路 4.2A~9.5A 有刷电调,可驱动最大号的微型电机;PCB 采用超宽走线保证最大功率传输;部分新 F4 板采用 4 层 PCB 改善电源分配
  • 接口:集成 USB;串口连接外部 DSM2/DSMX 卫星接收机(如 Spektrum SAT、OrangeRx R100、Lemon RX、Deltang Rx31)及 SBUS;支持 CPPM 输入
  • 接收机供电:提供 GND 和 3.3V 给接收机,部分板卡还可选 5V 供电
  • 绑定:带硬件绑定跳线(bind plug),便于快速绑定
  • 电机布局:电机接口位于板角,走线整洁,整体占用面积小
  • 供电:有刷版本可直接由单节锂聚合物电池供电;供电方案包括 3.3V LDO(老原型)与 3.3V buck-boost 电源转换器(所有新版本),部分版本还带 5V buck-boost 供 FPV 使用;无刷版本按 4S 设计并带有 5V 电源输出
  • 监测与存储:部分变体带电池电压 LED/蜂鸣器报警;F4/F7 V1.1 版本带电流监测与 SD 卡槽(黑匣子记录)
  • 集成接收机:F4/F7 V2 版本集成 OpenSky(FrSky 兼容)接收机,支持 FrSky hub 遥测
  • 硬件检测:固件自动检测有刷/无刷版本并应用各自的默认配置

源码印证:ALIENFLIGHTNGF7 的引脚与外设定义

target.h 集中体现了上述规格的实现:

  • 传感器:MPU6500_CS_PIN/MPU9250_CS_PIN均挂在SPI1,对准为CW270_DEG;磁力计USE_MAG_ALL走BUS_I2C1;气压计支持 MS5611 与 BMP280(SPI3 与 I2C1 双总线)——从源码结构看,这与文档中"传感器单元集成"的描述一致
  • 存储:SD 卡走 SPI2(SDCARD_DETECT_PINPB11,检测信号反相),同时挂载 M25P16 SPI Flash,启用USE_FLASHFS
  • 串口:SERIAL_PORT_COUNT 5,UART1(PA9/PA10,遥测)、UART2(PA2/PA3,串口接收机)、UART4(PC10/PC11),UART3 引脚未引出(NONE)
  • 外设:SPI1/2/3、I2C1(带内部上拉)、MAX7456 OSD(SPI3)、ADC 三通道(VBAT/电流/RSSI)、WS2811 LED 灯带(PA8)
  • 特性:DEFAULT_FEATURES为FEATURE_TX_PROF_SEL | FEATURE_BLACKBOX,默认即启用 SD 卡黑匣子日志与遥控配置文件选择;默认接收机类型为RX_TYPE_SERIAL,串口接收机挂 USART2,通道顺序为 TAER

三、接收机接线与串口协议配置

3.1 卫星接收机(Spektrum 兼容)

所有 AlienFlight 设计均预留串口连接外部 DSM2/DSMX 卫星接收机,并且开箱即用支持 Spektrum 兼容 DSM2 卫星:默认预置DSM2、11bit、11ms配置,以保证最大兼容性。文档强调,为获得最佳连接质量,建议按发射机与卫星接收机的实际能力调整参数,并尽量使用更可靠的 DSMX 协议;若需使用额外通道,请调整以下两个参数:

set serialrx_provider = 1 (0 for 1024bit, 1 for 2048bit) set spektrum_sat_bind = 5

参数说明(依据 settings.yaml):

  • serialrx_provider:0对应SERIALRX_SPEKTRUM1024,1对应SERIALRX_SPEKTRUM2048(枚举定义见 rx.h)。默认值由目标板决定(default_value: :target)
  • spektrum_sat_bind:绑定模式值,范围0(禁用)到10(SPEKTRUM_SAT_BIND_MAX)。根据 spektrum.c 中移植自 Baseflight 的注释,已知参数为:
    • 9= DSMX 11ms / DSMX 22ms
    • 5= DSM2 11ms 2048 / DSM2 22ms 1024
  • spektrum_sat_bind_autoreset:绑定完成后自动将spektrum_sat_bind复位为 0 并保存配置(仅无硬件绑定插头时生效)

注意:文档中的serialrx_provider = 1 (0 for 1024bit, 1 for 2048bit)属于历史说法;在 INAV 当前实现中,SERIALRX_SPEKTRUM1024 = 0、SERIALRX_SPEKTRUM2048 = 1依旧成立,但"1024bit/2048bit"更准确的描述是 10bit/11bit 分辨率。

3.2 SBUS 与 CPPM

除 Spektrum 卫星外,AlienFlight 还支持 SBUS 接收机与 CPPM(PPM)输入。F4/F7 的 V2 版本默认配置即切换为 SBUS(见下文"硬件版本自动检测"一节)。接收机供电提供 GND 与 3.3V,部分板卡可选 5V 接收机电源。

3.3 Deltang 接收机

Deltang 接收机以串口模式工作时,行为与任何兼容 Spektrum 卫星的接收机相同(10bit、22ms),只是绑定流程不同。

四、绑定:从硬件跳线到软件 bind 计数

4.1 两种触发方式

AlienFlight 板卡提供两种绑定方式,分别由USE_SPEKTRUM_BIND与HARDWARE_BIND_PLUG两个宏控制(见 target.h):

  1. 硬件绑定插头:BINDPLUG_PIN定义为 PB2。上电时spekShouldBind()会读取该引脚,若绑定插头未闭合则直接返回、不进入绑定流程
  2. 软件 bind 计数:无硬件插头时,通过spektrum_sat_bind数值在启动时触发绑定

绑定在启动后立即调用(spektrumBind()),以确保不遗漏卫星接收机约 20–140ms 的绑定窗口。绑定信号时序见 spektrum.c:先将绑定引脚拉高,延时 60ms,随后按spektrum_sat_bind次数循环输出 120µs 低电平/120µs 高电平脉冲,LED0/LED1/LED2 同步闪烁提示。绑定完成后,若启用了spektrum_sat_bind_autoreset且为硬复位,会自动将 bind 值清零并保存配置。

4.2 绑定模式与发射机设置

不同 bind 模式(DSM2 1024 / DSM2 2048 / DSMX 11ms / DSMX 22ms)的选择取决于发射机与卫星接收机的能力。文档建议优先使用 DSMX 协议,因为它被公认为更可靠。详细 bind 模式可参考 CleanFlight Spektrum Bind 文档。

五、硬件版本自动检测与差异化默认配置

AlienFlight 固件的一个核心设计是同一份固件通过硬件检测自动适配不同版本的板卡。

5.1 版本检测与有刷/无刷检测的启动顺序

fc_init.c 中,系统初始化阶段依次执行:

  1. detectHardwareRevision()(由USE_HARDWARE_REVISION_DETECTION开启):读取HW_PIN(PC13,上拉输入)电平。读取结果为高则AFF7_REV_1,为低则AFF7_REV_2(见 hardware_revision.c)
  2. detectBrushedESC()(由USE_BRUSHED_ESC_AUTODETECT开启):遍历带TIM_USE_MOTOR标志的定时器引脚,将首个电机输出引脚配置为上拉输入并读取电平,以区分有刷(MOTOR_BRUSHED)与无刷(MOTOR_BRUSHLESS)电调(见 pwm_esc_detect.c)

从 hardware_revision.h 可确认两个版本的差异:

  • AFF7_REV_1:ICM-20602(SPI)、ACS712 电流传感器、SD 卡读卡器
  • AFF7_REV_2:ICM-20602(SPI)、OpenSky RX(CC2510)、ACS712 电流传感器、SD 卡读卡器

5.2 targetConfiguration() 中的默认值差异

config.c中的targetConfiguration()(见 ALIENFLIGHTNGF7/config.c)按检测结果应用差异默认值:

  • Rev 1(Spektrum 卫星板):serialrx_provider = SERIALRX_SPEKTRUM2048,spektrum_sat_bind = 5,spektrum_sat_bind_autoreset = 1——即文档所述的"DSM2、11bit、11ms 预置"
  • Rev 2(OpenSky 接收机板):serialrx_provider = SERIALRX_SBUS,并追加启用FEATURE_TX_PROF_SEL | FEATURE_CURRENT_METER | FEATURE_VBAT | FEATURE_TELEMETRY
  • 有刷电机:motorPwmRate = 32000(32kHz),NGF7 目标另有电机协议设置;ALIENFLIGHTF4的对应实现还会将motorPwmProtocol设为PWM_TYPE_BRUSHED(见 ALIENFLIGHTF4/config.c)
  • 电流计:使用 ACS712/714-30A 的典型参数,current.offset = 2500(0A 时 2.5V)、current.scale = -667(66.666 mV/A 反相模式)
  • 磁力计对准:mag_align = CW90_DEG
  • 串口分配:portConfigs[2].functionMask = FUNCTION_RX_SERIAL(即 UART2 作串口接收机)

此外,该函数还写入了针对多旋翼的 PID 默认值(ROLL/PITCH 的 P=53、I=45、D=52;YAW 的 P=64、D=18)以及一个8 电机(Octocopter)自定义混控的默认值(REAR_R、FRONT_R、REAR_L、FRONT_L、MIDFRONT_R、MIDFRONT_L、MIDREAR_R、MIDREAR_L)。这正是文档所说"开箱即用、无需电脑即可让小型四轴升空"的原因:固件默认带好混控,用户可用mixer custom在 CLI 中激活。

六、使用 CLI 激活自定义八轴混控

AlienFlight 默认配置内置了为整洁走线而优化的 Octocopter 自定义混控器,用户无需连接电脑即可起飞小型四轴;若要将飞控用于 Hexa- 或 Octocopter 或进一步调参,可在 CLI 或 BetaFlight Configurator 中修改。激活命令:

mixer custom

在 INAV 中,mixer custom会加载primaryMotorMixer中预置的混控系数(即config.c中定义的 8 组系数),并允许用户通过cmix系列命令继续微调。默认 PID 也已针对该系列板卡预调,适合直接试飞。

七、固件刷写与接收机固件更新

7.1 主固件刷写

AlienFlight 主固件与其他目标一样,可通过 BetaFlight Configurator 刷写更新。所有 AlienFlight 板卡均带有 boot jumper:首次刷写或从损坏固件恢复时,必须先短接 boot jumper,再通过 USB 进入 DFU/引导模式。

7.2 板载 OpenSky 接收机固件更新

F4/F7 V2 版本集成的 OpenSky 接收机(基于 uSky 与 OpenSky 项目,来源 fishpepper.de)其固件可通过串口透传(serial pass-through)和嵌入式引导加载程序更新;首次刷写必须使用 ISP 编程引脚。该嵌入式接收机的目标名称为AFF4RX,更多细节请参考 OpenSky 项目 README。

7.3 有刷/无刷自动检测对默认配置的影响

由于固件在启动时会自动识别电机类型,无论安装的是有刷版(单锂电直驱、32kHz PWM)还是无刷版(4S、5V 输出),用户都无需手动切换电机协议——这一点与文档"硬件检测有刷/无刷版本并分别给出默认值"的描述完全对应。

八、调试与排障建议

  • 卫星接收机不工作:确认feature SERIALRX已启用、serialrx_provider与你的卫星协议(DSM2 1024/2048)匹配、UART2(默认串口接收机端口)接线正确;DSMX 卫星若按 DSM2 协议工作,应检查发射机是否设置为 DSM2 模式
  • 绑定不成功:确认spektrum_sat_bind在1~10范围内、在发射机进入绑定模式后重新上电飞控以触发绑定窗口;若使用硬件绑定插头,确认插头已闭合
  • 有刷电机 PWM 异常:有刷版本默认 32kHz 输出,若固件被误判为无刷版本,可在 CLI 中手动检查motor_pwm_rate与motor_pwm_protocol
  • 黑匣子日志缺失:ALIENFLIGHTNGF7默认启用ENABLE_BLACKBOX_LOGGING_ON_SDCARD_BY_DEFAULT,若 SD 卡检测信号反相配置不匹配(SDCARD_DETECT_INVERTED),可在 CLI 中检查 SD 卡状态与feature BLACKBOX

九、关键文件索引

用途路径
官方目标文档ALIENFLIGHTNGF7/AlienFlight.md
F4 目标文档ALIENFLIGHTF4/AlienFlight.md
NGF7 引脚与外设定义ALIENFLIGHTNGF7/target.h
NGF7 定时器/电机输出映射ALIENFLIGHTNGF7/target.c
NGF7 差异化默认配置ALIENFLIGHTNGF7/config.c
硬件版本检测hardware_revision.c
有刷/无刷自动检测pwm_esc_detect.c
Spektrum 绑定实现spektrum.c
串口接收协议枚举rx.h
参数注册表(serialrx_provider 等)settings.yaml
启动时检测调用顺序fc_init.c

以上内容以 INAV 仓库当前源码为准:若你使用的固件版本不同,个别参数名称、枚举值与默认值可能略有差异,请以对应版本的settings.yaml与目标目录为准。

  • 无人机
  • 嵌入式
  • 智能硬件

【免费下载链接】inav

INAV: Navigation-enabled flight control software

项目地址:https://gitcode.com/gh_mirrors/in/inav
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询