八色木

如何使用EduBlocks控制ESP32

ESP32成为很多物联网(IoT)项目的主要部件,相比ESP8266,ESP32可以提供更高性能的WiFi和蓝牙连接,关键是还比较便宜!基于ESP32的开发板有很多类型,比如,单ESP32芯片引出IO型、Nodemcu型、添加了OLED显示屏等外设的扩展型。

各种类型的ESP32

然而,不管你用的是哪个版本的ESP32,要让编程变得简单都有点棘手,如果是孩子们想用它做点什么呢?幸运的是已经有人为我们解决了这个问题。EduBlocks是由14岁的Joshua Lowe创建的,它可以让孩子们从Scratch等模块化的语言过渡到文本语言,比如Python。在国外达人 Chris Dell 的帮助下,EduBlocks可以支持ESP32了。ESP32版本的EduBlocks使用的是 Micro Python 。下面,让我们通过本文来了解,如何在ESP32上使用EduBlocks,如何编写一个基于EduBlocks控制的ESP32项目,国际惯例LED闪起!

设置ESP32

ESP 32的体积相对一块小面包板还是大了点,因此我们使用了两块面包板。然后根据后续提示把ESP32通过USB接口连接到Ubuntu 16.04的笔记本电脑上,下面开始安装软件。

安装EduBlocks

安装EduBlocks相对简单,但是针对ESP32我们需要做一些修改。首先是访问https://github.com/PrestonHackspace/esp32-micropython,参考Requirements 要求部分的提示。 关于EduBlock的安装,请查阅:Raspberry Pi 安装 EduBlocks

Requirements

Node.js (with yarn if building)
Python 3
esptool.py (pip3 install esptool)

需要node.js , Python3和esptool.py。所以我们先安装Node.js

$ sudo apt update && sudo apt install nodejs

在Ubuntu 16.04中,Python 3是自带的,如果没有那么可以在包管理器中找到并安装它。最后一部分是安装esptool.py。这是一个特殊的Python文件,它将随着EduBlocks的安装而刷入ESP32,在这里我们需要确保安装了pip工具。

$ sudo apt-get install -y python3-pip

然后我们就可以通过pip安装esptools了。

$ sudo pip3 install esptool

完成上述步骤后,最后要做的就是下载esp32-micropython 的Github库了; 这也可以通过从终端命令来实现。

$ git clone https://github.com/PrestonHackspace/esp32-micropython

完成这些后,我们现在可以开始在ESP32上刷入EduBlocks了。

将ESP32连接到电脑,这时应该看到ESP32上的两个LED闪烁,这表明ESP32工作了。现在回到命令终端,通过命令将ESP32端口与ESPTOOL PORT连接,默认ESP32应该是连接到ttyUSB0。

$ export ESPTOOL_PORT=/dev/ttyUSB0

然后在同一个命令终端中发出下一个命令,它将把Micropython写入到ESP32。输入这个命令,按下Enter键之前,先按住ESP32上的 Boot 键不放,直到看到它连接成功并开始闪烁!

$ npm run flash-micropython

这一步完成ESP32写入EduBlocks 。这里一定记住,按下Enter键之前,先按住ESP32上的 Boot 键不放,等它连接好再放手!

$ npm run flash-sys

接下来写入flash-sys,ESP32将会重新启动,您将在WiFi列表中看到一个新的WiFi SSID,它应该是一个以ESP为前缀的SSID被清晰地标识出来。例如,我的是ESP_0729DD,选择它并连接。打开您的web浏览器,访问192.168.4.1,您将看到ESP32面板,我们可以使用它查看我们的连接状态,扫描其他的WiFi SSID,并运行EduBlocks。

单击EduBlocks启动应用程序,您将看到以下内容。

通用基本代码块如下:

ESP32代码块如下:

EduBlocks ESP32 闪烁灯测试

安装完软件,我们就可以开始测试具体的项目了,国际惯例闪烁灯奉上,下面是电路图:

按照上图连接组件。按钮开关连接到引脚18和GND,LED通过正极连接到引脚13,负极通过330欧姆电阻连接到GND。

基本代码块组合如下,你也可以根据实际进行调整,预留的空位留给大家自由发挥。

Exit mobile version