在 macOS 上安装使用基于 ESP32C3 的 MicroPython

前言

哈哈,各位可能会奇怪为啥上一篇文章还在说怎么在 ESP32C3 上安装 Arduino,现在怎么又变成了安装 MIcroPython。

其实是因为上次写 Arduino 还是我高中时候的事了,已经不太会了。

虽然 MIcroPython 我从来没有接触过,但是 python 我一直有在用,最多就是需要熟悉一下 MicroPython 的 API,同样是需要重新学习,我选择 python,毕竟人生苦短,我选python。能用 python 为什么要用 c 呢?

因为上次安装 Arduino 时已经踩过了一些坑,所以安装 MicroPython 还算比较顺利,我写的时候也会尽量写的简洁一点。

备注:虽然最后绕了路一圈回来,我还是用回了 Arduino,但是之前写好的这篇使用 MicroPython 的文章我也还是发出来供大家参考

前期准备

下载固件

安装 MicroPython 需要刷入它的固件,这里选择官方打包的固件文件: https://micropython.org/download/esp32c3/

安装 esptool.py

需要使用 estool.py 刷入固件。

使用 pip 安装:

pip install esptool

开始安装

清除原固件信息

在将 MicroPython 刷入板子前需要先把板子原来的固件信息清除掉:

esptool.py --chip esp32c3 --port /dev/cu.wchusbserial544C0047221 erase_flash

刷入下载好的固件

esptool.py --chip esp32-c3 --port /dev/cu.wchusbserial544C0047221 --baud 460800 write_flash --flash_mode dio -z 0x0 ./esp32c3-20220117-v1.18.bin

请自行更改上述命令中的串口地址和固件地址。

注意事项

需要注意的是,取决于你买的板子,官方固件下载页面中附带的刷入固件命令可能会有问题。例如,我的板子必须使用 dio 才能写入数据,但是官方帮助中的命令没有加入这个,导致踩了个大坑,具体表现就是虽然提示写入成功,但是串口无响应,或是循环发送乱码。

Hello World?闪烁小灯!

固件刷入完成后即可使用,此时通过串口连接你的板子,它已经变成了一个 python 终端!

可以直接在串口中执行 python 命令了!

当然,你也可以把 .py 文件直接写入板子内存,此时它就是一个“U盘”。

这里我们选择 Thonny 这个 IDE 进行测试。

Thonny

首先下载安装 Thonny。

官网地址:thonny.org

打开 Thonny 后,点击 运行 - 选择解释器 进入设置页面:

1.png

按照你的板子型号选择解释器,例如这里我选择的是 Micropython(ESP32)。

然后选择你板子连接的串口号,不知道怎么看串口号的可以看我的上一篇文章。

设置完成后,关闭界面,现在 IDE 下方的 shell 窗口就是直接连接的你的板子的 python 环境,你可以试试随便敲几个命令:

from machine import Pin
led = Pin(12, Pin.OUT)
led.on()
led.off()

2

我的板子的 12 号 Pin 是一个板载的 LED 灯,所以上面的代码会让这颗 LED 亮了之后又灭掉。

还记得我们上面说的吗?此时我们的板子就相当于一个 U 盘,所以我们可以写一个 Python 脚本,然后保存在板子上。

并且从 Thonny 中启动这个脚本。

例如,这里我们编写了一个闪烁的小灯程序,保存或运行时,会提示我们需要保存到 MicroPython 上还是 电脑上:

3

保存后点击运行,即可看到我们的闪烁小灯了!

另外,说一下,保存到 MicroPython 内的脚本,如果命名为 boot.py 则,在板子重启时会先运行一次这个脚本。

命名为 main.py 则会在 boot.py 运行后接着运行这个脚本。

参考

  1. MicroPython Setup
  2. Quick reference for the ESP32