赞
踩
ESP32是一款非常好用的物联网芯片,MicroPython可以充分利用ESP32的各种资源,本文会对MicroPython在ESP32上的应用进行说明,包括初始使用、提示信息、使用 WebREPL、连接网络与互联网通信、使用硬件外设以及控制外部组件等等。
在进行下面的工作之前,需要先准备好一块ESP32芯片的开发板,ESP32的开发板很多,MicroPython支持ESP32芯片,很多开发板都可以使用,开发板的主要功能是如何将GPIO引脚连接到外部,以及是否包含内置USB串行转换器,以便使用UART连接到PC。
本文使用芯片名称给出引脚名称(如 GPIO2),这样可以比较容易找到特定开发板上对应的引脚。
如果开发板上有USB接口,通常与电脑连接时很可能是通过USB供电,市面上大部分的开发板都通过USB口供电,也不排除有些板子需要单独的供电,相关的详细信息,可以参阅开发板的相关文档。
在ESP32开发板上运行MicroPython前,需要先下载最新的MicroPython固件文件,有些开发板也可能已经下载好固件,可以根据情况自行决定是否重新安装新的固件。固件文件可以从MicroPython网站下载,有3种版本供选择:
如果刚开始使用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.3版本开始支持Python2.7和Python3.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
注意:
如果上述命令运行无误,说明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 芯片有问题。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。