RunCam 摄像机支持

请注意,该功能将在 ArduPilot 4.1 中发布。

说明

RunCam 设备支持 Runcam 设备协议 这是最初为 RunCam Split 和模拟摄像机开发的串行通信协议。

协议本身不仅支持完整的摄像机 OSD 菜单导航,还支持触发分体式摄像机的录制,以及通信可用的 SD 卡空间、同步当前日期、写入 OSD 以及打开和关闭摄像机或 WiFi 功能(如有)。

目前 ArduPilot 并不支持协议的所有功能,而且并非所有摄像机都支持协议的所有功能。尤其重要的是要区分支持 "5 键协议 "的摄像机(通常是 RunCam Racer 等仅用于摄像机的设备)和支持 "2 键协议 "的摄像机(通常是分体式摄像机)。这两种协议源自分体式摄像机上的 5 键外部 OSD 键盘和 2 个按钮。同样重要的是要了解 RunCam 设备协议几乎是硬件的直接映射,因此您按下按钮的方式就是调用协议的方式。唯一需要注意的是,5 按钮协议可以识别按键的释放,而 2 按钮协议则不能,这导致菜单和选项的导航方式受到一定限制。

最近,与 TBS Smartaudio 和 IRC Tramp 类似,其他公司(如 Caddx)也开始在其摄像机中采用对协议的支持。ArduPilot 目前支持的功能

  • 全相机 OSD 控制

  • 开始/停止分体式摄像机的录制

设置

  • FC 上需要一个空闲的非反相 UART(TX 和 RX)。将 TX 连接到 RX,将 RX 连接到 TX,将 GND 连接到 GND。有关 Cube 上串行端口的引脚布局,请参见 这里.检查 电路板文档 为其他官方服务。

    ../_images/camera-runcam-fc-setup.jpg

    在某些纯摄像头设备上,引脚布局标注为 TX 连接 TX,RX 连接 RX。如果您的 RunCam 设备无法识别,请尝试反转信号线。并非所有摄像头都支持 UART 接地引脚 - 它们希望从电源接地。

    摄像机必须处于 UART 控制模式。对于分体式摄像机,这应该是默认设置。对于纯摄像头设备,您需要按照将设备置于 UART 控制模式的步骤进行操作。详情请查阅 RunCam 手册。

    请注意,不支持所谓的 "操纵杆控制",有些设备仅支持操纵杆控制,因此在选择要使用的 RunCam 型号时要小心。以下设备已成功通过测试 - RunCam Split 3s Micro、RunCam Split 2s、RunCam Racer 3。

  • 为了识别 UART 上的 RunCam 串行协议,请将 UART 串行协议设置为 26。例如,对于串行端口 5,设置 serial5_protocol = 26(RunCam 协议)。(飞行)控制器的串行端口编号与 UART 物理端口之间的相关性应记录在其说明页面的链接中。 这里.

    当摄像机连接正确且串行端口配置正确时,您将在启动时看到类似下面的信息: APM: 运行摄像头 已初始化、 特征 0x0077, 2 键 OSD 否则你会看到 APM: 运行摄像头 装置 发现.

    摄像机必须通电并完全启动,才能接受命令。这可能需要一些时间,(飞行)控制器启动与摄像机被探测之间的延迟可通过以下方式控制 cam_rc_bt_delay.摄像机将被反复探测,直到 cam_rc_bt_delay 但一旦过期,摄像机将不会再被探测。

  • 某些分体式摄像机支持三种模式 - 视频待机、视频启动和图像模式。从 RunCam 设备协议中无法判断使用的摄像机类型,因此必须进行配置。设置 CAM_RC_TYPE = 2.大多数其他摄像机使用默认值应该没问题,但有些较新的摄像机存在一个错误,即无法正确支持视频开始/停止协议命令,因此必须使用变通方法。已知有此问题的摄像机是 RunCam Split4k,需要设置 CAM_RC_TYPE = 除了这个问题之外,RunCam Hybrid 摄像机还具有 QR 码模式,这也会给录制控制带来问题。对于 RunCam 混合型摄像机,设置 CAM_RC_TYPE = 4.对于 RunCam2 4K 摄像机,设置 CAM_RC_TYPE = 5.

请注意,RunCam 不断推出新款摄像机,几乎每款摄像机的视频控制都会有所改变,因此,如果您遇到问题,尤其是视频控制方面的问题,请尝试使用其他类型的摄像机。 CAM_RC_TYPE.

  • 为了通过无线电发射器控制录像的开始和停止,请将免费的遥控频道设置为 RCx_OPTION = 78 可启用来自该 RC 输入通道的触发。如果开关位于低位,则停止录像;如果位于高位,则开始录像。

  • 为了控制进入 OSD 菜单,请将空闲的遥控频道设置为 RCx_OPTION = 79.如果开关位于低位,则退出 OSD 菜单,如果位于高位,则进入 OSD 菜单。OSD 菜单也可在撤膛时通过向右猛力滚动默认进入。

OSD 菜单控制

RunCam 功能的一个重要部分是对 OSD 菜单的支持。OSD 菜单允许通过遥控杆手势控制所连接摄像机的各种属性。进入 OSD 菜单的最简单方法是用力向右推动摇杆。该手势默认为启用,但可通过设置 CAM_RC_CONTROL.进入菜单后,使用摇杆可以在菜单项之间进行导航,向右滚动通常可以选择项目或进入子菜单。OSD 菜单只能在撤膛状态下进入。

发射杆可用于控制 OSD 菜单,如下所示:

../_images/camera-control-stick-commands.png

在允许使用的手势方面,分体式摄像头与普通 RunCam 有很大不同。在使用 UART 控制的 RunCam 上,摇杆手势与可与摄像机一起使用的远程键盘的操作一致。滚动和俯仰摇杆手势与键盘上的上、下、左、右相对应,而偏航则与回车相对应。在分体式摄像机上,向上和向下俯仰与循环菜单项的效果相同,而回车则是向右滚动。虽然我们已尽力使两种摄像机的用户界面保持一致,但 RunCam 远程协议的缺陷使这一工作具有挑战性。最明显的两个区别是

  • 分体式摄像机允许通过左手手势退出子菜单,而普通 RunCams 则需要选择退出菜单选项。

  • 分体式摄像机允许通过左手势退出 OSD,而普通 RunCams 则需要使用配置的退出 OSD 命令(TX 开关或向左偏转)。

OSD 菜单和 OSD 交互

ArduPilot 实现 OSD 菜单控制的功能之一是,当进入摄像机 OSD 时,(飞行)控制器将关闭常规飞行 OSD。它还将防止在 OSD 模式下进行上膛。退出 OSD 菜单后,将重新启用常规飞行 OSD 并允许上膛。