我是靠谱客的博主 内向招牌,最近开发中收集的这篇文章主要介绍ArduPilot — RC Input and Output,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

RC输入是任何自动驾驶仪的关键部分,给予机身的先导控制,允许它们改变模式,并给予它们控制辅助设备,例如摄像机支架。

ArduPilot支持多种不同类型的RC输入,具体取决于硬件类型:

  • PPMSum - on PX4, Pixhawk, Linux and APM2
  • SBUS - on PX4, Pixhawk and Linux
  • Spektrum/DSM - on PX4, Pixhawk and Linux
  • PWM - on APM1 and APM2
  • RC Override (MAVLink) - all boards

可用通道的数量取决于特定板的硬件。注意,sbu和spektrum/dsm是串行协议。sbus是100k波特的反向uart协议,spektrum/dsm是115200波特的uart协议。有些电路板使用硬件uart(如在px4上)实现这些,有些电路板将它们在软件上实现为uart(在linux上)。

RC输出是ArduPilot控制伺服和马达的方式。可用输出通道的数量取决于电路板的类型,甚至可以取决于车辆类型和配置参数。rc输出默认为50赫兹的pwm值,但可以配置为一个广泛的更新率。例如,直升机代码设置其电机输出,以更高的速率驱动ESC——通常超过400Hz。

AP_HAL RCInput object

首先要理解的对象是ap_hal rcinput对象,它可以作为hal.rcin使用。它提供对当前在板上接收到的信道值的最底层的访问。返回值是以微秒为单位的脉宽调制值。

在libraries/ap_hal/examples/rcinput/rcinput.cpp目录下,然后在板上试试。试着移动遥控器上的手柄,检查输出值是否正确变化。

AP_HAL RCOutput object

ap_hal rcoutput对象(可用作hal.rcout)提供对所有输出通道最底层的控制。如何实现这一点是非常具体的电路板,可能涉及对片上定时器或i2c外设的编程,或通过协处理器(如px4io微控制器)输出。

在libraries/ap-hal/examples/rcoutput/rcoutput.cpp目录下。会发现它只是设置了所有的通道,在几秒钟内将伺服系统从最小值转换到最大值。连接一些伺服到你的电机,然后测试,以确保它工作。

The RC_Channel object

上面讨论的hal.rcin和hal.rcout对象是低层函数。在ArduPilot中处理RC输入和输出的常用方法是通过一个称为RC_Channel的更高级别对象。该对象具有用于每个信道的最小/最大/中位的用户可配置参数,以及辅助信道功能的支持、输入和输出的缩放以及许多其他特征。

在libraries/rc_channel/examples/rc_channel/rc_channel.cpp目录。该示例演示如何设置rc通道、读取输入并将输入复制到输出值。在你的电路板上运行这个程序,检查传送器的输入是否通过伺服系统。尝试将其更改为反转通道,并更改通道上的最小/最大/中位。通过rc_channel.h查看有哪些api函数可用。

最后

以上就是内向招牌为你收集整理的ArduPilot — RC Input and Output的全部内容,希望文章能够帮你解决ArduPilot — RC Input and Output所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部