惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
Y
Y Combinator Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Hugging Face - Blog
Hugging Face - Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
L
LangChain Blog
美团技术团队
N
Netflix TechBlog - Medium
量子位
酷 壳 – CoolShell
酷 壳 – CoolShell
B
Blog
博客园 - 司徒正美
爱范儿
爱范儿
D
DataBreaches.Net
月光博客
月光博客
U
Unit 42
B
Blog RSS Feed
Engineering at Meta
Engineering at Meta
Apple Machine Learning Research
Apple Machine Learning Research
Jina AI
Jina AI
MongoDB | Blog
MongoDB | Blog
腾讯CDC

BlogFinder

日常漫步 Vol.24 之漫步前山河 - 雅余 周报 #1-聊聊本周的收获 - Edwin's Blog 我的OpenCode必装插件与Skill Write Something 掌中之物未必在掌握之中 · CRIVU PiliNara,一个更顺手的 PiliPlus 分支 「NekoEcho」:做一个必有回响的猫娘主题博客 2026-05 书影音总结 简化博客主题 - 安迪 我第一次发布 npm 包 拾花小记#45:中考前的二三事 – 小改学习志 黛西花园5月游 #18 枇杷又熟了的五月月报 一些奇奇怪怪的需求?word仿方正书版的几个小操作 - Xiobb's Blog 0419 御温泉之旅 修复了一些bug,网站基本上趋于稳定了 - 新锐博客 又回到四十年前 如何定义成功 迷鹿屋2026已重新上线 科技冰火两重天+一周回顾 ${title} 热度退了,我反而用得更深了-咕咚同学 我到底该不该换个域名? 随身WIFI折腾记 - 安迪 博客撰写体验提升——hexo pro插件 为什么不用相机把屏幕上的接关密码拍下来? 国清寺与天台山 – Ouroboros ★★★★☆《挽救计划》——久违的经济上行感 - Davidの3号基地 删除右键“打开方式”里多余选项 第三周刊_No.53|一切都会被支付两次
Arduino UNO Q 开发板初体验 - WuSiYu Blog
SiYu Wu · 2026-06-24 · via BlogFinder

已经快成路边的Arduino官方去年底出的最新的UNO系列,但这次又是个高通SoC+STM32的缝合怪。先说前提:这玩意并不被社区看好,海外社区玩的人也不多,国内更是基本没有玩的。虽然大概率是赤石,不过冲着这个外观,我决定率先品鉴。

这是来自官方文档的示意图(下面很多图也是),比较清晰。简单来讲,这是一个高通SoC的SBC系统和STM32的嵌入式系统二合一的开发板,全功能Type-C(含有USB3.0和DP视频输出)、内存、EMMC、WiFi/BT、背面的高密度连接器都连接到了高通SoC上;而正面的I/O口基本上都是STM32的,还有一个单色的8×13 LED阵列和IIC插座也连接在其上,具体如下图:

作为SBC,它的接口基本只有一个全功能Type-C,以及正面的JCTL调试接口+两个LED,其余一些接口可以从高密度连接器接入底板后引出,但目前底板很少,且国内买不到。这意味着作为SBC它需要连接外挂的全功能Type-C HUB适用,或者直接连接带HUB的显示器,插上就是一个性能有些烂的Linux小电脑。另外这个Type-C也支持OTG,可以直接连接到其他电脑上。其实就很像一个手机,对于这个高通SoC倒是意料之中。

如果只是将其当作一个SBC的话,那在2026年基本全无性价比:性能羸弱,四核A53 2.0GHz仅仅是树莓派Zero2的水平,100块以内的大量SBC都比它的CPU强。跑桌面的话2+16款会比较紧张,自带软件占用不低,4+32款倒是还凑合。接口也极为寒酸的只有一个全功能Type-C,不过如果你有带Hub的显示器那其实还挺方便的。其支持USB 3.0和DP视频输出,但整个板子的分辨率最高只能1920×1080。实际的桌面体验很一般,用起来卡卡的,估计只有倒霉蛋学生会实际用自带桌面做开发:这功能的设计目的大概就是像树莓派一样放在学生教室里,让学生直接用它自己操作自己,省一个电脑钱,至于什么4k就别想了。

要说其作为SBC的唯一优势,就是功耗比较低。这个高通SoC(QRB2210)使用了11nm LPP (Low Power Plus)制程,对比性能类似的树莓派3/Zero2的BCM2837则为古老的40nm。整板在空载时功耗0.5w,不接显示器时CPU满载 + led matrix部分点亮是功耗也只有1.5~2w。

而对于STM32系统,正面Arduino风格的I/O排插都是它的,3.3v电平,绝大多数有5v耐受。也可以通过Arduino ide上只用STM32部分,但此时SoC部分并没法关闭,会白白耗电,而且也不会有人话400多块钱就当个STM32用吧。

官方真正主推的是这个新的Arduino APP Lab中的高通SoC上的linux程序 + STM32的裸机程序的协同任务,这个新的APP Lab是全平台桌面应用,可以在Arduino UNO Q上直接运行,也可以在别的电脑上远程连接。有个自带的bridge api方便高通SoC和STM32进行通信,不过目前底层走的只是串口(LPUART1,TX、RX、RTS、CTS),默认波特率为115200,速度很挫,似乎可以改高来提速。另外还有一组SPI在电路上是相连的,但目前的bridge api功能并没有实际用上。

整个编程模型大概如下,一个App是一个目录,其中包含普通Arduino嵌入式程序,用于STM32,但增加了bridge API,其是一个RPC模块,可以调用Linux侧的函数,或者暴露函数给Linux测进行调用。而Linux测目前为python,也包含bridge API,同时Arduino APP Lab还提供了一些常用功能在python包中来方便开发,例如WebUI,天气API之类的。

官方给的一个入门小例子就是获取天气并将图标显示在板载的led matrix上显示,主要代码如下:

Linux测:

# SPDX-FileCopyrightText: Copyright (C) Arduino s.r.l. and/or its affiliated companies
#
# SPDX-License-Identifier: MPL-2.0

from arduino.app_bricks.weather_forecast import WeatherForecast
from arduino.app_utils import *

forecaster = WeatherForecast()


def get_weather_forecast(city: str) -> str:
    forecast = forecaster.get_forecast_by_city(city)
    print(f"Weather forecast for {city}: {forecast.description}")
    return forecast.category


Bridge.provide("get_weather_forecast", get_weather_forecast)

App.run()

Arduino侧:

// SPDX-FileCopyrightText: Copyright (C) Arduino s.r.l. and/or its affiliated companies
//
// SPDX-License-Identifier: MPL-2.0

#include <Arduino_LED_Matrix.h>
#include <Arduino_RouterBridge.h>

#include "weather_frames.h"

String city = "Beijing";

Arduino_LED_Matrix matrix;

void setup() {
  matrix.begin();
  matrix.clear();

  Bridge.begin();
}

void loop() {
  String weather_forecast;
  bool ok = Bridge.call("get_weather_forecast", city).result(weather_forecast);
  if (ok) {
    if (weather_forecast == "sunny") {
      matrix.loadSequence(sunny);
      playRepeat(1000);
    } else if (weather_forecast == "cloudy") {
      matrix.loadSequence(cloudy);
      playRepeat(1000);
    } else if (weather_forecast == "rainy") {
      matrix.loadSequence(rainy);
      playRepeat(2000);
    } else if (weather_forecast == "snowy") {
      matrix.loadSequence(snowy);
      playRepeat(1000);
    } else if (weather_forecast == "foggy") {
      matrix.loadSequence(foggy);
      playRepeat(500);
    }
  }
}

void playRepeat(int repeat_count) {
  for (int i = 0; i < repeat_count; i++) {
    matrix.playSequence();
  }
}

其中的bridge API用起来还挺方便的,不需要自己处理MCU和Linux通讯的各种协议和解析细节。不过有一说一,如果这只是这么一个应用,单独一个树莓派或者单独一个ESP32都能干,树莓派也有GPIO,只是难以实时控制(Linux是非实时系统),不过实际上在用纯软件驱动个LCD12864是很轻松的;至于ESP32则是没有太多的性能、资源和多媒体能力,但连个在线API还是不在话下;而真正需要Arduino UNO Q这种Linux+MCU混合设计的是一个十分狭窄的领域,例如高性能+高实时的智能机器人?而其余的恐怕90%的应用仅需要一个单一的树莓派或ESP32就足够了。

此外还有一个槽点:这玩意由于是SBC,需要安全关机,不然文件系统可能会坏。但如果你用sudo poweroff命令,它在关机后会立即再次启动。正确的方式是使用sudo halt命令,这个命令的含义是进linux系统安全关闭,但不会向硬件发送关闭电源的命令。因此它关机完成后也不会有任何指示灯的变化,你只能等几十秒觉得差不多了后再拔掉电源。