這個B站up主太硬核!純手工打造AI小電視:硬件自己焊代碼全手寫

一個低調的AI開發者,憑什麼登上B站首頁、一個視頻百萬播放,並且外行內行看了都服氣?

憑的是硬核純手工作品——一臺“套娃”小電視。

而且這可能是史上最硬核的一次“套娃”:在純手工製作的電視裡成功播放了B站小電視。

這個B站up主太硬核!純手工打造AI小電視:硬件自己焊代碼全手寫

如果你以為它只能播放B站視頻的開發板+顯示屏,那就大錯特錯了。

這可是一臺從零開始製造的AI助手“賈維斯”。

不僅能當語音助手,還能處理實時圖像,甚至能當web服務器。。。

這個B站up主太硬核!純手工打造AI小電視:硬件自己焊代碼全手寫

up主和鋼鐵俠一樣,自己畫設計圖、手工焊接組成。就像鋼鐵俠當年在山洞裡造出第一代戰衣。

整個小電視除了芯片外,幾乎全是up主自行設計完成。不知道up主看到小電視正常開機的一瞬間,會不會有斯塔克衝出山洞的感覺。

打造這個套娃小電視的up主“稚暉君”本名彭稚暉,現在是一名OPPO的AI工程師。

這個B站up主太硬核!純手工打造AI小電視:硬件自己焊代碼全手寫

之前稚暉君就在B站分享過很多DIY硬件視頻,雖硬核卻不溫不火,直到自制小電視的出現,他的作品第一次登上B站推薦首頁,收穫了超過100萬的播放量。

所謂外行看熱鬧,內行看門道。他的視頻到底厲害在哪裡呢?一位專業網友表示:


其實有些東西吧,外行看起來很牛X,但其實我這種內行看起來,還是很牛X。


這個B站up主太硬核!純手工打造AI小電視:硬件自己焊代碼全手寫

從手工畫PCB到寫C++代碼

稚暉君用簡短的3分鐘視頻,展示了他製造“B站小電視”的全過程。

先在紙上畫草圖。

沒有開發板?不要緊,稚暉君自己造。

電路板怎麼做?用Altium Designer繪製PCB板,求助萬能的淘寶,找商家印刷和製造鋼網。

這個B站up主太硬核!純手工打造AI小電視:硬件自己焊代碼全手寫

然後給PCB刷上焊錫膏,把芯片、電阻、電容等器件一個個貼上去,熱風槍加熱完成迴流焊。

這個B站up主太硬核!純手工打造AI小電視:硬件自己焊代碼全手寫

至於外殼,稚暉君用Rhinoceros繪製小電視的外殼的3D模型,再用自己的3D打印機造出來。

這個B站up主太硬核!純手工打造AI小電視:硬件自己焊代碼全手寫

加上買到的液晶面板,小電視的硬件部分製作完成。

這個B站up主太硬核!純手工打造AI小電視:硬件自己焊代碼全手寫

硬件製作完成僅僅是個開始,接下來是讓稚暉君頭禿的軟件開發環節。

因為這是一套完整自己設計的板子,他還要從底層開發軟件,包括uboot/kernel配置、設備驅動、應用層App開發、算法模型部署等,都是自己用C++一行行敲出的代碼。

視頻過程中,你看到代碼一行行快速通過,但實際上稚暉君熬了好幾個令人頭禿的夜,甚至還重新設計了電路板。

最終稚暉君給小電視裝上了Linux的Xfce桌面環境,如果你不介意屏幕太小,連接鼠標操作是沒有問題的,另外還能通過VNC、RDP遠程訪問。

這個B站up主太硬核!純手工打造AI小電視:硬件自己焊代碼全手寫

有了Linux,再把TensorFlow裝上去,接上攝像頭實現圖像識別,又或是接上話筒實現語音識別,還能把小電視當成自己博客的web服務器。

這個B站up主太硬核!純手工打造AI小電視:硬件自己焊代碼全手寫

小電視也能自己播放自己,實現“套娃”視頻。

技術大佬的知識體系

看到上面一些列騷操作,你是不是已經目瞪口呆?

根據一個技術大佬的統計,稚暉君掌握的技能有:


電子基礎,電子元器件選型,電路原理圖設計,高速電路PCB設計,電子元器件焊接技術,電路板調試,啟動程序UBOOT裁剪移植,linux內核裁剪移植,文件系統,低層驅動程序(C語言,ARM架構彙編,linux內核架構),上層應用程序(C++、Qt、JAVA、Python等,深度學習,機器學習,OpenCV,神經網絡,自然語言處理),靜態博客服務器搭建,高等數學,線性代數,概率論,離散數學,3D建模,3D打印,雕刻機,視頻拍攝後期製作,防脫髮技術。


其中,最難的莫過於最後一項技術。

稚暉君也表示贊同,當我們問他整個開發過程中最難的問題是什麼,他說是“如何在保持熬夜學這麼多東西的情況下不會脫髮”。

現在不脫髮的技術我們已經掌握了,求求大佬能不能傳授一點秘籍。

這個B站up主太硬核!純手工打造AI小電視:硬件自己焊代碼全手寫

不要急,稚暉君說了今後會出一系列詳細教程,希望大家關注一下他的空間和最新動態。

那還說什麼,都已經明示投幣了,這次一定三連支持。

這個B站up主太硬核!純手工打造AI小電視:硬件自己焊代碼全手寫

軟硬件兩開花的大佬

最後,讓我們隆重認識下大佬吧。

稚暉君畢業於電子科技大學,目前就職於OPPO上海研究院。

他從2015年就開始更新自己的技術博客,筆耕不輟。最初他只是把B站當做自己的視頻存儲服務器,沒想到卻收穫了一批穩定的粉絲,才開始轉型做up主,沒想到半年時間就讓自己火了。

稚暉君本人可謂硬件軟件兩開花,當年去面試OPPO的時候拿到了兩份Super Special的offer,一個是硬件崗、一個是算法崗。

不過他強調現在在公司並沒有同時拿兩份工資,只是一名AI算法工程師。

稚暉君還是Arduino中文社區版主,愛好吉他和口琴。

在這次硬核手工火爆後,我們也聯繫到了稚暉君,他分享了自己的開發經驗。

量子位:聽說你本科學的是生物,後來才選擇計算機專業,為什麼?

稚暉君:是的,本科是生物醫學工程專業,研究生是信息與通信系統專業,所以其實不算CS科班。選擇專業的原 因也是各種機緣巧合啦,總之我後來發現生物專業並沒有我想象中的有很多女同學哈哈。

CS專業在我看 來和英語一樣是一門基礎技能,是一門研究“怎麼高效地解決問題”的學科,很容易和其他學科交叉結合,所以在我讀生物專業的時候,其實就已經開始自己學習計算機了。

EE方面也是同樣的情況,因為可 以看到對於像這次這個小電視這樣的作品所涉及的專業面,是在高校裡的任何一個專業都無法完全覆蓋 的;學習的方法有一個分支,叫做 Problem-Based Learning,就是以問題為導向的學習,通過自學尋 找解決問題的方法和問題的答案。

量子位:你對嵌入式和AI的興趣是何時培養起來的?

稚暉君:對嵌入式的熱愛始於我小時候學會拆家電的那個階段。大學階段入門了模數電、單片機、Linux、自控原理之類的課程之後,就開始放飛自我了。

對AI的興趣的話,是源於深度學習最近一次重新崛起的那幾 年,“當你造出了一個會開車的AI司機之後,你就得到了無數個會開車的司機”。這樣的想法非常地吸引我。

量子位:對於有志學習嵌入式開發的軟件工程師,你有哪些建議?

稚暉君:想做嵌入式開發的話,一定不要只關注自己眼前技術的一畝三分地,否則很難有好果汁吃。去學 RTOS,去學RISC-V,去學異構…永遠沒有完全準備好的人才,年輕時要邊打仗邊學習。

知識面一多之後,很難面面俱到,要學會拎清楚重點,剩下的知識只需要在用到的時候會查閱工具 書就行。厲害的工程師不是可以背下來多少語法標準和手冊資料,而是在有全局觀的同時能有能力 解決核心問題。知識分為兩種,一種是你知道的,一種是你知道可以在哪裡找到的。

多瞭解和思考一下嵌入式和前沿領域的交叉點,邊緣計算、嵌入式AI、物聯網、端雲融合等等。

量子位:當初為什麼想到做B站小電視這個項目?

稚暉君:一個人一旦脫離了高級趣味,做各種沙雕項目也就會變得遊刃有餘了(笑)。我的樂趣就是週末宅在家裡折騰這些既沒用又有用的東西。

做這個小電視項目的初衷在我之前發的一個視頻裡有提及,其實就是不滿意於目前市面上能買到的小型個人服務器,有一些痛點,所以就打算自己動手造一個。

還有一個原因是,我個人比較喜歡在積累了一定程度的新知識和技能之後,構思一個項目把這些知識都用上並呈現 出來。一方面通過這種方式可以及時鞏固學習效果,另一方面“學以致用”是技術發展的永恆歸宿。

所以大家可以期待一下,我最近業餘也在學習一些機器人高級控制和優化理論,未來可能會有很有意思 的項目作品分享的。

量子位:你是怎麼平衡興趣愛好和工作的關係的?

稚暉君:很幸運的一點是,我的興趣愛好就是我的工作。

我認為的理想工作狀態就是:工作是源於自己的意願, 每天做自己喜歡的事情而積累經驗,在適當的壓力下積極創新,收穫自身成長的同時順便收穫可觀的報 酬。簡單地說,就是當個人愛好、公司價值、與時代趨勢相統一的時候。我認為目前正在朝著這個方向努力,雖然還有很多東西要學習。

我給自己的信條是:十年飲冰,難涼熱血。

量子位:平時做的事情對你現在的工作有哪些啟發?

稚暉君:前面提到了 Problem-Based Learning,以解決問題為導向進行學習,未來是終身學習的時代,不存在大學畢業之後就不學習了。

人工智能也是一樣的,它是一種學習的過程,如果你去問有實際工程經驗的人工智能專家,他們大都會在談及算法之前問兩個基本問題:

第一、你要解決什麼問題;第二、你有沒有與這個問題相應的可供學習的數據。

另外,知識是大體相通 的,在不同學科之間的遷移學習可以帶來事半功倍的效果,比如軟件設計裡的高內聚低耦合模塊複用理念,也是可以應用到電路設計裡面的;比如嵌入式開發的經驗在優化深度學習模型推理實現的過程中提供了意想不到的幫助。


分享到:


相關文章: