如何在 esp32-c3 上使用 micropython
背景
我是个很讨厌 C 系语言的人(中文发音不算🌚)。
所以相对的,如果任何应用是用 c++、c 开发的我都会有点反感,原因很简单,它写起来不美观,看上去也不够优雅,重点是它晦涩难懂,虽然我知道它的性能是最好的。但也不影响我讨厌它!
所以我在任何 idea 迸发出来的时候,都会去思考:能不能用node来实现它?再不济 python 也行啊!
这不,下功夫就永远不会辜负我的。在调试 esp32 主板的时候无意发现了 micropython 这玩意儿。从官网上看它基本上和 python 没差,虽然还有点距离。但是想到能在单片机上运行python代码,也是很开心了。
顺着这个脚步就开始探索下去。以下是我搭建一个 micropython 开发环境并且运行了一个实例的过程。
前期准备
- Esp32-c3 x 1
- 数据线 x 1
涉及的技术
micropython、tailwindcss、vscode
环境搭建
以下内容我就默认你安装了 vscode、python,并且懂一点 python 的语法了
1. 安装 Pymakr
这个简单,就在 vscode 的插件库安装就好了
在vscode 上有另外一个插件:RT-Thread,但是我体验下来,因为我是用的 mac 开发,相当不好用👎,所以放弃了。windows 用户可能比较友好吧。这个看个人喜欢。
2. 烧录micropython
进入官网,进入 download 页面,选择适合自己主板的驱动进去,下载 xxx.bin 文件。(最新的就行)
下载好了之后,通过终端进入这个文件所在的根目录,依次执行以下命令:
1 | # 擦除esp32c3 的所有数据 |
当终端输出 success,说明你烧录成功了!接下来就可以愉快的编写 python 代码了。
3. 连接设备
把设备通过usb连接到电脑,打开 vscode 侧边的tab页面,一般就会显示当前连接的设备。我这里是已经连接的状态。
如果这个时候如上图所示,上传、下载、打开文件夹都是灰色状态,但是设备是已经连上的,说明设备在执行命令中,可以通过下面的 stop script, 让它停下来,对应用进行操作。一般这个界面我只会用到这个功能和 soft reset device 偏多。
4. 上传代码
设备正常连接,退出执行代码状态之后,就是正式的编写脚本的阶段了,这个时候自由发挥就好了。就正常的编写 python 脚本。
需要注意的点是,如果通过 pymakr 创建的示例代码会自动创建三个文件:boot.py、main.py、pymakr.conf
它们分别代表的作用是:
- boot.py: 初始化脚本,一般这里面执行的内容都是一次性的,比如初始化wifi这种。
- main.py: 正式脚本,里面就是正常的逻辑代码。
- pymakr.conf: 配置文件,这个是必须的,作为项目的可配置内容,具体参数可以参考官网。
在本文中我提供一个在初始化 wifi连接的方法,如下:
1 | # boot.py -- run on boot-up |
代码写好之后,点击上传按钮,再点击开发板上的 reset 键即可运行。
如果代码正常运行的话,终端就会提示类似以下代码:
1 | Connection successful: |
小结
这是第一次使用 micropython 作为开发环境搭建的一个项目,问题其实还是蛮多的,最值得诟病的还是速度确实很慢,这个和 esp32-c3 的架构有关系。根据查阅的相关资料说明,这款开发板不太适合 micropython 的开发模式,据说它会比正常的 C++ 开发模式慢100倍…
但是说实话,开发的爽感还是有的,但是如果追求性能和稳定性就不太推荐了。可以选择其它性能更好的板子。
所以在使用了这个 demo之后,我还是切回了 platformIO 的开发模式😂。
参考
如何在 esp32-c3 上使用 micropython
http://blog.jzxer.cn/20241205/20241205_micorpy_with_esp32C3/