# 【Arduino UNO Q 專欄02】- 軟體開發初體驗
Jack OmniXRI, 2026/05/20

[Arduino UNO Q [1]](https://docs.arduino.cc/hardware/uno-q/) (以下簡稱 UNO Q)採用了 Qualcomm QRB2210 MPU + STM32U585 MCU 雙晶片架構,前者運行完整的 Debian Linux 處理高階人機介面及 AI 推論計算,而後者則配合 Zephyr 即時作業系統可以處理開發板上各式週邊控制元件。 Arduino 為了讓開發者更容易開發出整合式微型 AI 應用,因此推出了新的開發工具 [Arduino App Lab [2]](https://docs.arduino.cc/software/app-lab/getting-started/quickstart/)(以下簡稱 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]](https://www.arduino.cc/en/software/#app-lab-section)(以x86 Windows, 0.7.0版為例)。
另外由於 App Lab 隨時會有新版推出,建議第一次使用還是採用主機連線模式,進行最新版本韌體更新。

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 相關設定。

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,進入工作畫面。和單板微電腦模式開機後看到的畫面相同。

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次。

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) 呼叫。

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](https://makerpro.cc/jack-hsu-column)**
## 參考文獻
[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