MicroPython 是对 Python 3 语言的一种精简的实现,主要是为了在微控制器这种硬件资源受限的环境中可以高效地运行,因此做了很多针对性的优化。
它类似于一个小型的 Python 操作系统,可以通过串口与内置的 Python 解释器直接交互,也可以上传程序文件在开机上电后自动运行。
MicroPython 支持多种开发板,包括价格很实惠的基于 ESP8266 芯片的 NodeMCU。
一、刷入固件
我这里使用的开发板是从网上购买的 NodeMCU ,出厂时预先刷好了基于 Lua 语言编程的固件。
为了使用 MicroPython ,需要先对该开发板重新刷写固件。
1. 准备工作
首先进入 MicroPython 官方的下载页面,下载最新版的针对 ESP8266 硬件的固件包。
我这里使用的是 esp8266-20180511-v1.9.4.bin 。
刷写软件可以使用支持多种操作系统的命令行工具 esptool。对于已经装好 Python 环境的电脑,直接使用 pip 命令安装即可:pip install esptool
2. 刷入固件
首先将 NodeMCU 开发板连接至电脑,Mac 系统可以使用 ls /dev/tty.usbserial*
命令查看当前系统已经检测到的 USB 串口:
1 | $ ls /dev/tty.usbserial* |
使用 esptool.py -p <SerialPort> flash_id
命令确认该串口是否能成功检测到 ESP8266 设备:
1 | $ esptool.py -p /dev/tty.usbserial-14110 flash_id |
使用 esptool.py -p <SerialPort> erase_flash
命令对开发板进行擦除操作(以防万一):
1 | $ esptool.py -p /dev/tty.usbserial-14110 erase_flash |
擦除完成后即可使用 esptool
工具的 write_flash
命令将 MicroPython 固件刷入开发板。
(完整命令为:esptool.py -p <SerialPort> --baud 460800 write_flash --flash_size=detect -fm dio 0 <FirmwareFile>
)
1 | $ esptool.py -p /dev/tty.usbserial-14110 --baud 460800 write_flash --flash_size=detect -fm dio 0 ~/Downloads/esp8266-20180511-v1.9.4.bin |
二、固件测试
刷写固件的操作完成后,可以使用 Mac 系统自带的串口调试工具 cu
连接 USB 串口,对刚刷好的开发版进行测试:sudo cu -l <SerialPort> -s <BaudRateSpeed>
效果如下:
1 | $ sudo cu -l /dev/tty.usbserial-14110 -s 115200 |
终端窗口提示 Connected 之后,按下 NodeMCU 板子上的 RST (Reset) 按钮。
如固件刷写成功,则终端在输出部分乱码后会立即进入 Python 解释器界面:
1 | MicroPython v1.9.4-8-ga9a3caad0 on 2018-05-11; ESP module with ESP8266 |
在解释器界面下,输入 help()
命令获取基本的帮助信息:
1 | MicroPython v1.9.4-8-ga9a3caad0 on 2018-05-11; ESP module with ESP8266 |
更多的交互命令和详细的指导手册可以参考官方文档
使用如下的命令,能够让 GPIO2 上连接的 LED(即 ESP8266 模块内置的蓝色 LED)以 1s 的频率闪烁:
1 | >>> from machine import Pin |
三、配置 Atom 编程环境
当前可以使用多种软件作为简单的 IDE 对 MicroPython 开发板进行编程。主要是提供连接串口的终端,可以交互地执行 Python 命令,以及程序文件的上传和下载。
我个人比较喜欢 Atom 编辑器搭配上 pymakr-atom 插件。
Atom 的配置较简单,主要步骤如下:
- 从 Atom 官网下载对应系统版本的安装程序并安装
- 通过 Atom 内置的插件管理器搜索安装 pymakr 插件,安装完成后重启编辑器
- 编辑器重启后底部自动出现 pymakr 的终端窗口,点击终端右上角设置 - 全局设置,找到设备地址并改为开发板连接的端口号
- 直接点击终端顶部的连接按钮即可完成串口连接
此时的 Atom 编辑器,可以通过底部的终端窗口直接输入 Python 命令。
也可以在编辑器中新建项目目录,并创建 main.py
源文件。编辑好 Python 代码后,点击执行按钮即可直接运行,或者点击上传按钮将代码文件上传至开发板。
v1.5.2