# Wio Terminal [Seeed Studios 的 Wio Terminal](https://www.seeedstudio.com/Wio-Terminal-p-4509.html) 是一款兼容 Arduino 的微控制器,內建 WiFi 以及一些感測器和執行器,並且可以透過名為 [Grove](https://www.seeedstudio.com/category/Grove-c-1003.html) 的硬體生態系統擴展更多感測器和執行器。 ![Seeed Studios 的 Wio Terminal](../../../../../translated_images/wio-terminal.b8299ee16587db9aa9e05fabf9721bccd9eb8fb541b7c1a8267241282d81b603.mo.png) ## 設置 要使用 Wio Terminal,您需要在電腦上安裝一些免費軟體。此外,在連接 WiFi 之前,您需要更新 Wio Terminal 的韌體。 ### 任務 - 設置 安裝所需的軟體並更新韌體。 1. 安裝 Visual Studio Code (VS Code)。這是您將用來編寫 C/C++ 設備程式碼的編輯器。請參考 [VS Code 文件](https://code.visualstudio.com?WT.mc_id=academic-17441-jabenn) 了解如何安裝 VS Code。 > 💁 另一個常用的 Arduino 開發 IDE 是 [Arduino IDE](https://www.arduino.cc/en/software)。如果您已熟悉此工具,可以使用它代替 VS Code 和 PlatformIO,但課程將基於使用 VS Code 的指導。 1. 安裝 VS Code 的 PlatformIO 擴展。這是 VS Code 的一個擴展,支持用 C/C++ 編程微控制器。請參考 [PlatformIO 擴展文件](https://marketplace.visualstudio.com/items?WT.mc_id=academic-17441-jabenn&itemName=platformio.platformio-ide) 了解如何在 VS Code 中安裝此擴展。此擴展依賴於 Microsoft C/C++ 擴展,安裝 PlatformIO 時會自動安裝 C/C++ 擴展。 1. 將 Wio Terminal 連接到電腦。Wio Terminal 底部有一個 USB-C 接口,需要將其連接到電腦的 USB 接口。Wio Terminal 附帶 USB-C 到 USB-A 的線纜,但如果您的電腦只有 USB-C 接口,則需要 USB-C 線纜或 USB-A 到 USB-C 轉接器。 1. 按照 [Wio Terminal Wiki WiFi 概述文件](https://wiki.seeedstudio.com/Wio-Terminal-Network-Overview/) 中的指導設置 Wio Terminal 並更新韌體。 ## Hello World 在學習一種新的程式語言或技術時,通常會先建立一個 "Hello World" 應用程式——一個小型應用程式,輸出類似 `"Hello World"` 的文字,以確認所有工具已正確配置。 Wio Terminal 的 Hello World 應用程式將確保您已正確安裝 Visual Studio Code 和 PlatformIO,並設置好微控制器開發環境。 ### 建立 PlatformIO 專案 第一步是使用 PlatformIO 為 Wio Terminal 配置一個新專案。 #### 任務 - 建立 PlatformIO 專案 建立 PlatformIO 專案。 1. 將 Wio Terminal 連接到電腦 1. 啟動 VS Code 1. 在側邊選單中找到 PlatformIO 圖標: ![Platform IO 選單選項](../../../../../translated_images/vscode-platformio-menu.297be26b9733e5c4635d9d8e636e93fed2015809eafb7cc8fd409c37b3ef2ef5.mo.png) 選擇此選單項,然後選擇 *PIO Home -> Open* ![Platform IO 開啟選項](../../../../../translated_images/vscode-platformio-home-open.3f9a41bfd3f4da1c866ec3e69f1675faa30b823b5b58ab58ac88e5df9a85da19.mo.png) 1. 在歡迎畫面中,選擇 **+ New Project** 按鈕 ![新專案按鈕](../../../../../translated_images/vscode-platformio-welcome-new-button.ba6fc8a4c7b78cc822e1ce47ba29c5db96668cce7c5f4adbfd2f1196422baa26.mo.png) 1. 在 *Project Wizard* 中配置專案: 1. 將專案命名為 `nightlight` 1. 在 *Board* 下拉選單中輸入 `WIO` 過濾板卡,並選擇 *Seeeduino Wio Terminal* 1. 將 *Framework* 保持為 *Arduino* 1. 可以選擇保留 *Use default location* 勾選,或者取消勾選並選擇專案位置 1. 選擇 **Finish** 按鈕 ![完成的專案向導](../../../../../translated_images/vscode-platformio-nightlight-project-wizard.5c64db4da6037420827c2597507897233457210ee23975711fa2285efdcd0dc7.mo.png) PlatformIO 將下載編譯 Wio Terminal 程式碼所需的組件並建立您的專案。這可能需要幾分鐘。 ### 探索 PlatformIO 專案 VS Code 的檔案總管將顯示由 PlatformIO 向導建立的多個檔案和資料夾。 #### 資料夾 * `.pio` - 此資料夾包含 PlatformIO 所需的臨時數據,例如庫或編譯的程式碼。如果刪除,會自動重新建立,且不需要將其添加到源代碼控制中(例如 GitHub)。 * `.vscode` - 此資料夾包含 PlatformIO 和 VS Code 的配置。如果刪除,會自動重新建立,且不需要將其添加到源代碼控制中。 * `include` - 此資料夾用於添加額外庫時需要的外部標頭檔案。在這些課程中不會使用此資料夾。 * `lib` - 此資料夾用於您希望從程式碼中調用的外部庫。在這些課程中不會使用此資料夾。 * `src` - 此資料夾包含應用程式的主要源代碼。最初,它只包含一個檔案 - `main.cpp`。 * `test` - 此資料夾用於放置程式碼的單元測試。 #### 檔案 * `main.cpp` - 此檔案位於 `src` 資料夾中,包含應用程式的入口點。打開此檔案,內容如下: ```cpp #include void setup() { // put your setup code here, to run once: } void loop() { // put your main code here, to run repeatedly: } ``` 當設備啟動時,Arduino 框架將執行一次 `setup` 函數,然後反覆執行 `loop` 函數,直到設備關閉。 * `.gitignore` - 此檔案列出了在將程式碼添加到 git 源代碼控制(例如上傳到 GitHub 儲存庫)時要忽略的檔案和目錄。 * `platformio.ini` - 此檔案包含設備和應用程式的配置。打開此檔案,內容如下: ```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 應用程式。 1. 在 VS Code 中打開 `main.cpp` 檔案 1. 將程式碼更改為以下內容: ```cpp #include void setup() { Serial.begin(9600); while (!Serial) ; // Wait for Serial to be ready delay(1000); } void loop() { Serial.println("Hello World"); delay(5000); } ``` `setup` 函數初始化與串口的連接——在此情況下是用於連接 Wio Terminal 和電腦的 USB 接口。參數 `9600` 是 [波特率](https://wikipedia.org/wiki/Symbol_rate)(也稱為符號率),即每秒通過串口傳輸的數據速度(以位為單位)。此設置表示每秒傳輸 9,600 位(0 和 1)。然後它等待串口準備就緒。 `loop` 函數將行 `Hello World!` 發送到串口,因此會顯示 `Hello World!` 字符以及一個換行符。然後它會休眠 5,000 毫秒(5 秒)。`loop` 結束後,會再次執行,並不斷重複,直到微控制器關閉。 1. 將 Wio Terminal 設置為上傳模式。每次上傳新程式碼到設備時都需要這樣做: 1. 快速向下拉動電源開關兩次——每次都會彈回到開啟位置。 1. 檢查 USB 接口右側的藍色狀態 LED。它應該在閃爍。 [![如何將 Wio Terminal 設置為上傳模式的影片](https://img.youtube.com/vi/LeKU_7zLRrQ/0.jpg)](https://youtu.be/LeKU_7zLRrQ) 點擊上方圖片觀看操作影片。 1. 編譯並上傳程式碼到 Wio Terminal 1. 打開 VS Code 命令面板 1. 輸入 `PlatformIO Upload` 搜索上傳選項,並選擇 *PlatformIO: Upload* ![命令面板中的 PlatformIO 上傳選項](../../../../../translated_images/vscode-platformio-upload-command-palette.9e0f49cf80d1f1c3eb5c6689b8705ad8b89f0374b21698e996fec11e4ed09347.mo.png) 如果需要,PlatformIO 將自動編譯程式碼,然後上傳。 1. 程式碼將被編譯並上傳到 Wio Terminal > 💁 如果您使用的是 macOS,可能會出現 *DISK NOT EJECTED PROPERLY* 的通知。這是因為 Wio Terminal 在閃存過程中會被掛載為磁碟,並在寫入編譯程式碼時斷開連接。您可以忽略此通知。 ⚠️ 如果出現有關上傳端口不可用的錯誤,首先確保 Wio Terminal 已連接到電腦,並通過屏幕左側的開關打開,並設置為上傳模式。底部的綠燈應該亮著,藍燈應該在閃爍。如果仍然出現錯誤,快速再次向下拉動開關兩次,強制 Wio Terminal 進入上傳模式,然後重試上傳。 PlatformIO 提供了一個串口監視器,可以監控通過 USB 線纜從 Wio Terminal 發送的數據。這允許您監控 `Serial.println("Hello World");` 命令發送的數據。 1. 打開 VS Code 命令面板 1. 輸入 `PlatformIO Serial` 搜索串口監視器選項,並選擇 *PlatformIO: Serial Monitor* ![命令面板中的 PlatformIO 串口監視器選項](../../../../../translated_images/vscode-platformio-serial-monitor-command-palette.b348ec841b8a1c14af503d6fc0bf73c657c79c9acc12a6b6dd485ce3b5826f48.mo.png) 一個新終端將打開,串口發送的數據將流入此終端: ```output > 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 ``` 每 5 秒,`Hello World` 都會打印到串口監視器。 > 💁 您可以在 [code/wio-terminal](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/wio-terminal) 資料夾中找到此程式碼。 😀 恭喜!您的 'Hello World' 程式成功運行! --- **免責聲明**: 本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。儘管我們努力確保翻譯的準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於關鍵信息,建議使用專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤釋不承擔責任。