存档:使用 Xbee 无线电设备与 APM 一起进行遥测

警告

存档文章

正确的主题是 遥测-XBee

../_images/KT-Telemetry-Xbee-2new.jpg

连接 Xbee 无线模块

添加无线遥测技术并不困难,而且可以极大地扩展无人机的功能。我们建议 900Mhz Xbees.如果您在欧洲,那里不允许使用 900Mhz,您可以使用 2.4Ghz Xbee 套件。

警告

在 APM 2 上,当 APM 板连接到 USB 端口时,不能使用 Xbee。

这是因为 Xbee 和 USB 共享同一个串行端口,通过一些巧妙的多路复用来检测 USB 电缆是否插入,并在插入时将输出切换到 USB。虽然这样可以腾出一个串口用于其他用途(如连接安卓手机),但这也意味着在工作台上测试无线遥测时,需要将电路板与 USB 电缆断开,并通过其他方式为其供电。

布线

APM 2.0

../_images/telemtry.jpg ../_images/xbee_amp2_connection.jpg

如上图所示,将 XtremeBee 适配器(插入 Xbee)连接至 APM 2。适配器应处于 "主 "模式。(主站 "和 "从站 "的 TX 和 RX 引脚正好相反)。

我们推荐使用 3DR 四线 Xbee 电缆,它与上图所示的官方无线遥测套件一起提供。它专为连接卓典蜂适配器和 APM 而设计,可提供最整齐、最安全的连接。

APM 2.5

在 APM 2.5 上,使用专用遥测端口和随附电缆,如图所示:

../_images/xbee_amp2.5_telemetry_port_connection.jpg

地面方面

如果使用的是 USB 适配器,只需通过 USB 电缆连接即可,如图所示:

../_images/xbee_usb_connection.jpg

如果地面端使用的是 XtreamBee 适配器,请将其连接到 FTDI 电缆,如下图所示,然后将其插入 USB 端口。适配器也应处于主模式。

../_images/XtreemBee.jpg

带 XtreemBee 适配器的 XBee

现在您就大功告成了!连接时,请记住在Mission Planner地面站或其他 GCS 中选择正确的 Xbee 端口(您可以在 Windows 控制面板设备管理器中查看已为 Xbee 分配的端口)和 57k 的波特率。

./_images/xbeebaud.png

(可选)将遥测功能改为使用 UART2(又称串行 3)

默认情况下,连接到 APM2 的 Xbee 将使用 UART0(在 Arduino 中又称 "串行"),如上所述,它与 USB 共享。如果希望使用 UART2(又称 "串行 3")进行遥测,可以更改 APM2 底部的 "AutoMUX UART0 "跳线。

虽然很难看到,但默认情况下,上焊盘之间有两个小跳线,必须用 X-Acto 刀片切割。然后必须制作一个新的焊桥来连接底部焊盘。

../_images/BOTTOM_AutoMUX_UART02_small.jpg

(可选)滚动自己的 Xbee 遥测设置

如果愿意,您可以自制遥测套件。首先要注意的是,您应该使用与遥控设备频率范围不同的 Xbee 模块。

一般情况下,我们推荐使用 900Mhz Xbee 模块,但在某些国家,900Mhz 不被认可。在这种情况下,您可以使用 2.4Ghz Xbee 模块。在这种配置下,我们使用 Xbee Pro 无线模块

安装可能有点麻烦,请参阅本手册下面的注释,了解其他人是如何安装的。尤其是,我们不推荐使用 DIY Drones XtreamBee 适配器来安装这些模块。请尝试

Sparkfun 适配器。请注意,DIY Drones 团队只支持推荐的 900Mhz Xbee 模块,因此如果您使用其他模块,请向社区寻求帮助,而不是 DIY Drones 开发人员。

以下是更多讨论 了解如何选择最适合您设置的频率。

所有 Xbee 模块都需要适配器才能与 APM 配合使用。您有两种选择:

  • 飞机一侧有一个 DIY Drones XtreamBee 适配器,另一侧有一个 USB 适配器板 在地面/笔记本电脑一侧用 USB 电缆连接。

  • 如果你已经有一根 FTDI 电缆,那就买两个 DIY Drones XtreamBee 适配器。

设置 Xbee 模块

如果您有 DIY 无人机遥测套件,您的 Xbee 模块已经设置好,随时可以使用。但如果您要自己安装,这里有一些说明:

Xbee 模块出厂时的默认速度为 9600bps,您必须将其更改为与 APM 的串行速度 57600 bps 一致;请将您的 Xbee 模块设置为与此速度一致。(如果您想使用不同的速度,可在 APM_Config.h 文件中输入以下一行进行更改: #define :ref:`SERIAL3_BAUD<SERIAL3_BAUD>` [不管 波特 费率 要])

将每个模块连接到 USB 适配器板上,将 USB 电缆插入电脑,然后使用 Digi 的 X-CTU 实用程序(Mac/Linux 用户请参阅下文有关 motosenso 提供的替代实用程序的部分)选择正确的串行端口并与其通信。记住,最初要将实用程序设置为 9600bps,以便与新的 Xbee 模块联系,在更改速度后,再相应更改实用程序的串行速度。您还应为模块设定唯一的网络 ID(VID),以便它们配对。只需使用任意 3 位数字,并确保两个模块的设置相同即可。(注:如果您将在其他无人机附近飞行,请务必确认网络 ID 是唯一的,且未被附近的其他无人机使用)。

在 X-CTU 的调制解调器配置选项卡中点击 "读取 "时,设置应该是这样的(这里我们使用 999 作为 VID 作为示例,我已经突出显示了正确的波特率):

./_images/Xbeescreenshot.png

注意:如果您从 Sparkfun 而非官方 DIY Drones 套件购买了 Xbee 模块,请注意它们有时会附带错误的固件。X-CTU 可能会尝试下载新代码,但很可能会失败(取消下载)。如果您的 Xbee 模块报告为 XBP09-DM(而不是正确的 XBP09-DP),请执行以下操作:

  1. 如果您有 XBP09-DP 模块,则必须下载 XBP09-DP 固件。如果下载的是 XBP09-DM 固件,则可以正常运行,但在 PID 配置界面会出现故障。

  2. X-CTU 会将模块报告为 XBP09-DM。不要理会。转到调制解调器配置选项卡并执行以下操作:

    1. 选择调制解调器为 XBP09-DP,功能集 XBEE-PRO 900,版本 1002。请务必选择 1002。版本 1061 起初不起作用。

    2. 单击参数视图下的显示默认值按钮。

    3. 单击 "调制解调器参数和固件 "下的写入按钮。

    4. 返回 PC 设置,将波特率改为 9600。点击查询。将显示 XBP09-DM。忽略它。

    5. 返回调制解调器配置。单击 "读取"。调制解调器应显示为 XBP09-DP。版本 1002。

    6. 现在选择版本 1061。

    7. 点击 "显示默认值

    8. 单击 DD 参数并将其设置为 0。这一步非常重要,否则 1161 固件下载将失败。

    9. 点击 "写入"。现在您的固件是 XBP09-DP 1161 版。

  3. 现在更改波特率和调制解调器 VID,重新下载即可。

电脑设置查询中仍会显示 XBP09-DM。这一点不用担心。

非 PC 用户

MacOS、Linux 或 Windows 用户 - X-CTU 有一个免费的跨平台替代软件,名为 moltosenso Network Manager。下载软件 这里.moltosenso 团队与我们合作撰写了一份 特别教程 关于使用其软件为 ArduPilot 和 Copter Telemetry 设置 Xbee 无线电设备。敬请欣赏!

测试连接

在笔记本电脑上打开终端程序(也可以使用 Arduino IDE 的串行监视器),选择正确的串行端口,并将波特率设置为上述 Xbee 模块设置的波特率(默认为 57600)。设置完成后,您就会看到 APM 遥测数据输入。只要代码中出现 "Serial3.println",数据就会通过 Xbees 发送到地面。您可以记录任何数据,甚至可以从地面进行数据记录!您还可以打开地面站软件,设置正确的端口和波特率),它就会开始显示 APM 数据。

此外,如果您想测试 Xbee 链路的范围,可将平面侧 Xbee 模块的 RX 和 TX 引脚连接在一起,创建一个环回电路,然后使用 X-CTU 实用程序的范围测试功能。对于我们使用的模块,您应该可以获得一英里左右的距离。

备注

如果您在 APM 上连接了 Xbee,USB 电缆本身可能无法提供足够的电力来驱动它们。请将电调和锂电池连接到 RC 引脚,以提供额外的电源。(如果只有红色 C LED 指示灯微弱闪烁,或者 APM 板断断续续,则可以判断为低电量("断电")情况)。

测试代码

ArduPilot Mega 有四个串行端口,因此现在所有常见的 Arduino 串行命令都需要一个指定符,说明要从哪个端口读取数据或向哪个端口写入数据。例如 Serial1.print(), Serial2.print().与 USB/FDTI 连接器相连的端口为串行 0。与电信引脚相连的端口为串行 3。

  1. 将 Xbee 插入一个 USB 端口,将 APM 插入另一个 USB 端口。使用 Arduino 加载演示代码,然后在 Arduino IDE 中将串行端口设置为分配给 APM 板的端口。然后打开串行监视器,将波特率设为 115200。您会看到 "端口 0 "重复如下,显示 APM USB 端口的输出:

    ../_images/xbeetest2.png
  2. 现在将串行端口切换到分配给 Xbee 的端口,然后重新打开串行监视器,将波特率设为 57600(Xbees 的编程速度应为 57600)。现在,您应该会看到 "端口 3 "重复出现,显示 APM Xbee 端口的输出。

解锁 Xbee

备注

有时 Xbee 模块会因杂散信号而损坏。如果您发现自己的模块停止工作(Adafruit 适配器上的绿色 LED 灯不亮),请按照以下说明重新加载固件:

使用 USB 适配器板:

  1. 从接口板中取出模块。

  2. 将接口板连接到计算机。

  3. 打开 X-CTU 确保波特率设置为 9600

  4. 转到 "调制解调器配置

  5. 在 "始终更新固件 "框中打勾

  6. 从下拉菜单中选择合适的调制解调器(对于上述推荐的 900MHz 调制解调器,请选择 "XBP09-DP";对于 2.4GHZ Xeebee Pro 2,请选择 "XBP24-B")。

  7. 点击 "写入 "按钮。尝试读取调制解调器几秒钟后,您会看到一个信息框,上面写着 "需要采取行动"。此时,请小心地将模块插入接口板。几秒钟后,固件将重新加载。

  8. 不久之后,您可能会再次看到信息框;如果是这样,只需重复前面的步骤几次,应该就可以了。

  9. 这将使模块回到 9600 波特。将 X-CTU PC 设置为该波特率并进行测试。它应该会反馈已识别。

  10. 一旦确认它可以重新工作,请确保重新设置其波特率(APM 通常为 57k)和 VID 编号,使其与其他模块相匹配。

(感谢 Doug Barnett 提供这些建议)