单片机学习小组
登录
直播中
王伟
7年用户
1486经验值
私信
关注
为什么使用MicroPython开发ESP32?
开启该帖子的消息推送
开源硬件
python
单片机
为什么使用MicroPython开发ESP32?
回帖
(1)
武妹
2022-2-22 11:28:37
为什么使用MicroPython开发ESP32
ESP32是非常热门的一款物联网芯片,它的开发方式非常多样,其中使用MicroPython的方式非常快速便捷,适合试验测试等使用,当然如果设计合理的话也可以用于正式产品开发。
快速入门
开发板准备
入门学习使用MicroPython开发ESP32可以使用乐鑫官方的
ESP32-DevKitC开发板
,某宝上一搜一大把。也可以使用上面链接文章中的最小系统,反正就是准备个能上电运行、能烧写固件的威廉希尔官方网站 模块就成。
开发工具选择
MicroPython的开发工具选择面非常大,通常情况下只要找个能够启用串口的工具就行,在Windows上常见的有putty、VScode+插件等很多选择。在这里我推荐使用
Thonny
,这个工具是目前我认为最适合用在MicroPython开发上的,其官方网站与项目地址如下:
该工具集固件烧录、Python Shell调试、文件管理于一体,是目前用MicroPython开发最理想的工具。
固件下载与烧录
固件可以从MicroPython官网进行下载,ESP32的固件目前分为两类,分别基于ESP-IDF v3.x和ESP-IDF v4.x开发,目前支持的功能上稍有差异。每一类又细分为 GENERIC 普通的 和 GENERIC-SPIRAM 支持外部SPI RAM的。
常见的 ESP32-WROOM-32 等模块是不带SPI RAM的,而 ESP32-WROVER-B 等模块是带SPI RAM的。
固件可以用上面的 Thonny 进行烧录:
注1:固件烧录也可以用乐鑫官方的Flash下载工具:
注2:串口驱动根据需求另行安装;
程序入门
在固件烧录完成后复位芯片程序就开始执行,默认情况下会进入Python Shell交互环境。
MicroPython For ESP32默认使用UART0进行交互,默认波特率为115200
MicroPython可以使用help函数获得帮助:
可以进行运算或输出信息:
可以控制GPIO口:
上图中先是通过 help() 查看相关说明,然后导入machine模块中的Pin类。接着声明一个GPIO口对象(p13),该对象绑定到芯片的GPIO13,并且设置为输出。接下来使用 help 函数查看了p13对象的说明,最后使用 on() 让GPIO13输出高电平。
在IO口上接上LED,并加入延时就可以实现控制小灯闪烁了:
上图中 time.sleep(0.5) 相当于延时0.5秒,整段while语句相当于使GPIO13持续翻转,当我敲出两个空行时while语句开始运行。最后我按下键盘上 CTRL + C 结束了程序。
使用MicroPython控制ESP32连接无线网络也非常方便:
上图中我连接了名为(SSID) AAA 、密码是12345678的无线网络,连上网络后打印了IP、子网掩码、网关等信息。
通过文件运行程序
上面的程序都是在Python Shell交互环境中进行的,当然也可以将代码保存到文件上,通过文件运行程序。MicroPython的固件会在开发板ESP32模块的flash上创建一个文件系统,可以用来存放文件。
我们可以使用 Thonny 打开、删除开发板上存储的文件:
Thonny 也可以将文件保存到开发板上,还可以启动运行文件:
默认情况下MicroPython会生成一个 boot.py 文件,当系统启动完成之后会先运行该文件中的内容,该文件一般用于运行一些系统层面开机时需要启动的功能,一般不推推荐用户修改。在 boot.py 文件中的程序运行结束之后系统紧接着会运行 main.py 文件(如果没有该文件则跳过)。在 main.py 文件运行结束后会则进入Python Shell调试模式:
上图中我建立了 main.py 文件,将它上传到开发板,然后按下开发板上复位按钮。可以看到系统复位后 main.py 文件中的内容被执行。
如果在 main.py 文件中写个死循环,然后所有程序都写在该循环中,那用起来就和传统的单片机差不多了,只不过从固件变成了文件。不过如果这样做的话就进不了Python Shell调试模式了,并且无法再次进行文件修改上传等操作,只有重写烧写MicroPython固件才能恢复(或者死循环的程序中有文件系统读写的功能)。
Thonny 可以支持文件树状视图,是目前唯一一个支持以文件夹形式上传文件的工具:
为什么使用MicroPython开发ESP32
ESP32是非常热门的一款物联网芯片,它的开发方式非常多样,其中使用MicroPython的方式非常快速便捷,适合试验测试等使用,当然如果设计合理的话也可以用于正式产品开发。
快速入门
开发板准备
入门学习使用MicroPython开发ESP32可以使用乐鑫官方的
ESP32-DevKitC开发板
,某宝上一搜一大把。也可以使用上面链接文章中的最小系统,反正就是准备个能上电运行、能烧写固件的威廉希尔官方网站 模块就成。
开发工具选择
MicroPython的开发工具选择面非常大,通常情况下只要找个能够启用串口的工具就行,在Windows上常见的有putty、VScode+插件等很多选择。在这里我推荐使用
Thonny
,这个工具是目前我认为最适合用在MicroPython开发上的,其官方网站与项目地址如下:
该工具集固件烧录、Python Shell调试、文件管理于一体,是目前用MicroPython开发最理想的工具。
固件下载与烧录
固件可以从MicroPython官网进行下载,ESP32的固件目前分为两类,分别基于ESP-IDF v3.x和ESP-IDF v4.x开发,目前支持的功能上稍有差异。每一类又细分为 GENERIC 普通的 和 GENERIC-SPIRAM 支持外部SPI RAM的。
常见的 ESP32-WROOM-32 等模块是不带SPI RAM的,而 ESP32-WROVER-B 等模块是带SPI RAM的。
固件可以用上面的 Thonny 进行烧录:
注1:固件烧录也可以用乐鑫官方的Flash下载工具:
注2:串口驱动根据需求另行安装;
程序入门
在固件烧录完成后复位芯片程序就开始执行,默认情况下会进入Python Shell交互环境。
MicroPython For ESP32默认使用UART0进行交互,默认波特率为115200
MicroPython可以使用help函数获得帮助:
可以进行运算或输出信息:
可以控制GPIO口:
上图中先是通过 help() 查看相关说明,然后导入machine模块中的Pin类。接着声明一个GPIO口对象(p13),该对象绑定到芯片的GPIO13,并且设置为输出。接下来使用 help 函数查看了p13对象的说明,最后使用 on() 让GPIO13输出高电平。
在IO口上接上LED,并加入延时就可以实现控制小灯闪烁了:
上图中 time.sleep(0.5) 相当于延时0.5秒,整段while语句相当于使GPIO13持续翻转,当我敲出两个空行时while语句开始运行。最后我按下键盘上 CTRL + C 结束了程序。
使用MicroPython控制ESP32连接无线网络也非常方便:
上图中我连接了名为(SSID) AAA 、密码是12345678的无线网络,连上网络后打印了IP、子网掩码、网关等信息。
通过文件运行程序
上面的程序都是在Python Shell交互环境中进行的,当然也可以将代码保存到文件上,通过文件运行程序。MicroPython的固件会在开发板ESP32模块的flash上创建一个文件系统,可以用来存放文件。
我们可以使用 Thonny 打开、删除开发板上存储的文件:
Thonny 也可以将文件保存到开发板上,还可以启动运行文件:
默认情况下MicroPython会生成一个 boot.py 文件,当系统启动完成之后会先运行该文件中的内容,该文件一般用于运行一些系统层面开机时需要启动的功能,一般不推推荐用户修改。在 boot.py 文件中的程序运行结束之后系统紧接着会运行 main.py 文件(如果没有该文件则跳过)。在 main.py 文件运行结束后会则进入Python Shell调试模式:
上图中我建立了 main.py 文件,将它上传到开发板,然后按下开发板上复位按钮。可以看到系统复位后 main.py 文件中的内容被执行。
如果在 main.py 文件中写个死循环,然后所有程序都写在该循环中,那用起来就和传统的单片机差不多了,只不过从固件变成了文件。不过如果这样做的话就进不了Python Shell调试模式了,并且无法再次进行文件修改上传等操作,只有重写烧写MicroPython固件才能恢复(或者死循环的程序中有文件系统读写的功能)。
Thonny 可以支持文件树状视图,是目前唯一一个支持以文件夹形式上传文件的工具:
举报
更多回帖
rotate(-90deg);
回复
相关问答
开源硬件
python
单片机
求助,
ESP32
-D0WDQ6和
ESP32
-PICO-D4是否支持
micropython
?
2023-02-13
209
请问
ESP32
-D0WDQ6和
ESP32
-PICO-D4是否支持
micropython
?
2023-03-06
240
如何编译
esp32
s2的
micropython
固件?
2022-02-14
909
串口工具连接
ESP32
会重启怎么解决?
2024-07-02
175
在VSCode怎样去安装RT-Thread
MicroPython
插件呢
2022-01-19
2397
ESP32
有官方实现CAN的通信的
micropython
包吗?
2023-03-03
250
MircroPython+
ESP32
+Pycharm
2024-07-07
3798
是否有人使用过这些
esp32
s3盒子中的任何一个来运行
MicroPython
?
2023-04-12
212
求助,
ESP32
有官方实现CAN的通信的
micropython
包么?
2023-03-07
249
WROOM2 N32R8V没有适配的
MicroPython
固件怎么解决?
2024-06-11
148
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分