前言
哈哈,各位可能会奇怪为啥上一篇文章还在说怎么在 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 后,点击 运行 - 选择解释器 进入设置页面:
按照你的板子型号选择解释器,例如这里我选择的是 Micropython(ESP32)。
然后选择你板子连接的串口号,不知道怎么看串口号的可以看我的上一篇文章。
设置完成后,关闭界面,现在 IDE 下方的 shell 窗口就是直接连接的你的板子的 python 环境,你可以试试随便敲几个命令:
from machine import Pin
led = Pin(12, Pin.OUT)
led.on()
led.off()
我的板子的 12 号 Pin 是一个板载的 LED 灯,所以上面的代码会让这颗 LED 亮了之后又灭掉。
还记得我们上面说的吗?此时我们的板子就相当于一个 U 盘,所以我们可以写一个 Python 脚本,然后保存在板子上。
并且从 Thonny 中启动这个脚本。
例如,这里我们编写了一个闪烁的小灯程序,保存或运行时,会提示我们需要保存到 MicroPython 上还是 电脑上:
保存后点击运行,即可看到我们的闪烁小灯了!
另外,说一下,保存到 MicroPython 内的脚本,如果命名为 boot.py
则,在板子重启时会先运行一次这个脚本。
命名为 main.py
则会在 boot.py
运行后接着运行这个脚本。
参考
- MicroPython Setup
- Quick reference for the ESP32