SimpleFOC之ESP32—— 搭建开发环境
Posted loop222
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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—— 搭建开发环境的主要内容,如果未能解决你的问题,请参考以下文章
ESP32 ESP-IDF开发环境搭建,Windows下基于ESP-IDF | Cmake | VScode插件的 ESP32 开发环境搭建
ESP32上手笔记 | 02 - ESP32-Arduino开发环境搭建