Wio Terminal 開發板
Seeed Studios 公司推出的 Wio Terminal 是一款兼容 Arduino 的微控制器,內建 WiFi 及一些感測器和驅動器,並提供端口以添加更多感測器和驅動器,採用一個名為 Grove 的硬體生态系統。
設置
要使用您的 Wio Terminal,您需要在您的電腦上安裝一些免費軟件。在您能夠將其連接到 WiFi 之前,您還需要更新 Wio Terminal 的固件。
調整任務 - 設置
安裝所需的軟件和更新固件。
-
安裝 Visual Studio Code(VS Code)。這將是您用於用 C/C++ 寫設備代碼的編輯器。請參考 VS Code 文檔 以了解安裝 VS Code 的說明。
💁 另一個常見的 Arduino 開發 IDE 是 Arduino IDE。如果您已經熟悉這個工具,則可以使用它而非 VS Code 和 PlatformIO,但這些教學將會基於使用 VS Code。
-
安裝 VS Code PlatformIO 扩充包。這是 VS Code 的扩充包,支持用 C/C++ 實作微控制器。請參考 PlatformIO 扩充包文檔 以了解如何在 VS Code 中安裝此扩充包。此扩充包依靠 Microsoft C/C++ 扩充包來處理 C 和 C++ 代碼,且在安裝 PlatformIO 時會自動安裝 C/C++ 扩充包。
-
将您的 Wio Terminal 连接到您的电脑。Wio Terminal 底部有一個 USB-C 綫孔,這需要與您的电脑上的 USB 綫孔相連。Wio Terminal 隨附 USB-C to USB-A 纖,但如果您只有 USB-C 綫孔的电脑,則可能需要 USB-C 纖或 USB-A to USB-C 轉換器。
-
根據 Wio Terminal Wiki WiFi 概述文檔 中的指示設置 Wio Terminal 和更新固件。
Hello World
在一種新的編程語言或技術開始時,通常會創建一個 'Hello World' 应用程序,這是一個輸出 "Hello World" 類文字的小型应用程序,以顯示所有工具均已正確配置。
為 Wio Terminal 對應的 'Hello World' 应用程序將確保您已正確安裝 Visual Studio Code 和 PlatformIO,並為微控制器開發進行了設置。
建立PlatformIO專案
第一步是建立一個新的專案,使用 PlatformIO 為 Wio Terminal 編譯。
調整任務 - 建立PlatformIO專案
建立 PlatformIO 專案。
-
将 Wio Terminal 连接到您的电脑
-
打開 VS Code
-
平台 I/O 圖標將在側邊菜單欄上:
選擇此選項,然後選擇 PIO Home -> Open
-
在歡迎畫面中,選擇 + New Project 按鈕
-
在 Project Wizard 中配置專案:
-
將您的專案命名為
nightlight
-
在 Board 下拉式菜單中,輸入
WIO
以過濾板子,然後選擇 Seeeduino Wio Terminal -
保持 Framework 為 Arduino
-
要麼 保持 Use default location 復選框打勾,或者取消選擇它並選擇專案的位置
-
選擇 ** Finish ** 按鈕
PlatformIO 將下載它為編譯 Wio Terminal 代碼所需的组件,並創建您的專案。這可能需要好幾分鐘。
-
探勘PlatformIO專案
VS Code explorer 將會显示由 PlatformIO 向導創建的數個文件和資料夾。
資料夾
.pio
- 此資料夾含由 PlatformIO 需要的暫時資料,例如庫或編譯後的程式碼。如果刪除後將自動重新建立,如果您在 GitHub 這樣的網站上分享專案,則不需要將此添加到源代碼控制。.vscode
- 此資料夾含由 PlatformIO 和 VS Code 使用的配置。如果刪除後將自動重新建立,您不需要將此添加到源代碼控制。include
- 此資料夾用於在您的程式碼中添加其他庫時需要的頭文件。您不會在這些教學中使用此資料夾。lib
- 此資料夾用於您想從您的程式碼中調用的外部庫。您不會在這些教學中使用此資料夾。src
- 此資料夾含您的应用程序的主要源代碼。最初,它將包含一個單一的文件 -main.cpp
。test
- 此資料夾用於處放您的單元測試。
文件
-
main.cpp
- 此src
資料夾中的文件含您的应用程序的進入點。打開此文件,它將包含以下代碼:#include <Arduino.h>
void setup() {
// 加入您的 setup 程式碼這裡,只會執行一次:
}
void loop() {
// 加入您的主要程式碼這裡,會不斷重複執行:
}当设备启动时,Arduino 框架會運行一次 setup 函數,然後會運行 loop 函數直到设备關閉。
-
.gitignore
- 此文件列出了在將您的代码添加到 git 源代码控制时要忽略的文件和目录,例如將其上传到 GitHub 上的存檔。 -
platformio.ini
- 此文件含有您的设备和應用的配置。打開此文件,它將包含以下代碼:[env:seeed_wio_terminal]
platform = atmelsam
board = seeed_wio_terminal
framework = arduino[env:seeed_wio_terminal]
將配置 Wio Terminal。您可以有多個env
標籤,以便您的代码可以为多个板编译。platform = atmelsam
定義了 Wio Terminal 使用的工作硬件(基于 ATSAMD51 的微控制器)board = seeed_wio_terminal
定義了微控制器板的类型(Wio Terminal)framework = arduino
定義了此项目使用 Arduino 框架。
寫入 Hello World 應用程序
現在你準備寫入 Hello World 應用程序。
調整任務 - 寫 Hello World 應用程序
寫入 Hello World 應用程序。
-
在 VS Code 中打開
main.cpp
文件 -
將代碼修改為以下內容:
#include <Arduino.h>
void setup() {
Serial.begin(9600);
while (!Serial)
; // 等待串行就緒
delay(1000);
}
void loop() {
Serial.println("Hello World");
delay(5000);
}setup 函數初始化對串行端口的外部接觸 - 在這個例子中,是用於連接 Wio Terminal 至您電腦的 USB 端口。參數 9600 是 波特率(也稱為符號率),或每秒傳送數據的速度。此設定意味著每秒傳送 9,600 個位元(0 和 1)。然後它將等待串行端口就緒。
loop 函數將 "Hello World" 行送至串行端口,所以 "Hello World" 的字符以及一個新行字符。然後它將靜止 5,000 毫秒或 5 秒 。當 loop 結束後,它會再次運行,之後,再之後,如此等等,直到微控制器關閉電源。
-
在 Wio Terminal 中設定上傳模式。您需要每次上傳新代碼到設備時都這麼做:
-
快速下按電源開關兩次 - 每次都會彈回開啟位置。
-
檢查 USB 端口右側的藍色狀態 LED。它應該會脈搏。
點擊上圖以觀看這個操作影片。
-
-
編譯並將代碼上傳到 Wio Terminal
-
打開 VS Code 命令板
-
输入
PlatformIO Upload
以搜索上傳選項,並選擇 PlatformIO: Upload如果需要,PlatformIO 將會自動編譯代碼。
-
代碼將會被編譯並上傳到 Wio Terminal
💁 如果您正在使用 macOS,將會出現關於 DISK NOT EJECTED PROPERLY 的通知。這是因為在刷寫過程中 Wio Terminal 被當作一個磁碟,當將編譯後的代碼寫入設備時將斷開連接。您可以忽略此通知。
⚠️ 如果您在 上傳端口無法使用時出現錯誤,首先請確保您已將 Wio Terminal 連接到您的電腦,並使用屏幕左側的開關啟動,並將其設置為上傳模式。底部的綠色燈應該亮著,藍色燈應該會脈搏。
-
PlatformIO 有一個 Serial Monitor,可以監控從 Wio Terminal 通过 USB 線纜傳送過來的數據。這允許您監控由 Serial.println("Hello World"); 嘱令送出的數據。
-
打開 VS Code 命令板
-
输入
PlatformIO Serial
以搜索 Serial Monitor 選項,並選擇 PlatformIO: Serial Monitor將會打开一个新的终端,并会将通过串行端口发送过来的数据流送到此终端:
> Executing task: platformio device monitor <
--- Available filters and text transformations: colorize, debug, default, direct, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at http://bit.ly/pio-monitor-filters
--- Miniterm on /dev/cu.usbmodem101 9600,8,N,1 ---
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
Hello World
Hello World"Hello World" 将会每 5 秒打印到串行监视器一次。
💁 您可以在 code/wio-terminal 文件夹中找到此代码。
😀 您的 'Hello World' 程序運行成功!