稚晖|华为天才少年稚晖君自制硬萌机器人:开源5小时GitHub收获317星

华为天才少年稚晖君自制硬萌机器人:开源5小时GitHub收获317星
稿源:新智元
失踪人口回归了!华为“天才少年”稚晖君这次带来了一个又萌又硬的桌面小机器人ElectronBot 。 还记得上次那个“全栈自研”的给葡萄缝针的钢铁侠机械臂Dummy吗?近3个月没更的华为“天才少年”稚晖君带着他的最新视频来了!
稚晖|华为天才少年稚晖君自制硬萌机器人:开源5小时GitHub收获317星
文章图片

稚晖|华为天才少年稚晖君自制硬萌机器人:开源5小时GitHub收获317星
文章图片

【稚晖|华为天才少年稚晖君自制硬萌机器人:开源5小时GitHub收获317星】稚晖|华为天才少年稚晖君自制硬萌机器人:开源5小时GitHub收获317星
文章图片

虽然跳票了一段时间 , 但他还是来了 。 网友纷纷表示:“失踪人口回归” 。
这次的项目叫ElectronBot , 是个支线项目 。 稚晖君表示 , 整体难度不高 。
不如先看看整体效果如何?
稚晖|华为天才少年稚晖君自制硬萌机器人:开源5小时GitHub收获317星
文章图片

“电子”机器人如何造?
在开始项目之前 , 稚晖君简单介绍了一下选择这个项目的动机 。 他戏称:“这是一个捡到一个鼠标垫 , 想配一台电脑的故事 。 ”
众所周知 , 稚晖君热衷于收集各式各样的“屏幕” 。 这次 , 他不知道从哪搞来了一块圆形的LCD屏幕 。
稚晖|华为天才少年稚晖君自制硬萌机器人:开源5小时GitHub收获317星
文章图片

灵光乍现 , 稚晖君的DNA动了 。
简单的手表、挂件已经满足不了他了 。 他打算做一个新颖的、“又萌又硬”的机器人 。
他的灵感一部分来自于早些年很火的“Anki Vector”、丰田推出的对话机器人“Kirobo Mini”、索尼曾经推出的音乐蛋“Rolly” , 还有外形酷似阿童木的迷你机器人“Robi”等等 。
稚晖|华为天才少年稚晖君自制硬萌机器人:开源5小时GitHub收获317星
文章图片

但是稚晖君却表示 , 这些机器人功能太单一 , 扩展性和开放性还不强 。
他打算自己设计一台桌面型的迷你机器人 。
上述的迷你机器人 , 受限于体积等因素 , 本身计算能力并不强 。 并且想要实现稍微智能点的交互 , 还得依赖 手机 的芯片 。 稚晖君锐评:“不够优雅 , 也不够实用 。 ”
稚晖|华为天才少年稚晖君自制硬萌机器人:开源5小时GitHub收获317星
文章图片

他想设计一款无需充电、随时待机、有强大计算能力的机器人 。
他想到了一个办法 , 就是把这台机器人设计成一台电脑的 配件。 那么就可以获得电脑上的应用程序、拥有其强大的算力、还能时刻连着USB充着电 。
有这等好事 , 机器人听了都直点头 。
因为LCD屏幕是圆形的 , 一台圆润可爱科幻风的机器人原型就新鲜出炉了 。
稚晖|华为天才少年稚晖君自制硬萌机器人:开源5小时GitHub收获317星
文章图片

稚晖君表示 , 这是他第一次尝试用T-Spline 曲面 建模 。 成品机器人双臂可动 , 有两个自由度 , 身体和头部各有一个自由度 。
而且稚晖君这人能处 , 有6个舵机他真塞 。 这可不简单 , 机身这么小 , 稚晖君想了很多有创意的传动方案 。
他希望机器人的手臂可以同时前后和左右旋转 , 而手臂的位置不足以塞下一个舵机 , 因此只能把舵机都装到肚子里去 。
同时 , 稚晖君还希望手臂的两个角度可以进行反驱 , 所以弹簧扭簧这种东西就只能pass了 。
为了解决在狭小的机身中把动力从舵机传递到手臂 , 还要能实现动力双向传递的问题 , 他设计了一种独特的结构 。
手臂前后的运动由一个舵机通过齿轮啮合进行传动 , 而另一个正交方向的运动 , 则由另一个舵机 , 通过T型推杆进行传动 。
稚晖|华为天才少年稚晖君自制硬萌机器人:开源5小时GitHub收获317星
文章图片

这机器人别看小 , 肚子里一点空间都没浪费 , 被稚晖君塞的满满的 。 真是强迫症的福音啊 。
而机器人的底座则使用铝CNC进行加工 。
下一步 , 就该到电路设计环节了 。
稚晖君使用了Cortex-M4内核MCU , STM32F4 。 用于驱动屏幕和控制舵机以及USB通信 。
由于芯片本身的USB功能只支持全速或是低速的USB , 稚晖君在电路上添加了高速的USB-PHY芯片 , 成功将理论通信速率提高到了400Mbps 。 而最后实际的最高通信速率也有300Mbps 。
稚晖|华为天才少年稚晖君自制硬萌机器人:开源5小时GitHub收获317星
文章图片

这个速度远高于UART、I^{2}C、SPI等短总线 。 这也给后续的软件开发提供了更多可能性 。
主控板的设计相对就比较简单了 , 两层PCB就搞定了 。 这样体积就做到了最小 , 和屏幕的面积保持了一致 。
机器人的身体内部也有一个传感器的板子 , 包括一个摄像头 , 还有一个红外手势传感器 。
还有一块驱动板 。 因为市面上的舵机只能接收pwm信号 , 进行角度控制 。
这就有问题了 。
在这种情况下我们只能发送指令 , 让舵机运动 , 却不能接收指令 , 从而知道它的运动状态 。 同时 , 想要让舵机进行反驱 , 就必须能让舵机随时进行输出力矩的切换 。
传统舵机虽然做不到这一点 , 却难不倒心灵手巧智商高的稚晖君 。 他对市面上的传统3g舵机魔改了一通 , 设计了一个迷你的舵机驱动器 。
稚晖|华为天才少年稚晖君自制硬萌机器人:开源5小时GitHub收获317星
文章图片

这个小驱动器支持I^{2}C总线通信 , PID闭环控制 , 位置回传 , 还能设置最大的输出力矩 , 断电储存参数等等 。
这样一来 , 原本6个普普通通的舵机 , 被稚晖君巧手一点 , 就成了6个热乎乎的智能舵机 。
到这里 , 所有的硬件该有的都有了 , 也就该组装了 。
稚晖|华为天才少年稚晖君自制硬萌机器人:开源5小时GitHub收获317星
文章图片

看完稚晖君的组装过程 , 小编不得不感叹一句 , 谁说理工男是直男 , 只是他没对你细腻而已 。
整个组装过程一般人真搞不定 。
稚晖君给自己设计的小机器人起名叫Electron(电子) 。 Electron通过USB线和计算机相连 , 作为计算机的配件 。
换句话说 , 机器人叫“电子” , 那通过USB连接的计算机就是“电子”的“脑子” , 简称...
“电脑”!?
稚晖|华为天才少年稚晖君自制硬萌机器人:开源5小时GitHub收获317星
文章图片

如果只是将其当成一个播放器的话 , 这个机器人和之前提到的那些没有太大区别 。
毕竟 , 稚晖君设计它的初心就是想把它作为一个工具机器人兼电脑配件 , 让其能发挥一些更加实用的功能 。
他给电子开发了一套完整的、多层次的开放SDK 。
稚晖|华为天才少年稚晖君自制硬萌机器人:开源5小时GitHub收获317星
文章图片

最上层是Electron Studio , 属于纯图形化的交互 。
如果想用自己写的程序控制电子的话 , 稚晖君还提供了Electron Player库 。 只通过及其简单的代码 , 便可链接和控制机器人 , 还可以设置播放内容 。
如果还想以更硬核的方式进行二次开发 , 稚晖君还提供了更底层的Electron LowLevel库 。
对此 , 稚晖君还做了一个范例 , 通过调节机器人右手实现控制电脑音量和亮度 。
稚晖|华为天才少年稚晖君自制硬萌机器人:开源5小时GitHub收获317星
文章图片

当摆出不同手势类型 , 就可以打开预先设定好的程序 , 或者切换桌面 。
最有意思的一个应用是 , 稚晖君基于OpenPose开发了一个程序 , 用于单目的人体关键点检测 。
如果有2台机器人的话 , 就可以视频了 , 而且你还可以通过手势控制机器人运动 。
稚晖|华为天才少年稚晖君自制硬萌机器人:开源5小时GitHub收获317星
文章图片

稚晖君还给这个应用起了一个特别的名字“量子纠缠” 。
最后 , 稚晖君还顺便给电子做了一个收纳盒 , 太精巧了 。
稚晖|华为天才少年稚晖君自制硬萌机器人:开源5小时GitHub收获317星
文章图片

代码开源
视频末 , 稚晖君附上了软硬件开源地址 。
才刚刚发布没几个小时 , 都已经有90个star , 还有6个fork了 。
不得不说 , 天才少年的实力太强了 。
稚晖|华为天才少年稚晖君自制硬萌机器人:开源5小时GitHub收获317星
文章图片

具体使用说明 , 稚晖君表示自己会稍晚点补充 , 先补个觉 。
稚晖|华为天才少年稚晖君自制硬萌机器人:开源5小时GitHub收获317星
文章图片

包括此前他做的可以自动驾驶的自行车、机器臂等等 , 每个项目都会耗费很大精力 , 再加上稚晖君也有自己的本职工作 。
稚晖|华为天才少年稚晖君自制硬萌机器人:开源5小时GitHub收获317星
文章图片

网友:重新定义“软核”
重新定义“软核”
有网友希望下次稚晖君可以出一期“如何高效学习”的视频 。

    推荐阅读