开源改变世界!!

使用 PlatformIO 进行编译

推推 grbl 3周前 (12-01) 80次浏览

简介

本页介绍如何使用 PlatformIO 和 VSCode 编译 Grbl_Esp32。

您的起点

  • 强制的
    • 具有一定的 C++ 编程经验
    • 基本 CNC 知识
    • 带 USB 线缆的 ESP32 DevKit 开发板
  • 选修的
    • 像Bart 的 Tindie 板一样的完整硬件
    • 一台正在工作的数控机床(包括电机驱动器、步进器、按钮等)

PlatformIO 与 Arduino IDE

Arduino IDE是一个易于使用的“集成开发环境”(IDE),用于微控制器软件开发。IDE 意味着代码编辑、程序编译、将编译后的代码下载到微​​处理器以及测试都可以在一个环境中完成。它最初是为 Arduino 硬件设计的,但现在已适用于包括 ESP32 在内的许多不同的微控制器。它稳定、文档齐全,并且非常易于小型项目使用。对于较大的项目,它的简单性可能会成为限制。

Grbl_Esp32 是一个相对较大的项目,它突破了 Arduino IDE 的极限。一个主要的烦恼是,如果你更改任何内容,Arduino IDE 会重新编译所有代码,即使是未更改的部分。这需要花费时间,这阻碍了开发,因为开发通常需要进行一系列小的更改并快速测试它们。此外,Arduino IDE 对专业代码管理实践(如版本控制、代码审查、多个程序员之间的合作以及问题跟踪)没有很好的支持。

为了克服这些限制,Grbl_Esp32 核心开发人员改用PlatformIO微控制器编译系统,并结合使用Visual Studio Code (VSCode) 编辑系统。PlatformIO 负责设置微控制器编译器、开发框架、库和板配置、将代码加载到微控制器以及测试等细节。VSCode 拥有大量用于编辑和管理源代码的工具,并可通过点击方式集成到 PlatformIO 和源代码管理系统(如 git 和 GitHub)。PlatformIO 和 VSCode 的组合为 Arduino IDE 提供了一种替代方案,它速度更快(初始设置后),功能更强大。

(PlatformIO 还可以与其他编辑系统配合使用,如 Atom、Sublime Text、EMACS、Visual Studio 和 vi。如果您更喜欢其中某个编辑器,请在网上搜索有关在您的编辑器中使用 PlatformIO 的说明。为简单起见,本文档仅介绍 VSCode 的情况。)

VSCode 有许多扩展可用于处理常见的编程情况。除了 PlatformIO 扩展之外,本文档还推荐了一些特别适合与 Grbl_Esp32 配合使用的扩展。

让我们进行一次全新安装,最后将 Grbl_Esp32 上传到 ESP32 进行首次测试。

安装 VSCode 和 PlatformIO

1. Git

Grbl_ESP32 项目使用Git版本控制系统来跟踪代码更改,并结合 GitHub Web 服务将代码存储在云中。使用 git 并非绝对必要 – 您可以只下载包含给定版本源代码的 .zip 文件 – 但 git 有很多优点。您可以轻松跟踪不​​同版本的代码,在已发布的代码和实验性代码之间来回切换,将建议的更改发送回核心开发人员等。

如果你的机器上已经有 git,VSCode 将使用现有安装。如果没有,请先安装 git。有关 Git 的更多信息,请参阅Git 文档

2.VSCode

按照文档安装Visual Studio Code。在 Windows 中,VSCode 的全新安装如下所示。

使用 PlatformIO 进行编译

3. PlatformIO 扩展

点击左下角的“齿轮”图标并选择扩展,打开 VSCode 扩展选项卡。在顶部的“在 Marketplace 中搜索扩展”框中,输入“platformio”,选择“PlatformIO IDE”扩展,然后使用蓝色的“安装”按钮进行安装。

使用 PlatformIO 进行编译

4.GitLens 扩展(可选)

GitLens扩展提供了代码比较和 VSCode 的 git 的全部功能。这对于需要详细了解代码随时间变化情况的开发人员特别有用。在扩展管理器中搜索“GitLens”,如上所示,然后安装它。见下图。

5. C/C++ 扩展

Grbl_Esp32 源代码大部分是用 C/C++ 编写的。有各种不同的扩展程序可帮助进行 C/C++ 开发 – 突出显示关键字、实时错误检查、显示函数参数等。Microsoft的C/C++扩展程序运行良好。见下图。

6.已安装扩展的最终概述

使用 PlatformIO 进行编译至此,安装已完成。下一步是项目设置。

将 Grbl_Esp32 导入 VSCode/PlatformIO

Grbl_Esp32 源代码包含一个“platformio.ini”文件,它告诉 PlatformIO 如何编译它。

如果您的计算机上已经有 Grbl_Esp32 源代码,只需从顶部菜单栏转到文件>打开文件夹,然后选择包含 Grbl_Esp32 的文件夹。该文件夹中的“platformio.ini”将激活 PlatformIO 扩展。

如果您还没有源代码,可以直接从 VSCode 中获取。在 VSCode 侧栏中,单击 PlatformIO 的“外星人”图标以调出“PLATFORMIO:快速访问”面板,然后选择克隆 Git 项目。

使用 PlatformIO 进行编译在顶部,您将看到一个框,上面写着“提供存储库 URL 或选择存储库源”。将https://github.com/bdring/Grbl_Esp32粘贴到该框中,然后单击其下方显示的从 URL 克隆…行。

使用 PlatformIO 进行编译这将打开一个文件选择器对话框,您可以在其中选择包含新“Grbl_Esp32”子目录的目录。然后您将看到

使用 PlatformIO 进行编译然后

使用 PlatformIO 进行编译单击打开,VSCode 将连接到 Grbl_Esp32 源代码。

定制“Grbl_Esp32/src/Machine.h”

每台 CNC 机器都需要一些特定的机器设置。Grbl_ESP32 默认为无所事事的“test_drive.h”机器定义。您最终将需要设置一个真正的机器定义文件。

文件Grbl_Esp32/src/Machine.h包含行#include "src/Machines/test_drive.h"。它选择“test_drive”机器 – 一个虚拟的 3 轴机器,您可以单独在 ESP32 开发模块上或连接到任何硬件上安全地使用它。它实际上不会改变任何引脚的状态,因此可以安全使用,而不必担心浮动输入引脚或短路输出引脚。

要与实际硬件一起使用,您必须使用 Grbl_Esp32/src/Machines/ 子目录中现有的机器定义文件之一,或者创建自己的文件。例如,Grbl_ESP32 开发板使用文件 Machines/3axis_v4.h。如果您的硬件与预定义的机器之一不匹配,您可以创建自己的文件,也许可以使用预定义的文件之一作为起点。请参阅此wiki 页面。在 Machine.h 中,#include 您的文件而不是 Machines/test_drive.h。

您可以使用 VSCode 编辑该文件,如下所示

使用 PlatformIO 进行编译

如何编译 Grbl_Esp32(USB、无线、Web UI)

VSCode PlatformIO 扩展在窗口底部的状态栏中添加了一些图标

使用 PlatformIO 进行编译您可以将鼠标悬停在图标上以验证其功能。

“复选标记”图标表示从源代码编译(“构建”)固件,但不会将其上传到 ESP32 模块。编译过程以及由此产生的任何错误都会显示在 VSCode 的“TERMINAL”窗格中。

“右箭头”图标表示编译成功,然后上传到 ESP32 模块。这是您最常使用的图标。

使用 PlatformIO 进行编译“垃圾桶”图标执行“清理”步骤。在大多数情况下,PlatformIO 可以检测到源文件何时发生变化,并且只会重新编译已更改的文件,从而加快您进行小幅更改后后续重新编译的过程。在少数情况下 – 特别是当您在 Custom/ 文件夹中进行更改时 – 更改检测不起作用,因此您必须强制 PlatformIO 重新编译所有内容。这就是“清理”的作用 – 它会丢弃所有以前的编译结果,因此编译过程从头开始并编译所有内容。

“电源插头”图标启动连接到 ESP32 串行端口的串行监视器,以便您可以与 Grbl_Esp32 进行串行交互。

正常过程是“上传”(自动执行编译步骤),然后是“串行监视器”。

可能的问题

  • 如果您之前已安装 PlatformIO,则旧安装可能会干扰新工作。PlatformIO 在UserHomeDirectory /.platformio 目录中存储了许多工具。(在 Windows 上,UserHomeDirectory通常是“C:/Users/YourUserName”)。这些工具的旧版本可能无法正常工作。在这种情况下,您可以尝试删除或重命名旧的 .platformio 目录。然后,您必须使用 VSCode 的扩展管理器卸载并(重新)安装 PlatformIO 扩展。系统可能会提示您重新加载 VSCode 几次;请在网上咨询如何操作。

通过 USB 上传

现在通过 USB 将 ESP32 开发板连接到 PC。请记住,此基本步骤与芯片有关,而不是开发板。换句话说,您可以

  • Espressif DevKit 开发板
  • Bart 的 Grbl_ESP32 CNC 开发板 V4.1

使用 PlatformIO 进行编译

  • 您自己的董事会

使用 PlatformIO 进行编译

提示

  • 有些 ESP32 开发板需要按下 EN 按钮才能启动编程。这可以通过添加电容器来补偿
  • PlatformIO 会自动识别与 ESP32 开发板的 USB 连接。如遇问题,请参阅上传选项

通过 OTA(无线)上传

此步骤不适用于出厂时刚出厂的 ESP32 芯片。首次使用 Grbl_Esp32 进行刷新后,这是一个非常有用的功能,因为无需物理访问硬件即可刷新机器。

先决条件

  • Grbl_Esp32 首次烧写
  • Grbl_Esp32 中启用 OTA
  • 路由器、安全……设置
  • 天线已连接(如适用)
  • Grbl_Esp32 Web UI 可通过 WIFI 访问
  • 通过 Web UI 手动上传固件进行试驾,确保其可以正常工作

话虽如此,请将这些行添加到主文件夹中的platformio.ini文件中

[env]
upload_protocol = espota
upload_port = 192.168.xx.xx

upload_port是您机器的 IP 地址。

单击蓝色功能区中的PlatformIO::Upload按钮

Uploading: [============================================================] 99%
Uploading: [============================================================] 99%
Uploading: [============================================================] 100% Done...


13:31:35 [INFO]: Waiting for result...
13:31:36 [INFO]: Result: OK
13:31:36 [INFO]: Success

通过 ESP32 Web UI 上传

一旦 ESP32 Web UI 正常工作,您还可以通过 Web UI上传生成的firmware.bin文件。

使用 PlatformIO 进行编译

提示

  • 可能需要调整电脑的防火墙以允许传入流量(问题
  • 测试 ESP32 连接。例如通过 USB 连接,预期结果如下所示
  • 将一个正常工作的 firmware.bin 文件和一个正常工作的存储库一起存档作为备份可能会有所帮助。以防万一出现问题,你需要回到最近定义的起点

下一步该怎么做

常见常见问题解答

  • 分支是稳定的环境,打开 GitHub 网站时就会看到。还有其他分支,例如devt或用于尝试特定功能的分支。

根据用户兴趣,未分类的 wiki 增强功能

  • 更新 Grbl_Esp32
  • 更新 ESP32 固件(当前版本 AT 2.1)
  • Fork Grbl_Esp32 并使用 GitHub 维护自己的编程
  • 简单程序,例如小型用户定义函数(标头,.c 文件)

页脚

喜欢 (0)