第五章 MicroPython环境搭建
本章,我们将进入实际操作阶段,逐步搭建MicroPython的开发环境。
本章分为如下几个小节:
5.1 开发方式的选择
5.2 开发系统的选择与环境搭建
5.3 固件的下载与烧录
5.1 开发方式的选择
ESP32的开发方式主要有三种:MicroPython、Arduino和ESP-IDF。
1,MicroPython:MicroPython是一种精简的Python 3语言,可以运行在ESP32和其他一些微控制器上。它提供了一种简单的方式来编程和控制ESP32,而且由于Python是一种高级语言,它使得开发过程相对快速和简单。开发者可以使用MicroPython进行快速原型设计和开发,并且由于Python是一种解释型语言,所以可以直接在ESP32上运行代码,无需进行编译,本书籍选择此开发方式。
2,Arduino:Arduino是一种流行的开源电子原型平台,包括一系列的开发板和开发环境。Arduino提供了一种基于C/C++的语言,使得开发者可以更容易地控制和编程ESP32。Arduino开发环境还提供了大量的库和函数,可以帮助开发者快速地构建和测试他们的代码。Arduino还支持图形化编程,使得初学者和非专业人士也可以轻松地进行开发。
3,ESP-IDF:ESP-IDF是乐鑫官方推出的开发框架,专门为ESP32和其他一些ESP系列芯片设计。它提供了一套完整的开发工具和库,可以帮助开发者快速地开发和调试ESP32应用程序。ESP-IDF支持C/C++语言,并提供了一套完整的API,可以控制ESP32的各种功能和外设。此外,ESP-IDF还提供了一个在线编译器和调试器,可以让开发者在云端进行开发和调试。
这三种开发方式各有其优点,开发者可以根据自己的需求和技能水平选择适合自己的开发方式。对于初学者和非专业人士来说,MicroPython是一种很好的选择,因为它简单易学,可以快速上手。对于专业人士和对性能有更高要求的开发者来说,Arduino和ESP-IDF可能是更好的选择,因为它们提供了更高级的开发工具和更强大的控制能力。另外,正点原子ESP32-S3开发板为开发者提供了MicroPython、Arduino和ESP-IDF三种开发方式的相关例程和教程,这使得开发者可以根据自己的需求和技能水平选择适合自己的开发方式。
5.2 开发系统的选择与环境搭建
5.2.1 开发系统的选择
选择MicroPython进行ESP32-S3开发,确实需要准备相应的开发环境和工具。根据开发系统的不同,需选择适合的开发工具。例如,在Windows系统下开发,可以选择Thonny或VS Code等开发工具,这些工具都支持MicroPython插件,可以方便地编写和调试MicroPython代码。同样,在Linux和MAC系统下开发,也可以选择相应的开发工具进行MicroPython开发。
Linux系统开发对于初学者来说也是不容易的,虽然目前的Linux系统像Windows系统一样都具备图形化配置,但对于经常使用电脑的人来说,Windows系统还是他们日常的首选,因此本书都是基于Windows系统下开发的。
5.2.2 环境搭建
如果您是一位Python初学者小白,那最适合Thonny它了,如果不是初学者,请选择PyDev和Pycharm等工具。Thonny是一款面向Python初学者的小型集成开发环境(IDE)。它的特点是轻量级,易于使用,且完全基于Python的内置图形库tkinter开发。这款IDE可以帮助初学者更快地上手Python,避免在环境设置上浪费过多的时间。它能够让初学者更好地理解每一行代码的运行细节,并且解决了初学者可能会遇到的一些繁杂的环境问题。本书就是使用Thonny来开发的,所以下面作者会详细介绍这个软件的安装与软件框架。
一、下载&安装 Thonny
下载和安装Thonny的步骤如下:
1,下载:首先,您可以在 Thonny的官方网站 上直接下载安装包,如下图所示。
图5.2.2.1 Thonny工具的下载主界面
如果您的电脑是Windows系统,则选择Windows版本;如果是苹果系统,则选择mocOS。然后再根据自己的电脑配置选择适合的Python版本,如下图所示。
图 5.2.2.2 选择Thonny和Python版本
这里作者选择“Installer with 64-bit Python 3.10”这个版本的Thonny工具(本书编写时最新的Thonny版本,如有新版本,请下载最新版本),点击下载即可,最后在电脑下载目录下找到该安装文件。
2,安装:双击下好的thonny-4.1.3.exe文件(也可以在正点原子提供的软件资料找到安装文件),如下图所示。
图5.2.2.3 打开安装文件界面
点击上图中的“Next”按键,进入许可协议界面,如下图所示。
图5.2.2.4 许可协议界面
选择“I accept the agreement”接受许可协议,接着点击“Next”按键,进入选择创建桌面图标界面,如下图所示。
图5.2.2.5 创建桌面图标界面
我们选择“create desktop icon”选项,接着继续点击“Next”按键,进入安装界面,如下图所示。
图5.2.2.6 安装界面
点击“Install”按键安装Thonny工具,安装成功后,便会在Windows桌面上自动生成Thonny程序图标。点击该图标便可以运行该软件。在第一次运行的时候,它会让您选择界面语言和初始化设置。这里就选择简体中文和标准(Standard)设置。最后进入程序标准运行界面。打开Thonny主界面如下所示。
图5.2.2.7 Thonny主界面
上图提示Thonny的Python版本是3.10.11,我们可在Shell交互界面或者文件下测试Python例程,如下图所示。
图5.2.2.8 测试Python例程
可以看到,Shell交互界面显示Python例程的输出结果,到了这里,Windows系统下的Thonny工具安装完成。
二、Thonny工具的框架解析
下面作者来讲解一下Thonny工具的界面框架,首先我们把Thonny工具主界面划分为几个板块,这些板块如下图所示。
图5.2.2.9 Thonny工具的界面框架
从上图可知,作者把Thonny主界面划分为7个板块,这些板块介绍如下所示:
1,菜单板块
在这个板块下包含了文件、编辑、视图、运行、工具和帮助选项。
① 文件选项:
Thonny工具的文件功能主要是指在程序运行过程中,对文件输入/输出的处理。具体功能包括:新建文件、打开新建、关闭文件等操作,文本界面如下图所示。
图5.2.2.10 文件选项界面
② 编辑选项:
Thonny工具提供了丰富的编辑功能,包括复制/剪切/粘贴、撤销/重做、查找/替换、自动补全、缩进与反缩进选择行、注释代码、折等操作,可以帮助用户更方便地编辑代码文本。编辑界面如下图所示。
图5.2.2.11 编辑界面
③ 视图选项:
Thonny工具的视图功能主要是指在程序运行过程中,通过勾选不同的选项来显示和关闭不同的视图窗口。有些视图窗口会显示程序运行过程中变量的值,这对于调试程序非常有帮助。特别是对于初学者来说,可以非常直观地看到变量的值。视频界面如下图所示。
图5.2.2.12 视图界面
④ 运行选项:
Thonny工具提供了运行Python脚本、单步执行、中断执行、停止/重启后端进程、运行脚本等功能,帮助用户控制和调试Python脚本的执行过程。运行界面如下图所示。
图5.2.2.13 运行界面
⑤ 工具选项:
在“工具”选项中,用户可以管理插件和软件。例如,可以安装和卸载插件,配置解释器和编辑器属性等。工具界面如下图所示。
图5.2.2.14 工具界面
对于管理插件,用户可以浏览可用的插件列表,选择需要安装的插件,并查看已安装的插件列表。如果需要卸载某个插件,只需选择该插件并点击“卸载”按钮即可。下面作者演示一下插件的安装与卸载,如下步骤所示:
打开“工具”选项,接着点击管理插件进入插件管理界面,如下图所示。
图5.2.2.15 Thonny插件管理界面
然后,我们在文本框输入要安装的插件,这里我们安装“thonny-black-format”插件,接着,点击“在PyPI上搜索”,搜索成功后的界面如下所示:
图5.2.2.16 插件搜索结果
上图中,我们选择“thonny-black-format”插件,然后进入安装界面,如下图所示。
图5.2.2.17 插件安装界面
到了这里,我们点击“安装”选项,即可安装这个插件,安装成功后需重启Thonny软件,在“工具”选项下会多出“thonny-black-format”插件,如下图所示。
图5.2.2.18 安装“thonny-black-format”插件成功
卸载插件也是一样的操作,首先进入插件管理,然后选择要卸载的插件,最后点击“卸载”选项即可卸载,但卸载成功之后需重启Thonny软件。卸载插件步骤如下图所示。
图5.2.2.19 卸载插件的流程
对于解释器配置,用户可以在设置界面中选择和配置Python解释器。例如,可以选择本地安装的解释器,配置解释器的路径和其他参数。
对于编辑器属性配置,用户可以自定义Thonny工具的界面外观和行为。例如,可以更改工具栏的外观、设置代码编辑器的字体和颜色等。
⑥ 帮助选项
这个选项就是查看Thonny软件的版本,历史更新日记等信息,没什么好讲解的。
2,调试与下载板块
这个板块的功能只不过在菜单板块下截取一些非常实用的功能,如下载调试、新建文件和另存文件等操作。
3,文本编辑板块
这一个板块是Python代码的编辑器,用来编写代码用的。
4、5,本地浏览板块和设备存储板块
本地浏览板块可以用来浏览电脑磁盘的内容,而设备存储板块则可以显示ESP32开发板的内部文件系统。这些功能使得我们可以在开发过程中,方便地查看和编辑文件。若用户在本地编写好的py脚本,可直接保存到MicroPython设备(ESP32-S3内部文件系统)当中。
6、7,交互板块和解释器选择板块
交互板块是指Python解释器与用户进行交互的界面,它可以用于输出程序结果、错误信息以及其他相关信息,如下图5.2.2.20所示。而解释器选择板块则是指选择哪个Python解释器来编译和运行Python脚本,如下图5.2.2.21所示。
图5.2.2.20 Shell交互式窗口
图5.2.2.21 选择py解释器
在ESP32开发板上,通常会选择MicroPython解释器来编译和运行Python脚本。这是因为MicroPython是专门为微控制器和嵌入式系统设计的Python 3解释器,它具有轻量级、高效和易于使用等特点,非常适合在ESP32这样的低功耗设备上运行。
在本地计算机上运行Python程序时,则通常会选择本地Python 3解释器。这是因为Python是一种跨平台的语言,可以在不同的操作系统和设备上运行,而本地Python解释器则是针对特定平台和操作系统的。
5.2.3 USB虚拟串口驱动安装
ESP32-S3的USB串口可用于下载程序和MicroPython的REPL之间的交互。通过USB连接ESP32-S3开发板,在项目文件夹中执行特定指令,然后可以使用如idf.py等工具编译程序并下载到开发板中。此外,Thonny工具也是通过ESP32-S3 USB串口把程序或者固件下载到开发板中的。
正点原子的ESP32-S3开发板的串口信号是通过CH340C芯片进行转换,才能与PC端进行通信。CH340C芯片能够将ESP32-S3的串口信号转换为USB信号,并通过USB接口与PC进行连接。在PC端安装相关的串口调试助手软件,再安装CH340C芯片的驱动程序,就可以在PC端实现通过虚拟串口与ESP32-S3进行通信了。
接下来需要在电脑上安装CH340C芯片的驱动程序。CH340C的官方厂商沁恒提供了该驱动程序的下载选项,您可以前往 沁恒的官方网站 下载并安装CH340C的驱动程序,也可在6,软件资料→1,软件→CH340驱动文件夹下找到CH340C的驱动安装程序,如下图所示。
图5.2.3.1 CH340C驱动安装程序
打开CH340C驱动安装程序后,点击安装程序中的“安装”按钮,若提示“驱动安装成功”,则说明CH340C驱动已经安装成功了,如下图所示。
图5.2.3.2 CH340C驱动安装成功
安装完CH340C驱动后,使用跳线帽将正点原子ESP32-S3开发板P4排针的U0TX-RXD和U0RX-TXD接上,如下图所示。
图5.2.3.3 连接USB-UART0
接下来,使用USB线将开发板UART接口与PC的USB端口相连接即可。此时,PC端的设备管理器中查看到CH340C虚拟出的串口,如下图所示。
图5.2.3.4 PC端显示的虚拟串口
从上图可以看出,CH340C虚拟出的串口被PC分配了COM3的端口号。这个端口号用于串口调试助手等上位机确定与之通信的串口端。需要注意的是,当CH340C与不同的PC连接,甚至是与同一台PC的不同USB端口连接后,虚拟出的串口被PC分配到的端口号可能是不同的,例如COM4或COM5。读者可以根据设备管理器中端口设备的名称来判断具体是哪个端口号。如果同时连接了多个CH340系列的芯片,则需要逐个测试端口号
安装完USB虚拟串口驱动后,就可以使用串口调试助手,如正点原子开发的ATK-XCOM软件,与板卡通过串口进行通信了。
5.2.4 ESP-32S3开发Thonny的基本配置
使用Thonny工具进行ESP32-S3应用开发,需要完成以下配置:
打开Thonny工具,点击“运行”->“配置解释器”选项,如下图所示。
图5.2.4.1 打开配置解释器
在配置解释器界面下配置解释器和串口端口,如下图所示。
图5.2.4.2 配置解释器参数
配置完成后,就可以在Thonny工具中开发ESP32-S3芯片了。然而,在进行开发之前,需要用户将MicroPython固件下载到ESP32-S3芯片中,以便在Thonny工具中进行开发。固件的下载和烧录将在下一小节中讲解。
MicroPython官方提供了多种固件,可直接下载后烧录至开发板运行。
官方的固件大致分为pyboard、ESP系列、STM32系列等几类,下面分别说明:
1,pyboard固件
从v1.9.1版本开始,pyboard的固件分为下面几个不同版本:
① 标准版(standard)
② 双精度浮点版(double FP)
③ 线程版(threading)
④ 双进度浮点+线程版(double FP + threading)
⑤ 网络版(network)
这些版本具有相同的底层功能和包含的模块,但具有不同的专项优化。双精度浮点版本提升了浮点运算的精度,一般版本使用32位单精度浮点,而双精度浮点版本则使用64位。线程版本支持多线程功能,适合处理并行任务。双精度浮点+线程版本同时具备高精度浮点运算和多线程功能。网络版本通过SPI接口连接外部网络模块(CC3000等),为pyboaed增加网络功能。
2,ESP系列固件
ESP系列包括ES8266、ESP32、ESP32S3等多款芯片,每款芯片都有其特定的固件。虽然MicroPython为这些芯片提供了相应的固件,但有时候这些固件可能不能满足开发需求。因为MicroPython的固件是针对特定型号的,所以一个芯片的固件资源无法与其他类型的芯片匹配。
在后续的教程中,作者将教大家如何编译适合资源匹配的固件。通过学习这些教程,读者可以了解到如何针对不同的ESP芯片编译MicroPython固件,从而满足开发需求。
3,STM32系列固件
除了前面几种固件外,MicroPython官方还提供了下面几种芯片的固件,它们分别为:stm32f0、 stm32f4、stm32f7、stm32g0、stm32g4、stm32h5、stm32h7、stm32l0、stm32l1、stm32l4、stm32wb和 stm32wl。
4,MicroPython中文社区固件
虽然MicroPython官方提供了多种固件,但仍然有许多开发板没有官方支持的固件。对于许多使用者来说,编译源码是一项复杂和具有挑战性的任务。为了解决这个问题,MicroPython中文社区特别提供了多种常见开发板的预编译固件,以便大家能够轻松地使用和测试这些开发板。
MicroPython中文社区地址是: https://git.oschina.net/shaoziyang/ 。
以下,是在MicroPython官方下载对应芯片的固件并烧录至开发板上运行的步骤:
首先打开浏览器,然后打开‘百度一下’网页,接着,在文本框中输入‘MicroPython’,找到MicroPython官方网址,如下图所示。
图5.3.1 搜索MicroPython官方网站
点击“MicroPython - Python for microcontrollers”网页链接,进入MicroPython官方网站,该网页如下所示。
图5.3.2 MicroPython官方网页的主界面
在这个主界面下,点击“DOWNLOAD”下载选项,然后找到“ESP32”端口,操作流程如下所示。
图5.3.3 MicroPython固件下载主界面
在上图中,点击“esp32”选项进入ESP32 MicroPython固件下载网页,接着往下找到“ESP32-S3 Espressif”选择,如下图所示。
图5.3.4 ESP32S3固件网页链接
此时,点击“ESP32-S3 Espressif”选项进入ESP32-S3 MicroPython 固件下载界面,在此界面下找到Firmware(Support for Octal-SPIRAM)标签,如下所示。
图5.3.5 ESP32-S3 MicroPython固件下载
这里我们必须根据自己的模组类型来选择固件,由于正点原子ESP32-S3开发板的模组为ESP32-S3-WROOM-1-N16R8型号,从《esp32-s3-wroom-1_wroom-1u_datasheet_cn.pdf》模组数据手册->章节1.2 描述会发现,ESP32-S3-WROOM-1-N16R8模组的PSRAM使用的是Octal SPI,所以上图的固件,我们选择“v1.21.0(2023-10-05)/bin”固件,也就是上图红色框框的bin网页链接。
下载固件成功之后,我们得到了ESP32_GENERIC_S3-20231005-v1.21.0.bin固件文件,下面我们把这个固件烧录到ESP32-S3开发板中,这里会涉及到两种烧录方式。第一种是使用Thonny工具烧录,另一种是使用乐鑫官方提供的烧录固件软件flash_download_tool。
下面作者重点讲解这两种烧录方式,希望读者掌握其中一种即可。
1,使用Thonny工具烧录:
在Thonny工具中,选择“运行”菜单中的“配置解释器”选项,然后点击“安装或者更新microPython(esptool)”如下图5.3.6所示,进入固件烧录界面,如下如5.3.7所示。
图5.3.6 打开烧录界面
图5.3.7 esptool烧录固件工具
在上图中,我们点击红色箭头按键,在它弹出的下拉列表上选择“Select local microPython image…”选项,接着选择刚刚下载的ESP32_GENERIC_S3-20231005-v1.21.0.bin固件文件,此时,esptool烧录界面变成可编辑界面,如下图所示。
图5.3.8 可编辑的esptool烧录界面
点击“安装”按钮就执行烧录操作了,此时点击“烧录”进度条即可看到烧录进度信息,如下图所示。
图5.3.9 显示烧录进度
等待烧录进度提示“Hard resetting via RTS Pin … Done”表示烧录完成,接着关闭esptool工具,重新选择解释器(MicroPython ESP32 * USB Serial @ COM4),并按下开发板上的复位按键,即可启动MicroPython固件了。最后,在Shell交互窗口上看到固件的信息,如下图所示。
图5.3.10 提示固件信息
从上图可以看到,Shell交互式窗口提示“MicroPython v1.21.0 on 2023-10-06;Generric ESP32S3 module with ESP32S3”信息,表示已成功烧录V1.21.0版本MicroPython。
注:上图提示两个错误,这是由于这个固件配置PSRAM参数,和本模组需配置PSRAM参数不匹配才导致的,所以在第五章的时候,作者会教大家如何制作自己的固件。
2,flash_download_tool烧录:
首先打开 乐鑫下载工具 网页,接着下载Flash下载工具,如下图所示。
图5.3.11 下载flash_download_tool工具
在上图中,点击下载Flash下载工具的链接,当前版本为3.9.5,下载完成之后双击打开程序文件flash_download_tool_3.9.5.exe,然后在“DOWNLOAD TOOL MODE” 界面下选择芯片信息(Flash下载工具相关介绍,请参考flash_download_tool_3.9.5\doc路径下的《Flash_Download_Tool__cn.pdf使用手册》),如下图所示。
图5.3.12 Flash工具选择下载芯片
上图中,ChipType选择ESP32S3,WorkMode选择Develop LoadMode选择UART,点击OK,进入下载页面,如下图所示。
图5.3.13 Falsh下载界面
上图①表示选择下载的固件;上图②表示该固件将被下载到ESP32-S3的Flash哪个地址,这里我们选择0x0000;上图③和④表示SPI Flash速率及模式,这里我们选择80MHz和QIO模式;上图⑤表示串口端口和波特率,这里我们选择COM4(不同电脑插入,端口号也不同)和115200;上图⑥表示Flash固件下载开始、停止和擦除按键。
首先点击“ERASE”擦除按键,等待ESP32-S3擦除完成,然后点击“STOP”按键停止操作,接着点击“START”开始烧录操作,等待烧录完成后,就关闭flash_download_tool软件。
需要注意的是,在烧录固件之前,需要确认ESP32-S3开发板已经正确连接到电脑,并且端口号正确选择。同时,在烧录过程中要避免断电或断开连接等操作,以免对开发板造成损坏。
另外,正点原子提供了两个MicroPython出厂固件,它们唯一区别是是否携带AI接口,读者可在资料A盘\6,软件资料\1,软件\2,MicroPython开发工具\01-Windows\4,相关固件路径下找到,如下图所示:
图5.3.14 ESP32-S3固件
若读者想测试正点原子提供的MicroPython例程,可把这两个固件其中一个烧录到ESP32-S3开发板中,即可运行相关的例程。