# 模块参考:驱动程序

子类别:

# adc

资料来源 驱动程序/ADC/board_ADC (打开新窗口)

# 说明

ADC 驱动器。

# 使用方法

adc <命令> [参数...] 命令: 开始测试 停止状态 打印状态信息

# ads1115

资料来源 驱动程序/ADC/AS1115 (打开新窗口)

# 使用方法

ads1115 <命令> [参数...] 命令: start [-I] 内部 I2C 总线 [-X] 外部 I2C 总线 [-b <值>] 板特定总线(默认值=全部)(外部 SPI:n-th 总线(默认值=1)) [-f <值>] 总线频率,单位 kHz [-q] 安静启动(如果未找到设备,则无消息) [-a <值>] I2C 地址 默认值:72 stop status 打印状态信息

# atxxxx

资料来源 驱动程序/OSD/ATXXXX (打开新窗口)

# 说明

例如,用于安装在 OmnibusF4SD 板上的 ATXXXX 芯片的 OSD 驱动程序。

它可以通过 OSD_ATXXXX_CFG 参数启用。

# 使用方法

atxxxx <命令> [参数...命令: start [-s] 内部 SPI 总线 [-S] 外部 SPI 总线 [-b <val>] 板专用总线(默认值=all)(外部 SPI:n-th 总线(默认值=1)) [-c <val>] 片选索引(外部 SPI)默认值:1 [-m <val>] SPI 模式 [-f <val>] 总线频率(千赫) [-q] 安静启动(如果未找到设备,则无信息) stop status 打印状态信息

# 蝙蝠门

资料来源 驱动程序/智能电池/巴塔蒙 (打开新窗口)

# 说明

用于与启用 BatMon 的智能电池进行 SMBUS 通信的驱动程序 设置/使用信息: https://rotoye.com/batmon-tutorial/

# 实例

从地址 0x0B 开始,在总线 4 上

batmon start -X -a 11 -b 4

# 使用方法

batmon <command> [arguments...] 命令: start [-I] Internal I2C bus(es) [-X] External I2C bus(es) [-b <val>] board-specific bus (default=all) (external SPI: n-th bus (default=1)) [-f <val>] bus frequency in kHz [-q] quiet startup (no message if no device found) [-a <val>] I2C address default: 11 man_info 打印制造商信息。suspend 暂停驱动程序,不再重新安排周期。 resume 从暂停状态恢复驱动程序。 stop status 打印状态信息

# batt_smbus

资料来源 驱动程序/batt_smbus (打开新窗口)

# 说明

用于 BQ40Z50 油量表 IC 的智能电池驱动器。

# 实例

写入闪存以设置参数。 地址, 字节数, byte0, ...,字节 N

batt_smbus -X write_flash 19069 2 27 0

# 使用方法

batt_smbus<command>[参数...] 命令: start [-I] 内部 I2C 总线 [-X] 外部 I2C 总线 [-b <val>]板专用总线(默认值=all)(外部 SPI:n-th 总线(默认值=1)) [-f <val>]总线频率(单位:kHz) [-q] 安静启动(未找到设备时无信息) [-a <val>]I2C 地址 默认值:11 man_info 打印制造商信息。unseal 解除设备闪存的封印,以启用写入闪存命令。 seal 封印设备闪存,以禁止写入闪存命令。 suspend 暂停驱动程序,使其无法重新安排周期。设备必须先用 unseal 命令解封。[地址] 开始写入的地址。[字节数] 要发送的字节数。[数据[0]...数据[n]每次一个字节的数据,以空格分隔。 停止状态 打印状态信息

# bst

资料来源 驱动程序/遥测/BST (打开新窗口)

# 使用方法

bst <命令> [参数...] 命令: start [-I] 内部 I2C 总线 [-X] 外部 I2C 总线 [-b <值>] 板特定总线(默认值=全部)(外部 SPI:n-th 总线(默认值=1)) [-f <值>] 总线频率,单位 kHz [-q] 安静启动(如果未找到设备,则无消息) [-a <值>] I2C 地址 默认值:118 stop status 打印状态信息

# dshot

资料来源 驱动程序/快照 (打开新窗口)

# 说明

这是 DShot 输出驱动程序。它类似于 fmu 驱动程序,可作为直接替换程序使用,以取代 PWM 作为电调通信协议的 DShot。

它支持

  • DShot150、DShot300、DShot600、DShot1200
  • 通过单独的 UART 进行遥测,并作为 esc_status 报文发布
  • 通过 CLI 发送 DShot 命令

# 实例

电机永久反转 1:

dshot reverse -m 1 dshot save -m 1

保存后,反转方向将被视为正常方向。因此,要再次反转,请重复相同的命令。

# 使用方法

dshot <command> [arguments...] 命令:start 启动任务(未设置任何模式、如果模块尚未运行,所有 mode_* 命令都将启动模块 mode_gpio mode_pwm 选择所有可用引脚作为 PWM 模式 mode_pwm14 mode_pwm12mode_pwm8 mode_pwm6 mode_pwm5 mode_pwm5cap1 mode_pwm4 mode_pwm4cap1 mode_pwm4cap2 mode_pwm3 mode_pwm3cap1 mode_pwm2 mode_pwm2cap2 mode_pwm1 telemetry 在 UART <;UART 设备 reverse 反转电机方向 [-m <val>] 电机索引(基于 1,默认为全部) normal 正常电机方向 [-m <val>] 电机索引(基于 1,默认为全部) save 保存当前设置 [-m <val>;电机索引(基于 1,默认为全部) 3d_on 启用 3D 模式 [-m <val>] 电机索引(基于 1,默认为全部) 3d_off 禁用 3D 模式 [-m <val>] 电机索引(基于 1,默认为全部) beep1 发送提示音模式 1 [-m <val>] 电机索引(基于 1,默认为全部) beep2 发送提示音模式 2 [-m <val>;电机索引(基于 1,默认为全部) beep3 发送蜂鸣器模式 3 [-m <val>] 电机索引(基于 1,默认为全部) beep4 发送蜂鸣器模式 4 [-m <val>] 电机索引(基于 1,默认为全部) beep5 发送蜂鸣器模式 5 [-m <val>] 电机索引(基于 1,默认为全部) esc_info 请求 ESC 信息 -m <val> 电机索引(基于 1) stop status 打印状态信息

# fake_gps

资料来源 examples/fake_gps (打开新窗口)

# 说明

# 使用方法

fake_gps <命令> [参数...] 命令: 启动 停止 状态 打印状态信息

# fake_imu

资料来源 examples/fake_imu (打开新窗口)

# 说明

# 使用方法

fake_imu <命令> [参数...] 命令: 启动 停止 状态 打印状态 信息

# 假磁力计

资料来源 examples/fake_magnetometer (打开新窗口)

# 说明

以假磁强计(sensor_mag)的形式发布地球磁场。需要 vehicle_attitude 和 vehicle_gps_position。

# 使用方法

fake_magnetometer <命令> [参数...] 命令: 启动 停止 状态 打印状态信息

# 全球定位系统

资料来源 驾驶员/全球定位系统 (打开新窗口)

# 说明

GPS 驱动模块负责处理与设备的通信,并通过 uORB 发布位置信息。它支持多种协议(设备供应商),默认情况下会自动选择正确的协议。

模块支持辅助 GPS 设备,可通过 -e 参数。该位置将发布在第二个 uORB 主题实例上,但系统的其他部分目前还没有使用它(不过,数据将被记录下来,以便用于比较)。

# 实施情况

每个设备都有一个线程在轮询数据。GPS 协议类是通过回调实现的,因此也可在其他项目中使用(例如 QGroundControl 也在使用它们)。

# 实例

启动 2 个 GPS 设备(主 GPS 位于 /dev/ttyS3,副 GPS 位于 /dev/ttyS4):

gps start -d /dev/ttyS3 -e /dev/ttyS4

重新启动 GPS 设备

GPS 重置预热

# 使用方法

gps <command> [arguments...] 命令: start [-d <val>] GPS 设备值:<file:dev>,默认:/dev/ttyS3 [-b <val>] 波特率(也可以是 p:<参数名>)默认值:0 [-e <val>] 可选的辅助 GPS 设备值:<file:dev> [-g <val>] 波特率(辅助 GPS,也可以是 p:<参数名>)默认值:0 [-s] 启用发布卫星信息 [-i <val>] GPS 接口值:spi|uart, 默认值:uart [-j <val>] 副 GPS 接口值:spi|uart, 默认值:uart [-p <val>] GPS 协议(默认值=自动选择)值:ubx|mtk|ash|eml|fem stop status 打印状态信息 reset 重置 GPS 设备 cold|warm|hot 指定重置类型

# ina226

资料来源 驱动程序/电源监视器/ina226 (打开新窗口)

# 说明

用于 INA226 电源监控器的驱动程序。

如果每个实例都有单独的总线或 I2C 地址,则可同时运行该驱动程序的多个实例。

例如,一个实例可以在地址为 0x41 的总线 2 上运行,另一个实例可以在地址为 0x43 的总线 2 上运行。

如果 INA226 模块未通电,则默认情况下驱动程序初始化将失败。要改变这种情况,请使用 -f 标志。如果设置了该标志,那么如果初始化失败,驱动程序将每隔 0.5 秒再次尝试初始化。设置该标记后,可以在驱动程序启动后插入电池,驱动程序就能正常工作。如果未设置该标志,则必须在启动驱动程序之前插入电池。

# 使用方法

ina226 <命令> [参数...] 命令: start [-I] 内部 I2C 总线 [-X] 外部 I2C 总线 [-b <val>] 板专用总线(默认=全部)(外部 SPI:n-th 总线(默认=1)) [-f <val>] 总线频率,单位 kHz [-q] 安静启动(未找到设备时无信息) [-a <val>] I2C 地址,默认为 65:65 [-k] 如果初始化(探测)失败,继续定期重试 [-t <val>] 校准值的电池索引(1 或 2) 默认值:1 stop status 打印状态信息

# 铱sbd

资料来源 drivers/telemetry/iridiumsbd (打开新窗口)

# 说明

IridiumSBD 驱动程序。

创建一个虚拟串行端口,供其他模块用于通信(如 mavlink)。

# 使用方法

iridiumsbd <command> [arguments...] 命令: start -d <val> 串行设备值:<file:dev> [-v] 启用冗长输出测试 [s|read|AT <cmd>] 测试命令 stop status 打印状态信息

# 电锁

资料来源 驱动器/锁 (打开新窗口)

# 使用方法

irllock <command> [arguments...] 命令: start [-I] 内部 I2C 总线 [-X] 外部 I2C 总线 [-b <val>] 板特定总线(默认=全部)(外部 SPI:n-th 总线(默认=1)) [-f <val>] 总线频率,单位 kHz [-q] 安静启动(未找到设备时无消息) [-a <val>] I2C 地址 默认:84 stop status 打印状态信息

# linux_pwm_out

资料来源 驱动程序/linux_pwm_out (打开新窗口)

# 说明

Linux PWM 输出驱动程序,具有特定电路板的后台实现功能。

# 使用方法

linux_pwm_out <命令> [参数...] 命令: 启动 停止 状态 打印状态信息

# LSM303AGR

资料来源 驱动器/磁力计/LSM303AGR (打开新窗口)

# 使用方法

lsm303agr <命令> [参数...命令: start [-s] 内部 SPI 总线 [-S] 外部 SPI 总线 [-b <val>] 板专用总线(默认值=all)(外部 SPI:n-th 总线(默认值=1)) [-c <val>] 片选索引(外部 SPI)默认值:1 [-m <参数>] SPI 模式 [-f <参数>] 总线频率,单位 kHz [-q] 安静启动(未找到设备时无信息) [-R <参数>] 旋转 默认值: 0 stop status 打印状态信息

# 新像素

资料来源 驱动程序/灯光/网状像素 (打开新窗口)

# 说明

该模块负责驱动与 Neopixel 串行 LED 的接口

# 实例

通常以

neopixel -n 8

驱动所有可用的 LED。

# 使用方法

newpixel <命令> [参数...] 命令:停止状态 打印状态信息

# paw3902

资料来源 驱动程序/optical_flow/paw3902 (打开新窗口)

# 使用方法

paw3902 <命令> [参数...命令: start [-s] 内部 SPI 总线 [-S] 外部 SPI 总线 [-b <val>] 板专用总线(默认=all)(外部 SPI:n-th 总线(默认=1)) [-c <val>] 片选索引(外部 SPI)默认为 1:1 [-m <val>]SPI模式 [-f <val>]总线频率,单位kHz [-q] 安静启动(未找到设备时无信息) [-Y <val>]自定义偏航旋转(度) 默认值:0 stop status 打印状态信息

# pca9685

资料来源 驱动程序/pca9685 (打开新窗口)

# 使用方法

pca9685 <命令> [参数...命令: start [-I] 内部 I2C 总线 [-X] 外部 I2C 总线 [-b <val>] 板专用总线(默认=全部)(外部 SPI:n-th 总线(默认=1)) [-f <val>] 总线频率,单位 kHz [-q] 安静启动(未找到设备时无信息) [-a <val>] I2C 地址 默认:64 reset test 进入测试模式 stop status 打印状态信息

# pca9685_pwm_out

资料来源 驱动程序/pca9685_pwm_out (打开新窗口)

# 说明

该模块负责利用 PCA9685 芯片生成 pwm 脉冲。

它监听 actuator_controls 主题,进行混合并写入 PWM 输出。

# 实施情况

该模块依赖于 ModuleBase 和 OutputModuleInterface。IIC 通信基于 CDev::I2C

# 实例

通常以

pca9685_pwm_out start -a 64 -b 1

使用 混频器 命令来加载混音器文件。 混音器加载 /dev/pwm_outputX etc/mixers/quad_x.main.mix 执行 pca9685_pwm_out 状态 当该驱动程序运行时。

# 使用方法

pca9685_pwm_out <command> [arguments...] 命令: start 启动任务 [-a <val>] 此总线上的设备地址 默认值:64 [-b <val>] pca9685 连接的总线 默认值:1 [-r <val>] 计划速率限制 默认值:400 stop status 打印状态信息

# pcf8583

资料来源 驱动程序/rpm/pcf8583 (打开新窗口)

# 使用方法

pcf8583 <命令> [参数...] 命令: start [-I] 内部 I2C 总线 [-X] 外部 I2C 总线 [-b <值>] 板特定总线(默认值=全部)(外部 SPI:n-th 总线(默认值=1)) [-f <值>] 总线频率,单位 kHz [-q] 安静启动(如果未找到设备,则无消息) [-a <值>] I2C 地址 默认值:80 stop status 打印状态信息

# pmw3901

资料来源 drivers/optical_flow/pmw3901 (打开新窗口)

# 使用方法

pmw3901 <命令> [参数...命令: start [-s] 内部 SPI 总线 [-S] 外部 SPI 总线 [-b <val>] 板专用总线(默认=all)(外部 SPI:n-th 总线(默认=1)) [-c <val>] 片选索引(用于外部 SPI),默认为 1 [-m <val>] SPI 模式 [-f <val>] 总线频率:1 [-m <参数>] SPI 模式 [-f <参数>] 总线频率,单位 kHz [-q] 安静启动(未找到设备时无信息) [-R <参数>] 旋转 默认值: 0 stop status 打印状态信息

# pwm_out

资料来源 驱动程序/pwm_out (打开新窗口)

# 说明

该模块负责驱动输出和读取输入引脚。对于没有独立 IO 芯片的电路板(如 Pixracer),它使用主通道。对于有 IO 芯片的电路板(如 Pixhawk),它使用辅助通道,而主通道则使用 px4io 驱动程序。

它监听 actuator_controls 主题,进行混合并写入 PWM 输出。

模块通过 mode_* 命令进行配置。这定义了驱动器应占用前 N 个引脚中的哪一个。例如,通过使用 mode_pwm4,引脚 5 和 6 可由相机触发器驱动器或 PWM 测距仪驱动器使用。另外,pwm_out 可在其中一种捕获模式下启动,然后驱动程序可通过调用 ioctl 注册捕获回调。

# 实施情况

默认情况下,该模块在工作队列中运行,并在 uORB actuator_controls 主题上进行回调。

# 实例

通常以

pwm_out mode_pwm

驱动所有可用引脚。

捕捉输入(上升沿和下降沿)并在控制台上打印:以其中一种捕捉模式启动 pwm_out:

pwm_out mode_pwm3cap1

这将启用第 4 针的捕捉功能。然后执行

pwm_out 测试

使用 pwm 命令进行进一步配置(PWM 速率、电平......),而 混频器 命令来加载混音器文件。

# 使用方法

pwm_out <命令> [参数...] 命令:start 启动任务(未设置任何模式、如果 pwm_out 尚未运行,所有 mode_* 命令都将启动它 mode_gpio mode_pwm 选择所有可用引脚作为 PWM 模式 mode_pwm14 mode_pwm12 mode_pwm8mode_pwm6 mode_pwm5 mode_pwm5cap1 mode_pwm4 mode_pwm4cap1 mode_pwm4cap2 mode_pwm3 mode_pwm3cap1 mode_pwm2 mode_pwm2cap2 mode_pwm1 sensor_reset 执行传感器复位(SPI 总线) [<;ms>] 复位与重新启用之间的延迟时间(毫秒) peripheral_reset 复位电路板外设 [<ms>] 复位与重新启用之间的延迟时间(毫秒) i2c 配置 I2C 时钟速率 <bus_id> <rate> 指定总线 id(=0)和速率(Hz) test 测试输入和输出 stop status 打印状态信息

# pwm_out_sim

资料来源 驱动程序/pwm_out_sim (打开新窗口)

# 说明

模拟 PWM 输出的驱动器。

它的唯一功能是 致动器控制 uORB信息,与任何加载的混音器混合,并将结果输出到 致动器输出 uORB 主题。

它用于 SITL 和 HITL。

# 使用方法

pwm_out_sim <command> [arguments...] 命令: start 启动模块 [-m <val>] 模式值:hil|sim,默认:sim stop status 打印状态信息

# px4flow

资料来源 驱动程序/optical_flow/px4flow (打开新窗口)

# 使用方法

px4flow <command> [arguments...命令: start [-I] 内部 I2C 总线 [-X] 外部 I2C 总线 [-b <val>] 板专用总线(默认=全部)(外部 SPI:n-th 总线(默认值=1)) [-f <val>] 总线频率,单位 kHz [-q] 安静启动(未找到设备时无信息) [-a <val>] I2C 地址 默认值: 66 [-R <val>] 旋转(默认值=向下) 默认值: 25 停止状态 打印状态信息

# rc_input

资料来源 驱动程序/rc_输入 (打开新窗口)

# 说明

该模块进行 RC 输入解析并自动选择方法。支持的方法有

  • PPM
  • SBUS
  • DSM
  • SUMD
  • ST24
  • TBS 穿越火线(CRSF)

# 使用方法

rc_input <command> [arguments...] 命令: start [-d <val>] RC 设备值:<file:dev>,默认:/发送 DSM 绑定命令(模块必须正在运行) stop status 打印状态信息

# rgbled

资料来源 drivers/lights/rgbled_ncp5623c (打开新窗口)

# 使用方法

rgbled <command> [arguments...] 命令: start [-I] 内部 I2C 总线 [-X] 外部 I2C 总线 [-b <val>] 板特定总线(默认=全部)(外部 SPI:n-th 总线(默认=1)) [-f <val>] 总线频率,单位 kHz [-q] 安静启动(未找到设备时无消息) [-a <val>] I2C 地址 默认:57 stop status 打印状态信息

# 强盗法

资料来源 司机/罗博克劳 (打开新窗口)

# 说明

该驱动程序通过 UART 与 机械爪电机驱动器 (打开新窗口).它执行两项任务:

  • 根据 执行器控制器_0 UOrb 主题。
  • 读取车轮编码器并将原始数据发布到 轮编码器 UOrb 主题

要使用该驱动程序,应将 Roboclaw 设为数据包串行模式(参见链接文档),并按照文档中的说明将飞行控制器的 UART 端口连接到 Roboclaw。对于Pixhawk 4,使用 UART & I2C B 端口,对应于 /dev/ttyS3.

# 实施情况

该模块的主循环(位于 RoboClaw.cpp::task_main()) 执行 2 项任务:

  1. 执行器控制器_0 向机械爪发送信息
  2. 以恒定的固定速率从 Roboclaw 读取编码器数据。

由于 UART 的延迟,该驱动程序不会写入每个 执行器控制器_0 立即向机械爪发送信息。相反,它会根据参数 rbclw_write_per.

启动时,该驱动程序将尝试读取 Roboclaw 的状态,以确认其是否已连接。如果失败,驱动程序将立即终止。

# 实例

启动该驱动程序的命令是

$ roboclaw start

设备 是 UART 端口的名称。在 Pixhawk 4 上,这是 /dev/ttyS3. 波特; 是 te 波特率。

所有可用命令如下

  • $ roboclaw start <device> <baud>;
  • $ roboclaw 状态
  • $ roboclaw stop

# 使用方法

roboclaw <command> [arguments...] 命令:

# 安全按钮

资料来源 驱动程序/安全按钮 (打开新窗口)

# 说明

该模块负责安全按钮。快速按下安全按钮 3 次将触发 GCS 配对请求。

# 使用方法

safety_button <命令> [参数...] 命令: 启动 停止 状态 打印状态信息

# 警报音

资料来源 驱动程序/音调警报 (打开新窗口)

# 说明

该模块负责音调警报。

# 使用方法

tone_alarm <命令> [参数...] 命令: 启动 停止 状态 打印状态信息

# vmount

资料来源 模块/vmount (打开新窗口)

# 说明

安装(云台)控制驱动程序。它将几种不同的输入方法(如 RC 或 MAVLink)映射到配置的输出(如 AUX 通道或 MAVLink)。

关于如何使用它的文档 云台控制 (打开新窗口) page.

# 实施情况

每个方法都在自己的类中实现,输入和输出有一个共同的基类。它们通过由 控制数据 数据结构。这样就能确保每种输入方法都能与每种输出方法配合使用,并能以最小的工作量添加新的输入/输出。

# 实例

通过设置固定的偏航角(其他轴为 0)来测试输出:

vmount 停止 vmount 测试偏航 30

# 使用方法

vmount <命令> [参数...] 命令: start test 测试输出:为一个轴设置固定角度(vmount 必须不运行) roll|pitch|yaw <角度> 指定轴和角度(单位:度) stop status 打印状态信息

# voxlpm

资料来源 驱动程序/power_monitor/voxlpm (打开新窗口)

# 使用方法

voxlpm [arguments...] start [-I] Internal I2C bus(es) [-X] External I2C bus(es) [-b <val>] board-specific bus (default=all) (external SPI: n-th bus (default=1)) [-f <val>] bus frequency in kHz [-q] quiet startup (no message if no device found) [-a <val>] I2C address default: 68 [-T <val>] Type values:VBATT|P5VDC|P12VDC, 默认:VBATT [-k] 如果初始化(探测)失败,继续重试,定期停止状态 打印状态信息