按钮

最多可配置四个连接到(飞行)控制器的外部按钮或开关,以触发 辅助功能 类似于 RC 通道开关的触发方式。这些按钮输入可配置为数字逻辑电平电压输入(拉地或拉高)或 PWM 信号输入。

备注

一些 辅助功能 有一个中间位置(例如 "降落伞 3 位置开关"),但中间位置不能由按钮触发

基本设置

要使用按钮,必须将(飞行)控制器的引脚配置为 GPIO。许多(飞行)控制器都有专用引脚,但有些没有。在这种情况下,必须将普通的 SERVO/MOTOR 输出配置为 GPIO 引脚,而不是 (飞行)控制器输出功能.

对于带有 IOMCU 的(飞行)控制器(如 Pixhawk、CubeOrange),外部按钮或开关应连接到(飞行)控制器的 AUX 输出(而非 MAIN 输出)。为方便配置并避免定时器冲突,最好在高端使用 AUX 输出(如 AUX5 或 AUX6),远离用于电机和舵机的输出。对于没有 IOMCU 的(飞行)控制器(如 pixracer 等),可以使用正常的 SERVO/MOTOR 输出。

  • 设置 BTN_ENABLE = 1(启用)并刷新参数

  • 如果使用 4.2(或更高版本),则设置 SERVOx_FUNCTION =-1(GPIO),其中 "x "为与按钮相连的伺服输出通道。例如,如果要将带有 IOMCU 的(飞行)控制器上的 AUX6 输出用作 GPIO,请设置 servo14_function = -1.

  • 如果在配有 IOMCU 的(飞行)控制器(如 Pixhawk、CubeOrange)上使用 4.1(或更早版本),则设置为 BRD_PWM_COUNT 足够低,以便将所需的伺服输出和所有其他较高输出用于 GPIO 输入。例如 BRD_PWM_COUNT = 4 表示只能将 AUX 输出端 5 和 6 用作 GPIO,BRD_PWM_COUNT = 0 表示可以使用 AUX 输出端 1 至 6。对于不使用 IOMCU 的电路板、 BRD_PWM_COUNT 小于总输出数,将把这些较高的输出配置为 GPIO。

数字逻辑/模拟电压设置

按钮输入可使用数字逻辑电平模拟电压。下面列出的参数更改针对的是第一个按钮,但第二个、第三个和第四个按钮也可以进行类似设置,只需将参数名称中的 "1 "替换为 "2"、"3 "或 "4 "即可。为了确定哪个 GPIO 引脚编号对应哪个(飞行)控制器 SERVO/MOTOR 输出引脚或专用 GPIO 引脚,必须查阅(飞行)控制器的 hwdef.dat 文件。请参见 GPIO 了解如何确定。

  • 设置 BTN_PIN1 按钮/开关连接的 GPIO 的编号(例如 "55"="AUXOUT6)

  • 设置 BTN_OPTIONS1 位 1(PWM 输入)= 设置为零(位掩码中未设置位),在高逻辑电平电压(>2.4V)时触发,并被辅助功能解释为 "高 "位置。设置位 1(PWM 输入)可检测高于或低于 1800/1200us 的 PWM,而不是逻辑电平。如果未检测到 PWM,或 PWM 低于 800us 或高于 2200us,按钮将被解释为低电平。设置第 2 位(反相位)可将高电平状态变为引脚上的逻辑低电压,或低于 1200us (如果 PWM 输入)。

  • 设置 BTN_FUNC1辅助功能 将被触发。如果设置为 0,则不触发任何功能。

该引脚自动配置了内部上拉功能,这意味着按钮或开关只需将电压拉低即可。

警告

有些(飞行)控制器在启动过程中将引脚拉高或拉低,这可能会导致辅助功能在启动后不久触发

PWM 输入设置

PWM 信号可用作按钮输入。PWM 值可用于触发辅助功能。下面列出的参数更改针对的是第一个按钮,但第二个、第三个和第四个按钮也可以进行类似设置。如上所述,要确定哪个 GPIO 引脚编号对应哪个(飞行)控制器 SERVO/MOTOR 输出引脚或专用 GPIO 引脚,必须查阅(飞行)控制器的 hwdef.dat 文件。参见 GPIO 了解如何确定。

  • 设置 BTN_PIN1 按钮/开关连接的 GPIO 的编号(例如 "55"="AUXOUT6)

  • 设置 BTN_OPTIONS1 = 为 "1",以便辅助功能通过 PWM > 1800us 将其解释为 "高 "位

  • 设置 BTN_OPTIONS1 = 为 "3",将被辅助功能解释为 "高 "位置,PWM 为 1200us,或缺少信号输入。PWM >1800us 将被解释为 "低 "位置。

  • 设置 BTN_FUNC1辅助功能 将被触发。如果设置为 0,则不触发任何功能。

备注

有效的 PWM 输入范围为 800us 至 2200us。如果 PWM 值不在此范围内或缺失,则相当于应用了 1200us。通常情况下,这意味着辅助功能将不会被触发,除非使用了"...... "的反相选项。 BTN_OPTIONSx 已设定。

附加设置

btn_report_send 的时间长度。 按钮更改 每次按钮状态发生变化时,都会向地面控制站发送 mavlink2 信息。在撰写本文时,我们还不知道有任何地面控制站使用了该信息。