当前位置:   article > 正文

在ESP32上使用MicroPython_micropython esp32

micropython esp32

ESP32是一款非常好用的物联网芯片,MicroPython可以充分利用ESP32的各种资源,本文会对MicroPython在ESP32上的应用进行说明,包括初始使用、提示信息、使用 WebREPL、连接网络与互联网通信、使用硬件外设以及控制外部组件等等。

准备开发板

在进行下面的工作之前,需要先准备好一块ESP32芯片的开发板,ESP32的开发板很多,MicroPython支持ESP32芯片,很多开发板都可以使用,开发板的主要功能是如何将GPIO引脚连接到外部,以及是否包含内置USB串行转换器,以便使用UART连接到PC。

本文使用芯片名称给出引脚名称(如 GPIO2),这样可以比较容易找到特定开发板上对应的引脚。

为开发板供电

如果开发板上有USB接口,通常与电脑连接时很可能是通过USB供电,市面上大部分的开发板都通过USB口供电,也不排除有些板子需要单独的供电,相关的详细信息,可以参阅开发板的相关文档。

获取固件

在ESP32开发板上运行MicroPython前,需要先下载最新的MicroPython固件文件,有些开发板也可能已经下载好固件,可以根据情况自行决定是否重新安装新的固件。固件文件可以从MicroPython网站下载,有3种版本供选择:

  • 稳定固件版本
  • 每日固件升级
  • 支持SPIRAM的每日固件更新

如果刚开始使用MicroPython,最好选择稳定固件版本,如果是有丰富经验的用户,并且希望密切关注开发过程并帮助测试新功能,则可以选择每日固件构建。如果开发板支持SPIRAM,可以使用标准固件或支持SPIRAM的固件,在后一种情况下,有更多的内存用于Python对象。

部署固件

获得MicroPython固件后,需要将其下载到ESP32设备上,这主要有两个步骤:首先,需要将设备置于引导加载器模式,然后,复制固件,具体步骤在很大程度上取决于开发板,详情可参考其文档。

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

为了达到最佳效果,建议在安装新的 MicroPython 固件之前,首先擦除整个设备的闪存。

目前,MicroPython只支持esptool.py来跨固件复制,可以在此处找到该工具:https://github.com/espressif/esptool/,或使用pip安装:

pip install esptool
  • 1

从1.3版本开始支持Python2.7和Python3.4(或以后版本)。旧版本(至少需要1.2.1)可以正常运行,但需要Python 2.7。

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

esptool.py --port /dev/ttyUSB0 erase_flash
  • 1

然后使用

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

注意:

  • 需要将"端口"设置更改为实际的端口,每个电脑可能不同
  • 如果闪存时出现错误,可能需要降低波特率(例如,在命令中添加 --baud 115200,将波特率降至 115200)
  • 对于某些具有特定 FlashROM 配置的开发板,可能需要更改闪存模式(例如在命令中添加 -fm dio)
  • 固件的文件名应与您所拥有的文件一致

如果上述命令运行无误,说明MicroPython已安装在开发板上。

串行提示符

一旦在设备上安装了固件,就可以通过UART0(GPIO1=TX,GPIO3=RX)访问 REPL(Python 提示符),根据开发板的不同,UART0 可能连接到 USB 串口转换器。波特率为 115200。关于REPL,可以参考MicroPython的交互式解释器模式 REPL

常见问题

下面是在刷固件或者运行时经常遇到的一些问题和建议:

  • 首先要排除硬件问题。常见的问题有两个:电源质量差,FlashROM 损坏。关于电源,需要的不仅是最大电流,还有低纹波和噪音/EMI,最可靠方便的电源是USB端口。

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

  • 要捕获异常的闪存内容(如芯片上有缺陷的扇区),可在上述命令中添加 --verify 开关。

  • 如果在刷固件时仍遇到问题,可参阅 esptool.py 项目页面,https://github.com/espressif/esptool 以获取更多文档,并在错误跟踪器中报告问题。

  • 如果固件可以刷新,但多次重试后 --verify 选项仍返回错误,则可能是 FlashROM 芯片有问题。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/600561
推荐阅读
相关标签
  

闽ICP备14008679号