您好,我们正在使用带高清摄像头的 BR Navigator 作为系留摄像头,需要在驾驶舱上添加一个滑块来控制灯光亮度。最简单的方法是什么?我们尝试过输入控件中的按钮和滑块,但没有成功。我们没有使用摇杆。我们使用 Windows 平板电脑独立运行驾驶舱,需要一个较大的滑块来控制手指,因为这会在小型船上使用。
欢迎来到论坛
目前我们还没有针对此类功能的良好文档/指南,尽管我正在积极努力。
我将尝试在此针对您的特定用例进行演示,以帮助我之后编写更完整的文档,并改进我们的界面(因为该过程目前有些复杂):
1.检查灯光连接到哪个 Navigator 引脚
- 如果已知它们是可控的,您应该能够在 BlueOS 车辆设置页面(在概述和 PWM 选项卡中)中进行检查
- 在我的情况下,灯 1 配置为通道 13:
2.通过 Cockpit 的侧边栏菜单进入编辑模式,然后将您选择的范围输入添加到顶部或底部栏(或者,如果您希望它位于主视图中的某个位置,则将其添加到容器小部件中),然后通过右下角的部分创建一个具有相关名称的变量
- 我选择在可折叠容器中添加一个滑块(根据您的要求),这样您就可以使其比默认的迷你小部件宽度更宽,并在不使用时将其隐藏起来
- 为了获得美观的界面,我使用了 0-100 的刻度,这与非常通用的指示器预设中报告的灯光 (1) 级别相匹配
- 退出编辑模式,然后
Tools / Data-lake
通过侧边栏菜单打开,并创建一个新的复合变量(右上角,“添加复合变量”),这样我们就可以将滑块的百分比输入转换为自动驾驶仪可以用来控制灯光的 PWM 输出
- 请注意,Cockpit 的滑块会生成十进制值,因此
round
自动驾驶仪需要将其转换为整数才能接受该数字 - 如果您使用范围已经与输出值 (1100-1900) 匹配的 Dial 输入,则可以跳过复合变量创建,但这可能不太直观且使用起来更具挑战性
- 关闭数据湖菜单,然后转到
Settings / Actions
侧边栏菜单,创建一个新的 MAVLink 消息操作
- 将其配置为
COMMAND_LONG
带有
-
ID :
MAV_CMD_DO_SET_SERVO
消息 - 参数 1 :您想要控制的引脚,以及
- 参数 2 :您想要设置其值的变量 - 大括号必不可少!
6.通过将动作链接到相关变量之一(例如滑块变量或生成的复合变量)来设置动作的自动触发器,以便在每次滑块更新时发送新命令
- 较高的更新率限制允许更平滑的控制,但在移动滑块时会发送更多消息,这可能会导致性能问题(特别是对于性能要求更高的操作)
7.滑块现在应该可以控制 Lights1 级别输出
- 如果您的灯光密码发生变化,您还需要更新操作
- 理想情况下,自动驾驶仪会自动找出您想要的引脚,但目前情况并非如此,除非您使用 ArduSub 的灯光操纵杆按钮功能,该功能不提供滑块的保真度(它们只是固定百分比的增量/减量按钮,并且需要使用完整的操纵杆控制管道)
我假设您在 Navigator 上运行的是 ArduSub 自动驾驶仪固件。
如果您没有运行自动驾驶仪,那么可以通过 BlueOS 扩展(例如 NodeRED 或 OpenVSCode)结合 Cockpit HTTP 请求操作来实现其他解决方案,但其余过程类似。或者,您可以运行 Navigator Web Assistant,并在 Cockpit 中嵌入一个外部小部件来控制灯光,这是一个截然不同的过程,但结果类似。
如果滑块的垂直高度有问题,而不仅仅是其宽度有问题,那么您可以通过[DIY 小部件]制作一个自定义滑块,尽管这似乎需要付出很多努力但收益有限。