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

news image
访问: 阿里云 2022“上云采购季 ” 百款云产品最低0.24折起 虽然跳票了一段时间,但他还是来了。网友纷纷表示:“失踪人口回归”。 这次的项目叫ElectronBot,是个支线项目。稚晖君表示,整体难度不高。 不如先看看整体效果如何? “电子”机器人如何造? 在开始项目之前,稚晖君简单介绍了一下选择这个项目的动机。他戏称:“这是一个捡到一个鼠标垫,想配一台电脑的故事。” 众所周知,稚晖君热衷于收集各式各样的“屏幕”。这次,他不知道从哪搞来了一块圆形的LCD屏幕。 灵光乍现,稚晖君的DNA动了。 简单的手表、挂件已经满足不了他了。他打算做一个新颖的、“又萌又硬”的机器人。 他的灵感一部分来自于早些年很火的“Anki Vector”、丰田推出的对话机器人“Kirobo Mini”、索尼曾经推出的音乐蛋“Rolly”,还有外形酷似阿童木的迷你机器人“Robi”等等。 但是稚晖君却表示,这些机器人功能太单一,扩展性和开放性还不强。 他打算自己设计一台桌面型的迷你机器人。 上述的迷你机器人,受限于体积等因素,本身计算能力并不强。并且想要实现稍微智能点的交互,还得依赖 手机 的芯片。稚晖君锐评:“不够优雅,也不够实用。” 他想设计一款无需充电、随时待机、有强大计算能力的机器人。 他想到了一个办法,就是把这台机器人设计成一台电脑的 配件 。那么就可以获得电脑上的应用程序、拥有其强大的算力、还能时刻连着USB充着电。 有这等好事,机器人听了都直点头。 因为LCD屏幕是圆形的,一台圆润可爱科幻风的机器人原型就新鲜出炉了。 稚晖君表示,这是他第一次尝试用T-Spline 曲面 建模。成品机器人双臂可动,有两个自由度,身体和头部各有一个自由度。 而且稚晖君这人能处,有6个舵机他真塞。这可不简单,机身这么小,稚晖君想了很多有创意的传动方案。 他希望机器人的手臂可以同时前后和左右旋转,而手臂的位置不足以塞下一个舵机,因此只能把舵机都装到肚子里去。 同时,稚晖君还希望手臂的两个角度可以进行反驱,所以弹簧扭簧这种东西就只能pass了。 为了解决在狭小的机身中把动力从舵机传递到手臂,还要能实现动力双向传递的问题,他设计了一种独特的结构。 手臂前后的运动由一个舵机通过齿轮啮合进行传动,而另一个正交方向的运动,则由另一个舵机,通过T型推杆进行传动。 这机器人别看小,肚子里一点空间都没浪费,被稚晖君塞的满满的。真是强迫症的福音啊。 而机器人的底座则使用铝CNC进行加工。 下一步,就该到电路设计环节了。 稚晖君使用了Cortex-M4内核MCU,STM32F4。用于驱动屏幕和控制舵机以及USB通信。 由于芯片本身的USB功能只支持全速或是低速的USB,稚晖君在电路上添加了高速的USB-PHY芯片,成功将理论通信速率提高到了400Mbps。而最后实际的最高通信速率也有300Mbps。 这个速度远高于UART、I^{2}C、SPI等短总线。这也给后续的软件开发提供了更多可能性。 主控板的设计相对就比较简单了,两层PCB就搞定了。这样体积就做到了最小,和屏幕的面积保持了一致。 机器人的身体内部也有一个传感器的板子,包括一个摄像头,还有一个红外手势传感器。 还有一块驱动板。因为市面上的舵机只能接收pwm信号,进行角度控制。 这就有问题了。 在这种情况下我们只能发送指令,让舵机运动,却不能接收指令,从而知道它的运动状态。同时,想要让舵机进行反驱,就必须能让舵机随时进行输出力矩的切换。 传统舵机虽然做不到这一点,却难不倒心灵手巧智商高的稚晖君。他对市面上的传统3g舵机魔改了一通,设计了一个迷你的舵机驱动器。 这个小驱动器支持I^{2}C总线通信,PID闭环控制,位置回传,还能设置最大的输出力矩,断电储存参数等等。 这样一来,原本6个普普通通的舵机,被稚晖君巧手一点,就成了6个热乎乎的智能舵机。 到这里,所有的硬件该有的都有了,也就该组装了。 看完稚晖君的组装过程,小编不得不感叹一句,谁说理工男是直男,只是他没对你细腻而已。 整个组装过程一般人真搞不定。 稚晖君给自己设计的小机器人起名叫Electron(电子)。Electron通过USB线和计算机相连,作为计算机的配件。 换句话说,机器人叫“电子”,那通过USB连接的计算机就是“电子”的“脑子”,简称… “电脑”!?…
Read More

作者 liangfm