華為天才少年稚暉君自製硬萌機器人:開源5小時GitHub收穫317星

失蹤人口回歸了!華為“天才少年稚暉君這次帶來了一個又萌又硬的桌面小機器人ElectronBot。還記得上次那個“全棧自研”的給葡萄縫針的鋼鐵俠機械臂Dummy嗎?近3個月沒更的華為“天才少年”稚暉君帶着他的最新視頻來了!

http://n.sinaimg.cn/tech/crawl/26/w550h276/20220313/04ae-8f73a149a35d714b93ee25e46e59650b.png

華為天才少年稚暉君自製硬萌機器人:開源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庫。

對此,稚暉君還做了一個範例,通過調節機器人右手實現控制電腦音量和亮度。

利用機器人機身搭載的攝像頭和紅外手持傳感器,開發了通過AI算法識別手勢的程序。

華為天才少年稚暉君自製硬萌機器人:開源5小時GitHub收穫317星

當擺出不同手勢類型,就可以打開預先設定好的程序,或者切換桌面。

最有意思的一個應用是,稚暉君基於OpenPose開發了一個程序,用於單目的人體關鍵點檢測。

如果有2台機器人的話,就可以視頻了,而且你還可以通過手勢控制機器人運動。

華為天才少年稚暉君自製硬萌機器人:開源5小時GitHub收穫317星

稚暉君還給這個應用起了一個特別的名字“量子糾纏”。

最後,稚暉君還順便給電子做了一個收納盒,太精巧了。

華為天才少年稚暉君自製硬萌機器人:開源5小時GitHub收穫317星

代碼開源

視頻末,稚暉君附上了軟硬件開源地址:

https://github.com/peng-zhihui/ElectronBot

才剛剛發布沒幾個小時,都已經有90個star,還有6個fork了。

不得不說,天才少年的實力太強了。

華為天才少年稚暉君自製硬萌機器人:開源5小時GitHub收穫317星

具體使用說明,稚暉君表示自己會稍晚點補充,先補個覺。

華為天才少年稚暉君自製硬萌機器人:開源5小時GitHub收穫317星

包括此前他做的可以自動駕駛的自行車、機器臂等等,每個項目都會耗費很大精力,再加上稚暉君也有自己的本職工作。

華為天才少年稚暉君自製硬萌機器人:開源5小時GitHub收穫317星

網友:重新定義“軟核”

重新定義“軟核”

華為天才少年稚暉君自製硬萌機器人:開源5小時GitHub收穫317星

有網友希望下次稚暉君可以出一期“如何高效學習”的視頻。

華為天才少年稚暉君自製硬萌機器人:開源5小時GitHub收穫317星

華為天才少年稚暉君自製硬萌機器人:開源5小時GitHub收穫317星

(0)
上一篇 2022-03-13 16:28
下一篇 2022-03-13 16:29

相关推荐