在 ESP32 上开始使用 MicroPython

使用 MicroPython 是充分利用 ESP32 开发板的好方法。反之亦然,ESP32 芯片是使用 MicroPython 的绝佳平台。本教程将指导您设置 MicroPython、获取提示、使用 WebREPL、连接到网络并与 Internet 通信、使用硬件外设以及控制一些外部组件。

让我们开始吧!

要求

您需要的第一件事是带有 ESP32 芯片的开发板。MicroPython 软件支持 ESP32 芯片本身,任何板子都可以工作。电路板的主要特征是 GPIO 引脚如何连接到外部世界,以及它是否包含内置 USB 串行转换器以使 UART 可用于您的 PC。

本教程中将使用芯片名称(例如 GPIO2)给出引脚名称,在您的特定板上找到对应的引脚应该很简单。

为电路板供电

如果您的板上有一个 USB 连接器,那么当连接到您的 PC 时,它很可能是通过这个连接器供电的。否则,您将需要直接为其供电。有关详细信息,请参阅您的电路板的文档。

获取固件

您需要做的第一件事是下载最新的 MicroPython 固件 .bin 文件以加载到您的 ESP32 设备上。您可以从 MicroPython 下载页面. 下载它 。从这里,您有 3 个主要选择:

  • 稳定的固件构建

  • 每日固件构建

  • 使用 SPIRAM 支持构建每日固件

如果您刚开始使用 MicroPython,最好的办法是使用稳定的固件版本。如果您是一位高级、经验丰富的 MicroPython ESP32 用户,希望密切关注开发并帮助测试新功能,那么每天都有构建。如果您的电路板支持 SPIRAM,您可以使用标准固件或支持 SPIRAM 的固件,在后一种情况下,您将可以访问更多 RAM 用于 Python 对象。

部署固件

拥有 MicroPython 固件后,您需要将其加载到 ESP32 设备上。执行此操作有两个主要步骤:首先您需要将设备置于引导加载程序模式,其次您需要跨固件复制。这些步骤的确切过程高度依赖于特定的电路板,您需要参考其文档以了解详细信息。

幸运的是,大多数开发板都有一个 USB 连接器、一个 USB 串行转换器,以及以特殊方式连接的 DTR 和 RTS 引脚,然后部署固件应该很容易,因为所有步骤都可以自动完成。具有此类功能的开发板包括 Adafruit Feather HUZZAH32、M5Stack、Wemos LOLIN32 和 TinyPICO 开发板,以及 Espressif DevKitC、PICO-KIT、WROVER-KIT 开发套件。

为获得最佳效果,建议先擦除设备的整个闪存,然后再安装新的 MicroPython 固件。

目前我们只支持 esptool.py 跨固件复制。你可以在这里找到这个工具: https://github.com/espressif/esptool/,或者使用 pip 安装它:

pip install esptool

从 1.3 开始的版本支持 Python 2.7 和 Python 3.4(或更新版本)。旧版本(至少需要 1.2.1)工作正常,但需要 Python 2.7。

使用 esptool.py 您可以使用以下命令擦除闪存:

esptool.py --port /dev/ttyUSB0 erase_flash

然后使用以下命令部署新固件:

esptool.py --chip esp32 --port /dev/ttyUSB0 write_flash -z 0x1000 esp32-20180511-v1.9.4.bin

笔记:

  • 您可能需要将“端口”设置更改为与您的 PC 相关的其他内容

  • 如果在闪烁时出现错误,您可能需要降低波特率(例如通过添加到命令中降低到 115200 )--baud 115200

  • 对于某些具有特定 FlashROM 配置的板,您可能需要更改闪存模式(例如通过添加到命令中)-fm dio

  • 固件的文件名应与您拥有的文件匹配e

如果上述命令运行没有错误,那么 MicroPython 应该安装在您的板上!

串口提示

在设备上安装固件后,您可以通过 UART0(GPIO1=TX,GPIO3=RX)访问 REPL(Python 提示符),它可能连接到 USB 串行转换器,具体取决于您的电路板。波特率为 115200。

从这里您现在可以按照 ESP8266 教程进行操作,因为这两个乐鑫芯片在使用 MicroPython 时非常相似。ESP8266 教程可在ESP8266 的 MicroPython 教程中找到(但请跳过介绍部分)。

排除安装问题

如果您在刷机过程中或在刷机后立即运行固件时遇到问题,以下是故障排除建议:

  • 注意并尝试排除硬件问题。常见的问题有 2 个:电源质量差,FlashROM 磨损/有缺陷。说到电源,不仅原始安培数很重要,低纹波和噪声/EMI 也很重要。最可靠、最方便的电源是 USB 端口。

  • 上面的刷机说明使用的是460800波特的刷机速度,很好的兼顾了速度和稳定性。但是,根据您的模块/板、USB-UART 转换器、电缆、主机操作系统等,上述波特率可能过高并导致错误。在这种情况下,请尝试使用更常见的 115200 波特率。

  • 要捕获不正确的闪存内容(例如,来自芯片上有缺陷的扇区),请 --verify在上面的命令中添加switch。

  • 如果您仍然遇到刷新固件的问题,请参阅 esptool.py 项目页面,https://github.com/espressif/esptool 以获取其他文档和错误跟踪器,您可以在其中报告问题。

  • 如果您能够刷新固件,但该 --verify选项即使在多次重试后仍返回错误,则您的 FlashROM 芯片可能有缺陷。