arduino nano 蓝牙_ESP32概述与Arduino软件准备 | ESP32学习之旅-Arduino版

6d9eb8d9f527e8a3b5796a88d6c87c5c.png

29b8c87f1a49ecd8d0edcd86856afbc2.png

1e4b0bdd7b6aff829678ec7804c88c7c.png

前言

近年来,掌控板(英文名:mPython)在创客教育中应用越来越广泛。掌控板集成了 ESP32 高性能双核芯片,具备 WiFi 和蓝牙连接功能,同时在板子上又配置了丰富的传感器,最重要的是它是专门为国内编程教学而设计的,符合国内课堂使用的情况,再加上价格便宜,所以越来越多的做 STEAM 和创客的老师开始使用它了。

国内各大教育厂商和组织也推出了针对掌控板的教学编程软件,比如 Mind+、Mixly、mPython 等编程软件,这些软件大多以图形化编程为主,使用简单,可以轻松实现很多好玩的创意,从而可以让学生体验无穷的创作乐趣。以这些软件为基础,目前网上也有了大量关于掌控板的项目和课程。

09de3dbd79dcbac863b908604a6e4ada.png

但是针对掌控板普及教学而设计的软件,往往在功能上会有一些限制。另外,如果对掌控板的核心芯片 ESP32 不够了解的话,不方便对学到的知识进行迁移。比如网上有很多采用 ESP32 设计的开发板,在掌控板上学到的知识,能否用到这些 ESP32 的开发板上呢?

另外,在接触掌控板之前,大部分老师做创客教育基本都会采用非常流行的 Arduino 来进行,那么能否将 Arduino 上面学到的编程知识也迁移到掌控板呢?

实际上,这些知识都是可以迁移的,因此在有时间的情况下,我准备给大家分享一系列用 Arduino 代码对掌控板(ESP32)编程的教程:用 Arduino 玩转掌控板(ESP32)系列,旨在更多地从 ESP32 芯片的角度出发,学习 ESP32 模块的编程,然后应用到掌控板或其他基于 ESP32 的开发板上,让大家可以触类旁通。

在硬件选择上,本教程将以掌控板为主线,再搭配一些其他基于 ESP32 的学习开发板,比如 NodeMCU-32SDFRobot FireBeetle-ESP32;在编程软件选择上,将以 Arduino 代码编程为主,个别案例也会同时分享一些 Mixly 或 Mind+ 或 mPython 等图形化编程软件的程序。

实际上 ESP32 芯片是 ESP8266 芯片的升级版,所以情况下,两者的代码也是兼容的,所以本教程提供的代码也尽可能做到通用,但是由于本人水平有限,难免有一些疏漏之处,还请大家多多提出批评改进意见,一起进步。

ESP32 概述

在介绍软件之前,先来简单介绍一下硬件。首先我们来看一下掌控板背后的主控芯片 ESP32。

ESP32 芯片是由我国的乐鑫公司继 ESP8266 芯片后推出的又一款集成 WiFi 功能的微控制器。它拥有比 ESP8266 更加强大的性能,可以用来开发更加复杂的应用。ESP32 芯片或模组具有下列特点:

  • 处理器:Tensilica LX6 双核处理器(一核处理高速连接;一核独立应用开发)
  • 主频:32 位双核处理器,CPU 正常工作速度为 80 MHz,最高可达 240 MHz
  • SRAM:520KB,最大支持 8 MB 片外 SPI SRAM
  • Flash:最大支持 16 MB 片外 SPI Flash
  • WiFi 协议:支持 802.11 b/g/n/d/e/i/k/r 等协议,速度高达150 Mbps
  • 频率范围:2.4~2.5 GHz
  • 蓝牙协议:支持蓝牙 v4.2 完整标准,包含传统蓝牙 (BR/EDR) 和低功耗蓝牙 (BLE)
  • 同时他还具备丰富的外设接口:比如 GPIO、ADC、DAC、SPI、I²C、I²S、UART 等常用接口一个不少

具体可以查看官方出品的功能框图:

95ea54736ec00334f685a3e31ac20a0c.png

204f977b2c6b3fb9a4fe16ce5e461a6c.png

有兴趣的读者可以去下面的掌控板官方 Wiki 对比一下掌控板的硬件参数:

https://mpython.readthedocs.io/zh/master/board/hardware.html

这些参数是不是跟基于 ESP32 芯片的掌控板差不多?另外上图中的 ESP32 引脚框图其实也和掌控板完全一样。

总结下来,ESP32 芯片主要具有高性能、低功耗、高度集成、体积小、性能稳定等优点。可以说性能是相当不错了,所以它才能支持 MicroPython 等比较耗性能的脚本语言。

关于 ESP32 的更多详细参数可以参考乐鑫官网:

https://www.espressif.com/zh-hans/products/hardware/esp32/overview

常见 ESP32 开发板

如果在淘宝搜索 ESP32,可以看到很多开发板,如下图所示。除了掌控板之外,这些琳琅满目的开发板,我们到底该怎么选择呢?

cff2088facd542956d3fcbe3fb5aca70.png

针对本教程来说,其实这些板子都大同小异,大家可以自由选择。本教程主要采用了掌控板、DFRobot 出品的 FireBeetle-ESP32、安信可出品的 NodeMCU-32S 这 3 块学习板进行展开。其中掌控板是我们学习的主要器件,而 FireBeetle-ESP32、NodeMCU-32S 这 2 块板子,主要以配合讲解为主,方便让大家知道背后的原理。在本教程涉及的项目中,除了掌控板之外,我也会选择部分项目让大家看看在其他板子上运行的效果。选择这几块板子的原因是:一方面,在国内使用的比较多,中文资料比较全面;另一方面,他们都有相应的扩展板,方便后面学习的时候,外接各种传感器与执行器模块。

下图为掌控板的正面与反面,更多详细的资料可以查看掌控板官方帮助文档:https://mpython.readthedocs.io/zh/master/

4d8b7a8cfaeb9457a525e39193e53d0b.png

下图为 DFRobot 出品的 FireBeetle-ESP32,更多详细的资料可以查看 DF 官网的 Wiki: http://wiki.dfrobot.com.cn/index.php?title=(SKU:DFR0478)FireBeetle_Board-ESP32%E4%B8%BB%E6%9D%BF%E6%8E%A7%E5%88%B6%E5%99%A8V3.0

fcf11accef3be903316eca5e66acf7d1.png

下图为安信可科技出品的 NodeMCU-32S 开发板,更多详细的资料可以查看安信可官网的 Wiki:

https://wiki.ai-thinker.com/esp32/boards/nodemcu_32s

198ea69b79415a3133eed0474a4c3f5b.png

这里需要注意的是,大部分 ESP32 系列的开发板,他们的工作电压都是 3.3 V,USB 口最高输入 5 V 电压,因此在使用时要注意选择正确的电压,以免烧坏板子,造成危险。后面的章节中,在具体接线时,也会再次强调。

编程语言选择

ESP32 的开发方式有很多种,下面列举几个常用的:

  • 乐鑫官方 ESP-IDF,这是官方的首推的开发方式,能够最大限度发挥ESP32的性能,代价就是不方便或者说是开发不是那么高效;
  • 乐鑫官方出品 Arduino core for the ESP32,官方出品的 Arduino 编程软件支持,上手简单,大部分编程语法和 Arduino 兼容,借助于 Arduino 生态,有非常丰富的资源可直接使用;
  • 现在非常流行的 microPython,简单明了,功能强大,大部分编程语法和 Python 兼容,借助于 Python 生态,在音视频、图像处理、人工智能等方面有很大的优势;
  • 图形化编程,比如 Mixly、Mind+、mPython X 等图形化编程软件,其实他们的底层也主要是基于 Arduino 模式或者 microPython 模式。

目前最适合广大中小学老师教学的,主要就是 Arduino 模式和 microPython 模式,因为针对掌控板使用 microPython 的课程已经比较多了,所以本系列的教程主要使用 Arduino IDE 进行学习。

02587c2a1cf654cdc5bc50dcc3a4ff16.png

软件准备

使用 Arduino 软件对掌控板编程,需要对 Arduino 软件做一些配置,我这里提供两种方法:

  • 使用 Mixly 软件内置的 Arduino 软件,已配置好开发环境,使用简单,适合入门;
  • 利用 Arduino 开发板管理器配置 ESP32(掌控板)开发环境,适合喜欢折腾的人。

这里比较推荐第一种方式,使用 Mixly 软件内置的 Arduino 软件,但是两种方法的安装方法我都会简要介绍一下。

使用 Mixly 内置版 Arduino

Mixly 的下载地址为:https://mixly.readthedocs.io/zh_CN/latest/basic/02Installation-update.html

安装方法不再赘述,可以直接参考上述链接。

Mixly 从 v1.0 版本开始,默认已经配置好了 ESP32(掌控板)的编程环境,直接打开 Mixly 内置的 Arduino 软件,编程时依次选择:工具 → 开发板 → Arduino HandBit 或者 Arduino ESP32 即可。 选择 Arduino ESP32Arduino HandBit 都可以。其中 Arduino ESP32提供了 ESP32 通用的编程模块,而 Arduino HandBit 则是针对掌控板一些功能进行了进一步封装而已,如果懂得了掌控板(或 ESP32)背后的一些技术原理,选择任何一个都是可以的。当然在使用掌控板时,选择 Arduino HandBit 会稍微方便一些。

ea732d4b8202ca29105d157929692747.png

如果你想体验 Mixly 图形化编程,按照如下两图进行开发板选择即可。

b373d7d409d0cde66428dfeca9595377.png

9451b7f5bd7ff864e299e02ebf6aa01f.png

自己配置 Arduino 开发环境

在 Arduino 中对 ESP32 或掌控板进行编程,前期准备稍微麻烦一些,但也不难。官方也提供了详细的教程。这里以 Windows 系统为例来介绍配置教程,macOS 或者 Linux 系统,过程基本一样,不再赘述。

首先安装最新版 Arduino IDE,下载网址:https://www.arduino.cc/en/Main/Software

下载完成后打开 Arduino 软件,依次点击菜单:文件 → 首选项,打开 Arduino 设置界面

eac471a0496ee729f75b7d2594e87a2a.png

在 Arduino 设置界面(首选项)中,在附加开发板管理器网址一栏,填入:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

如下图所示:

7ba7f5d692489a3a58eebc0a933119e9.png

然后在菜单栏中依次点开:工具 → 开发板 → 开发板管理,打开开发板管理器界面。

1e206056c02eeef606c4d8e73223f400.png

开发板管理器上,搜索 esp32,可以看到 esp32 by Espressif Systems,点击右下角的安装,等待安装完成即可。这个过程可能比较慢,取决于网络,请耐心等待。如果安装失败,重新安装即可。

731641b73a1cc3cc4b126d11daa61bb9.png

安装成功后,电机工具 → 开发板,就可以看到许多 ESP32 开发板的选项了,如下图所示:

5a4849673164409a300e3dd357e09814.png

小试身手

所有准备工作都已经完成了,我们来试试编写并上传第一个 Arduino 模式下的掌控板(ESP32)程序吧。

打开 Arduino 软件,在开发板中选择 ESP32 Dev Module,然后在代码编辑区域输入以下程序:

void setup() {
  Serial.begin(115200);
}

void loop() {
  Serial.println("Hello ESP32. Hello Arduino!");
  delay(1000);
}
1、开发板选项中 ESP32 Arduino 列表中所列的开发板,都是基于 ESP32 芯片的,除了引脚定义有一些差异外,其他差异不是很大,入门学习时可以忽略他们的差异,随便选一个,影响都不是很大,这里推荐选择 ESP32 Dev Module 即可。
2、如果使用的是 Mixly 内置的 Arduino 软件,为了方便大学学习,已经精简删除了大部分开发板选项,只留下几个选项,读者直接选择 Arduino ESP32Arduino HandBit 即可。

6c32e9261a5fd6dc99c4b76107b5451e.png

然后选择正确的端口号,点击上传按钮,将程序上传到掌控板,当然你也可以上传到 FireBeetle-ESP32、NodeMCU-32S 等其他开发板上,看看效果是不是一样的。当 Arduino 软件界面下方出现如下图显示的 Leaving... Hard resetting via RTS pin…,即表示上传成功。

426b6a0613f9e33c595e5cfb1bb03f6f.png

然后点击右上角串口监视器,修改对应的串口波特率为 115200,看看输出效果吧。这个程序主要实现了让掌控板每隔 1s 向串口打印输出一行 Hello ESP32. Hello Arduino! 字符串,你也可以修改程序中的打印内容,重新上传程序看看效果。

0fa04cc8d3b49c4b1cb1b2ac1f77d579.png

如果程序输出没有问题的话,恭喜你,你已经正式开始用 Arduino 学习掌控板之旅了!

总结

在这个章节中,我们主要学习了以下内容:

  • ESP32 的基本知识;
  • 了解了一些常见的基于 ESP32 的学习开发板;
  • 学习了在 Arduino 中配置 ESP32 掌控板开发环境的方法;
  • 在 Arduino 模式下编写了第一个掌控板程序。

欢迎关注

最后,欢迎关注我的公众号:铁熊玩创客,不定期更新创客制作、技术教程、创客教育等相关内容。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值