#分享那个在你收藏夹里“积灰”的好东西#

文章目录

前言

34.1 装有IOMCU的自动驾驶仪上的继电器引脚

34.2 通过任务规划器定义继电器引脚

34.3 飞行员控制继电器

34.4 任务控制继电器

34.5 任务规划器控制继电器


前言

"继电器"是自动驾驶仪上的一个数字输出引脚,可在 0V  3.3V  5V 之间切换,具体取决于自动驾驶仪。与伺服类似,它允许自动驾驶仪从飞行器上的其他设备调用某些动作。最多可将 6 个引脚定义为继电器


34.1 装有IOMCU的自动驾驶仪上的继电器引脚

拥有 IOMCU(提供"主" PWM 输出的 IO 协处理器)的自动驾驶仪可以将其 AUX 输出配置为 GPIOs,而不是舵机/电机输出,并用作 RELAY 输出。

例如,Pixhawk 默认将 AUX OUT 5(引脚 54)和 AUX OUT 6(引脚 55)分别设置为 "第一"(或#0)和 "第二"(或#1)继电器。

通过减少用作伺服(Servo)输出的 AUX 引脚数量,可将可用的继电器数量增加到最多 6 个。这可以通过将 BRD_PWM_COUNT  4 减少到 2 甚至 0 来实现。

Note

在固件 4.2 及以后的版本中,将 PWM/SERVO/MOTOR 输出设置为 GPIO 功能的方法有所改变。不再使用 BRD_PWM_COUNT,而是将单个 SERVOx_FUNCTION 参数设置为"-1"。如果设置为"0",它仍然是一个 PWM 输出,未指定功能,当电路板安全未激活时,输出该输出的微调值。如果舵机功能被"镜像"到远程设备,例如 DroneCAN 或 KDECAN 电调,那么为了将自动驾驶板的相应输出引脚更改为 GPIO,但允许 SERVOx_FUNCTION 仍然分配给远程设备,可以使用 SERVO_GPIO_MASK 参数将电路板引脚分配为 GPIO,而不影响远程设备的 SERVOx_FUNCTION 分配。

同样,在其他只有 PWM 输出而没有 IOMCU 的控制器上,将 BRD_PWM_COUNT 设置为一个较低的数字将释放出其较高数字的输出,用作控制继电器的 GPIO。

34.2 通过任务规划器定义继电器引脚

使用任务规划器的 CONFIG/Standard Params(配置/标准参数)列表可以最方便地设置第一至第六继电器引脚,如下所示,在"查找"继电器后。下拉框中显示了几种不同自动驾驶仪的引脚名称。

对于其他电路板,你需要在这里(here)找到其 hwdef.dat 文件,并确定其输出编号旁列出的 GPIO 引脚编号,如下所示:

在上述情况下,你可以将 BRD_PWM_COUNT 设置为 8,将 PWM9 和 PWM10 释放给 GPIO 使用,然后将 GPIO 引脚 58(即电路板上的 PWM 输出 9)用作继电器引脚。使用其 GPIO 编号在上述 Mission Planner 参数项中设置 RELAY_PIN 参数,忽略下拉选择或直接在参数本身中使用  CONFIG/Full Parameter List 屏幕。

!Note

对继电器引脚设置的任何更改都需要重新启动才能生效。

34.3 飞行员控制继电器

继电器可通过辅助开关控制。可通过 CONFIG(配置)/User Params(用户参数)屏幕进行设置,如下所示:

Note

该屏允许设置 RC5 至 RC14,但任何 RC 通道(1-16)都可以将其 RCx_OPTION 设置为 RELAY(继电器),前提是该通道尚未使用 CONFIG(配置)/Full Parameter List(完整参数列表)屏的其他控制功能。

34.4 任务控制继电器

与舵机类似,继电器也可以在任务中使用 Do-Set-Relay 任务指令激活。这在 Copter Mission Command List wiki page 页面上有描述。

Note

在 MAVLink 中,继电器的编号是 0 - 5,而不是 1 - 6,所以 RELAY 0 是第一个继电器。

34.5 任务规划器控制继电器

任务计划器允许用户使用按钮将前四个继电器引脚中的任何一个输出设置为低电平、高电平或设置为低电平并通过"数据"屏幕和"舵机/继电器"子窗口短暂切换为高电平,如下图所示: