开源 ElectronBot:稚晖君的桌面机器人
2022 年 3 月,稚晖君(彭稚晖)发了一条视频:自制一只能摆手、转腰、晃脑袋的桌面小机器人,圆脸上还能显示画面。USB 插上电脑,就能投表情、控关节。外观灵感来自电影里的 EVE,B 站标题是《我做了个能动的电脑配件》——说的是用法,本体仍是一台开源桌面机器人。
很多人把它当成可爱摆件。实际上这是 自研结构 + 多块 PCB + 魔改舵机 + 主机固件 + 上位机 SDK 的整机:原理图、Gerber、固件、CAD、表情资源、Unity 工程,一个人摊开。仓库在 GitHub 长期 9k+ 星,社区后来又有语音版、ESP32 + 小智 AI 等二创。
原视频:【自制】我做了个能动的电脑配件
仓库:github.com/peng-zhihui/ElectronBot
1. 它到底是什么
一句话:ElectronBot = 开源桌面机器人——连上电脑就能改表情、摆姿势。
| 维度 | 内容 |
|---|---|
| 形态 | 桌面摆件级体积;圆脸屏 + 可动关节 |
| 自由度 | 6 轴:左手 roll/pitch、右手 roll/pitch、颈部、腰部(各一) |
| 主控 | 头部 STM32F405 + 圆屏 GC9A01 + USB-HS(外挂 PHY) |
| 传感/扩展 | 腹部 SensorBoard:手势、MPU6050、USB-HUB、舵机总线、可选 USB 摄像头 |
| 舵机 | 自研 ServoDrive 板魔改 RC 舵机,角度可回传(I2C) |
| 和电脑怎么连 | USB 自定义协议;SDK + ElectronStudio(Unity)上位机 |
| 结构 | Fusion360 / STEP;推荐尼龙等精密打印 |
和「只能播表情的桌宠」比,它多了两件硬东西:关节能闭环回传角度,以及 整机开源、电脑上有 SDK 可改。

2. 难在哪里
难点一:结构不是「能转就行」。
体积压到极限:手臂 pitch 用齿轮,roll 用推杆;腰部要转还得靠柔性排线连底座 Type-C。轴承、半牙螺丝、推杆挡块,差一毫米就卡死或顶壳。打印精度不够,整机手感直接崩。
难点二:舵机不是「接 PWM 就完」。
作者拆掉原厂驱动板,换成自研小板:ADC 读电位器、PWM 驱电机、PID 闭环,再经 I2C 挂到主机。多机地址、上电先后、广播地址 0——任一环节不对,总线堵、程序卡。仓库明确提醒:先单功能验证,再联调;未通舵机前别乱发收发指令。
难点三:USB 不是「插上就能当 U 盘」。
头部走 USB-HS 外挂 PHY,实现自定义设备协议;电脑端要装驱动、跑 SDK。舵机、屏幕、HUB、摄像头共享一条拓扑——调试顺序错了,现象会「像硬件坏了」。
一句话:难的不是「做出一个会动的摆件」,而是 机械、总线、显示/遥控三条线同时闭环。
3. 技术栈怎么串
从结构到上位机,可以粗分成下面几层:
| 层次 | 关键技术 | 在本项目里 |
|---|---|---|
| 结构 | 齿轮、推杆、轴承、3D 打印 | 六轴本体 + 收纳盒 |
| 电路 | 多块 PCB、FFC、USB-HUB | ElectronBot / SensorBoard / Base / ServoDrive |
| 关节固件 | ADC、PWM、PID、I2C 从机 | ServoDrive-fw(HAL / LL) |
| 主机固件 | 圆屏、USB 自定义设备、舵机主站 | ElectronBot-fw(F405) |
| 协议 | I2C 指令表、上电时序 | ID + 广播地址 0 |
| 电脑 SDK | LowLevel → Player → UnityBridge | ElectronStudio、sample.cpp |
| 应用 | 表情序列、视频投屏、姿态控制 | 视频里的 demo;社区语音/AI 二创 |
上电到能动,大致是:
- 舵机从机先就绪(主机固件里常有延时等待)
- F405 起屏、起 USB、轮询关节
- 电脑识别设备 → SDK 下发姿态 / 画面
- 表情「进入–循环–退出」片段无缝衔接

3.1 硬件与结构
仓库 Hardware 里主要有四类板:
- ElectronBot:头部主控 F405、GC9A01 圆屏、USB3300 PHY、SD
- SensorBoard:手势、USB-HUB、多路 I2C 舵机口、MPU6050;摄像头焊在这板
- BaseConnector:底座 Type-C,8-Pin FFC 连腹部(为腰转让路)
- ServoDrive / DK:塞进舵机壳的驱动板(一轴一块);DK 版接插件方便调试
结构侧注意:肩膀轴承约 6×10×3,腰部约 25×32×4;脸部透明件可用表蒙子。安装有社区入门视频,仓库 README 有链。
3.2 关节层:魔改舵机 + I2C
- 主机(F405)发位置/参数,即时读回角度
- 每个舵机认 自己的 ID 和 0 号广播(新烧录、未写 ID 时用)
- 先从机后主机;多舵机地址冲突会拖死总线
- F0 舵机 MCU 可替换(ADC + 双 PWM + I2C;Flash/SRAM 看你是否砍 HAL/C++)
调试建议:一次只挂一只舵机,注释掉其他通信路径。
3.3 主机固件与 USB
ElectronBot-fw 负责:
- 驱动圆屏显示
- USB 自定义设备(仓库提供最小 USB 显示测试工程与预编译)
- 作为 I2C 主站调度关节
CubeMX 重新生成工程时,USB 相关文件容易被覆盖——仓库提醒要备份再替换。
3.4 电脑侧 SDK:像驱动外设一样驱动机器人
层级(自下而上):
ElectronBotSDK-LowLevel → Player → UnityBridge → ElectronStudio
对照 sample.cpp 就能上手;Unity 工程依赖的 DLL 要放到指定 Plugins 目录。注意选图片/视频路径目前对中文不友好。表情动画按「进入–循环–退出」三段组织,方便代码拼接。
4. 怎么学
不必一上来复刻整机。按开源路线把 单舵机闭环 → USB 显示最小工程 → SDK 发一条姿态 走通,收获已经很大。
原仓(主体)
- https://github.com/peng-zhihui/ElectronBot
- 含 Hardware / Firmware / Software / CAD / Docs
社区延伸(学完原仓再碰)
- 语音版:jinsonli/ElectronBot-Voice
- ESP32 + 小智 AI 二创:搜索 electronBot-AI / xiaozhi electron-bot 板级支持(和原版 STM32 路线不同,别混着抄)
建议五步
- 看原视频 BV1ka411b76m,建立功能边界
- 烧录仓库里的 USB 显示最小测试,确认屏与线材
- 只改 / 只挂 一只舵机,走通 I2C 读写角度
- 装驱动,跑
sample.cpp或 Studio,发一条已知安全姿态 - 再上完整装配;卡住时先翻 Issues(作者强调:灌水去 Discussions)
自检:你卡在哪一层?
| 卡住的感觉 | 多半在哪一层 |
|---|---|
| 转不动、顶壳、齿跳 | 结构 / 打印精度 |
| 一只舵机抖、不闭环 | ServoDrive / 电机线序 / PID |
| 多舵机一上电就卡 | I2C 地址 / 上电顺序 |
| 电脑不认设备、无画面 | USB PHY / 驱动 / 最小测试工程 |
| 能动但上位机控不了 | SDK / 驱动签名 / 路径 |
5. 别和这几条线搞混
搜「稚晖君机器人 / 桌面电子狗 / 小智」常会撞车:
| ElectronBot | 桌面电子狗材料包 | Linux 小电视 / Quark | xiaozhi-esp32 | |
|---|---|---|---|---|
| 芯片 | STM32F4 + F0 舵机板 | 多为 ESP8266/ESP32 入门板 | 全志 H3 + Linux | ESP32-S3 等 |
| 软件栈 | 裸机/HAL、USB 自定义、C++ SDK | Arduino/IDF 小 demo | U-Boot / DT / Debian | IDF + 云端大模型 |
| 适合学 | 关节总线、USB 外设、整机联调 | 舵机入门、表情屏 | 板级 Linux Bring-up | 语音 AI、MCP |
| 仓库 | peng-zhihui/ElectronBot | 分散、无统一权威仓 | Project-Quantum | 78/xiaozhi-esp32 |
ElectronBot 的定位记一句:开源桌面机器人,插电脑是为了投屏和遥控;不是 Linux 小主机,也不是材料包入门电子狗。
6. 小结
- 整机是叠出来的:结构、舵机闭环、主机固件、USB、SDK 必须对齐同一套本体。
- 难在关节与总线:魔改舵机 + I2C 时序,比「PWM 摆臂 demo」厚一个数量级。
- 可复用的是链路:视频定边界 → 最小 USB 测试 → 单舵机 → SDK;二创(语音 / 小智)建立在读懂原仓之后。
参考与链接
- 原视频:https://www.bilibili.com/video/BV1ka411b76m/
- 仓库:https://github.com/peng-zhihui/ElectronBot
- 安装参考(社区):绿荫阿广、数码甲鱼等 B 站教程(见仓库 README)
- 语音版:https://github.com/jinsonli/ElectronBot-Voice
- 作者 GitHub:https://github.com/peng-zhihui
- 同作者可对照:Linux 小电视 / Project-Quantum、HoloCubic(别混线路)

更多推荐




所有评论(0)