移动伺服器

本页介绍地面站或配套计算机如何使用 MAVLink 来移动伺服器。舵机 伺服器的用户维基页面在这里.

使用 MAV_CMD_DO_SET_SERVO 设置伺服位置

伺服器的位置可以通过发送 命令长 命令、param1 和 param2 字段的设置与为 mav_cmd_doo_set_servo 指挥。

指令字段 类型 说明
目标系统 uint8_t 飞行控制器的系统 ID 或仅为 0
目标组件 uint8_t 飞行控制器的组件 ID 或仅为 0
指挥部 uint16_t MAV_CMD_DO_SET_SERVO=183
证实 uint8_t 0
参数1 浮动 伺服实例编号
参数2 浮动 PWM (通常在 1000 至 2000 之间)
参数3 浮动 未使用
参数4 浮动 未使用
参数5 浮动 未使用
参数6 浮动 未使用
参数7 浮动 未使用

备注

"ServoRelayEvent.Channel x is already in use"(伺服延时事件:如果尝试移动已配置为控制面或其他功能的伺服,则会显示 "通道 x 已在使用中"。检查 SERVOx_FUNCTION 参数值,并确保其为 0("禁用")、1("RCPassThru")、22("SprayerPump")、23("SprayerSpinner")或 51("RCIN1")至 66("RCIN16")之间的值

示例

可以将下面的示例命令复制粘贴到 MAVProxy(又名 SITL)中来测试该命令。运行这些命令前,请输入

  • 模块加载消息

  • 模块负载图

  • 图 SERVO_OUTPUT_RAW.servo8_raw

MAVProxy/SITL 命令示例

说明

信息 命令长 0 0 183 0 8 1200 0 0 0 0 0

将伺服输出 8 移至 1200

使用 MAV_CMD_DO_REPEAT_SERVO 循环伺服位置

伺服器的位置可设置为在 PWM 值与 SERVOx_TRIM 通过发送 命令长 的指定字段。 mav_cmd_doo_repeat_servo 指挥。

指令字段 类型 说明
目标系统 uint8_t 飞行控制器的系统 ID 或仅为 0
目标组件 uint8_t 飞行控制器的组件 ID 或仅为 0
指挥部 uint16_t MAV_CMD_DO_REPEAT_SERVO=184
证实 uint8_t 0
参数1 浮动 伺服实例编号
参数2 浮动 PWM (通常在 1000 至 2000 之间)
参数3 浮动 周期计数
参数4 浮动 周期时间(毫秒)
参数5 浮动 未使用
参数6 浮动 未使用
参数7 浮动 未使用

可以将下面的示例命令复制粘贴到 MAVProxy(又名 SITL)中来测试该命令。运行这些命令前,请输入

  • 模块加载消息

  • 模块负载图

  • 图 SERVO_OUTPUT_RAW.servo8_raw

MAVProxy/SITL 命令示例

说明

信息 命令长 0 0 184 0 8 1200 3 1000 0 0 0

伺服输出 8 在 1200 和 1500 之间循环 3 次,频率为 1 赫兹