Nodemcu Micropython开发学习(一)环境搭建

 

简述

疫情闲来无事,搭好博客也不知道有什么可以写的,手上别说树莓派,除了3年前实验室大一玩完的Node MCU ESP8266以外,暂时什么都没有,想了想,折腾一下这块板子也还行,结果查完才发现这块板子的强大,不止是Arduino,Lua、MicroPython居然都支持,那感情好啊,拿它随便玩玩,Python写个比特币行情监控机器人,还不是美滋滋(现在还不太懂)

搭建环境

要想NodeMCU支持MircoPython开发,首先需要做的事:

  • 给MCU刷写MicroPython专门的固件;
  • 安装PC端开发环境(Windows10);
  • 自己还想折腾的事:在Ubuntu18.04搭建开发环境。

那就按步骤边做边写吧。

下载+烧录MircoPython固件

什么是MicroPython

MicroPython这东西还是挺牛逼的,Sipeed推出的板子也在宣传自己支持MicroPython开发,可见支持这个东西还是很有意义的。

MicroPython由C编写,是 Python 3 语言 的精简高效实现 ,包括Python标准库的一小部分,经过优化可在微控制器和受限环境中运行。

MicroPython包含了诸如交互式提示,任意精度整数,关闭,列表解析,生成器,异常处理等高级功能。 足够精简,适合运行在只有256k的代码空间和16k的RAM的芯片上。

除了ESP8266以外,MicroPython现已支持ESP32、STM32F4的几款芯片、ST官方的ST官方的Nucleo系列芯片,德仪的CC3200(没细查),甚至还有F103的Github民间支持版本

具体可见MicroPython官网的相关内容。

烧录准备

我们需要几款工具:

  • NodeMCU驱动支持:CP340或CP2102等等
  • MicroPython固件:点击下载(时间久了就不一定是最新版了)
  • Windows10环境的ESP8266烧录工具:点击下载

烧写

打开在乐鑫官网下载的烧录工具,点击ESP8266,按下图填写:

建议在刷固件前,先ERASE一下,把旧的删掉

点击START,开始刷写固件。

烧录完成后,我们打开串口工具,我用的是正点出的XCOM,如果在RTS后接受到了打印信息,就算烧写成功了。

Hello World!

通过串口发送命令过去,就可以直接当作命令行运行!

试试看help()

打印Hello World

搭建IDE环境

网上有很多不同的图形化的IDE,基本上分成专有的和支持插件的编辑器两类,前者包括uPyCraft,后者则理所应当的有PycharmVS Code

uPyCraft IDE搭建

非常没难度 只要下载即可使用了,链接可见:Introduction

打开界面如图所示:

在 Tools 中按顺序选好芯片型号和端口,点击右侧的锁链标志连接即可。

成功连接后下方命令行窗口即可正常使用。

VS Code IDE搭建(遇到一点问题)

因为对VS Code的偏爱,开始时选择了先试试VS Code

在插件库搜索Pymakr,点击安装。

大致翻译一下:Pymakr支持用户和Pycom开发板通信,支持使用命令行REPL、运行单个文件,或同步完整的项目到芯片

安装完,编辑器的右下角可能会提示没有NodeJS环境,前往官网下载安装

流程没什么好说的,安装完成后直接打开cmd,输入node -v 检查是否安装成功:

重启Code,编辑器会自动弹出pymakr.json 配置文件,将内容替换为:

    {
    "address": "COM19",//根据自己的端口号改
    "username": "micro",
    "password": "python",
    "sync_folder": "/flash",
    "open_on_start": false,
    "sync_file_types": "py,txt,log,json,xml,html,js,css,mpy",
    "ctrl_c_on_connect": false,
    }

替换完点击保存,更新json,启动终端。

右下角有按钮对应的功能:

  • Pycom Console:打开或关闭与板子的链接
  • Run:运行当前文件
  • Upload:上传工程文件到板子里
  • Download:下载板子里的工程文件
  • All commands:支持的命令操作

出现问题:按照网上的教程,这里本该连接成功了,但是实际操作的时候会发现调试台搜索不到设备。

点击All commands 中可以发现,配置文件保存完没有及时更新。

结束

后面开始尝试各个库和Python的对比,再学一下基本硬件的调用。