esp8266之刷入micropython固件教程详解

前言

很早之前我就有一种想法,就是在单片机里面运行一个解释器,为此还特地看了《python源码剖析》那本书呢。不过后来听说到了micropython这个东西,哇,突然觉得这就是我要找的东西,此篇文章就是记录我在nodemcu上刷入micropython固件的过程,算是学习过程的一个记录吧


一、准备环境

1、硬件准备

  • 首先你需要买一块nodemcu,nodemcu即一块基于esp8266的电路板。
  • usb数据线

2、软件准备

  • 安装python

    这里的python主要是用来为后面刷入固件用的,首先到官网下载页面根据你电脑所安装的操作系统来下载所对应的安装包,安装过程很简单,网上有很多参考教程,需要注意的是安装过程中需要记住你的安装目录,这个后面会用得到。

    设置环境变量,首先需要找到你的python安装目录,把安装目录以及安装目录下Scripts文件夹加入环境变量。

    在所有程序中找到命令提示符并打开,输入下述命令以安装esptool库,这个库就是用来刷入micropython固件的。

pip install esptool

此步骤安装不成功也没关系,因为有刷入micropython固件的替代方法,待会儿会讨论。

  • 安装串口驱动

    驱动程序一般是指设备驱动程序,它是能使得电脑和设备之间相互通信所需要安装的一种特殊的程序,nodemcu板上的USB转串口芯片目前主要有两种型号,一种是CH340G,另一种是CP2102,需要根据所选的型号来下载对应的驱动,安装过程很简单,在此不再叙述。

  • 下载putty

    putty是一个Telnet、SSH、以及串行接口连接软件,可以用它来对micropython发出python命令。下载链接为:
    https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
    官网上有两种下载包,一种是需要安装的,另一种是独立的,不用安装,推荐使用这种方法,简单又方便。如图所示,根据电脑位数选择对应的下载包。
    在这里插入图片描述

  • 下载micropython固件

    要使用python来开发单片机,当然需要一个在单片机上运行的python解释器啦,micropython就是这样一个解释器,其经过优化后可以在内存受限的单片机上使用。针对于nodemcu的micropython固件下载链接为:

    http://www.micropython.org/download/esp8266/
    在这里插入图片描述
    选择自己所想用的版本下载就好了,注意下载的是bin格式的,我下载的是1.12版本的。

二、刷入micropython固件

1、找到设备端口号

1、首先将nodemcu通过数据线连接到电脑,正确安装驱动程序。
2、通过此电脑右键>属性>设备管理器 来打开设备管理器,也可以通过控制面板里面的“硬件和声音”里面的:设备管理器来打开,打开设备管理器后如下:
在这里插入图片描述
展开“端口(COM和LPT)“即可以看到端口号,我这里是"COM4”,需根据自己电脑实际情况来选择。如果此处没有显示端口号,那可能有如下两种可能。

  • nodemcu与电脑未正确连接 (我就出现过这种情况,后来换了跟数据线就能连接了)
  • 驱动程序未正确安装

2、刷入micropython固件

刷入micropython有两种方法,第一种方法就是使用esptool来烧录固件,第二种方法就是使用乐鑫官方的烧录器来刷入固件,这种方法不需要安装esptool。

使用esptool的方法

找到你的固件下载位置如下,我这儿只是作为演示,具体请根据自己的情况。
在这里插入图片描述
首先就需要把命令提示符的工作目录切换到micropython固件的下载目录,这里介绍简单的方法就是直接在路劲栏输入"cmd"回车就好啦。如下图所示:
在这里插入图片描述
可以看到命令提示符中的工作目录已经切换到了micropython固件的下载目录。接下来便可以开始刷入micropython固件了。在命令提示符中依次输入下面两行命令就可以刷入固件啦。

esptool.py --port COM4 erase_flash
esptool.py --port COM4 --baud 115200 write_flash --flash_size=detect  0 esp8266-20191220-v1.12.bin

简单介绍下这两行语句的作用,第一行是擦除nodemcu里面的闪存,不擦除就刷入的话可能后面会出错,第二行即为刷入固件,其中的"COM4"需更改为你使用的端口,同时"esp8266-20191220-v1.12.bin"为固件名,由于工作目录已经切换到了micropython固件目录,所以此处不需要加路劲,直接使用相对路劲就好啦。

使用官方烧录器的方法

  1. 下载FLASH_DOWNLOAD_TOOLS工具,这是一个为esp8266烧录固件的工具,我也是在esptool刷写固件失败后才用的这个方法,具体失败原因后面会说。FLASH_DOWNLOAD_TOOLS的下载链接如下:
    https://www.espressif.com/sites/default/files/tools/flash_download_tool_3.9.0.zip

  2. 按照如下图的方式打开烧录软件
    在这里插入图片描述
    打开烧录软件后按照如下图所设置(注意记得把端口号和固件路径替换为自己的):
    在这里插入图片描述

  3. 完成后点击下方的ERASE按钮即可以开始擦除flash,如果不擦除就直接刷写固件的话可能会出错。等待刷写完成后点击START按钮即可以开始刷写固件,刷写完成后的界面如下。
    在这里插入图片描述

三、验证

如果到这一步,恭喜你已经成功为开发板刷入micropython固件了,下面将验证是否刷写成功。

  1. 设置putty连接
    打开putty,设置连接方式为串口,并设置端口号和波特率,如下图:
    在这里插入图片描述
  2. 点击左边Category栏的Serial选项,按下图设置:
    在这里插入图片描述
  3. 点击open即可打开终端啦,此时可以点击nodemcu上的复位按键,如下图:
    在这里插入图片描述
    如果到达这一步,那么恭喜你,micropython已经成功的在nodemcu里面运行起来啦,此时你可以在串口终端里面输入python语句来运行它。先来点个灯吧。依次在串口终端里面输入如下内容。
from machine import Pin
import time
pin=Pin(2,Pin.OUT)
for i in range(10):
    time.sleep(1)
    if pin.value()==1:
        pin.value(0)
    else:
        pin.value(1)

输入完成后如下:
在这里插入图片描述
此时可以看到nodemcu上面内置的led灯闪烁了起来


总结

  • 因本人也是小白,文章中难免会有疏漏和错误,还望各位批评指正,同时也欢迎各位在下方评论,谢谢。

  • 老实说,其实这是我写的第一篇博客,之前也有这个想法来着,但因为平时学习任务重再加上自己写作能力一直很差,所以也一直没有尝试,不过今天算是走出第一步啦。以后我会将学习过程中的一些笔记都整理发布出来。还望各位多多指出文章中句子不通顺的地方呢。

猜你喜欢

转载自blog.csdn.net/m0_46336441/article/details/108376767