跳至主要内容

Wio Terminal 開發板

Seeed Studios 公司推出的 Wio Terminal 是一款兼容 Arduino 的微控制器,內建 WiFi 及一些感測器和驅動器,並提供端口以添加更多感測器和驅動器,採用一個名為 Grove 的硬體生态系統。

Seeed Studio 的 Wio Terminal

設置

要使用您的 Wio Terminal,您需要在您的電腦上安裝一些免費軟件。在您能夠將其連接到 WiFi 之前,您還需要更新 Wio Terminal 的固件。

調整任務 - 設置

安裝所需的軟件和更新固件。

  1. 安裝 Visual Studio Code(VS Code)。這將是您用於用 C/C++ 寫設備代碼的編輯器。請參考 VS Code 文檔 以了解安裝 VS Code 的說明。

    💁 另一個常見的 Arduino 開發 IDE 是 Arduino IDE。如果您已經熟悉這個工具,則可以使用它而非 VS Code 和 PlatformIO,但這些教學將會基於使用 VS Code。

  2. 安裝 VS Code PlatformIO 扩充包。這是 VS Code 的扩充包,支持用 C/C++ 實作微控制器。請參考 PlatformIO 扩充包文檔 以了解如何在 VS Code 中安裝此扩充包。此扩充包依靠 Microsoft C/C++ 扩充包來處理 C 和 C++ 代碼,且在安裝 PlatformIO 時會自動安裝 C/C++ 扩充包。

  3. 将您的 Wio Terminal 连接到您的电脑。Wio Terminal 底部有一個 USB-C 綫孔,這需要與您的电脑上的 USB 綫孔相連。Wio Terminal 隨附 USB-C to USB-A 纖,但如果您只有 USB-C 綫孔的电脑,則可能需要 USB-C 纖或 USB-A to USB-C 轉換器。

  4. 根據 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 專案。

  1. 将 Wio Terminal 连接到您的电脑

  2. 打開 VS Code

  3. 平台 I/O 圖標將在側邊菜單欄上:

    Platform IO 菜單選項

    選擇此選項,然後選擇 PIO Home -> Open

    Platform IO 打開選項

  4. 在歡迎畫面中,選擇 + New Project 按鈕

    新的專案按鈕

  5. Project Wizard 中配置專案:

    1. 將您的專案命名為 nightlight

    2. Board 下拉式菜單中,輸入 WIO 以過濾板子,然後選擇 Seeeduino Wio Terminal

    3. 保持 FrameworkArduino

    4. 要麼保持 Use default location 復選框打勾,或者取消選擇它並選擇專案的位置

    5. 選擇 ** 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 應用程序。

  1. 在 VS Code 中打開 main.cpp 文件

  2. 將代碼修改為以下內容:

    #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 結束後,它會再次運行,之後,再之後,如此等等,直到微控制器關閉電源。

  3. 在 Wio Terminal 中設定上傳模式。您需要每次上傳新代碼到設備時都這麼做:

    1. 快速下按電源開關兩次 - 每次都會彈回開啟位置。

    2. 檢查 USB 端口右側的藍色狀態 LED。它應該會脈搏。

    一個顯示如何將 Wio Terminal 置於上傳模式的影片

    點擊上圖以觀看這個操作影片。

  4. 編譯並將代碼上傳到 Wio Terminal

    1. 打開 VS Code 命令板

    2. 输入 PlatformIO Upload 以搜索上傳選項,並選擇 PlatformIO: Upload

      命令板中的 PlatformIO 上傳選項

      如果需要,PlatformIO 將會自動編譯代碼。

    3. 代碼將會被編譯並上傳到 Wio Terminal

      💁 如果您正在使用 macOS,將會出現關於 DISK NOT EJECTED PROPERLY 的通知。這是因為在刷寫過程中 Wio Terminal 被當作一個磁碟,當將編譯後的代碼寫入設備時將斷開連接。您可以忽略此通知。

    ⚠️ 如果您在 上傳端口無法使用時出現錯誤,首先請確保您已將 Wio Terminal 連接到您的電腦,並使用屏幕左側的開關啟動,並將其設置為上傳模式。底部的綠色燈應該亮著,藍色燈應該會脈搏。

PlatformIO 有一個 Serial Monitor,可以監控從 Wio Terminal 通过 USB 線纜傳送過來的數據。這允許您監控由 Serial.println("Hello World"); 嘱令送出的數據。

  1. 打開 VS Code 命令板

  2. 输入 PlatformIO Serial 以搜索 Serial Monitor 選項,並選擇 PlatformIO: 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' 程序運行成功!