归档:使用 Atmel Studio 或 Visual Studio & Visual Micro 构建 ArduPilot

警告

存档文章

ArduPilot 不再支持 Arduino 或 AVR。

本教程说明了如何使用 Atmel Studio 6.2 或 Microsoft Visual Studio 设置和构建 AMP,并使用 视觉微型 插件。

导言

想要一个强大的 APM 代码开发环境?请尝试使用 Atmel Studio 6.2 或 Microsoft Visual Studio 的 视觉微型 插件。您可以使用这些工具编辑、构建和上传 APM 代码。编译和上传与 ArduPilot Ardunio 编译相同。

../_images/Atmel-Studio-%2B-Visual-Micro.jpg

点击图片放大

概述: Atmel Studio 或 Microsoft Visual Studio 提供了强大的集成开发环境 (IDE)。但是,ArduPilot 代码的设置是为了使用专用的 ArduPilot Arduino IDE,如果没有插件来设置正确的结构并提供上载工具,该结构在这些环境中无法工作。使用 Arduino 查找各种函数和类的源代码非常困难,有时需要手动搜索多个文件夹和文件,才能找到主代码设置或循环中使用的某个函数或类的实际源代码。

解决方案 Visual Micro 解决了这些问题中的大部分。Visual Micro 是 Atmel Studio 或 Visual Studio 的一个插件,可增加以下功能:

  • 与 Arduino 代码结构、程序库、文件命名和草图兼容 - 与强大的 studio IDE 兼容。

  • 将 Arduino 草图上传到任何一块 Arduino 板,以及 APM 板。

  • 所有文件都显示在解决方案面板中,便于打开、浏览或编辑任何文件。

  • 看一看 视觉微型 网站了解所有详情。

  • Visual Micro 在与标准 Arduino 草图一起使用时具有调试功能,但 APM 代码删除或修改了许多标准 Arduino 功能,如 Serial.print()和硬件串行功能。Visual Micro 调试器无法与 APM 配合使用。不过,请不要因此而放弃尝试 Atmel Studio 或 Visual Studio IDE。

在此,您将逐步了解如何设置 Atmel Studio 或 Visual Studio 以浏览、编辑、构建和上传 APM 代码。特别感谢 Visual Micro 的 Tim Leek 开发了这个出色的插件,并帮助创建了本文档。

设置

即使您目前不是 Atmel Studio 或 Visual Studio Pro 的用户,但使用过 Arduino IDE 来构建 APM 代码,那么本流程也能让您开始使用。在适当的地方提供了其他维基页面的链接,以了解更多细节。没有包含有关 Visual Studio 或 Atmel Studio 功能的详细信息。您需要自行学习。

"这款" 视觉微型 网站介绍了如何安装 Visual Micro for Arduino,以及如何设置 Atmel Studio 或 Visual Studio 以与 Arduino 草图和电路板配合使用。没有明确说明的是如何添加对 APM 板的支持。一旦明确了这些信息,设置就非常简单了。以下是所需关键步骤的摘要:

  • 假设

    • 必须安装和测试专用的 ArduPilot Arduino 才能构建和上传代码。完整的详细信息如下 这里.在本例中,假定安装位置为 C:\ArduPilot-Arduino-1.0.3-windows。

    • 您需要 Atmel Studio 6.2 (免费)或已安装 Visual Studio Pro 2008、2010 或 2012 正式版。Visual Micro 不能与免费的 Visual Studio Express 版本一起使用。本示例中使用的是 Visual Studio 2008。

    • 您需要 ArduPilot 源代码。本教程假定 APM 源代码位于 C:\Users\Public\Documents\ardupilot-Copter-3.1.3。

      获取最新发布的代码压缩文件 "Plane x.x.x" 这里 或使用 Git 中枢 创建当前代码的克隆。如果您需要特定的发布版本,请访问 ardupilot 版本库,选择所需的 ardupilot 分支,然后点击下载压缩包。

  • 视觉微型 网站和竞争 设置.网站上有说明。

  • 使用以下方法测试 Arduino Visual Micro 说明.在继续之前,先让它正常工作。

  • 下载并安装 APM 板信息。这是构建和上传 APM 代码的关键要求。

    • 前往 Apm - 安装指南 在 Visual Micro 论坛上。阅读帖子,然后下载 boards.txt 文件.

    • 将 "boards.txt "文件放入 "Arduino/hardware "文件夹下的 "APM "文件夹。无论 Arduino IDE 位于何处,您的 Arduino 文件夹(本例中为 C:\ArduPilot-Arduino-1.0.3-windows)都应如下所示:

      ../_images/VisualMicroHardware.jpg
    • 运行 Atmel Studio 或 Visual Studio,并为 APM 设置如下:

      (本例中使用的是 APM2)。

      • 工具>>Visual Micro>>Boards:选择 Arduino Mega 2560 HAL (Apm 2)

      • 工具>>选项>>Visual Micro:在窗口右侧,选择应用程序 & 位置>>应用程序 Ide 位置>>单击以配置 Ide 位置:在对话窗口中:

        • 在下拉文本框中将 Arduino 选为 "1.0.x:"。

        • 将 ide 文件夹位置设置为 C:\ArduPilot-Arduino-1.0.3-windows(或 Arduino IDE 的位置)。

        • 将草图本位置设置为 C:\Users\Public\Documents\ardupilot-Copter-3.1.3(或 ArduPilot 代码的位置)。

        • 注:这是包含 APMover2、Copter、Plane、docs、FollowMe、libraries、mk 和 Tools 文件夹的文件夹。

          下面是本教程的设置过程:

          ./_images/VisualMicroSetup.jpg

打开 arducopter.pde 草图:文件>>打开>>草图项目:

选择 Copter/arducopter.pde(或代码文件夹中的 arducopter.pde 文件)。

构建代码:构建>>清理解决方案,然后构建>>构建解决方案。代码的编译应该不会出错。根据您使用的源代码,您可能会收到 "Sketch too big ..."(草图太大......)的消息。您可以通过取消 APM_Config.h 中某些编译选项的注释来减小草图的大小。

重要: 每次更改 #define 语句(或注释或取消注释)时,都必须执行 Build>>Clean Solution,然后再执行 Build>>Rebuild Solution。详情请参见下面的 "提示和注意事项 "部分。

上传代码

代码编写无误后,您就可以将固件上传到 APM。

  • 首先这样做:

    工具>>选项>>Visual Micro -Micro Debug - 高级:将自动调试设置为 "假"。然后,F5 将在不调试的情况下上传,从而省去了在 F5 时按 CTRL 键的麻烦。

  • 通过 USB 电缆连接 APM。

  • 工具>>Visual Micro>>串行端口。设置为检测到的 APM USB 端口。如果未检测到 USB 端口,请按照 Arduino 安装说明添加适当的驱动程序。如果 Arduino IDE 可以工作,那么 Visual Studio / Visual Micro 也应该可以工作。

  • 要上传到 APM 板,只需按 F5 键。

作者对 3.1.3 版代码的构建和上传至 APM 进行了飞行测试。对稳定、高度保持和位置悬停等飞行模式都进行了测试,其表现与使用Mission Planner地面站上传的相同修订版相同。不过,请注意,从源代码构建自己的上传可能会导致意想不到的结果。您必须正确配置所有选项定义和其他代码。请务必小心谨慎,尽情享受 Visual Studio 和 Visual Micro 带来的乐趣。

提示和说明

该程序经测试可在作者的 PC 上构建并上传到 APM。配置 Arduino、Atmel Studio、Visual Studio 和 Visual Micro 还有其他方法。这些方法由读者自行决定。例如,您可以将 ArduPilot Arduino IDE 安装在任何位置,而不仅仅是程序区。建议先使用此程序验证一切正常。

如何缩小 Copter 的尺寸,使其能够建造: 在 Visual Studio 或 Atmel Studio 解决方案面板(其中列出了源文件)中,打开 Copter/Header Files/APM_Config.h 文件,取消注释部分 #Define XXX DISABLED 行以节省空间。例如,根据 APM 的情况禁用 MOUNT、OPTFLOW、CAMERA、CONFIG_SONAR 和/或 PARACHUTE。每次更改定义时,都必须执行 Build>>Clean Solution(清理解决方案),然后再执行 Build>>Rebuild Solution(重建解决方案)。

从新克隆源构建时出现错误: 首次设置应用程序位置(例如在获取全新克隆源代码后)或更改使用的集成开发环境时,即使选择了正确的 Arduino 板,也可能会出现构建错误。要获得无错误的构建,只需重新选择正确的板即可。请参阅下面的 Arduino 多重安装,了解可能出现这种情况的原因。

快速编译与更改定义 Visual Micro 有一个快速编译的默认选项。这是默认设置。集成开发环境会检查文件的更改,如果没有更改,则不会重新编译未更改的文件。当定义语句被修改时,这个非常棒的功能会产生副作用,因为定义语句会影响其他文件,但不会具体修改文本(代码),因此受定义影响的文件不会被重新编译,从而造成真正的混乱。有两种方法可以避免这个问题:

  • 每次更改定义、取消注释定义或注释定义时,都要这样做:

    • Build>>Clean>>解决方案(将清除预编译缓存)

    • 建造>>重建

    • 以下所有构建(假设未对定义进行更改)都可以是真正的快速版本 构建>>构建解决方案

  • 或者,如果您希望每次编译都等待很长时间,可以更改 Visual Micro 选项

    • 工具>>选项。选择 Visual Micro,向下滚动到 Compiler Optimisation。嘿,在英国他们是这么拼的。

    • 将核心已修改和库已修改设为假

多次安装 Arduino:需要注意的是,Arduino 只有一个存储参数的位置--C:\Users\....\AppData\Roaming\Arduino\preferences.txt。任何时候开始安装 Arduino(标准版、ArduPilot Arduino 版或甚至在 Visual Micro 中更改设置),该文件都可能被更改。因此,每次更换集成开发环境时,检查正在使用的集成开发环境中的所有设置是非常重要的,以避免将首选项设置为上一次使用的集成开发环境的首选项。

在 Visual Micro 中引用标准 Arduino: 通常,Visual Micro 的设置是参考 Arduino 的标准安装,而不是针对 HAL 版本 APM 的特殊 ArduPilot Ardunio。您可以将 Visual Studio 或 Atmel Studio 配置为引用标准安装,它可能会构建并上传 APM 代码,但上传将不起作用。构建大小不同,而且无法连接到 Mission Planner。强烈建议您在使用 APM 代码时仅参考 ArduPilot Arduino 专用安装。

使用 Arduino 语句和库: 最好的说法是不使用标准 Arduino 语句。用于 APM 板的 ArduPilot 最新 HAL 版本删除了大部分(如果不是全部的话)标准 Arduino 语句和库。例如,您不能直接添加 analogRead(sensorPin) 语句。因此,如果您尝试使用标准 Arduino 语言参考来编辑 APM 代码,请不要感到沮丧,因为这在大多数情况下是行不通的。APM 有等效的调用和语句,但您必须在代码中寻找示例。

构建旧版本的 ArduPilot: 如果您仍在使用 2.9.1b 版本或 HAL 之前的旧版本,可以使用 Atmel Studio 或 Visual Studio 和 Visual Micro IDE。

您只需执行以下操作

  • 下载 支持 2.x.x 版本的 ArduPilot Arduino.不要将其与当前版本混淆。它们名称相同,但内容不同。

  • 将 ArduPilot Arduino 安装在一个单独的文件夹中,并将 apm/boards.txt 文件添加到硬件文件夹中--就像上述说明一样。

  • 在 Atmel(或 Visual)Studio 的工具>>选项>>Visual Micro 中,设置应用程序和 Arduino 位置,以引用支持 2.x.x 版本的 ArduPilot Arduino,以及包含 2.x.x 源代码的文件夹。您可以从以下网址获取 2.9.1b 代码 diydrones/ardupilot 版本库,选择所需的 ardupilot 分支,然后点击下载压缩包。

  • Set Tools>>Visual Micro>>Boards to APM Arduino Mega 2560。