跳到主要内容

App Lab 使用说明

Arduino App Lab 是面向 Arduino UNO Q 的一体化开发环境,可用于创建、运行和管理 UNO Q 上的应用程序。

在 Arduino App Lab 中,应用程序被称为 App。一个 App 可以由多个功能模块组成,例如 Arduino Sketch、Python 脚本、Linux 应用、容器化应用以及 AI 模型。通过这种方式,用户可以在同一个项目中同时使用 UNO Q 的 Linux 计算能力和 Arduino 实时控制能力。

UNO Q 采用双架构设计,板载 MPUMCU 两个计算单元:

架构运行环境适合任务
MPUDebian LinuxPython、Linux 应用、AI 推理、图像处理、网络应用
MCUArduino Core on Zephyr OSGPIO 控制、传感器采集、执行器控制、实时 I/O、Arduino Sketch

Arduino App Lab 的作用,是将这两部分开发流程整合在一起,让用户可以在同一个项目中同时使用 Linux 应用和 Arduino 程序。

例如,可以让 Linux 端负责摄像头图像处理、AI 推理和网络通信,再通过 MCU 端控制传感器、LED、继电器、电机等外设。

提示

如果只是对 UNO Q 的 MCU 部分进行传统 Arduino Sketch 开发,也可以使用 Arduino IDE 2.x。

运行示例程序

第一次使用 Arduino App Lab 时,建议先运行官方示例程序,确认 UNO Q 是否已经正确连接,并验证 Arduino App Lab 是否可以正常上传和运行应用。

下面以 Blink 示例进行讲解。

操作步骤

  1. 打开 Arduino App Lab,并连接好 Wi-Fi。
  2. 在设备列表中选择已连接的 UNO Q。

Arduino App Lab 连接设备

  1. 输入密码登录设备。

Arduino App Lab 登录

  1. 进入示例页面。
  2. 找到并打开 Blink LED 示例。

Arduino App Lab 示例页面

  1. 阅读示例说明,了解该 App 的基本工作方式。
  2. 点击右上角的 Run 按钮。
  3. 等待 App 上传并运行。

运行 Blink 示例

运行效果

程序运行后,可以看到 UNO Q 板载 RGB LED 中的红色 LED 按以下节奏闪烁:

亮起 1 秒 → 熄灭 1 秒 → 循环重复

红色 LED 闪烁

备注
  • Blink 示例控制的是 UNO Q 板载 RGB LED 中的红色 LED,该 LED 由 STM32 微控制器通过 Arduino Sketch 控制。

如果 Blink 示例可以正常运行,说明 UNO Q 与 Arduino App Lab 的基础开发环境已经配置成功。后续可以继续测试 LED 矩阵、Python / Linux 应用、Bridge / RPC 或 AI 相关示例。

创建一个 App

操作步骤

  1. 点击 My Apps,进入应用管理界面。
  2. 点击右上角 Create new app 创建一个新的应用。

创建 App

  1. 输入 App 名称,也可以在输入框左侧选择图标。设置完成后,点击 Create new 确认创建。

创建 App

  1. DHT11 温湿度传感器 连接到 UNO Q 上。

Arduino UNO Q 连接引脚对应关系

DHT11Arduino功能
VCC5V电源输入
GNDGND电源地
DOUTD2通信端口
  1. 在 App 编辑界面中,点击右侧的书籍图标,进入库管理界面。

添加库文件

  1. 在搜索框中输入需要使用的库名称,然后点击 Install 安装

本示例需要安装以下库:

  • DHT11
  • ArduinoGraphics
  • Arduino_LED_Matrix

添加库文件

  1. sketch.ino 文件中写入以下程序。
完整示例代码(点击展开)
#include <Arduino.h>
#include <DHT11.h>
#include "ArduinoGraphics.h"
#include "Arduino_LED_Matrix.h"

#define DHT_PIN D2

DHT11 dht11(DHT_PIN);
ArduinoLEDMatrix matrix;

int temperature = 0;
int humidity = 0;

void setup() {
Serial.begin(115200);
delay(1000);

Serial.println("UNO Q DHT11 Temperature-Humidity Demo");
Serial.println("DHT11 DOUT -> D2");

matrix.begin();
matrix.setGrayscaleBits(8);
matrix.textFont(Font_5x7);
matrix.clear();

showText("READY");
delay(1000);
}

void loop() {
int result = dht11.readTemperatureHumidity(temperature, humidity);

if (result == 0) {
Serial.print("Temp: ");
Serial.print(temperature);
Serial.print(" C, Hum: ");
Serial.print(humidity);
Serial.println(" %");

showText("T" + String(temperature) + "C");
delay(1500);

showText("H" + String(humidity) + "%");
delay(1500);
} else {
Serial.print("DHT11 read failed: ");
Serial.println(DHT11::getErrorString(result));

showText("ERR");
delay(1500);
}

delay(2000);
}

void showText(String text) {
matrix.clear();
matrix.beginDraw();

matrix.stroke(255, 255, 255);
matrix.textFont(Font_5x7);

matrix.beginText(0, 1, 255, 255, 255);
matrix.print(text);
matrix.endText();

matrix.endDraw();
}
  1. 点击右侧 Run,启动 App;点击 Stop,停止程序。

    运行 App

  2. 程序运行后,Arduino UNO Q 会读取 DHT11 的温湿度数据,并在板载 LED Matrix 上轮流显示温度和湿度。

设置自启动程序

如果希望 UNO Q 开机后自动运行程序,可以设置 Run at startup。

设置自启动程序

网络模式

即使 UNO Q 已经被设置为 SBC 模式,也可以通过 Arduino App Lab 的 网络模式 从同一局域网内的电脑远程访问开发板。 这样一来,就可以在计算机上开发应用程序,并在开发板本地进行测试,因为这两种模式可以同时使用。 使用网络模式时:

  1. 确保电脑和 UNO Q 连接到同一个局域网。
  2. 打开 Arduino App Lab。
  3. 如果 UNO Q 可被发现,它会以 网络 标签显示在设备列表中。
  4. 点击设备,并输入 UNO Q 的 Linux 登录密码。
  5. 连接成功后,即可像通过 USB-C 直连一样开发和运行应用。
    网络模式
注意

网络模式依赖本地网络发现(mDNS)功能。如果使用访客 Wi-Fi、公司网络、物联网隔离网络、VPN 或防火墙限制较严格的网络环境,可能会导致 UNO Q 无法被自动发现。

如果 Arduino App Lab 无法在网络模式中发现 UNO Q,可以检查以下项目:

  • Windows 防火墙提示: 首次启动 Arduino App Lab 时,Windows Defender 或其他安全软件可能会弹出关于 mdns-discovery.exe 的网络访问提示,请允许其访问网络。
  • 防火墙设置: 确认防火墙允许 UDP 5353 端口通信,该端口用于 mDNS 本地网络发现。
  • 网络环境: 确认电脑和 UNO Q 位于同一局域网,且网络没有开启客户端隔离。
备注

即使可以通过浏览器、SSH 或 IP 地址访问 UNO Q,也不代表它一定会出现在 Arduino App Lab 的网络模式设备列表中。网络模式依赖 mDNS 自动发现机制,网络配置不兼容时可能无法显示设备。