返回目录:win7问题
内容导航:
一、物联网开发板:ESP32烧录MicroPython固件
最近,刚入手了一块ESP32开发板。板子比两枚1元硬币略大,相比其它品牌的ESP32产品,价钱稍微贵了些,但是感觉做工还不错。通过这块开发板,我们可以玩比较热门的物联网(IoT),可穿戴设备,智能音箱等。
该开发板可以支持Arduino和MicroPython两种开发环境,由于对Python比较熟悉,所以我首选MicroPython。
在烧录固件以前,需要先准备以下内容:
- 一台电脑,操作系统可以是Windows、Linux或者Mac
- 一条Type-C数据线
- 下载Python IDE软件Thonny
- 下载MicroPython固件
首先,需要通过Type-C数据线,将ESP32开发板和电脑相连,其中数据线Type-C口接开发板,USB口接电脑。由于我使用的是Windows 10系统,所以,需要先安装串口芯片的驱动程序,系统才能识别设备。我购买的设备使用的是CH340串口芯片,可以通过以下地址下载驱动。
驱动下载地址:DFR0654_FireBeetle_Board_ESP32_E
安装好CH340驱动以后,打开计算机管理,查看到USB-SERIAL CH340K(COM3) ,说明设备已经被正确识别。
打开软件Thonny,选择Run - Select interpreter...,打开Interpreter属性选项。
选择Interpreter(解释器)的类型为MicroPython(ESP32),选择Port or WebREPL为USB-SERIAL CH340K(COM3) ,然后点击右下角的Install or update firmware。
选择Port为USB-SERIAL CH340K(COM3) ,点击Browser...,找到Fireware的下载路径。我使用的Firmware版本是esp32-idf4-20210202-v1.14.bin。
需要注意的是,一开始由于下载的是SPIRAM的固件版本,刷入固件后,出现了以下报错信息。更换固件后,就不再出现报错信息。
E (621) spiram: SPI RAM enabled but initialization failed. Bailing out E (656) spiram: SPI RAM not initialized
提示:SPIRAM是一种通过SPI接口连接的外部存储,只有型号为ESP32-WROVER才带有SPIRAM。ESP32-WROOM不带SPIRAM。
固件烧录成功以后,就可以看到在交互式Shell中的Python提示符。接下来,就可以开心地玩耍啦。
二、microPython 有没有在 STM32F103上运行的固件
进入第一个个连接进入之后我们就可以选择红色方框Buid Firmware。之后我们就可以下载相应的固件了,但是这个固件是比较早的就是了,是2015年的固件,所以我们接下来要做的就是来自己编译一个固件。
首先我们需要将我们的micropython的github开源项目的内容下载下来。选择下图的图标就是可以下载下来。或者在window或者linux底下直接使用Git工具clone这个项目下来也是可以的。
我们使用git clone下载的话如下图。
这个编译需要在Linux底下,所以如果是windows的话就需要有一台虚拟机,来帮助完成这个编译的过程。
首先我们在Github目录下进入esp8266的目录。向下滚动页面,我们可以看到一个README.md文件,解释一下,md结尾的是markdown语言编写的一个文本,能够用一些简单的语法完成一些格式,Github项目都会有一个这样的文件对项目进行一个介绍,进入项目之后都会在下方进行一个显示。
再往下我们可以看到一个编译指南,在这里详细说明了该如何自行编译一个我们的esp8266的micropython固件。红色标记的地方说明在我们编译固件之前我们需要ESP SDK的工具来帮助我们完成编译。
点击链接进入该Github项目。
同样需要下载下来,页面向下滚动找到编译说明。这里我们选择的是在Ubuntu底下进行编译,下面图片截图说到我们编译这个东西的时候需要的工具和依赖的一些库等等。我们按照图片说明,在Ubuntu底下安装这些工具即可。
完成了工具和依赖库的安装之后我们再往下看。有一个编译说明。我们按照这个说明就可以,第一步是下载,完成之后进入该目录直接make就可以。
我自己使用的Ubuntu版本是14.01的版本。
同样我们使用git clone下载之后编译,这里和大家说明一下,我进入下载的目录之后,使用make命令编译了两次都出错,之后我换成了make STANDALONE=y就可以了,如果大家也遇到编译失败的情况,也可以尝试使用make STANDALONE=y试一下。
然后我们需要将工具的bin文件添加到我们的系统目录当中,根据提示我们键入下面的语句就可以。
之后我们回到我们的micropython目录当中,按照microPython的esp8266下面的README.md文件中的说明就可以。
首先先更新一下我们的需要用到的子模块内容。
在micropython的目录下面键入git submodule update --init即可完成这个工作。
完成之后我们进入esp8266的目录下执行make就可以编译我们的固件了,第一步的话要先执行make axtls,完成之后在使用make命令,几分钟就可以完成这个工作了,之后我们就得到我们的固件啦。
我们可以找到一个名为firmware-combined.bin的文件,这个就是我们的固件啦。
三、同一块esp32开发板,MicroPython和arduino如何交替使用?
烧录Arduino程序后Micropython就被覆盖了。四、python可以写固件吗
Python不能直接写固件,但是可以先把python编译成c语言,再编译成单片机固件或者直接编译成机器码。这样做的问题是程序会很大,而固件一般容量很小,事实上没人会去这么操作。目前micropython可以写esp8266及esp32等系列的wifi芯片。不过micropython不是Python,只是名字相近。