目錄
- 說明
- 一、ESP32介紹
- 二、Arduino IDE的ESP32開發環境搭建
- 2.1、安裝Arduino IDE
- 2.2、安裝SimpleFOC庫
- 2.3、安裝ESP庫檔案
- 2.5、安裝Python
- 2.6、選擇ESP32開發板
- 三、點亮LED
- 3.1、ESP32-DevKitC方案
- 3.2、ESP32drive方案
- 3.3、示例演示
- 四、系統列印
?
說明
????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)
?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/353521.html
標籤:其他
