ESP32 教學系列(二):使用 Arduino IDE 2.x 開發

ESP32 教學系列(二):使用 Arduino IDE 2.x 開發

一、前言

說到 ESP32 的開發環境自然得提到家喻戶曉的 Arduino IDE 啦,本篇將說明如何使用新版的 Arduino IDE 建立 ESP32 開發環境。

:由於Arduino2.1.1版尚未支援繁體中文,所以本文中的部分名詞會以中英對照方式呈現,以避免用詞上的誤解。

二、簡介

IDE 的全名是 Integrated Development Enviroment,中文的翻譯叫做「整合式開發環境」,它將開發時會需要用到的工具整合在一個軟體裡面,目的是幫助我們在開發時提高效率,而常見的開發工具像是編輯器、編譯、偵錯、燒錄等。

軟體領域的開發環境有非常多種,像是微軟的 Visual Studio 與 Visual Studio Code、Eclipse、Atom、PyCharm…等,這些開發環境能支援大部分的語言,也都由不同的公司或基金會推出。但是以嵌入式領域來說,因為各家晶片的設計與燒錄方式不盡相同,因此通常會由晶片廠商提供專屬的開發環境。知名的例子如美國大廠 Microchip 公司推出的 MPLAB、意法半導體(ST)公司針對 STM32 家族晶片推出的STM32CubeIDE。另外也有少部分的 IDE 是由第三方開發,相容於特定類型的晶片,例如 Arm KEIL 公司推出的 Keil MDK 系列 IDE,以及本篇的主角— Arduino IDE。

事實上,ESP32支援多種開發方式。除了常聽到的 Arduino IDE 以外,原廠樂鑫也有推出自己的整合式開發環境 ESP-IDF,但是相比之下 Arduino IDE 更加簡單、直覺,操作幾次之後就能上手,使用起來也相當方便。

另外,目前 ESP32 全系列多數晶片都支援使用 Arduino IDE 語言開發,所以綜合來說,不論是在安裝、操作、介面、程式語法、範例程式、函式庫支援、網路社群資源等方面,Arduino IDE 都是相當友善且親民的選擇。

💡Tips

如果您習慣使用 Arduino 的框架與核心函式庫但是想使用 Arduino IDE 以外的開發環境,可以參考 VSCode + PlatformIO 的組合

三、Arduino IDE 2.0 的新功能

新版的 Arduino IDE 基於開源框架 Eclipse Theia 並且使用了 Electron 建構開發環境,號稱沒有與舊版使用到相同的程式碼。在整合新功能後變得更強大,也有更好的使用體驗。

優點:

  • 界面改版後,畫面仍然清晰簡潔
  • 支援深色主題(Dark Theme)
  • 新增自動填寫程式碼(autocompletion)功能
  • 新增偵錯器(debugger)功能
  • 支援與 Arduino Cloud 同步草稿碼(sketches)
  • 將常用功能整合到主畫面上,像是:草稿碼簿(Sketchbook)、開發板管理員(Board Manager)、函式庫管理員(Library manager)、文字搜尋功能(Search)…等
  • 改善舊版序列埠監控視窗(Serial Monitor)一次只能連接一個序列埠(Serial port)的問題

缺點:

  • 初次啟動的速度很慢
  • 目前(2.1.1版)只支援簡體中文介面
ESP32 教學系列(二):使用 Arduino IDE 2.x 開發

四、先備條件:安裝 Arduino IDE 2.0

如果您的電腦已經安裝過 Arduino IDE,可以直接跳到下一個段落。(ゝ∀・)⌒☆

首先,到Arduino官網下載最新版本的IDE(點我下載),並依照電腦的作業系統選擇要下載的檔案。以筆者撰文當下為例,最新的版本是2.1.1。

ESP32 教學系列(二):使用 Arduino IDE 2.x 開發

下載後執行程式並照著流程安裝,最後會出現以下畫面

ESP32 教學系列(二):使用 Arduino IDE 2.x 開發

開啟軟體以後,看起來沒有反應是正常的。根據經驗,電腦在第一次開啟的 IDE 時,會需要花比較多時間載入,但是之後再開啟的速度會明顯變快。

成功開啟後,會看到如下畫面。不過,我們還需要加入ESP32開發板,才能在Arduino IDE上開發。

ESP32 教學系列(二):使用 Arduino IDE 2.x 開發

五、加入 ESP32 開發板

Arduino IDE 裡面預設只包含 Arduino 家族的開發板,如果要使用其他的開發板,必須在開發板管理員內新增。

步驟:

1. 在 Arduino IDE 2.0 左上方找到 File > Preferences

2. 複製下方文字並貼到 Additional Boards Manager URLs 的欄位中

https://espressif.github.io/arduino-esp32/package_esp32_index.json
ESP32 教學系列(二):使用 Arduino IDE 2.x 開發

💡Tips

如果 Additional boards manager 存在一個以上的 URL,在每一段的結尾處要記得用逗號隔開。

3. 點選畫面左側第二項的開發板管理員圖示,並在搜尋框裡輸入 esp32,點擊安裝。 如果在上個步驟有成功加入正確的網址,就會出現搜尋結果;假如搜尋不到結果,請檢查上個步驟操作是否正確,以及網路連線是否正常。

ESP32 教學系列(二):使用 Arduino IDE 2.x 開發

安裝完成後,左側選單與下方 Output 欄位會顯示 2.0.9 installed 的文字。(版本號碼會隨著更新時間而有所差異)

ESP32 教學系列(二):使用 Arduino IDE 2.x 開發

六、燒錄測試程式

安裝完開發板後,我們現在來試著燒錄一個簡單的 LED 閃爍範例程式。

步驟說明

ESP32 開發板上有一顆內建的 LED 燈,這顆 LED 連接到開發板 GPIO2 腳位。

1. 首先,複製下方的程式碼到 Arduino IDE 中,這個範例程式會讓 LED 以每 0.5 秒的速度閃爍。

2. 點擊在主畫面上方的 Select Board,選擇 Select other board and port

ESP32 教學系列(二):使用 Arduino IDE 2.x 開發

3. 在開發板列表中搜尋 NodeMCU-32S

ESP32 教學系列(二):使用 Arduino IDE 2.x 開發

4. 將開發板連接到電腦上,選擇連接埠(port)

ESP32 教學系列(二):使用 Arduino IDE 2.x 開發

5. 點擊上傳(Upload)按鈕燒錄

ESP32 教學系列(二):使用 Arduino IDE 2.x 開發

6. 執行結果

ESP32 教學系列(二):使用 Arduino IDE 2.x 開發

當然,您也可以用其他的腳位測試,只要把 #define LED 2 改成其他腳位,只是這樣一來,就要另外連接 LED 才能測試。有關 GPIO 的使用,我們會在下一篇中說明。

七、常見問題排除

如果您的在燒錄過程中遇到問題,可以參考此處的說明。

Q1: 開發板連接電腦後,IDE 卻顯示找不到可用連接埠

A1: 可以先確認開發板的燒錄晶片是哪一種,並檢查電腦是否有成功安裝驅動程式。若您需要下載驅動程式,可以點擊下面的連結到官網下載:

Q2: 電腦可以連接到開發板,也能選擇序列埠,但是在上傳程式階段,卻出現 Failed uploading 的錯誤訊息(如圖)

ESP32 教學系列(二):使用 Arduino IDE 2.x 開發

A2: 會出現這個原因是因為有些開發板沒有自動下載功能,需要手動切換成下載模式,才能將程式碼燒錄到晶片上。

具體操作步驟如下:

  1. 在 IDE 點擊上傳程式
  2. 當 Output 欄位出現 Connect…文字時,長按開發版上面的 IO0 按鈕(部分開發板會標示成 BOOT)
  3. 等到出現 Writing at 0x000…文字時,再鬆開按鈕
  4. 等待上傳完成

八、進階功能:開啟自動填入程式碼功能

在偏好設定中開啟自動填入功能,勾選並按下 OK 確認後,就可以回到編輯畫面了。

ESP32 教學系列(二):使用 Arduino IDE 2.x 開發

實際試試看效果:

ESP32 教學系列(二):使用 Arduino IDE 2.x 開發
自動填入功能

新版編輯器還加入了原型說明功能,只要將滑鼠游標停留在關鍵字上就能看到相關的訊息。

另一個實用的功能是連結參照功能,按下 Ctrl+ 點擊關鍵字後就能連結到原始宣告的檔案中。

ESP32 教學系列(二):使用 Arduino IDE 2.x 開發
原型說明功能

自動填入、原型說明和連結參照都是在開發上很常見的功能,另外在實測後發現,自動填入功能不論大小寫都會幫忙比對,就算少打一兩個字也一樣會有提示,相較於舊版編輯器來說是相當大的進步。

八、小結

Arduino IDE 在改版以後一樣維持了跨平台的優點、簡約且仍然直覺的操作介面,讓使用者在不同平台上能擁有一致的操作體驗,並整合了更多舊版沒有,但是對程式開發來說相當實用的功能:像是在開發環境內建除錯工具、自動填入程式碼,也在這次的改版中新增深色主題,讓使用者可以在原生的環境使用深色的背景和介面進行開發,筆者認為,許多在舊版 IDE 中感受到的缺點,新版都有做出改善,雖然還是有一些缺點,但整體而言仍然是一次有感的升級。

由於 ESP32 能相容於大部分的 Arduino Framework,加上 Arduino IDE 的操作介面直覺、安裝過程簡單,也有豐富的網路資源可以探索,對於初學者或是教學使用比較方便。除非專案有特殊的開發需求,否則 Arduino IDE 仍然是開發 ESP32 最方便的選擇。