
由稚晖君开源的 ElectronBot。它不只是桌面摆件而是一台能动的电脑配件。ElectronBot 是一款桌面级小机器人外观设计的灵感来源是《机器人总动员》WALL-E 里面的伊娃。它通过 USB 直连电脑把圆形屏幕、USB 摄像头、六轴舵机、AI 识别全部塞进一个巴掌大的机身里开源 5 天就在 GitHub 收获近 3000 Star如今已积累约 9.5k Star被 HelloGitHub 收录为第 72 期精选开源项目。机器人具备6 个自由度使用自己修改的特制舵机支持关节角度回传。项目提供全套开发资料和配套 SDK 以供二次开发。硬件配置非常齐全简单来说ElectronBot 把眼睛、嘴巴、表情、四肢配齐了算力则完全借力于你的电脑——这也是它敢叫电脑配件的原因。01 技术架构结构 电路双线设计ElectronBot 的硬件分为结构和电路两条设计线每条线都藏着不少巧思。结构设计3D 打印 巧妙的传动机构结构件全部采用 3D 打印加工。因为包含齿轮等精密部件作者推荐使用 HP 尼龙打印传统 FDM 打印精度不太理想光固化则存在支撑和强度问题。手臂的驱动原理是整台机器最精妙的部分pitch 方向运动很好理解是齿轮传动roll 方向则设计了一个T 型推杆由 M2 螺丝帽和挡块限制当黄色组件转动时带动推杆左右移动将动力传递到转轴力矩可以双向传递。电路设计四块板子各司其职硬件电路一共四块板子分工明确ElectronBot头部主控板集成主控 STM32F405RGT6、圆形屏幕 GC9A01、USB-HS 的 PHY 芯片 USB3300 以及 SD 卡SensorBoard肚子里的传感器板包含手势传感器、USB-HUB 芯片、5 个 I2C 舵机接口、MPU6050 加速度计陀螺仪USB 摄像头也连接到这块板BaseConnector底座上的 USB Type-C 插座通过 8-Pin 的 FFC 柔性排线和 SensorBoard 连接——因为机器人本体需要旋转所以特意用了柔性排线ServoDrive用于魔改舵机替换舵机驱动板的电路通过 I2C 总线接口与 SensorBoard 及头部主控连接值得提一下的是 USB-HUB 的拓扑它用的是一拖四的 HUB 芯片目前使用了三个口还剩一个口——作者透露其实可以再集成一个 USB 麦克风这样 ElectronBot 也能当作电脑的麦克风使用留给玩家一定的扩展空间。三大核心能力运动交互6 自由度运动 关节角度回传动作精准可编程USB 通信显示USB 直连电脑上位机实时驱动表情与画面开放编程完整 SDK 全部固件源码支持 C/C 与 Unity 开发02 硬件模块从齿轮到舵机处处是细节手臂驱动齿轮 T 型推杆的组合拳整台机器人 6 个自由度中双手各有 roll 和 pitch 两个方向加上颈部与腰部各一个自由度。pitch 方向用齿轮传动实现roll 方向则依赖自研的 T 型推杆——一个 M2x25mm 半牙螺丝配合小挡块就能把旋转运动转化为直线推拉结构简洁还支持双向传力。安装时要稍微注意因为机身体积太极限几个舵机的安装架需要剪短一边才能塞下手臂推杆稍微打磨并加上润滑脂推动会更顺畅。舵机魔改小成本实现角度回传普通 RC 舵机用电位器测量绝对角度ElectronBot 的魔改舵机在驱动板里用 ADC 读取电位器电压值换算成角度反馈驱动芯片选用封装最小的 FM116B。整套舵机驱动方案可以在 GitHub 找到固件源码支持 PID 闭环算法。摄像头方面作者选用了一款淘宝在售的 USB 摄像头直接拆掉接线焊在 SensorBoard 上大家当然也可以根据需求替换成黑白的、高帧率的只要能够装下就可行。舵机 I2C 协议主-从机一问一答魔改后的舵机通过 I2C 接口和控制板通信STM32F4 主板为主机舵机为从机。通信始终由主机发起先下发位置、参数等指令再即时取回数据完成一个通信来回。每个舵机作为从机接收两个地址的指令自己的 ID 号以及 0 号广播。广播用于舵机刚烧写完固件、Flash 里还没存 ID 时的通配地址。这里有个坑需要提醒舵机和主机上电要有先后顺序必须等从机初始化完成再让主机发指令否则总线阻塞会导致程序卡住——所以主机的固件代码里特意留了 2 秒延时等舵机全部上电初始化完成再开始通信。03 软件开发SDK 四层架构 AI 玩法上位机 ElectronStudio看得见的控制台ElectronBot 的魅力一半在硬件一半在软件。项目提供了视频里演示的上位机软件 ElectronStudio 的 Unity 工程源码——用鼠标拖拽就能让机器人做出各种动作、显示自定义表情还可以加载图片和视频到圆形屏幕上播放桌面机器人秒变第二块屏幕。SDK 四层架构从底层到应用层层开放SDK 的库层级关系由下至上分别是ElectronBotSDK-LowLevel底层通信库封装 USB 协议ElectronBotSDK-Player动作与表情播放层ElectronBotSDK-UnityBridgeC 与 Unity C# 的桥接层ElectronStudio上层应用开箱即用的可视化控制台固件工程是基于 STM32HAL 实现作者提供了 .ioc 文件可以自行用 STM32CubeMX 生成 Keil 或 STM32IDE 工程作者本人则用 CLion 进行编译和下载把 CLion 变成 STM32 的 IDE。AI 玩法与开源生态ElectronBot 最出圈的能力是借力电脑算力实现各种 AI 识别基于 OpenPose 的人体关键点检测、手势识别都能让机器人看懂你的动作并实时反馈在表情上。表情包动画系统也做得很讲究每个表情包含进入-循环-退出三个片段可以无缝衔接方便用代码调用组合出无数种效果社区里甚至有人把表情包做成了 Flappy Bird 之类的小游戏。开源生态还在不断壮大社区贡献了语音识别版 ElectronBot-Voice让机器人开口说话B站网友还做了胎教级的安装教程仓库里也提供单独的 USB 通信功能测试工程和预编译文件新手可以先烧录 hex 文件跑通最小系统再逐步调试舵机。04 写在最后ElectronBot 最大的价值在于它把玩具做成了教材从 3D 打印结构件、魔改舵机、四块 PCB到 STM32 固件、四层 SDK、Unity 上位机再到 OpenPose 人体关键点检测——一条完整的嵌入式 机器人 AI学习链路全部开源全部可循。稚晖君用软核的思路证明了一件事AI 交互不一定需要昂贵的硬件把开放硬件和电脑算力组合起来一样能做出有温度、有灵魂的作品。真正的动手乐趣从来不在成品本身而在于自己把它造了出来。开源地址github.com/peng-zhihui/ElectronBotB站胎教级安装教程bilibili.com/video/BV1sY4y1Y7t6