当前位置: 首页> 文旅> 酒店 > (5)按钮输入

(5)按钮输入

时间:2025/7/13 9:51:42来源:https://blog.csdn.net/qq_20016593/article/details/139587931 浏览次数:0次

文章目录

前言

1 基础设置

2 数字逻辑/模拟电压设置

3 PWM输入设置

4 额外设置


前言

连接到自动驾驶仪的最多四个外部按钮或开关可以被配置为触发辅助功能(Auxiliary Functions),类似于 RC 通道开关的触发方式。这些按钮输入可以被配置为使用数字逻辑电平电压输入(拉到地或拉到高)或 PWM 信号输入。


Note

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

1 基础设置

为了使用按钮,自动驾驶仪的引脚必须被配置为 GPIO。许多自动驾驶仪有专门的引脚,但有些没有。在这些情况下,必须将普通的 SERVO/MOTOR 输出配置为 GPIO 引脚,而不是自动驾驶仪输出功能(Autopilot Output Functions)。

对于带有 IOMCU自动驾驶仪(如 PixhawkCubeOrange),外部按钮或开关应连接到自动驾驶仪AUX 输出(而不是 MAIN 输出)。为了便于配置和避免定时器冲突,最好在高端使用辅助输出(如 AUX5AUX6),远离用于电机和伺服的输出。对于没有 IOMCU自动驾驶仪(如pixelracer 等),可以使用正常的 SERVO/MOTOR 输出。

  • 设置BTN_ENABLE = 1(启用)并刷新参数;
  • 如果使用 4.2(或更高版本),设置 SERVOx_FUNCTION = -1GPIO),其中"x"是连接到按钮的伺服输出通道。例如,如果带 IOMCU自动驾驶仪上的 AUX6 输出要作为 GPIO 使用,SERVO14_FUNCTION = -1
  • 如果在带有 IOMCU自动驾驶仪上(如 PixhawkCubeOrange)使用 4.1(或更早),将BRD_PWM_COUNT 设置得足够低,以便所需的伺服和所有其他更高的输出可用于GPIO输入。例如,BRD_PWM_COUNT = 4意味着只有AUX输出56可以用作GPIOBRD_PWM_COUNT = 意味着 AUX 输出 16 可以被使用。对于不使用 IOMCU 的板子,BRD_PWM_COUNT小于总输出数,将把那些较高的输出配置为 GPIO

2 数字逻辑/模拟电压设置

数字逻辑电平的模拟电压可用于按钮输入。下面列出的参数变化是针对第 1 个按钮的,但第 2、第和第 4 个按钮也可以进行类似的设置,只需将参数名称中的"1"改为"2"、"3"或"4"。为了确定哪个GPIO 针脚对应于哪个自动驾驶仪SERVO/MOTOR 输出针脚或专用 GPIO 针脚,必须查阅自动驾驶仪hwdef.dat 文件。如何确定,见GPIOs

  • 将 BTN_PIN1 设置为连接到按钮/开关的 GPIO 的编号(例如,"55"="AUXOUT6");
  • 设置 BTN_OPTIONS1 = 0(在比特掩码中没有设置位),在高逻辑电平电压(> 2.4V)上触发,并被辅助功能解释为""位。设置位 1PWM 输入)可以检测高于或低于 1800/1200usPWM,而不是逻辑电平。如果没有检测到 PWM 或小于 800us 或大于 2200us,按钮将被解释为低电平。设置位 2(反相)将高电平状态改变为引脚上的逻辑低电压,或者低于1200us,如果 PWM 输入;
  • 将 BTN_FUNC1 设置为要触发的辅助功能(Auxiliary Function)。如果设置为 0,则不触发任何功能。

该引脚被自动配置为内部上拉,这意味着按钮或开关只需要将电压拉低。

Warning

一些自动驾驶仪在启动时将引脚拉高或拉低,这可能导致辅助功能在启动后不久就被触发。

3 PWM输入设置

PWM 信号可以作为按钮输入。PWM 值> 1800us 或 < 1200us 可用于触发辅助功能。下面列出的参数变化是针对第 1 个按钮的,但第 2、第 3 和第 4 个按钮也可以进行类似的设置。如上所述,要确定哪个 GPIO 引脚与哪个自动驾驶仪SERVO/MOTOR 输出引脚或专用 GPIO 引脚相对应,必须查阅自动驾驶仪hwdef.dat 文件。如何确定,见GPIOs

  • 将 BTN_PIN1 设置为连接到按钮/开关的 GPIO 的编号(例如,"55"="AUXOUT6");
  • 将 BTN_OPTIONS1 = 设为"1",以便被辅助功能解释为 PWM > 1800us 的""位;
  • 将 BTN_OPTIONS1 = 设为"3",在 PWM < 1200us 或缺少信号输入的情况下,辅助功能将被解释为"高"位。PWM > 1800us 将被解释为"LOW"位置;
  • 将 BTN_FUNC1 设置为要触发的辅助功能(Auxiliary Function)。如果设置为 0,则不触发任何功能。

Note

有效的 PWM 输入范围是 800us2200us。如果 PWM 值超出这个范围,或者缺失,则相当于应用 < 1200us。通常这意味着除非设置了 BTN_OPTIONSx 的反转选项,否则辅助功能不会被触发。

4 额外设置

BTN_REPORT_SEND 设置了每次按钮状态改变时向地面控制站发送 BUTTON_CHANGE mavlink2 消息的时间长度。在写这篇文章的时候,我们还不知道有任何 GCS 在使用这个消息。

关键字:(5)按钮输入

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: