归档:使用 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 编译相同。
点击图片放大
概述: 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)都应如下所示:
- 运行 Atmel Studio 或 Visual Studio,并为 APM 设置如下:
(本例中使用的是 APM2)。
工具>>Visual Micro>>Boards:选择 Arduino Mega 2560 HAL (Apm 2)
工具>>选项>>Visual Micro:在窗口右侧,选择应用程序 & 位置>>应用程序 Ide 位置>>单击以配置 Ide 位置:在对话窗口中:
打开 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。