本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 (28.15 KB, 下载次数: 12)

2018-10-31 17:40 上传

图1 – 使用Putty连接到ESP32 MicroPython prompt。

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

Figure 2 – ESP32 MicroPython prompt..png (38.49 KB, 下载次数: 11)

2018-10-31 17:40 上传

图2 –ESP32 MicroPython prompt。

Hello World程序

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

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

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

Figure 3 – ESP32 MicroPython “Hello World”..png (31.23 KB, 下载次数: 11)

2018-10-31 17:40 上传

图3 – ESP32 MicroPython“Hello World”。

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

结 语

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

注:本文作者是Nuno Santos,他是一位和蔼可亲的电子和计算机工程师,住在葡萄牙里斯本 (Lisbon)。

他写了很多有关ESP32、ESP8266的有用的教程和项目。

查看更多ESP32/ESP8266教程和项目,请点击 :

esp32 python-ESP32教程:MicroPython支持相关推荐

  1. ESP32开发之旅——MicroPython介绍

    ESP32开发之旅--MicroPython介绍 什么是ESP32 为什么使用MicroPython开发ESP32 参考文献链接 什么是ESP32 ESP32是由我国乐鑫公司继ESP8266芯片后推出 ...

  2. LIVE MINI ESP32开发板教程系列(三)drv2605L模块+手机常用振动器实现117种震动效果

    LIVE MINI ESP32开发板教程系列(三)drv2605L模块+手机常用振动器实现117种震动效果 LIVE MINI ESP32引脚图 手机振动器介绍 DRV2605L模块 硬件连线图 DR ...

  3. Python+ESP32 快速上手(九、控制1602LCD屏幕显示内容

    Python+ESP32 快速上手(九.控制1602LCD屏幕显示内容) 一.九.控制1602LCD屏幕显示内容 二,代码 来自 一.九.控制1602LCD屏幕显示内容 二,代码 import tim ...

  4. ESP32:Arduino教程汇总

    ESP32:Arduino教程汇总 最近在搞ESP32,偶然发现Arduino框架的中文社区,感觉非常有用,在此记录一下相关链接,以防后面丢失. 1.Arduino常用函数参考: https://wi ...

  5. arduino nano 蓝牙_用Arduino玩转掌控板(ESP32):ESP32概述与Arduino软件准备

    前言 近年来,掌控板(英文名:mPython)在创客教育中应用越来越广泛.掌控板集成了 ESP32 高性能双核芯片,具备 WiFi 和蓝牙连接功能,同时在板子上又配置了丰富的传感器,最重要的是它是专门 ...

  6. micropython支持的单片机,MicroPython技术及应用定义

    MicroPython极精简高效的实现了Python3语言,包含Python标准库的一小部分,在单片机和受限环境中运行. 1.1.MicroPython发展 由剑桥大学的理论物理学家乔治?达明设计,遵 ...

  7. python 开发板-MicroPython:STM32 上 的 Python 开发

    虽然Python在国外是一门非常火的语言,在黑客界更是赫赫有名,然而中国的大学却极少开设 Python 课程,故而国内 Python 程序员多属自学.而一个没有MCU编程经验的初学者,要想让芯片跑起来 ...

  8. Python培训教程:Python有哪些比较重要的内置函数?

    学习Python技术或者参加Python工作的小伙伴们应该都知道,在Python编程语言中会经常出现很多内置函数,很少有人清楚这些函数,但是它的功能是不可小觑的,下面小编就为大家详细介绍一下Pytho ...

  9. Python培训教程分享:10款超好用的Python开发工具

    学会Python技术后,我们在参加工作的时候如果能有辅助工具的话,那么会很大程度的提高我们的工作效率,那么Python都有哪些好用的开发工具呢?下面小编就为大家详细的介绍一下10款超好用的Python ...

  10. Python培训教程分享:有哪些值得使用的爬虫开源项目?

    相信很多同学在学习Python技术的时候,都有学习到Python爬虫技术,爬虫技术在各大互联网公司都是非常常见的,可以帮助我们获取各种网站的信息,比如微博.B站.知乎等,本篇Python培训教程分享为 ...

最新文章

  1. mysql 执行计划大于_Mysql执行计划(大章)
  2. DELPHI 7 动态链接库DLL断点调试
  3. ABAP string函数一览
  4. (027) Linux之shell分支if语句
  5. 动态规划应用--最长递增子序列 LeetCode 300
  6. 自定义控件之瀑布流与水波纹实现
  7. git提交异常 fatal: LF would be replaced by..
  8. XSS漏洞原理/方式/防御
  9. 【机器学习】Andrew Ng——04多变量线性回归
  10. 影像测量仪使用的注意点
  11. [Android] 软件中选择文件夹功能
  12. Android开发人员必看的资料
  13. 测试工具平台介绍之MeterSphere
  14. linux设置汉语输入法,在Deepin系统下使用韩语(韩文)输入法的方法
  15. 苹果怎么应用分身_苹果ios/安卓微信双开技巧
  16. 一文带你了解华为私有云
  17. SQL 数据库 学习 012 数据库关系图
  18. 【人机交互技术】Web界面设计
  19. java ppt转图片 失真_Apache POI将PPT转换成图片实例代码
  20. C语言计算排列组合C(m,n)的值

热门文章

  1. das,nas,san区别——大型数据中心会用NAS+SAN软硬结合思路
  2. Bzoj4016/洛谷P2993 [FJOI2014] 最短路径树问题(最短路径问题+长链剖分/点分治)
  3. c primer plus--数据和C(第3章)--习题
  4. 源码分析(一) 进程cleos的命令解析
  5. hihoCoder 1578 Visiting Peking University 【贪心】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛)...
  6. Maven快照机制(SNAPSHOT)
  7. jQuery 在Table中选择input之类的东西注意事项
  8. 将存储过程的返回值赋给变量
  9. 国际财务报告准则 IFRS 与信息系统
  10. apcloud混合式开发app学习笔记