# 模块参考:驱动程序
子类别:
# adc
资料来源 驱动程序/ADC/board_ADC (打开新窗口)
# 说明
ADC 驱动器。
# 使用方法
adc <命令> [参数...] 命令: 开始测试 停止状态 打印状态信息
# ads1115
# 使用方法
ads1115 <命令> [参数...] 命令: start [-I] 内部 I2C 总线 [-X] 外部 I2C 总线 [-b <值>] 板特定总线(默认值=全部)(外部 SPI:n-th 总线(默认值=1)) [-f <值>] 总线频率,单位 kHz [-q] 安静启动(如果未找到设备,则无消息) [-a <值>] I2C 地址 默认值:72 stop status 打印状态信息
# 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
# 说明
用于 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
# 使用方法
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 输出的驱动器。
它的唯一功能是 致动器控制
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 项任务:
- 写
执行器控制器_0
向机械爪发送信息 - 以恒定的固定速率从 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] 如果初始化(探测)失败,继续重试,定期停止状态 打印状态信息