JBR-001拆解:Arduino边缘AI桌面机器人全解析

2026-10-26 19:51:52 88阅读

工位上摆一台会认东西、会挥手、还会给你放个心跳动画的小机器人,听起来要花不少功夫。JBR-001 是 syntheticAIdata 发在 Arduino Project Hub 上的开源项目,整套东西压在一块 Arduino UNO Q 上,外壳 3D 打印,代码 CC0 授权随便用。项目页现在 8.5 万次浏览、8 个 respects,在创客圈里算跑出来了。

先说清它不是什么。它不是会翻跟头会跑的四足,也不是能跟你聊天的语音助手。它是一个固定在工作台上的桌面伴侣:三个舵机管脑袋和两条胳膊,一块 8×13 的 LED 点阵当脸,一个距离传感器管有人靠近,一个蜂鸣器管打招呼,再加一颗 USB 摄像头管看见。

JBR-001 接线总示意图,青绿色 Arduino UNO Q 居中,四周是摄像头、USB 集线器、蜂鸣器、距离模块、三个舵机和外接电源,不同颜色线材标注接口

官方装配指南里的接线总图:中间是 Arduino UNO Q,左边是 Eye 摄像头和 USB 集线器,上方是蜂鸣器和距离模块,右边是三个舵机加一路外接舵机电源,底部是线色图例。

硬件就五样,全挂在 UNO Q 上

官方装配指南列得很干净:Arduino UNO Q 2GB 一块、Modulino Distance 一个、Modulino Buzzer 一个、Modulino Motors 一套、Arduino 八合一 USB-C Hub 一个,外加一台桌面 3D 打印机打外壳。舵机不占主控的电,单独走一路外接电源。

Modulino 是 Arduino 这两年推的一套 I2C 小模块,四针 Qwiic 线一串就通,不用焊、不用查引脚。距离、蜂鸣器、电机都是这个系列。这一点对新手特别友好:接线图上统共没几根线,颜色还区分得很清楚。

Modulino Buzzer 蜂鸣器模块实物,蓝色电路板中央一颗黑色蜂鸣器,四角有固定孔,画面带绿色 Buzzer 标注框

Modulino Buzzer 模块的实物,蓝色 PCB 上一颗黑色蜂鸣器,四针 I2C 接口。这类模块用 Qwiic 线一串就通,不用焊也不用查引脚。

接线图上有三处容易看漏。一是三个舵机分别占 GPIO 9、10、11,脑袋一个、左臂一个、右臂一个,代码里就写死了这三个脚。二是 Eye 摄像头走的是 USB-C Hub,不是 UNO Q 板上的排针。三是舵机电源独立成一路,跟主板分开,不然三个舵机一起动的时候电流一冲,主板容易重启。

UNO Q 到底是什么板

这块板值得单独说两句,因为它跟很多人印象里的 Uno 完全不是一回事。

UNO Q 是两块芯片焊在一块板上:一颗高通的 QRB2210,四核 Cortex-A53 跑到 2.0GHz,跑完整的 Debian Linux;另一颗是 STM32U585,Cortex-M33 核,160MHz,跑 Zephyr 实时系统。两颗芯片在板内连着,你在 Arduino 里写的是微控制器那一侧,Linux 那一侧跑 Python、跑视觉模型、跑网络。内存 2GB LPDDR4,存储 16GB eMMC,Wi-Fi 5 加蓝牙 5.1。

所以它跟老 Uno 那颗 8 位 ATmega328P 是两个物种。老 Uno 连个摄像头都带不动,UNO Q 能直接在板上跑一个量化过的视觉模型。JBR-001 之所以能在一块板子上把看见、判断、动作这条链走完,靠的就是这个双核结构。

板子上还有一样东西被这个项目用得很巧:8×13 的蓝色 LED 点阵,外加 4 颗可控 RGB。JBR-001 的脸就是这块点阵,不用外接屏幕。

代码不长,三套动作

核心代码就是三个 Servo 对象加两个 Modulino 对象。脑袋、左臂、右臂分别接 9、10、11,中位都写 90 度。开机先做三件事:点阵画一颗心、三个舵机依次回中位、蜂鸣器奏一段问候音。

问候音是 C5、E5、G5、C6 四个音,523、659、784、1047 赫兹,每个音 120 到 250 毫秒,中间留 150 到 270 毫秒的间隔。四个音一路往上爬,听着就是一个上扬的你好。

心跳动画用了两张 8×13 的位图,一颗大心一颗小心:大心 120 毫秒、小心 100 毫秒、再大心 160 毫秒、再小心 700 毫秒,然后循环。700 毫秒那个停顿是关键,没有它就成了抽搐,加上它才像心跳。

起身动作也简单:脑袋先转到 70 度看左边,400 毫秒后转到 110 度看右边,再回 90 度;然后左右臂一高一低对摆两次,最后回中位。整套不到 3 秒。

视觉这块,走的是外部平台

这里要说清一件事,因为很多转述把它讲成板载跑 MobileNet。不是。

项目页给的视觉链路是这样:先用 Modulino 的合成图像数据集训一个目标检测模型,训练在 Edge Impulse 上做,输入尺寸选 96×96,标签就是 Modulino 那几个模块类型,蜂鸣器、按钮、距离、温湿度。模型训完导出,部署到 UNO Q 的 Linux 那一侧跑。摄像头抓一帧,模型认出画面里是哪块 Modulino 板,置信度到 92% 这种量级,就触发对应动作,比如挥个手。

Upload to Edge Impulse 上传配置弹窗,含 API 密钥输入框、图片数量选项、96×96 等分辨率选项、蜂鸣器按钮距离温湿度四个分类标签

训练那一步的配置界面:上传到 Edge Impulse 时要选图片数量、输入分辨率和分类标签。这里选的是 96×96,标签就是蜂鸣器、按钮、距离、温湿度这四类 Modulino 模块。

JBR-001 视觉目标检测五步流程图,从图像采集到 Arduino UNO Q、Edge Impulse 模型、带 92% 置信度的检测框,最后是机器人挥手

项目页给的五步链路:摄像头采集画面,UNO Q 处理,Edge Impulse 训出来的模型做目标检测,框出 Modulino 板并给出置信度,最后触发机器人挥手。

所以它的认东西不是识别猫狗人脸,是识别自家那几块小板子。范围窄,但闭环完整:采集、标注、训练、部署、动作触发,一条链全走通了。对想入门边缘 AI 的人来说,这个窄范围反而是好事,一天能跑完一遍。

距离触发里有个细节值得抄

距离传感器那段逻辑很短,但写得比很多人讲究。检测阈值是 200 毫米,复位阈值是 250 毫米。

两个数不一样,这叫滞回。如果检测和复位都用 200,物体刚好停在 200 附近,读数一抖就会反复触发,机器人会抽风。拉开 50 毫米的间隔,进了 200 才触发,退到 250 才复位,中间这段不动。做传感器项目的人都知道这个坑,但真写代码的时候经常忘。

这套东西的价值在哪

第一,它把桌面伴侣机器人这个听起来很玄的概念,拆成了四个 I2C 模块加六十行逻辑。你想加个动作,加几行 Servo.write 就行;你想换个表情,画一张 8×13 的位图就行。

第二,它把 AI 那条链的门槛压到了最低。不用自己标数据、不用自己搭训练环境,Arduino 那边已经把 Modulino 的合成数据集做好了,你只要在 Edge Impulse 上传一遍、选个分辨率、导出来。

第三,成本压得住。UNO Q 2GB 一块、三个 SG90 级别的舵机、两个 Modulino 模块、一个 USB Hub,加一卷打印耗材,比买一台成品桌面机器人便宜得多。

局限也说清楚:三个自由度只够转头和摆臂,做不了行走;没有麦克风阵列,不能语音对话;没有激光雷达,做不了建图导航;AI 识别范围就是那几块 Modulino 板,出了这个范围不认。想往深了做,得自己加硬件、自己重训模型。

谁适合做这个

刚摸过 Arduino、想往 AI 加机器人这个方向迈一步的人,这个项目是最合适的台阶。硬件不多、接线简单、代码短、每一步都能看到结果。

想做一个能走能跑的机器人,去看四足那类项目。想要能对话的陪伴机器人,去看带语音链路的产品。JBR-001 的定位很清楚:一张工作台、一个会看你、会跟你打招呼的小东西,剩下的全看你怎么改。

项目在 Arduino Project Hub 上,搜 JBR-001 就能找到,代码和接线图都在页面上,CC0 授权,商用也不用问。


作者:工位上的小周
链接:https://www.aiddithome.com/p/dbabbcff92ebe.html
本作版权归作者所有,未经允许请勿转载。若存在违规行为,您可以点击 “举报”。


登录 后发表评论
4条评论
老张装机
1楼 · 2026-10-26 19:58:44

Arduino Uno Q这块板子确实有意思,ATmega328P+ESP32-S3双芯方案省了很多通信设计的麻烦。不过两块芯片之间的UART延迟对实时控制有没有影响?

锡点
2楼 · 2026-10-26 19:58:44

MobileNet-V1跑图像分类几百毫秒的延迟,桌面场景确实够用。我试过一个类似的ESP32-S3摄像头项目,帧率大概2-3fps,识别个杯子和手机还是没问题的。

板砖搬不动
3楼 · 2026-10-26 19:58:44

接入Home Assistant这个玩法不错。我之前用ESP32做了一个简单的门口检测器,但只有人体感应没有视觉识别。JBR-001这个方案更完整。

天快亮了
4楼 · 2026-10-26 19:58:44

50-80美元的成本挺合理的。不过那个SG90塑料齿轮舵机确实不太耐用,建议直接用MG90S替换,贵几块钱但寿命长很多。