• 模块参考:驱动
    • fmu
      • 说明
      • 实现
      • 示例
      • 用法

    模块参考:驱动

    fmu

    源代码: drivers/px4fmu

    说明

    该模块负责驱动输出以及读取输入引脚。对于没有单独IO芯片的飞控板(例如Pixracer),它使用主通道。在具有IO芯片(例如Pixhawk)的飞控板上,它使用辅助通道,px4io驱动程序使用主通道。

    它通过监听actuator_controls主题,实现混控以及PWM输出。此外,它还进行RC输入解析并自动选择解析方法。支持的方法有:

    • PPM
    • SBUS
    • DSM
    • SUMD
    • ST24

    该模块通过mode_ *命令配置。 这定义了驱动程序应该占用的前N个引脚。例如,通过使用mode_pwm4,引脚5和6可以用于相机触发驱动或PWM测距仪驱动。

    实现

    默认情况下,模块在工作队列上运行,以减少RAM的使用。 它也可以在独占线程中运行,通过标志-t启用,以减少延迟。

    当在工作队列上运行时,它以固定的频率被调用,pwm速率限制actuator_controls主题的更新速率。在独占线程中运行的情况下,模块会轮询actuator_controls主题。此外,pwm速率定义了较低级别的IO定时器速率。

    示例

    通常以以下方式启动:

    1. fmu mode_pwm

    驱动所有可用引脚。

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

    1. fmu mode_pwm3cap1

    这将能够在第4个引脚上捕获。 然后:

    1. fmu test

    使用pwm命令进一步配置(PWM速率,电平,…),使用mixer命令加载混控器文件。

    用法

    1. fmu <命令> [参数...]
    2. 命令:
    3. start 启动任务(没有任何模式设置,使用任意mode_ *均可)
    4. [-t] 运行在独占线程而不是工作队列上
    5. 如果fmu不在运行状态,那么所有的mode_*命令都会启动它
    6. mode_gpio
    7. mode_rcin 只做RC输入,不做PWM输出
    8. mode_pwm 选择所有可用引脚作为PWM输出
    9. mode_pwm1
    10. mode_pwm4
    11. mode_pwm2
    12. mode_pwm3
    13. mode_pwm3cap1
    14. mode_pwm2cap2
    15. mode_serial
    16. mode_gpio_serial
    17. mode_pwm_serial
    18. mode_pwm_gpio
    19. bind 发送DSM绑定命令(模块必须正在运行)
    20. sensor_reset 执行传感器重置(SPI bus)
    21. [<ms>] 在重置和重启之间的延迟时间,单位:ms
    22. peripheral_reset 重置所有外设
    23. [<ms>] 在重置和重启之间的延迟时间,单位:ms
    24. i2c 配置I2C时钟速率
    25. <bus_id> <rate> 指定总线id(>=0)和速率,单位:Hz
    26. test 测试输入输出
    27. fake 解锁并发送作动器控制指令
    28. <roll> <pitch> <yaw> <thrust> 控制量,取值范围:[-100, 100]
    29. stop
    30. status 打印状态信息