查看: 4522|回复: 3

[MicroPython] ESP32教程:MicroPython支持

[复制链接]
本MicroPython教程旨在阐释如何将MicroPython固件烧录到ESP32并使用简单的“Hello World(你好,世界)”程序进行测试。


简介

本文旨在阐释如何将MicroPython固件烧录到ESP32并使用简单的“Hello World”程序进行测试。
MicroPython是Python 3编程语言的实现,其包含一个Python标准库的小子集,且已经经过优化,可在微控制器上运行[1]。幸运的是,ESP32和ESP8266一样,也有一个MicroPython端口,如此处所示(https://github.com/micropython/micropython-esp32)。
虽然我们可以自行构建本项目(此处查看说明:https://github.com/micropython/micropython-esp32/tree/esp32/esp32),但上手MicroPython最简单的方法是下载预构建的固件并将其上传到开发板。本教程将采用此法。
本教程制作于Windows系统。使用的是这块ESP32开发板


所需软件


为适用本教程,需在机器上安装Python。本教程是用Python 2.7创建的,但更高版本的Python也应该可以制作。
此外,要用ESP32烧录MicroPython二进制文件还需借助一个名为esptool的软件。本文撰写之际,该软件稳定版为1.x,尚不支持ESP32 [2]。因此无法通过pip或其他Python包管理器安装该软件,需手动完成。
因此,必须从此处下载esptool的最新版本(https://github.com/espressif/esptool/releases/)。本教程所用版本为v2.0beta2。
esptool源代码下载完毕后,将其解压缩到文件夹。该文件夹内有一个setup.py文件。假设已经安装了Python,则导航到解压后的文件夹并输入以下命令:

[AppleScript] 纯文本查看 复制代码
1 python setup.py install

此操作将在系统上安装esptool。如果你愿意的话,可从该软件的存储库中查看手动安装说明。
最后,需要用到MicroPython软件的二进制文件。可从此处获取该文件(https://micropython.org/download/#esp32)。下载并保存在文件夹中,之后会派上用场。


步骤
首先,需擦除ESP32的flash。为此只需在命令行中输入以下命令。你需要将“COM5”改为你的ESP32所连接的串行端口。

[AppleScript] 纯文本查看 复制代码
1 esptool.py --port COM5 erase_flash

然后,使用以下命令将二进制文件上传到ESP32。同样地,你需要将COM5改为你的ESP32串行端口。此外,还需将pathToYourFile/BinaryFile改为你的二进制文件的路径和名称。Windows系统有一个简单的操作技巧,即把文件拖放至命令行。

[AppleScript] 纯文本查看 复制代码
1 esptool.py --port COM5 --baud 460800 write_flash --flash_size=detect 0 pathToYourFile/binaryFile

之后,你应该可以在ESP32开发板上使用MicroPython了。我们马上来确认一下。


测试安装
为测试安装,我们需要一个额外的工具与Python prompt进行交互。虽然其他可建立串行连接的软件也同样适用,但在本教程中我们将选用Putty。你可以在此处下载该软件(https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)。

从上一个链接下载.exe文件后,只需打开它,Putty图形用户界面 (GUI) 就会弹出。在连接类型上选择“串行 (Serial) ”,在串行行上输入ESP32的串口(于我而言是COM5),并将速度设置为115200。参看图1突出显示的配置。

Figure 1 – Connecting to the ESP32 MicroPython prompt with Putty..png
图1 – 使用Putty连接到ESP32 MicroPython prompt。


完成所有配置后,点击打开。如一切配置无误,你现在应该得到一个如图2所示的窗口,且MicroPython prompt可用。

Figure 2 – ESP32 MicroPython prompt..png
图2 – ESP32 MicroPython prompt。


Hello World程序
要完成本教程,我们将打印一条简单的“Hello World”消息。编写以下命令并按回车键:

[AppleScript] 纯文本查看 复制代码
1 print ("Hello World From ESP32 MicroPython")

你应该会得到类似于图3的东西。在示例中,我发送了两次命令。

Figure 3 – ESP32 MicroPython “Hello World”..png
图3 –  ESP32 MicroPython“Hello World”。

你现在可以在ESP32上使用Python了。


结 语
我要特别感谢ESP32 MicroPython端口背后的团队,我在Github页面上提出请求后他们立即提供了二进制文件。此外,还感谢他们制作了这个人人可用的超棒工具!

注:本文作者是Nuno Santos,他是一位和蔼可亲的电子和计算机工程师,住在葡萄牙里斯本 (Lisbon)。
他写了很多有关ESP32、ESP8266的有用的教程和项目。


查看更多ESP32/ESP8266教程和项目,请点击 : ESP32教程 汇总贴
英文版教程 :(ESP32 tutorial

名字并不重要  学徒

发表于 2019-4-28 13:48:48

我是小白,刚注册进来学习的。看了楼主的教程,还是想请教一下。
之前买过Nodemcu的开发板(esp8266的),下载装上ESPFlashDownloadTool_v3.6.4,把Nodemcu的开发板烧成micropython固件,一切正常(我的电脑用的是WIN7)。前几天买回Nodemcu的开发板(esp-32s的),到官网上下载了最新的固件,也想刷成micropython,但却死后刷不成!请问是为什么?应该怎么做才能刷好?
回复 支持 反对

使用道具 举报

luna  管理员
 楼主|

发表于 2019-4-28 13:53:30

名字并不重要 发表于 2019-4-28 13:48
我是小白,刚注册进来学习的。看了楼主的教程,还是想请教一下。
之前买过Nodemcu的开发板(esp8266的), ...

一般官方都可以刷成功,你的开发板是在哪里吗的?是不是开发板的问题,建议你问一下购买商家,让他提供一下售后
回复 支持 反对

使用道具 举报

名字并不重要  学徒

发表于 2019-4-28 14:58:16

淘宝买的,问过卖家,他也不知道(只卖产品,没有技术支持)。昨天又到淘宝里找了另一家买一块类似的,看看买回来对比一下,能不能刷固件
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2019 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail