如果我们想开发硬件设备的时候,非专业硬件工程师的我们往往会使用开发板,而开发板中,比较流行的又不得不提 Arduino,但是比如说我们想做一些 IoT 的原型设备,或者一切其他小项目小玩具,使用带有 Wifi 功能的 esp8266 和带有 Wifi 和 蓝牙的 ESP32 更为合适。尽管这两款开发板都支持 Arduino,并且在 Arduino 这个平台上有很多现成的库可以作为参考。
不过如果想进行快速的开发测试,在这两款开发板上使用 MicroPython 也是一个很好的选择。
MicroPython 大致的操作步骤就是先把固件刷到开发板上,然后可以通过串口连接进行交互式编程(REPL)或者通过上传main.py
到开发板上,开发板就会自己运行你写好的代码。
然而事实上,整一个操作体验并不是在介绍上的代码复制粘贴即可,而是存在各种坑。以下将罗列一下我所遇到的坑,可以帮大家避免,当然,如果你想加深理解,也可以往坑里跳,然后深入研究学习一下。
-
pyboard
,很多教程都介绍使用 pyboard.py 这个库将写好的 main.py
上传到开发板上,但是我在 Window 系统下,尝试了各种配置,包括修改这个 python
脚本,修改系统环境变量,但都无法完全正常使用(可以查看到开发板,但不能上传),我不太清楚是我的系统问题,还是这个库有问题。所以如果你也是按网上教程使用 pyboard.py
库,如果成功,继续用即可,如果不成功,建议像我一样,使用 adafruit-ampy
,能剩下不少折腾的时间。
-
终端连接的问题。首先,我习惯了 Linux 和 macOS 下使用命令行工具,所以这个 MicroPython 既然有提供 REPL,那么如果有命令行工具在终端下连接然后继续进行命令行交互即可。然而,在 Window 下没有找到简单好用的命令行工具。然后网上有介绍 SecureCRT
的,我在他们的官网上注册,然后等邮件验证再拿到下载地址,下载完才发现并不是免费软件,只可以使用一段时间。然后我又看到介绍一个交 Tera Term
的软件,这个软件虽然免费,但是十分简陋,而且经常会乱码。最后找到一个 PuTTY
的工具,这个工具算是比较正常且免费的,所以这里如果没有习惯串口工具的朋友,不妨就用这个。
-
REPL 与 main.py
冲突,REPL将无法使用。这一点我似乎没有看到网上有说的。这个问题就是我们如果上传了 main.py 到开发板上,我们再用终端工具进行串口连接,我们是不能使用 REPL 的,表现就是终端没有任何反应,就像卡住一样。这时如果像使用 REPL,将开发板上的 main.py 删除或者下载到本地再删除开发板上的 main.py
-
自动补全功能。在 Arduino 那个那么简陋的 IDE 都有自动补全功能,在这个 MicroPython 上并没有那么方便。因为我们在本地使用 VSCode 之类的工具写 python ,然后上传到开发板上,但是我们的本地是没有类似 machine
之类的库的。如果需要有代码提示,需要在本地有对应的库。这里可以安装 Settings
,如果不选后面的那个选项,你会出现 import 错误的提示。
-
不要尝试 PyMakr
和 Micropython IDE
。Arduino 可以在 VSCode 里面有 PlatfromIO 这样的插件,非常好用。很自然的想法,也想同样的用在 MicroPython 上,然后很多教程会让你使用上面这两个工具,我尝试了,这两个工具 PyMakr 无法连接开发板,无论怎么配置都不行,而那个
IDE,经常卡死和无法连接端口。我们使用 MicroPython无非就像快和简单,所以直接使用 ampy put
上传文件就好了。
在刷固件之前,我们需要先准备好固件,这个固件可以在 MicroPython 网站上找到,这里提供了很多开发板的固件,我们选择我们所使用的 ESP8266 即可。
这里我们下载 esp8-v1.15.bin
这个固件即可,当然也可以根据自己的需要自行选择。
我们需要一个交 esptool
的工具来帮助我们刷固件,可以使用 pip
来安装。
安装完成后,我们把开发板接入电脑,通过 read_mac
命令来获取开发板的信息以及串口的位置。
可以看到已经获取到开发板的信息,这里可以看到开发板的串口在 COM3
。
接下来就可以开始刷固件了。
这样,我们的 MicroPython 已经刷好固件了。
如上图,打开 PuTTY,新建一个连接,这里我们选择 Serial 串口连接,端口选择 COM3 (具体根据自己的情况设置),然后这里的波特率需要修改为 115200,完成后可以在下面 Saved Sessions 填如一个名字,如 esp8266,然后点击一下 Save ,这样下次就可以直接连接不需要重新输入端口信息了。
然后我们点击 Open,就可以进入 REPL 模式。
我们可以在这里进行交互式编程,类似 ipython 的模式。
接下来我们改用 VSCode 来进行后续的编程。首先先来配置自动完成功能,这里需要先安装一个 micropy-cli
的工具:
接下来打开 VSCode,新建一个项目目录,然后 `Ctrl+`` 打开终端。然后确认当前目录为项目根目录:
接下来就可以在 VSCode 中编写程序了。我们来完成一个最简单的点亮开发板上自带的LED灯闪烁功能。这里注意的是,我的开发板 Pin-2 就是控制那个自带 LED 的,但并不是所有开发板都一样的,在开始前可以先查看一下硬件手册。
我们可以使用 ampy
来上传我们写好的代码。首先来安装:
安装完成后,可以使用 ampy --help
来查看可用命令。下面我们先来查看一下当前开发板上的文件:
这里可以看到我们的开发板上只有一个文件。接下来将我们刚刚写好的 main.py
上传到开发板上
这样,我们就把代码上传到开发板上了。
接下来我们需要重启一下开发板,按一下开发板上的 RESET 按钮,我们就可以看到开发板上的LED灯出现亮1秒熄3秒的不断循环了。
硬件开发比单纯的代码开发更有难度,有时一样的步骤,却又不能跑通。本文开篇介绍了遇到的一些坑,以及手把手的演示如何给 esp8266 配置 MicroPython 环境、VSCode 自动补全配置以及如何上传代码。希望本文对你有用。如果你觉得文章对你用,记得关注收藏。你的关注和收藏是继续更新的动力哦。