SimpleFOC之ESP32(一)—— 搭建开发环境


说明

    2016年春天的时候第一次接触ESP8266,用的ESP-12的模块,串口转wifi通信。本来是很简单的工作,串口发送数据完事,按照习惯看下手册,这一看把我绕晕了,它的与众不同的Xtensa内核,FreeRTOS系统和以开发应用的方式编程,简直就是单片机行业中的外星文明,再搭配超低的价格,深深的震撼了我。
  我学习了FreeRTOS,学习了Linux环境下的应用编程,并建议老板在这个芯片上多下点功夫,这个芯片以后一定会大放异彩,但是老板的兴趣显然不在这,没有了支持我的学习也停留在,只能在ESP8266上做个点亮LED的小应用。
    2020年初因为公司业务发展学习了Python,发现ESP8266可以跑MicroPython,于是又拿出来曾经的模块演示一遍,这时候发现ESP的编程方式主要是在Arduino上,还有Lua和MicroPython这些新兴语言的支持。早期的ESP8266提供SDK API,Lubuntu安装包等,但目前的官方似乎已经不再强调这些,ESP中应用程序的开发已经完全软件化,这与STM32的keil编程方式大相径庭(当然keil的库函数和CubeMX也是软件化的一种体现)。
    硬件编程软件化是一个趋势,ESP会成为单片机多极化发展中的一极,我看好这个芯片!

一、ESP32介绍

  • ESP8266:乐鑫公司最早打出知名度的芯片,只有WIFI通信,32-bit LX6单核处理器,160MHz。
  • ESP32:有WIFI、BL4.2和BLE通信,32-bit LX6双核处理器,240MHz。
    在这里插入图片描述
  • 其它ESP32-S、ESP32-C系列为更高端的芯片,不做介绍。
  • ESP的芯片因为自带wifi和蓝牙,非专业人士设计电磁兼容有难度,所以原厂很体贴的把芯片电路设计好,以模块的方式对外出售,大大降低了普通开发者的使用难度。
  • ESP32官方提供三个系列的模块,分别是:
    • ESP32-SOLO 系列,低档,
    • ESP32-WROOM 系列,中档,
    • ESP32-WROVER 系列,高档,
    • 本系列教程以 ESP32-WROOM-32 模块为例。
      在这里插入图片描述
  • 官方不仅推出了ESP32的模块,还推出了最小系统板ESP32-DevKitC,
    在这里插入图片描述
  • 官方开发板上的USB转串口用的是CP2102,进口芯片价格偏高,市场上有很多改进版本采用国产芯片CH340,根据本人多年经验,国产同样好用。
    在这里插入图片描述

二、Arduino IDE的ESP32开发环境搭建

ESP32的开发环境搭建网上有很多种,为保持文章的完整性,简单说明。

2.1、安装Arduino IDE

Arduino IDE下载地址:https://www.arduino.cc/en/software
在这里插入图片描述
在这里插入图片描述
此软件免安装,下载的文件,放到不包含中文路径的文件夹中,解压后双击图标 打开软件,如果打开失败,可能是需要安装JDK,请先安装Java的JDK。

2.2、安装SimpleFOC库

  • 打开Arduino IDE,点击 工具—>管理库
    在这里插入图片描述
  • 在打开的小窗口中输入Simple FOC,选择最新版本,点击安装。
    在这里插入图片描述

2.3、安装ESP库文件

◆ 2.3.1、下载库文件

  • https://github.com/espressif,下载arduino-esp32,
    在这里插入图片描述
  • 下载压缩包,
    在这里插入图片描述

◆ 2.3.2、安装ESP32库文件

  • 解压压缩包,并修改文件夹名字为esp32,找到Arduino IDE的安装路径,在hardware文件夹下新建espressif文件夹,把解压后的esp32文件夹移动到当前位置,路径及解压后的文件如下图,
    在这里插入图片描述

◆ 2.3.3、安装ESP32编译器

  • 上面安装的是ESP32的库文件和示例,下面还要再安装编译器。网上主流的教程是:先安装python,然后运行tools文件夹下的 get.exe。(运行get.exe就是启动get.py,这是个python文件,所以必须要安装python。)
    在这里插入图片描述

  • 本人操作时等了半个小时没反应,网上搜到一篇文章比较专业:https://www.jianshu.com/p/a8f3fc166b5d,

  • 简单的说,要下载的编译器就是三个文件,分别是xtensa-esp32-elf-gcc、esptool_py、mkspiffs,安装ESP32编译器的本质就是去github下载这三个文件放入当前的tools文件夹中,
    在这里插入图片描述

  • 三个文件的下载路径如下:

    • https://github.com/espressif/crosstool-NG/releases/download/esp-2021r1/xtensa-esp32-elf-gcc8_4_0-esp-2021r1-win32.zip
    • https://github.com/espressif/arduino-esp32/releases/download/2.0.0-alpha1/esptool-3.1.0-windows.zip
    • https://github.com/igrr/mkspiffs/releases/download/0.2.3/mkspiffs-0.2.3-arduino-esp32-win32.zip
    • 可以直接下载,这样就不用再安装python,也不用在黑窗口里等待。
      在这里插入图片描述

2.5、安装Python

  python的安装方法也顺便说下吧,或许能用上。如果编译器已经安装好了可以不用安装python。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.6、选择ESP32开发板

重新打开Arduino IDE,选择ESP32-DevKitC开发板,
在这里插入图片描述

开发板确定后其它参数默认,如下图,
串口选择需要先把开发板接入USB才能识别出来,暂时先不处理,
在这里插入图片描述
ESP32的开发环境搭建完毕。

三、点亮LED

提供两种方案:ESP32-DevKitC方案或者ESP32drive方案,二选一,都可以实现本节实验。

3.1、ESP32-DevKitC方案

◆ 3.1.1、准备清单

序号 名称 数量
1 ESP32-DevKitC 1
2 USB转串口 1

在这里插入图片描述
◆ 3.1.2、硬件连接
在这里插入图片描述

3.2、ESP32drive方案

◆ 3.2.1、准备清单

序号 名称 数量
1 ESP32drive 1
2 USB转串口 1
3 12V电源 1

在这里插入图片描述
ESP32drive 购买链接:某宝购买

◆ 3.2.2、硬件连接
在这里插入图片描述

3.3、示例演示

◆ 3.3.1、打开示例
在这里插入图片描述

◆ 3.3.2、修改代码
硬件上,LED对应的引脚为GPIO2,高电平亮,低电平灭,
在这里插入图片描述

◆ 3.3.3、选择配置
如果USB转串口接入电脑后不能识别,需要先安装驱动,本节实验所用USB转串口芯片为CH340。
在这里插入图片描述

◆ 3.3.4、编译下载

  • 先验证代码,保证没有错误,
  • ESP32模块先进入下载模式:按住Boot键不松手,按下复位键并松开,进入下载模式(此时可以松开Boot键),
  • 点击“上传”,等待上传结束。
    在这里插入图片描述
    ◆ 3.3.5、观察运行
    上传完成后按复位键,LED每隔1秒闪烁。

四、系统打印

  • 调试时会发现串口初始化和断电都有信息打印,ESP32-DevKitC因为通过USB供电,上后电脑识别串口的时候已经打印信息,只有按复位键可以看到初始化信息;而拔掉USB线的断电方式同时也断开了串口连接 ,所以看不到断电打印。
    在这里插入图片描述

  • ESP32模块上电打印可以通过配置GPIO15的引脚电平取消,
    ESP32drive在电路上设计了下拉电阻,所以上电没有打印,如果需要可以拆掉对应电阻,位置如下图。在这里插入图片描述

  • 断电打印:Brownout detector was triggered,这个需要通过配置ESP32的内核程序才能关闭。

  • 需要说明的是,ESP32运行的是FreeRTOS系统,我们在Arduino中写的代码只是它的一个应用,并不能修改系统,修改系统需要Linux编译环境,比较复杂,新手先不用考虑。


    (完)


    欢迎加入simpleFOC技术交流群:923734429 (入群申请写:CSDN)


    请继续阅读相关文章:
    SimpleFOC之ESP32(二)—— 开环控制

猜你喜欢

转载自blog.csdn.net/loop222/article/details/120783085