2026年5月26日 星期二

【Arduino UNO Q 專欄02】- 軟體開發初體驗

Jack OmniXRI, 2026/05/20

Arduino-UNO-Q-02_Fig00

Arduino UNO Q [1] (以下簡稱 UNO Q)採用了 Qualcomm QRB2210 MPU + STM32U585 MCU 雙晶片架構,前者運行完整的 Debian Linux 處理高階人機介面及 AI 推論計算,而後者則配合 Zephyr 即時作業系統可以處理開發板上各式週邊控制元件。 Arduino 為了讓開發者更容易開發出整合式微型 AI 應用,因此推出了新的開發工具 Arduino App Lab [2](以下簡稱 App Lab)。接下來就簡單說明如何安裝 App Lab 並撰寫執行一個簡單的範例程式。

1. 選擇 UNO Q 工作模式並下載 App Lab

如 Fig.1 所示,要執行 App Lab 有兩種方式,單板微電腦模式(SBC)和主機連線模式(PC Hosted)。通常新買來的 UNO Q 已預安裝好 Debian(Linux)、常用工具軟體和 App Lab。只需準備好一個帶 HDMI 輸出的 USB 3.0 Hub,如 Fig.1 左上所示,插好 UNO Q、鍵盤、滑鼠、螢幕,送電後即可進入類似樹莓派的工作畫面並自動啟動 App Lab。

這裡要特別注意,這個 Hub 一定要選有支援 PD (USB Type C)電源輸入的,變壓器建議為 5V/3A,以免耗電過大,無法啟動開發板或無法點亮 HDMI 顯示器。

如果手上沒有這種擴展用的 USB HUB,則建議採用如 Fig. 1 左下所示主機連線模式作法,只需拿一條 USB Type C 纜線,連到 UNO Q,再於筆電上安裝 App Lab,完成後一樣可以進行開發。

目前 App Lab 可支援 x86/Arm Windows 10/11, Linux (Debian Bookworm, Ubuntu 22.04 及以上版本), macOS(big Sur 及以上版本),下載最新版本 App Lab ArduinoAppLab_0.7.0_Windows_x86-64_installer.exe[3](以x86 Windows, 0.7.0版為例)。

另外由於 App Lab 隨時會有新版推出,建議第一次使用還是採用主機連線模式,進行最新版本韌體更新。

Arduino-UNO-Q-02_Fig01
Fig. 1 選擇工作模式並下載 APP LAB。(OmniXRI整理製作,2026/05/20)

2. 安裝 App Lab 並更新 UNO Q 工作環境

如 Fig. 2所示,接著將 USB 纜線連接電腦和 UNO Q,再啟動剛才下載的 App Lab 安裝檔。點擊 USB 連接符號,待偵測到就可開始更新開發板所需程式並刷新。到第二個步驟時,畫面會提示先將 USB 纜線移除,並插入短路針(Jumper)到 UNO Q 左上方排針的最右兩針,若沒有專用的短路針可直接拿銅線短路,再來就可以重新插回 USB 纜線接著刷新。完成後會自動重啟 App Lab,此時畫面會出現最後更新日期,再次點擊 USB 連接符號就可進入開發板 Linux 相關設定。

Arduino-UNO-Q-02_Fig02
Fig. 2 App Lab 安裝及刷新 UNO Q 程序。(OmniXRI整理製作,2026/05/20)

如 Fig. 3所示,接著開始設定 Linux 相關參數,包括語系(建議可選中文方便後續操作)、開發板名稱(可隨便自訂)、WIFI帳號密碼、Linux 密碼(使用者名稱固定為 arduino, 密碼至少8個英文字母或數字)及 arduino:zephyr, arduino-app-cli, arduino-app-lab, arduino-router 等重要工具軟體。這個步驟會視網路頻寬可能需要十多分鐘到一小時,完成後會自動重啟 App Lab,進入工作畫面。和單板微電腦模式開機後看到的畫面相同。

Arduino-UNO-Q-02_Fig03
Fig. 3 App Lab 設定 UNO Q Linux 相關參數。(OmniXRI整理製作,2026/05/20)

3. 執行 LED 閃爍範例

通常要測試開發板開發環境及週邊元件是否運作正常,最常見的範例就是「LED Blink」,當然這裡也不例外。如 Fig. 4所示,App Lab 已有現成 LED Blink 範例,點擊後,按下右上角複製符號,就會詢問新的 App 專案名稱,創建後,按下右上角 RUN 就會開始編譯並執行,此時就會看到 UNO Q 板上右上角 LED3(紅色)開始每隔1秒閃爍1次。

Arduino-UNO-Q-02_Fig04
Fig. 4 複製 App Lab LED Blink 範例並執行。(OmniXRI整理製作,2026/05/20)

傳統 Arduino Sketch(C++)程式主要分成 Setup() 和 Loop() 兩大段程式,前者負責處理週邊元件宣告,而後者則負責產生一直循環的控制動作,如 LED 閃爍。

而在 App Lab 中為了讓 MPU 和 MCU 能協力工作,如 Fig. 5上方所示,MPU 部份使用 Python 進行開發,而 MCU 部份則和傳統 Sketch 開發方式一樣,採用 C++ 進行開發。其中最不一樣的地方就是中間多了一個橋接器(Bridge API),負責溝通 MPU 和 MCU的程式。

如 Fig. 5 左下所示,Python 程式中建立一個類似傳統 Arduino Sketch 程式中的無限循環函式(Loop),其中控制到開發板上的週邊時再使用橋接呼叫(Bridge.call) Sketch端準備好的函式即可。

如 Fig. 5 右下所示,Sketch(C++) 程式和傳統最大不一樣的地方,就是放空無限循環函式(Loop),而把要控制週邊動作獨立成一個函式,並在 Setup() 函式中宣告要橋接函式名稱(Bridge.provide),方便 MPU(Python) 呼叫。

Arduino-UNO-Q-02_Fig05
Fig. 5 App Lab Python 及 Sketch 架構及程式碼。(OmniXRI整理製作,2026/05/20)

結語

Arduino App Lab 是一種新的開發模式,整合 Liunx 和 Zephyr,透過橋接(Bridge)就能讓 MPU / MCU 相互交換資訊及控制,藉此滿足非即時(GUI, AI )和即時(GPIO, SPI, I2C, UART )的需求。後續會接著對 UNO Q 各種週邊及 AI 應用如何開發作更進一步介紹,敬請期待。

本文同步發表在 MakerPRO

參考文獻

[1] Arduino, Document - Hardware - UNO Q - UNO Q User Manual
https://docs.arduino.cc/hardware/uno-q/
[2] Arduino, Document - Software - APP Lab - Tutorial: Using Arduino App Lab
https://docs.arduino.cc/software/app-lab/getting-started/quickstart/
[3] Download Arduino App Lab
https://www.arduino.cc/en/software/#app-lab-section

延伸閱讀

[A] 許哲豪,【Arduino UNO Q 專欄01】- 基礎硬體及軟體簡介
https://omnixri.blogspot.com/2026/05/arduino-uno-q-01.html


沒有留言:

張貼留言

【頂置】簡報、源碼、系列文快速連結區

常有人反應用手機瀏覽本部落格時常要捲很多頁才能找到系列發文、開源專案、課程及活動簡報,為了方便大家快速查詢,特整理連結如下,敬請參考! Edge AI Taiwan 邊緣智能交流區 全像顯示與互動交流區 台科大(NTUST)邊緣人工智慧實務(2026) 南開科大...