华为天才少年自制硬萌机器人,开源5小时,GitHub收获317星( 二 )


华为天才少年自制硬萌机器人,开源5小时,GitHub收获317星
文章图片
这机器人别看小 , 肚子里一点空间都没浪费 , 被稚晖君塞的满满的 。 真是强迫症的福音啊 。
而机器人的底座则使用铝CNC进行加工 。
下一步 , 就该到电路设计环节了 。
稚晖君使用了Cortex-M4内核MCU , STM32F4 。 用于驱动屏幕和控制舵机以及USB通信 。
由于芯片本身的USB功能只支持全速或是低速的USB , 稚晖君在电路上添加了高速的USB-PHY芯片 , 成功将理论通信速率提高到了400Mbps 。 而最后实际的最高通信速率也有300Mbps 。
华为天才少年自制硬萌机器人,开源5小时,GitHub收获317星
文章图片
这个速度远高于UART、I^C、SPI等短总线 。 这也给后续的软件开发提供了更多可能性 。
主控板的设计相对就比较简单了 , 两层PCB就搞定了 。 这样体积就做到了最小 , 和屏幕的面积保持了一致 。
机器人的身体内部也有一个传感器的板子 , 包括一个摄像头 , 还有一个红外手势传感器 。
还有一块驱动板 。 因为市面上的舵机只能接收pwm信号 , 进行角度控制 。
这就有问题了 。
在这种情况下我们只能发送指令 , 让舵机运动 , 却不能接收指令 , 从而知道它的运动状态 。 同时 , 想要让舵机进行反驱 , 就必须能让舵机随时进行输出力矩的切换 。
传统舵机虽然做不到这一点 , 却难不倒心灵手巧智商高的稚晖君 。 他对市面上的传统3g舵机魔改了一通 , 设计了一个迷你的舵机驱动器 。
华为天才少年自制硬萌机器人,开源5小时,GitHub收获317星
文章图片
这个小驱动器支持I^C总线通信 , PID闭环控制 , 位置回传 , 还能设置最大的输出力矩 , 断电储存参数等等 。
这样一来 , 原本6个普普通通的舵机 , 被稚晖君巧手一点 , 就成了6个热乎乎的智能舵机 。
到这里 , 所有的硬件该有的都有了 , 也就该组装了 。
华为天才少年自制硬萌机器人,开源5小时,GitHub收获317星
文章图片
看完稚晖君的组装过程 , 小编不得不感叹一句 , 谁说理工男是直男 , 只是他没对你细腻而已 。
整个组装过程一般人真搞不定 。
稚晖君给自己设计的小机器人起名叫Electron(电子) 。 Electron通过USB线和计算机相连 , 作为计算机的配件 。
换句话说 , 机器人叫「电子」 , 那通过USB连接的计算机就是「电子」的「脑子」 , 简称...
「电脑」!?
华为天才少年自制硬萌机器人,开源5小时,GitHub收获317星
文章图片
如果只是将其当成一个播放器的话 , 这个机器人和之前提到的那些没有太大区别 。
毕竟 , 稚晖君设计它的初心就是想把它作为一个工具机器人兼电脑配件 , 让其能发挥一些更加实用的功能 。
他给电子开发了一套完整的、多层次的开放SDK 。
华为天才少年自制硬萌机器人,开源5小时,GitHub收获317星
文章图片
最上层是ElectronStudio , 属于纯图形化的交互 。
如果想用自己写的程序控制电子的话 , 稚晖君还提供了ElectronPlayer库 。 只通过及其简单的代码 , 便可链接和控制机器人 , 还可以设置播放内容 。
如果还想以更硬核的方式进行二次开发 , 稚晖君还提供了更底层的ElectronLowLevel库 。
对此 , 稚晖君还做了一个范例 , 通过调节机器人右手实现控制电脑音量和亮度 。
利用机器人机身搭载的摄像头和红外手持传感器 , 开发了通过AI算法识别手势的程序 。
华为天才少年自制硬萌机器人,开源5小时,GitHub收获317星