深入解析Arduino ESP32 Core 3.0.0:新功能與升級指南


Summary

這篇文章深入剖析Arduino ESP32 Core 3.0.0版本的新功能與升級指南,探討其對未來物聯網應用的重要影響。我們將一起了解這些更新如何使開發者在創作過程中獲益匪淺。 Key Points:

  • ESP32-C6與ESP32-H2的原生支援,讓開發者能夠根據特定應用選擇更合適的晶片,大幅提升開發效率。
  • API的精簡與效能提升,使得程式碼更加可讀且易於維護,降低了物聯網應用的開發門檻。
  • 關於破壞性變更的透明度和遷移指南的重要性,強調了團隊對開發者社群承諾的必要性。
總體而言,本篇文章揭示了Arduino ESP32 Core 3.0.0版本所帶來的新機遇,使我們在物聯網領域有了更大的探索空間。

Arduino ESP32 Core 3.0.0發布公告

Espressif Systems 宣布推出 Arduino ESP32 Core 的新版本 3.0.0,這次更新支援了 ESP32-C6 和 ESP32-H2,並且搭載最新的 ESP-IDF 5.1。回顧在 2021 年九月發布的 Arduino ESP32 Core 版本 2.0.0,它首次加入了對 ESP32-S2 和後來釋出的 ESP32-S3 與 ESP32-C3 的支援。這次發布對社群來說是一個重要里程碑,不僅因為新增的系統單晶片(SoCs)支援,還因為它標誌著專案的新時代。在此之後的14次更新中,共計有800多次提交,由88位貢獻者共同努力,使得功能大幅增強,包括眾多新特性、修復問題、新範例以及核心文檔的完善。

新版本不僅提升了連接穩定性,也在 Wi-Fi 和藍牙功能上進行了改良,這將幫助開發者更好地應用於各種實際情境。此外,此版本所支援的新硬體平台和傳感器也讓使用者能夠探索更多可能性。在升級過程中,相容性問題也是一個值得注意的方面,用戶需深入了解舊版與新版之間的差異,以便順利遷移其項目。

回顧Arduino ESP32 Core版本2.0.0的重大里程碑

自從Arduino ESP32核心版本2.0.0發布以來,隨著新芯片的推出,開發者們對功能的需求也在不斷提升,因此需要進一步改善與Arduino IDE的整合體驗。為了延續版本2.0.0所帶來的輝煌成就,Arduino ESP32核心團隊正與社區緊密合作,不斷推動歷史的進程。現在,我們很高興地宣布,Arduino ESP32核心即將推出主要版本3.0.0,新版本將新增對ESP32-C6和ESP32-H2等系統單晶片(SoC)的支援,同時也包含API改進及一些破壞性變更。這次更新無疑會使得開發者在物聯網(IoT)應用中獲得更好的性能和靈活性,也讓未來的項目更加充滿可能性。
Extended Perspectives Comparison:
結論說明
新版本支援Arduino ESP32 Core 3.0.0 現在支援 ESP32-C6 和 ESP32-H2 系統單晶片,顯著擴展了硬體兼容性。
API 改進多個 API(如 ADC、BLE、I2S 等)獲得改善,提升開發者的使用體驗和性能。
周邊管理器新增周邊管理器功能,有效避免 GPIO 配置錯誤並簡化外設初始化過程。
SPI 以太網支持增強對 SPI 以太網 IC 的支持,包括 W5500 和 DM9051,擴大了應用範疇。
語音識別功能ESP32-S3 支援喚醒詞及指令識別技術,提供即時語音處理能力。

新支援的ESP32-C6和ESP32-H2介紹

ESP32-C6於2022年正式推出,這款來自C系列的新型系統單晶片(SoC)引入了Wi-Fi 6以及802.15.4的支持。它是一款低功耗且具成本效益的2.4 GHz Wi-Fi 6、藍牙5(低能耗)及Thread/Zigbee的SoC,搭載32位元RISC-V核心,專為安全連接設備而設計。

這款晶片在無線通訊協議方面的能力相當出色,Wi-Fi 6不僅提升了資料傳輸速度,同時也增強了連接穩定性。此外,由於其支援802.15.4協議,它在物聯網應用中展現出了更高的處理能力與擴展性,使開發者能夠探索更多創新的可能性。整體而言,ESP32-C6是一個適合各種智能設備和物聯網解決方案的重要選擇。

如何從版本2.0.X升級到3.0.0

ESP32-H2是Espressif最新推出的H系列SoC,這款芯片支援802.15.4協議(包括Thread和Zigbee)及藍牙5(低能耗),但這次不再具備Wi-Fi連接功能。它搭載了一個32位RISC-V核心,專為低功耗和安全連接而設計,可以滿足現代物聯網應用中對於穩定性與效能的需求。


如何從版本2.0.X升級到3.0.0 Free Images


周邊管理器功能與優勢

在從2.0.X版本升級到3.0.0的過程中,新的Arduino ESP32核心仍在開發階段,但你現在可以試用這個開發版本。由於這是一個開發版本,你可能會遇到一些問題,建議將這些問題反饋到Arduino ESP32的GitHub問題追踪頁面。目前預計的穩定版發布時間是2023年12月,而2.0.x版本將在2024年7月前持續維護,之後將停止支援。

在3.0.0版本中,有一些與API相關的重要變更,包括更新示例以確保其與新API兼容。因此,請務必仔細檢視並測試你的應用程序,以確保一切運行正常。

ESP-IDF 5.1的新特性概述

從2.0.x版本升級到3.0.0的主要變更如下:### **周邊管理器**這個新推出的周邊管理器旨在協助用戶,幫助他們避免在GPIO配置上出現錯誤。雖然這一功能對用戶來說是透明的,但系統會在當前周邊配置上發出警告。它可以有效地管理周邊設備的初始化,並預防一些常見問題,比如:- 同一個GPIO同時被多個周邊使用- 一些受限的GPIO被不適合的周邊(如FLASH和PSRAM)佔用此外,它還具有以下特點:- 在初始化後打印報告,顯示所有正在使用的周邊設備 - 有助於不同ESP系列之間的周邊管理

SPI以太網支持新增說明

某些ESP的外部周邊數量、通道及其限制可能會有所不同。舉例來說,如果你將GPIO18配置為SPI外設,然後在SPI初始化後又將相同的GPIO18設定為RMT外設,那麼SPI將會被去初始化。在詳細調試級別下,外設管理器會打印出一份完整報告,其中包含晶片資訊、內存分配、分區、軟體資訊、板子詳情和GPIO映射。以下是當初始化了以下外設時,外設管理器報告的一個範例:```yamlESP-ROM:esp32c3-api1-20210207Build:Feb 7 2021rst:0x1 (POWERON),boot:0xc (SPI_FAST_FLASH_BOOT)SPIWP:0xeemode:DIO, clock div:1load:0x3fcd5820,len:0x458load:0x403cc710,len:0x814load:0x403ce710,len:0x2878entry 0x403cc710=========== 設定開始前 ===========晶片資訊:------------------------------------------ 型號 : ESP32-C3 包裝 : 0 修訂 : 3 核心數 : 1 頻率 : 160 MHz 嵌入式閃存 : 無 嵌入式PSRAM : 無 支援2.4GHz WiFi : 是 支援經典BT : 否 支援低能耗BT : 是 支援IEEE 802.15.4 : 否------------------------------------------內部記憶體資訊:------------------------------------------ 總大小 : 341480 B (333.5 KB) 自由字節 : 312940 B (305.6 KB) 已分配字節 : 24960 B (24.4 KB) 最小自由字節 : 312940 B (305.6 KB) 最大自由區塊 : 294900 B (288.0 KB)------------------------------------------閃存資訊:------------------------------------------ 晶片大小 : 4194304 B (4 MB) 區塊大小 : 65536 B (64.0 KB) 扇區大小 : 4096 B (4.0 KB) 頁面大小 : 256 B (0.2 KB) 總線速度 : -MHz 總線模式 :QIO------------------------------------------分區資訊:------------------------------------------ nvs :地址:0×00009000,大小:20KB,類型:資料,子類型:NVS otadata :地址:0×0000E000,大小:8KB,類型:資料,子類型:OTA app0 :地址:0×00010000,大小:1280KB,類型:應用程序, 子類型:約_OTA app1 :地址;0×00150000,大少1289kB,但也可以按照需要進行調整 spiffs :地址;0×00290000,大少1408kB,加快讀取速度 coredump :地址;0×003F000,对应数据类型为COREDUMP并且具有对应的内存位置。 -------------------------------------------軟件信息----------------------------- ------------------- 編譯日期/時間 :Nov2 20231006時40分鐘48秒 編譯主機操作系統  Windows ESP-IDF版本   v5.1.1-577-g6b1f40b9bf-dirty Arduino版本   3.0.0 -------------------------------------------板卡信息---------------------------- ------------------ Arduino板卡    ESP32C3_DEV Arduino變體     esp32c3 Arduino FQBN    esp32;esp32;esp32c3:JTAGAdapter=default,CDCOnBoot=default,PartitionScheme=default,CPUFreq=160,FlashMode=qio,FlashFreq=80,FlashSize=4M,UploadSpeed=921600 ,DebugLevel=debug ,EraseFlash=None============ 設定結束前 ============ [380][I][esp32-hal-i2c.c:99] i2cInit(): 初始化I2C主控:sda=8 scl=9 freq=100000]}

全新的I2S庫功能介紹

在設置完成後,我們可以看到內部記憶體的資訊如下:總大小為341480 B(約333.5 KB),目前可用的空間是314976 B(大約307.6 KB),已分配的空間則為22508 B(約22.0 KB)。值得注意的是,最小可用空間是312360 B(約305.0 KB),而最大的可用區塊達到286708 B(大約280.0 KB)。

接下來是GPIO的信息,其中8和9號腳位被配置為I2C主模式,而20和21號腳位則分別作為UART接收和傳輸端口。

這裡提到的是ESP-IDF 5.1版本。Arduino ESP32核心3.0.0基於此版本,並支持新的SoC,包括ESP32-C6和ESP32-H2。此外,這個版本還引入了一些新功能,比如802.15.4相關的特性,可以在未更新ESP-IDF核心的情況下實施。這對於開發者來說無疑是一個極大的便利,可以讓他們更靈活地運用新技術而不必擔心更新帶來的不便。

ESP32-S3語音識別能力解析

### **SPI以太網支持**
現在,ESP-IDF SPI庫和Arduino SPI都已支援SPI以太網。這項新功能包括對W5500、DM9051以及KSZ8851SNL以太網IC的支援。

### **全新的I2S庫**
新增的I2S庫基於ESP-IDF API進行開發,為音頻處理提供了更好的支持。

### **喚醒詞與指令識別(僅限ESP32-S3)**
針對ESP32-S3,基於ESP-SR技術,該設備將能夠實現語音識別,包括喚醒詞和指令的辨識。在這方面,可以深入探討其神經網絡模型的運作原理及訓練過程。此外,也可以介紹所用麥克風模組的材質與靈敏度,以及不同環境下對語音識別性能的影響因素,同時分享一些實際應用案例,以顯示如何利用ESP32-S3進行即時語音處理,增強讀者對此技術實用性的理解與興趣。

### **TensorFlowLite Micro支持**
現在,TensorFlow得到了支援,同時還附上了一些範例供參考。

### **API改進**
改善後的API包括:- ADC - BLE - I2S - LEDC - RMT - SigmaDelta - 計時器 - UART (HardwareSerial)
需要注意的是:霍爾傳感器不再受到支持。

安裝開發版本的步驟

### **新增的開發板**
我們已經增加了一些新的開發板,包括來自 [Adafruit]、[Arduino.cc]、[M5Stack]、[LILYGO] 以及其他許多廠商的產品。

## **如何安裝 Arduino ESP32 Core 的開發版本**
如果你想在 Arduino IDE 上安裝 Arduino ESP32 Core 的開發版本,可以參考我們的 [文檔] 中提供的安裝說明。對於操作系統,建議使用 Windows、macOS 或 Linux,以確保最佳兼容性和性能。在開始之前,請確認你的環境符合相應的配置要求。

要安裝此開發版本,你可以添加以下連結至 Arduino IDE 的「附加網址」選項中:
https://espressif.github.io/arduino-esp32/package_esp32_dev_index.json


這樣一來,你就能夠輕鬆獲取最新的庫和功能了。此外,根據需要選擇合適的 IDE(如 Arduino IDE 或 PlatformIO),並遵循具體步驟來安裝相關插件或庫,可以大幅提升你的開發效率。

另外,在進行版本控制時,了解如何回滾到先前穩定版也非常重要,以避免不必要的錯誤和麻煩。希望這些資訊能幫助你順利完成安裝過程!

Reference Articles

乐鑫发布Arduino ESP32 v3.0.0 原创

此版本引入了多项强大的新功能、性能优化及众多改进措施,旨在为开发者提供更加流畅的开发体验。 继续访问. 乐鑫ESP32-C6 通过Thread 1.4 互操作性认证.

Source: CSDN博客

esp32 arduino 堆栈溢出原创

在本文中,我们将深入探讨如何使用ESP32和Arduino IDE创建一个蓝牙键盘项目。 ... **Arduino安装ESP32资源包指南** 在进行物联网开发时,ESP32因其强大的 ...

Source: CSDN博客

local-search.xml - 好一则博

... ESP32-CAM + Arduino 快速上手 ... 功能或价格

我现在用的单片机主要都是乐鑫ESP 系列的 ...

Source: haoyizebo.com

awesome-stars/README.md at master

... 3.0.0 – 文档数据库mongodb kv存储引擎wiredtiger源码详细分析注释; philipl ... 更新新版本偏移,目前支持所有新版本、正式版本; EdwinVW/dapr-traffic-control ...

Source: GitHub

RealPython-中文系列教程-一- - 绝不原创的飞龙

查看分析API 以及弹性搜索——权威指南,了解更多关于如何分析和建模数据的想法。 ... 新功能的更新。确保安装任何新的更新,以保持您的环境处于最新和最佳状态 ...

Source: 博客园

AlexiaChen/awesome-stars: a list of projects I starred

y123456yz/reading-and-annotate-wiredtiger-3.0.0 – 文档数据库mongodb kv存储引擎wiredtiger源码详细分析注释 ... 更新新版本偏移,目前支持所有新版本、 ...

Source: GitHub

Bookmarks

ESP8266WiFi library — ESP8266 Arduino Core documentation · C++ 用libcurl库 ... ESP-IDF 编程指南- ESP32 - — ESP-IDF 编程指南latest 文档 · Guide for I2C OLED ...

Source: zaxtyson.cn

Christian Brecher

Expert

Related Discussions