【得捷电子Follow me第3期】任务1:使用MicroPython系统
[复制链接]
本帖最后由 HonestQiao 于 2023-11-10 22:59 编辑
得捷电子Follow me第3期的任务,要求使用MicroPython来完成,那么首先,就需要给Seeed Studio XIAO ESP32C3开发板刷上MicroPython系统。
要给ESP32C3刷上MicroPython系统,可以用官方推荐的esptool命令行工具。
不过现在都3202年了,如果不是要搞esp-idf之类的开发,其实完全可以不必用到esptool命令行操作。
要给ESP32C3刷MicroPython系统,最简单最好用的,莫过于使用Thonny开发工具了,开发烧录一条龙服务,省心省力。
下面就分享具体的过程。
一、安装Thonny开发工具
可以从 下载Thonny最新版本(4.1.3)安装,目前支持Windows、Linux、macOS,常见操作系统都可用。
二、让 Seeed Studio XIAO ESP32C3开发板 进入烧录状态
要让ESP32开发板进入烧录状态以便烧录固件,需要配合BOOT按键,所以我们首先需要了解板子上的按键:
从上图可以得知,板子上底部(USB口朝上)的两个按键,左边是BOOT按键,右边是RESET按键。
让Seeed Studio XIAO ESP32C3开发板近路烧录状态,可以用以下的两种方法:
1. 没有连接到电脑的情况下,直接按住BOOT按键,再使用Type-C数据线连接到电脑,最后再松开BOOT按键。
2. 已经连接到电脑的情况下,按住BOOT按键不放手,然后按一下RESET按键(按下,然后松开),最后再松开BOOT按键。
将开发板连接到电脑后,再Thonny的右下角,点击后,可以看到可能的设备列表:
以上界面是在macOS下截图的,在Windows、Linux系统上类似。
三、烧录MicroPython
在上一步的最后,点击弹出列表最后一项:配置解析器
进入到解析器设置界面:
从这里可以看到,实际上,Thonny也是使用esptool来进行固件烧录的,但是不需要我们手动操作esptool。
点击 安装或更新MicroPython 后,会进入具体的串口和版本配置界面:
给 Seeed Studio XIAO ESP32C3开发板 烧录MicroPython,直接使用标准的Espressif ESP32-C3版本即可。
如果因为网络原因,这里没有列出可用的family、variant等,可以直接用浏览器下载对应的版本,然后手工指定烧录镜像文件:
设置完成后,点击安装,就会自动下载对应的固件:
下载完成,会自动进行清理Flash:(如果是更新的话,则上一步不要勾选Erase all)
然后烧录:
烧录完成后,会显示 Done:
此时,MicroPython系统就烧录好了。
安装过程中,可能会遇到错误,常见错误如下:
1. 没有进入烧录状态:
这个表示,没有进入烧录状态,请安装 第二部分的操作,通过BOOT按键,进入烧录状态。
2. 插在扩展底板上烧录固件:
将开发板插在扩展底板上,进行固件烧录的时候,有可能会遇到问题。
我在烧录的过程中,偶然遇到,听到蜂鸣器在咔咔咔咔咔的响,然后出现下面的错误:
此时,断开数据线,将开发板从扩展底板取下来,再单独连接到电脑进行烧录,则一切正常。
烧录完成后,关闭设置窗口,断开数据线,将开发板插到扩展底板上,并再次连接到电脑。
然后再次点击Thonny右下角,在弹出列表上,选择ESP32即可:
最终,Shell窗口,输出了当前的MicroPython版本号,以及使用的开发板类型,这就表示安装成功了。
四、运行python语句
在Shell窗口,可以直接输入Python语句指令运行,那我们就先输出一个Hello World!
不过,需要注意的是,如果电脑本身有Python环境,这里又选择了电脑的Python,这里也能正常运行。
所以一定要确保,连接后,显示的是MicroPython环境。
另外,也可以用Python语句,确定当前的环境,例如:
1. 使用import machine:
machine在micropython环境中才有,如果没有,则会导入失败:
2. 使用os.uname()语句查看系统类型:
当连接的是ESP32的MicroPython环境,则结果如下:
如果连接的是电脑本身的Python环境,则结果如下:
以上两图,显而易见,MicroPython环境中,显示出来是在esp32环境。
3. 使用文件功能
首先从视图->文件,打开当前环境的文件目录窗口:
如果是在MicroPython环境,则右则有MicroPython设备的文件列表:
如果是本机Python环境,则没有MicroPython设备的文件列表。
通过Shell窗口,能够成功在MicroPython环境运行Python语句指令后,就可以使用编辑窗口进行开发了:
编写后,可以点击保存,选择保存到本地还是开发板上:
也可以点击绿色运行按钮直接运行测试。
五、获取系统和存储情况
最后,使用一小段程序,来获取系统的具体情况:
import os
import gc
import time
try:
import micropython
import esp
IS_MPY = True
except (Exception) as e:
IS_MPY = False
try:
import board
import espidf
IS_CPY = True
except (Exception) as e:
IS_CPY = False
BOARD_NAME = os.uname().machine
gc.collect()
statvfs_fields = ['bsize','frsize','blocks','bfree','bavail','files','ffree',]
ss = dict(zip(statvfs_fields, os.statvfs('/')))
print("运行系统:%s" % "micropython" if IS_MPY else "circuitpython")
print("开发板:%s" % BOARD_NAME)
print("剩余内存: %0.2fM" % (gc.mem_free()/1024/1024))
print("剩余存储: %0.2fM" % (ss['bsize'] * ss['bfree'] / 1024 / 1024))
if IS_MPY:
ts = esp.flash_size()
print("总计存储: %0.2fM" % (ts / 1024 / 1024))
print("内存使用:", end="")
micropython.mem_info()
最终的运行结果如下:
上述脚本,在CircuitPython环境,也可以运行。
六、总结
现在,MicroPython系统已经在开发板上,欢快的跑起来了,开始你的愉快编程之旅吧。
另外,大家也可以参考Seeed Studio官方的指导文章学习在ESP32-C3开发板上,进行基于MicroPython的开发:MicroPython for ESP32C3 | Seeed Studio Wiki
|