B 站百万 UP 主、华为天才少年、野生钢铁侠稚晖君终于更新了。
这一次,他自制的不是「硬核」机械,而是一个「软核」的桌面机器人—— ElectronBot 。据作者描述,「软核」意指的是综合之前的 RTL 模型。
ElectronBot是什么?
这是一个桌面级小机器工具人,外观设计的灵感来源是电影《机器人总动员》 WALL-E 里面的 EVE。项目的软硬件均已采用 GPL-3.0 开源许可证开源,提供了配套的全套开发资料和对应SDK以供二次开发。 项目地址:<gitee.com/peng_zhihui…>。
该机器人具备 USB 通信显示画面功能,具备6个自由度,分别为手部 roll 、 pitch ,颈部,腰部各一个),同时这还需要使用稚晖君自行修改的特制舵机才能支持关节角度回传。
有趣的是,稚晖君表示,这个项目只是一条支线项目。过去,稚晖君的主线项目都是自我挑战和学习的内容,由于这类主线项目都是边学边做,工作量大且耗时长。对此,稚晖君表示,“为了不拖更,偶尔也会设计一些「强可复现」的支线项目供大家学习。“
更有意思的是,选择做桌面机器人背后竟是捡到一个鼠标垫,想配一台好电脑的故事。因为稚晖君热衷于收集迷你小屏幕,机缘巧合下淘到一块圆形迷你LCD,于是便打算做一个具有创新性的又萌又硬的机器人。
在此,马建仓不得不感慨大佬就是大佬,即便是作者认为的可复现性强的支线项目都让许多开发者大为追捧、称赞。正如高赞所说的:“在稚辉君手里,没有一个马达是只用来转的,高低要传点信号回去。”
那么,这个软核带萌又深藏硬核的小玩意究竟是怎样实现的呢?
这个桌面迷你机器人包括5个部分,分别为硬件架构、软件架构、固件源码、结构设计图纸以及其余参考文档。也就是说,这是一个软硬件结合的产物。
从硬件架构来看
ElectronBot分为结构+电路。
主要包括5个板子: ElectronBot 头部的主控板、 SensorBoard 肚子里的传感器板子、 BaseConnector 底座上的 USB Type-C 插座、 ServoDrive及ServoDrive-DK 用于魔改舵机替换舵机驱动板的电路。
结构设计
1.具体的结构设计,请参考3D图纸。
2.机器人手臂如何驱动?
驱动方式: pitch方向运动——齿轮传动;roll方向——T型推杆。
如何实现: 推杆被 M2 螺丝的帽以及一个挡块限制住,当黄色的组件转动的时候,带动推杆左右移动,而推杆的另一端在手臂组件内由一个导槽限制运动方向从而将动力传递到转轴,此方案的力矩是可以双向传递的。
3.如何制作脸部的透明玻璃?
材料及尺寸: 31.5mm 的「表蒙子」,即钟表表面上覆盖的玻璃或透明塑料。
4.主要部件采用哪些加工方式?
部件加工: 作者的机器人的主要部件由于包括较为精密的部件,所以是由3D打印进行加工的。
提示:作者也提到,由于支撑问题可能导致打印机表面不平整,以及LCD光固化的零件强度不太够,所以推荐使用HP尼龙打印。
螺丝:
- 轴承型号的话肩膀关节的型号是6×10×3mm,
- 腰部轴承型号是25×32×4mm,
- 特殊螺丝是肩膀roll自由度的推杆,使用了M2×25mm的半牙螺丝。
手臂推杆的小档块:
无须打印加工,建议用一段橡胶电线剪下一小段,方便于推杆的螺丝一同固定。
提示:详细的安装顺序作者在视频中展现,不过各位开发者可以自行探索,若能复现,也可把大家的复现流程公布讨论一下。
电路设计
1.原理图:
2.如何选择正确的芯片型号和合适的摄像头?
- 主控芯片: STM32F4(不可替换)
- 舵机驱动芯片: STM32F0(可替换),但需支持以下特性:带一个ADC采样、带两路PWM输出、带一个I2C接口,且Flash和SRAM大小因作者代码原因需要32K和4K或者更大。
- 摄像头: 只要是塞得下的USB摄像头就行,作者采用的是USB-HUB芯片的1拖4。
3.如何改造舵机?
- 理想方式:找舵机厂家定制一个这样的迷你舵机。
- 操作建议:使用ADC读取电位器的电压值转换成角度反馈,但需注意区分电机两根接线的方向,如果调试发现电机不闭环的话,可能需要交换一下接线顺序。另外,小的3g舵机的改造需要把盖子拆开去掉,换成M1x10mm的螺丝进行固定。
软件架构
固件代码
作者在其 Firmware 和 Software 的项目文件夹内中提供了所有板子的固件源码以及上位机软件 ElectronStudio 的 Unity 工程源码,感兴趣的可进行编译下载,再慢慢研究。
主要包含以下两个工程:
ElectronBot-fw: 头部主控板的固件代码,用于驱动圆形屏幕,实现USB-CDC协议的自定义设备,以及进行舵机控制。
ElectronBot-fw: ServoDrive 板子的固件,包含舵机的电位器 ADC 采样, I2C 从机通信和协议解析,电机控制的 PWM 输出,以及 PID 闭环算法实现。
SDK架构设计图
关于安装顺序,想要复现的同学可点击阅读原文前往作者仓库查看详情。