你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【天才设计】华为天才少年稚晖君自制电脑配件——硬萌机器人

[复制链接]
STMCU-管管 发布时间:2022-3-15 13:36
【天才设计】华为天才少年稚晖君自制电脑配件——硬萌机器人

0 ^7 S: d1 Y6 ?* L6 \% t% ?

+ m6 _& r2 l  H5 N! W  N失踪人口回归了!华为「天才少年」稚晖君这次带来了一个又萌又硬的桌面小机器人ElectronBot。$ C0 }. P3 W' n% f) A5 m

. r/ x7 Z5 C0 n9 w还记得上次那个「全栈自研」的给葡萄缝针的钢铁侠机械臂Dummy吗?) B3 u" B6 v& F2 R2 R  O( y3 ]! M
21.gif
近3个月没更的华为「天才少年」稚晖君带着他的最新视频来了!
  m" e6 C$ U$ T; t
22.png
虽然跳票了一段时间,但他还是来了。网友纷纷表示:「失踪人口回归」。3 v1 X) y% G4 ~; f6 n$ ~* _7 }

3 k) j' X  o/ w. ?3 I. A) g这次的项目叫ElectronBot,是个支线项目。稚晖君表示,整体难度不高。$ U* q: L' R; ]8 r; Z1 o) `& f
* ^; a2 J! ^8 E. {
不如先看看整体效果如何?
; y8 t$ ?- C+ y. b2 k, W6 i
23.gif
「电子」机器人如何造?
$ ^9 r! W" L8 o! j4 E5 N; E% Y6 L3 b3 E6 p6 A/ o. K9 G( P
在开始项目之前,稚晖君简单介绍了一下选择这个项目的动机。他戏称:「这是一个捡到一个鼠标垫,想配一台电脑的故事。」. c2 Y" ?3 _# N' Z) b, B

9 {$ }& T6 O- d4 I4 g0 Z6 @众所周知,稚晖君热衷于收集各式各样的「屏幕」。这次,他不知道从哪搞来了一块圆形的LCD屏幕。4 }4 n, x+ @# o* n7 G
24.png
灵光乍现,稚晖君的DNA动了。
% Q) t0 M) }" O2 Y) ]; x" ?8 L" r  C; j1 x8 w! `, i5 v
简单的手表、挂件已经满足不了他了。他打算做一个新颖的、「又萌又硬」的机器人。
( Q% b& y1 l, A, N  q, N* l# j$ H5 _+ @6 u
他的灵感一部分来自于早些年很火的「Anki Vector」、丰田推出的对话机器人「Kirobo Mini」、索尼曾经推出的音乐蛋「Rolly」,还有外形酷似阿童木的迷你机器人「Robi」等等。% x: `0 i: T0 m) A
25.gif
但是稚晖君却表示,这些机器人功能太单一,扩展性和开放性还不强。
. {1 b  F9 o+ g8 _1 l/ n$ }
1 d5 f* B* A8 I+ e' f% O- b% S他打算自己设计一台桌面型的迷你机器人。
3 @0 Z% e! ^& c" J5 @# P, W7 O
9 q. A5 y/ J1 q上述的迷你机器人,受限于体积等因素,本身计算能力并不强。并且想要实现稍微智能点的交互,还得依赖手机的芯片。稚晖君锐评:「不够优雅,也不够实用。」/ s( k5 L: F$ e, ?
26.gif
他想设计一款无需充电、随时待机、有强大计算能力的机器人。9 b4 L* n2 J+ s0 \9 Y+ B3 u) w
# [1 @: u$ Z1 j, \/ ~1 E$ D7 u9 d. E9 x
他想到了一个办法,就是把这台机器人设计成一台电脑的配件。那么就可以获得电脑上的应用程序、拥有其强大的算力、还能时刻连着USB充着电。
! C! g: T! Y+ L, D, @  u: U8 @
3 A; N) E% H- W+ C1 [4 L1 O2 ^有这等好事,机器人听了都直点头。
  E, D' a! w9 J& `5 k+ `- ~
' O0 r: c: o6 Z3 N因为LCD屏幕是圆形的,一台圆润可爱科幻风的机器人原型就新鲜出炉了。
& l% [- I8 O7 s8 Q
27.gif
稚晖君表示,这是他第一次尝试用T-Spline曲面建模。成品机器人双臂可动,有两个自由度,身体和头部各有一个自由度。& m4 g& c) {9 a6 W: O, ?
5 J9 ~" y6 g% ?" W4 G3 n& Q
而且稚晖君这人能处,有6个舵机他真塞。这可不简单,机身这么小,稚晖君想了很多有创意的传动方案。
9 `% ^- d+ u+ z! \. X# j( s
0 o$ Z# F# q7 t4 Z$ F' g7 F他希望机器人的手臂可以同时前后和左右旋转,而手臂的位置不足以塞下一个舵机,因此只能把舵机都装到肚子里去。8 @# n5 `7 T& ]7 N) v0 E3 ~9 R* J  z; W$ t
8 v: J- a, s6 o+ J# f) h0 x4 i
同时,稚晖君还希望手臂的两个角度可以进行反驱,所以弹簧扭簧这种东西就只能pass了。0 r5 E: S* B7 J; E  p: _% d4 s

4 E. L) l* @& {9 [: t8 Q/ g! }为了解决在狭小的机身中把动力从舵机传递到手臂,还要能实现动力双向传递的问题,他设计了一种独特的结构。
; j/ v! i- `$ j; Z$ N1 K2 G8 }  i9 H" R! W2 h
. H: w7 h4 ^# w% k; B1 ]" v2 W: |
手臂前后的运动由一个舵机通过齿轮啮合进行传动,而另一个正交方向的运动,则由另一个舵机,通过T型推杆进行传动。
2 q6 b& Y, C- ~
28.gif
这机器人别看小,肚子里一点空间都没浪费,被稚晖君塞的满满的。真是强迫症的福音啊。: ?; \# d# D) w+ G& J+ s
3 p1 l  q& B4 T
而机器人的底座则使用铝CNC进行加工。7 |3 O2 X: ~8 X

7 |: {: J% f( q+ c
2 e4 _: l9 N3 o% J' o. ~1 D) ~% ?+ U
下一步,就该到电路设计环节了。
% _/ o0 R: D4 G8 S& U/ ^" x/ a( B( R9 n& Y. ~
3 T! E" z/ V( K0 @9 ?
稚晖君使用了Cortex-M4内核MCU——STM32F4。用于驱动屏幕和控制舵机以及USB通信。
! ^  E* W& x" k5 Q0 ]- R* ^2 }% B! K

' H" _+ V3 T) c) |, r7 M$ ?; }由于芯片本身的USB功能只支持全速或是低速的USB,稚晖君在电路上添加了高速的USB-PHY芯片,成功将理论通信速率提高到了400Mbps。而最后实际的最高通信速率也有300Mbps。/ `( L" w% H8 x, q% O% b+ x
29.gif
这个速度远高于UART、I^{2}C、SPI等短总线。这也给后续的软件开发提供了更多可能性。
! n- k. k; j. p0 @  ]
0 R: f, t( m4 K% d6 J

& ~/ f! o' r, m# K% D主控板的设计相对就比较简单了,两层PCB就搞定了。这样体积就做到了最小,和屏幕的面积保持了一致。( c4 |- }* |/ @9 o$ v  O9 z9 c
" [% {: o$ F& V$ [5 @

, c% X' G& J# F' S机器人的身体内部也有一个传感器的板子,包括一个摄像头,还有一个红外手势传感器。
; k/ D- m# O! }: m5 }# ^8 V* ]! x7 Y7 R2 j% h
" B9 `. n+ f3 Q, X0 Q
还有一块驱动板。因为市面上的舵机只能接收pwm信号,进行角度控制。- f6 S" C& |" r' V+ f* X3 D
  i6 V6 Z; W5 {$ ?. s9 m
( ^% a- u: z+ @1 d0 F9 y
这就有问题了。
. ^2 P! y0 d; L* r* u: H" a* X, j, I& f

1 V( |& R5 M% s2 h9 ~6 _+ z, H在这种情况下我们只能发送指令,让舵机运动,却不能接收指令,从而知道它的运动状态。同时,想要让舵机进行反驱,就必须能让舵机随时进行输出力矩的切换。! P0 J; ]7 @9 l! L# D
. J+ Z( U  V6 ]3 R! H: C

2 q3 ?  A+ g" N, H传统舵机虽然做不到这一点,却难不倒心灵手巧智商高的稚晖君。他对市面上的传统3g舵机魔改了一通,设计了一个迷你的舵机驱动器。
- R: `/ d: O7 H* i# o% ^7 [$ f* H  Q: _8 C1 ]' x

( M  E/ q1 Z" p/ M* o这个小驱动器支持I^{2}C总线通信,PID闭环控制,位置回传,还能设置最大的输出力矩,断电储存参数等等。! L: \2 j) q8 @2 ?" X
3 F9 R; Y/ f& e- c4 Q

$ o/ F  u  T1 U4 E! U7 b- r' M2 b这样一来,原本6个普普通通的舵机,被稚晖君巧手一点,就成了6个热乎乎的智能舵机。
/ o# A; H, c" |' F( C; {  e+ @6 `到这里,所有的硬件该有的都有了,也就该组装了。" T+ D/ c# ~0 x+ |9 L. h3 P3 ~6 g
30.gif
看完稚晖君的组装过程,小编不得不感叹一句,谁说理工男是直男,只是他没对你细腻而已。% X$ [. R( O1 A4 w# f% ^% R
整个组装过程一般人真搞不定。
5 B! y) p1 `7 M- J9 I! p稚晖君给自己设计的小机器人起名叫Electron(电子)。Electron通过USB线和计算机相连,作为计算机的配件。
; f3 D: N3 Z8 c. l. Z$ H& [* V- A( X换句话说,机器人叫「电子」,那通过USB连接的计算机就是「电子」的「脑子」,简称...
! v8 [+ \' M6 r1 U2 g/ o/ y; o& G「电脑」!?
/ ~0 E4 l. J# Y7 T
31.png
如果只是将其当成一个播放器的话,这个机器人和之前提到的那些没有太大区别。
4 _# i8 A) a! g毕竟,稚晖君设计它的初心就是想把它作为一个工具机器人兼电脑配件,让其能发挥一些更加实用的功能。5 O1 S- X& [" s# t% Z5 V/ y
他给电子开发了一套完整的、多层次的开放SDK。
% s- R+ ?. k2 A5 }; }
32.png
最上层是Electron Studio,属于纯图形化的交互。
/ U- b4 ^# h) z4 V; g1 {) }, v4 J/ Z" E, |, k8 ^7 C) _
4 n" }1 A5 f( t, j
如果想用自己写的程序控制电子的话,稚晖君还提供了Electron Player库。只通过及其简单的代码,便可链接和控制机器人,还可以设置播放内容。* V$ ]+ ^; I) B
8 v, z- s, Z1 k: ~
* P* R" A% `* s, s% p0 x& `. r% c$ W
如果还想以更硬核的方式进行二次开发,稚晖君还提供了更底层的Electron LowLevel库。+ g0 Z$ }: O1 {4 q6 f

- v( v% C& q, y6 v+ V+ |0 |1 ^/ H
8 p  Y. j2 I0 j+ A$ i
对此,稚晖君还做了一个范例,通过调节机器人右手实现控制电脑音量和亮度。
" Y; y3 a1 r; B# o- I: r9 Q4 t, W7 m. L% N
8 n* ?9 {& H7 s: g) x# M
# Q  \1 S  s+ J; v1 c& Z8 M
利用机器人机身搭载的摄像头和红外手持传感器,开发了通过AI算法识别手势的程序。
9 P* e( Z! h+ }7 }: T. E, V
33.gif
当摆出不同手势类型,就可以打开预先设定好的程序,或者切换桌面。
- k2 V- A' u" w6 E& L7 W/ M$ ^
5 T3 M4 `; {- K

! R! \! S  W+ i/ L( v' G最有意思的一个应用是,稚晖君基于OpenPose开发了一个程序,用于单目的人体关键点检测。
7 I' ]# @0 Y- z/ ~- ~
+ u' r! e( j3 l8 E: K

0 v7 u# d% n& U: j- @+ @9 H1 o如果有2台机器人的话,就可以视频了,而且你还可以通过手势控制机器人运动。1 x1 e2 [; C- I  N% }1 A
34.gif
稚晖君还给这个应用起了一个特别的名字「量子纠缠」。
  D" {& n! W; T最后,稚晖君还顺便给电子做了一个收纳盒,太精巧了。9 A/ ]* m: T: L3 d# M' O: ]
35.gif
代码开源
8 g+ i- }( e" Z3 d, G' V视频末,稚晖君附上了软硬件开源地址:: F/ Y. o1 V8 A6 R5 ~
https://github.com/peng-zhihui/ElectronBot
3 Y8 E* S" U+ s- \/ a0 M才刚刚发布没几个小时,都已经有90个star,还有6个fork了。
1 G2 c+ ^3 }. l3 \2 G) l" i不得不说,天才少年的实力太强了。5 h3 _9 y9 K5 f9 f3 z$ R
36.jpg
具体使用说明,稚晖君表示自己会稍晚点补充,先补个觉。& y, l! i# Q! n6 l: m9 L3 d
37.jpg
包括此前他做的可以自动驾驶的自行车、机器臂等等,每个项目都会耗费很大精力,再加上稚晖君也有自己的本职工作。4 E0 k  }' ^# a' p- G7 m# |7 K1 E# M
收藏 评论0 发布时间:2022-3-15 13:36

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版