DroneCAN 适配器节点

通过这些节点,现有的 ArduPilot 支持的外围设备可作为 DroneCAN 或 MSP 设备适配到 CAN 总线上。这还允许扩展自动驾驶硬件的功能。例如,允许 I2C 设备(如罗盘或空速)距离(飞行)控制器超过 1 米,并允许多达 32 个伺服输出通道。

../_images/uavcan-node.jpg

他们利用 AP_Periph 库,以便在受支持的硬件板上使用现有的 ArduPilot 驱动程序。将 ArduPilot 支持的基于 UART、SPI、I2C 或 GPIO 的外围设备转换为 CAN 总线或 MSP 上的 DroneCAN 设备。

例如,与 DroneCAN 适配的串行 GPS:

../_images/uavcan-node-gps.jpg

这为开发可与 ArduPilot 或其他支持 DroneCAN 的系统一起使用的集成式 DroneCAN 外围设备提供了一种简便的方法。

第一个适配器由 移动机器人如下图所示,它为 UART+I2C 和另一个 I2C 连接提供了插座输出,并为第二个 UART、SPI 总线、GPIO 和 ADC 输入提供了焊盘。

../_images/mRo-can-node.jpg

第一代产品基于 f103 处理器,而新一代产品使用 f303,内存更大,固件可同时容纳更多外设选项。现在已支持 L431 处理器,任何与 ArduPilot 兼容的(飞行)控制器都可以改装成 DroneCAN 适配器节点。

开发人员可能会发现 AP_Periph 部分 的开发文档,了解创建 AP_Periph 节点的更多详情。

特点

AP_Periph DroneCAN 固件可配置为启用多种 DroneCAN 传感器类型。支持的传感器类型包括

  • GPS 模块(包括 RTK GPS)

  • 磁力计(SPI 或 I2C)

  • 气压计(SPI 或 I2C)

  • 空速传感器(I2C)

  • 测距仪(UART 或 I2C)

  • ADSB(Ping UART 上的 ADSB 接收器)

  • LED 指示灯(GPIO、I2C 或 WS2812 串行接口)

  • 安全 LED 和安全开关

  • 蜂鸣器(音调报警器或简单的 GPIO)

  • PWM 和 DShot 输出

  • 串行端口直通(见 DroneCAN 串行端口直通)

有关设置(飞行)控制器和通用适配器节点以启用这些功能(假设节点支持这些功能)的详细说明,请参阅以下网站 DroneCAN 适配器设置.

备注

在某些情况下,必须在适配器节点上加载不同的固件,才能支持所需的外设子集。请参阅下面的 "固件"。

AP_Periph DroneCAN 固件支持这些 DroneCAN 功能:

  • 动态或静态 CAN 节点分配

  • 固件上传

  • 自动生成启动加载程序

  • 闪存中的参数存储

  • 轻松更新启动加载程序

  • 利用看门狗、CRC 和电路板检查实现高弹性功能

  • 通过 MissionPlanner 或 DroneCAN-gui-tool 更新固件

固件

固件 AP_Periph 文件夹中提供了受支持的 DroneCAN 设备的固件,以及将某些(飞行)控制器转换为 DroneCAN 适配器使用的固件。目前,以下固件是预制的,但代码允许轻松定制。固件可通过以下两种方式安装 DroneCAN 图形用户界面任务计划 SLCAN 当设备连接到(飞行)控制器上的 DroneCAN 端口,且(飞行)控制器已启用该端口时。请参见 DroneCAN 设置.由于所有 ArduPilot 驱动程序库的大小都会超过小型处理器,因此提供了几种支持不同外设的变体。

备注

不断增加更多变化

基于 F103

  • f103-GPS:串行 GPS、I2C 罗盘、I2C RGB LED

  • f103-ADSB:串行 ADS_B、I2C 罗盘、I2C 空速

  • f103-测距仪:串行测距仪,I2C 空速传感器

基于 F303

  • f303-GPS:串行 GPS、SPI RM3100 罗盘、I2C 罗盘、I2C RGB LED

  • f303-M10025:串行 GPS、SPI RM3100 罗盘、SPI DPS310 Baro、I2C RGB LED、I2C 空速、安全开关

  • f303-Universal:串行 GPS/测距仪/ADS-B,I2C 罗盘,I2C Baro,I2C RGB LED,I2C 空速

基于 L431

  • MatekL431-ADSB

  • MatekL431-BattMon

  • MatekL431-EFI

  • MatekL431-GPS

  • MatekL431-HWTelem: HobbyWing ESC/Telem

  • MatekL431-Proximity

  • MatekL431-RC

  • MatekL431-Periph:串行 GPS、I2C QMC5883L 罗盘、I2C SPL06 Baro、I2C RGB LED、I2C Airspeed(MS4525 默认)、无源蜂鸣器、电池监控器、MSP、5 PWM 输出(建议在此应用中使用 MatekL431-DShot)

  • MatekL431-Airspeed:I2C 空速,DLVR 10 "默认类型

  • MatekL431-DShot:5 个双向 DShot(默认)/PWM 输出(默认从 SERVO5 开始),ESC telem 在 UART1 RX 上(请参阅 "MatekL431-DShot")。 在此查看设置说明)

  • MatekL431-Rangefinder:系列测距仪

ArduPilot 固件 DroneCAN 设置

备注

确保启用(飞行)控制器的 CAN 端口,并将其设置为 DroneCAN 协议。请参见 : DroneCAN 设置

DroneCAN 适配器可支持各种设备和配置。通常,需要更改其配置参数。为此,可以使用 DroneCAN 图形用户界面任务计划 SLCAN 更改设备参数。

例如,在使用 MatekL431-Airspeed 时,可能需要更改设备中的 ARSPD_TYPE 参数,以便与实际使用的 I2C 空速传感器相匹配。

f303 通用型示例设置

f303-Universal 固件可用于多个串行设备,但只能启用一个设备来使用单个 UART。固件上传后,连接到 UART 端口的默认设备被设置为 GPS,要使用其他设备(如测距仪),必须关闭 GPS 并启用测距仪或其他设备。

串行设备的选项有

  • GPS_TYPE=0

  • RNGFND1_TYPE=0

  • adsb_baudrate=0

上述适配器 DroneCAN 参数设置将禁用所有设备,然后您应该只启用您想要的设备,因为您不可能有两个串行设备,因为只有一个 UART。

固件还可用于 I2C 外围设备。

  • COMPASS

  • 巴罗

  • 空速传感器

  • NCP5623 LED

DroneCAN 适配器节点

有几种设备是专门为用作通用适配器节点而制造的: