編程機器人怎麼入門?怎麼參賽?理工爸在美國的帶隊經驗幫你省下幾萬元~

01-30

29

1-2018

編程機器人是現在的大熱門,怎麼帶娃玩?從哪兒入門?怎麼入門?逃爸帶逃逃和幾位小夥伴組成的團隊玩瞭小半年,今天請他來給大傢分享下經驗心得。稍微需要提醒下大傢的是,理工爸爸寫怎麼玩編程機器人,文章幹得有那麼一點點噎。不過,如果你正在陪娃玩,或者在不久的將來打算開始帶娃玩,是蠻值得參考的一篇技術帖。

逃媽的話

帶著六位小朋友經過半年的準備,終於在上個月試水瞭第一次 FLL,也就是俗稱的樂高機器人編程比賽。這篇文章趁熱打鐵,聊聊針對孩子的機器人編程。

 

我們參加的 FLL,是 First Lego League(中國官網翻譯成 " 工程挑戰賽 ")的簡稱。這是一個針對 9~14 歲孩子團隊合作的全球性競賽,主要考察 3 個項目,機器人比賽是其中之一。這個項目需要使用樂高的 MINDSTORMS   EV3 組件,制作出機器人,並完成若幹個指定任務。這是最低級別的機器人編程比賽,面向的孩子年齡最小,要完成的任務也最簡單。(其實還有一個面向 6~10 歲小朋友的 FIRST Lego League Junior,FIRST 樂高聯賽兒童賽。不過這個比賽和機器人沒多大關系,孩子隻需要為一定的目標用樂高設計和搭建好場景,並通過制作海報來向評委展示自己的作品就好。) 在 FLL 之上的級別叫 FTC(First Tech Challenge 科技挑戰賽),針對 12~18 歲,再往上叫 FRC(First Robotics Competition 機器人挑戰賽), 針對 14~18 歲。當然再往上還有針對成年人的機器人俱樂部,那就更專業瞭。

聽一位行內的師姐說,這三五年參加 FLL 的隊伍呈井噴式增長。就我們所在的達拉斯地區,三年前的比賽就百來個隊,隻需要比一天。而今年這次比賽有 400 多個隊伍,3000 多個隊員,需要連續比三個周末才能比完。而且除瞭上面提到的 First 系列,還有很多其他的針對孩子的機器人比賽。 比如世界教育機器人大賽 WER, VEX 機器人大賽等等,這幾年增長都挺快。我還納悶為什麼機器人編程突然這麼火,不過想想也是情有可原。人工智能眼看就要秒殺人類,機器人進入千傢萬戶的時代是呼之欲出。讓孩子們從小就熟悉機器人是怎麼創造出來的,就是和時代接軌。 以後當人類被機器人統治的時候,也算是知已知彼,不會太不習慣 ^_^。

《紐約客》去年一期的封面漫畫:

人類向機器人乞討

下面是我理解的孩子的機器人編程,看看他們該怎麼和時代接軌,迎接未來。

什麼是機器人編程

首先,什麼是 " 機器人 "? 這個概念其實挺模糊。第一感覺," 機器人 " 不就是機器做的人。可除瞭電影裡的變形金剛還算夠格,那些生活裡的掃地機器人,聊天機器人,和流水線上的裝配機器人,哪裡有 " 人 " 的影子?想想 " 機器人 " 就是翻譯界的通假字吧,是 Robot 這個詞一開始就翻譯錯瞭,隻不過將錯就錯下去,直到大傢見怪不怪,直到在 " 機器人 " 的展臺上放隻機器豬大傢也不覺得有任何違和感。 所以,為瞭避免歧義,這裡有必要先把本文中的 " 機器人 " 究竟是什麼明確一下。

本文提到的 " 機器人 " 是指可以通過重構改變硬件,通過編程改變軟件的可編程機器人。它包含的部分如下:

1

硬件

1. 基本組件。就好像我們常見的樂高玩具,包含各種形狀的小組件,可以拼成不同的形狀。 這會是機器人的身體。

2.   傳感器。這是機器人的眼睛和耳朵,用於獲取外界信息。常用的有獲取旋轉角度和速度的陀螺儀,獲取顏色或反光度的光線傳感器,獲取外界觸碰的觸碰傳感器等等。聽上去很高大上,其實最便宜的智能手機裡都有。

3.   馬達。這是機器人的手和腳,肌肉和關節。所有的位置改變都靠它。

4.   控制器。這是機器人的大腦,決定機器人的行為。 通過和傳感器連接獲取輸入,通過和馬達連接控制輸出, 通過和電腦連接將程序註入。 此外控制器可以接收遙控輸入,還可以有圖像或者聲音的輸出。

下圖是樂高 EV3 系列中的觸碰傳感器,馬達和控制器。傳感器和馬達不止一個,這裡隻是取瞭一個舉例子 。

2

軟件

一段程序,在電腦或 Pad 上編寫,拷入控制器後執行。執行的程序可以獲取傳感器的輸入數據,也可以控制輸出。程序本身用的是可視化的編程語言,極易上手。

機器人編程,就是用硬件構造一個身體,用程序給它一套邏輯,利用它的傳感器和馬達,完成一系列的任務。 

針對孩子的機器人編程組件,市場上已經有很多。這些組件都包含上面的軟硬件要素,讓孩子從零開始,實現初步的機器人編程。最流行的編程組件估計是樂高的 Mindstorm   EV3,和國產的能力風暴 Abilix。兩個國際性的機器人編程大賽(FLL 和 WER)分別是以它們為基礎。他們其實很相似,要說區別,我覺得主要是下面幾點。

1.   Abilix 的組件要比樂高的大一圈,可能因此覺得樂高的要精致些。

2.   樂高裡的組件都是標準化的,也就是說樂高海量模型裡的組件與 EV3 是兼容的。而 Abilix 專業做編程機器人,隻有針對機器人的模型,其組件的選擇肯定要少些。

3.   Abilix 的組件大多是兩維可連接,而樂高隻有一維。應該是材料學的進步,讓兩邊開口還能保持一定的強度。下圖可以看出,同樣的一個 L 型組件,樂高(白色)一邊開口,Abilix(黑色)兩邊開口,這讓搭建的選擇會更多些。

4.   都是可視化編程語言,但設計不同。Abilix 用的是業內標準的 Scratch 兒童編程語言,而樂高是自己的設計。倒是都挺好用。

如果想讓孩子嘗試機器人編程,我建議如果不差錢懶得挑,就選樂高的 EV3。如果走性價比,就選 Abilix。如果想讓孩子參加某個競賽,那就看人傢指定的是哪種。

機器人編程啟蒙

第一次做機器人的孩子大都挺失望。他們本以為機器人就像童話裡的陶瓷姑娘,給她撒上金粉,念段咒語,就可以開心的跳起舞來。可後來發現,自己搭出來的機器人即不美麗也不神秘,而即使這樣的機器,搭建是異常復雜,軟件實現也是相當困難,而且經常掉鏈子很不靠譜……哦,怎麼說呢,孩子們,歡迎來到真實的世界,歡迎換個視角來觀察問題。

用工程師的視角來看待問題,是做機器人給孩子的最大收獲。機器不通人情,不會因為你的努力而通融,不會因為你的才華而動心。和它打交道,就得按照它的方式來,沒有捷徑。孩子完全不缺想象力,缺的是想象力和現實世界的妥協,不知道心中炫酷的想法如何一步一步實現。我想說,在機器人面前,把藝術傢的天馬行空暫時收起來,換用工程師的嚴格和腳踏實地來看看這個世界。  

下面分別從硬件、軟件和設計三方面來說說如何指導孩子做機器人編程。

1

機器人硬件

就樂高機器人的搭建來說,以前那些按照說明書搭建起來的樂高模型,都是浮雲。逃逃和我以前搭過幾十套模型,想想也算業內資深人士,可扔掉說明書開始搭建機器人的那一刻,完全抓瞎,一些基本的需求以為很簡單,可自己就是沒法實現。那幾十套的搭建經驗,遠不如一個早上系統學習的收獲大。 下面是我覺得需要系統學習的兩點:

  1、熟悉基本組件和基本技巧  

知道你擁有什麼,才知道你可能做出什麼。對基本的組件非常熟悉,做的時候才能得心應手。以樂高裡最常用的兩個單位長度的連接件為例。長度一般模樣類似, 為什麼會有不同的顏色,僅僅是為瞭讓做出的東西更多彩嗎?其實,不同的顏色後面是不同的功能:黑色的連接是圓口有摩擦的,白色的是圓口沒有摩擦的,藍色的是一邊十字口一邊圓口有摩擦的,紅色的是兩邊十字口的。 熟悉這些連接件,才能知道你可能做出怎樣的擴展, 才能輕松的找到那個你需要的。

除瞭基本的組件,還需要知道搭建的基本技巧。比如說我們經常需要將兩條長梁或平行連接,  或垂直連接。每種需求可以用哪些連接件以怎麼的組合實現?不同的方式有何不同,又有何優劣? 這些技巧給你實現需求的最好的方式,讓你事半功倍。這裡推薦一本書《The Lego Mindstorms EV3 Discovery book》,主要講的是 EV3 的軟件編程,其中有兩章講瞭硬件基礎,不長,很實在。有興趣的朋友歡迎看看。

  2、熟悉齒輪  

   

機器人的動力系統,是搭建在電機和齒輪之上。 電機提供動力,而齒輪可以改變旋轉的速度,方向和力矩,也可以改變力的形態,將動力以不同的形式傳遞出去。電機和齒輪一起,構成瞭機器人的動力基礎。

電機的應用很直接。要麼連著輪軸直接旋轉,用麼連上齒輪將力轉化或傳遞出去。 而齒輪是有點難的,要用到一點點數學,瞭解一點點杠桿,最好還需要明白力和力矩的概念。不過下點功夫去理解齒輪,也就能瞭解真實世界裡很多機械背後的原理,逃逃就趁著這個機會學習瞭汽車裡的變速箱,這可是很劃算的。

樂高裡的齒輪大體分正面齒輪,側面齒輪和蠕蟲輪。組合起來的用法很多,建議多做些簡單的練習,打好基本功,熟能生巧,到時候信手拈來。 下面是逃逃和我做的幾個例子(基於 EV3).

1.   招財手

2.   打樁機

3.   正面齒輪傳動。 最右邊的齒輪帶動左邊兩個黑色齒輪轉動,它們方向相反。

4.   側面齒輪傳動。 黃色齒輪帶動兩個黑色齒輪以相反方向轉動

5.   蠕蟲齒輪

6.   簡單的變速箱

硬件有瞭,再說說怎麼去做軟件。

機器人軟件

編程無外乎就是收集信息,做出反應。那麼機器人的輸入和輸出是什麼,它可以收集哪些信息,做出什麼樣的反應,又能實現什麼樣的邏輯呢?

1.   輸入設備:傳感器

機器人通過傳感器來收集信息。 瞭解傳感器,就是瞭解機器人觸碰世界的能力。常用的傳感器比如檢測顏色和反光度的光線傳感器;探測離障礙物距離的超聲波和紅外線傳感器,測量旋轉角度和速度的陀螺儀,等等。軟件裡面有專門的模塊去獲取傳感器的數據,很簡單。

2.   輸出設備:電機

機器人通過電機做出反應。再復雜的動作,都是通過對電機實現,無外乎就是轉的快一點,慢一點;正著轉或者反著轉。 有些機器人還能顯示圖像,聲音,也算是對外界的輸出吧。

3.   編寫程序

和很多面向孩子的編程軟件一樣,機器人編程平臺提供的編程模塊很豐富,操作起來也很簡單。全程用鼠標拖拽,再改幾個屬性即可,很適合孩子上手。 軟件裡眾多的要素,比如循環,函數,條件判斷,邏輯計算,甚至很高級的數組,多線程等等,它都支持,而這足以支撐起一個復雜的程序,實現復雜的編程思想。機器人編程這個主題可是夠寫幾本書,開一門課,或者設一個專業,建一個博士後流動點什麼的。這裡就不細說瞭。

下面是個小例子,程序通過光線傳感器檢查地面的反光度得到顏色,根據地面是白色還是黑色控制兩邊的電機讓機器人左偏或右偏,以實現機器人沿黑線走的功能。這是最後的效果,截瞭一小段,大傢看個意思。

4.   機器人編程和純軟件編程的區別是什麼?

        

純軟件是個虛擬的世界,簡單而完美。而真實世界太復雜瞭,並且總有意外。 因此就需要更健壯的軟件去化解這些復雜,處理這些意外。

舉個例子來說明下硬件編程有多復雜。假設我們已經搭建好瞭一個通過兩個電機做輪子驅動的機器人,我們看看如何編程讓他實現 " 直行一米 " 這個在軟件裡一行代碼就可以搞定的事。可能聽上去會有些專業,但沒辦法,這是最簡單的機器人編程都需要考慮的問題。

第一,因為著地點摩擦力不均以及電機微小的偏角誤差,走直線的命令在實際中會產生偏差。走的越遠,偏差越大。因此走直線需要通過陀螺儀校準,因為它可以記錄機器人偏轉的角度。在出發前將陀螺儀清零,在行進時根據偏轉的角度不斷進行調整。 調整的角度需要和偏轉的角度相關,偏的越少,調整的也越少,這樣可以盡快調正方向,又可避免矯枉過正走成之字形。

第二,程序上寫的 1 米,可機器人並不會真的走 1 米,肯定會有誤差。機器人停下後要檢測輪子實際行進的距離, 多退少補再做微調。如果調整後陀螺儀顯示方向有偏,再做調整確保機器人無偏, 調整的距離就是無法消除的誤差。

第三,電池的電量會影響電機的準確度,進而影響行進的距離,速度以及偏角。 要想每次運行的結果完全一樣,要麼保證運行時的電量不能差別太大,要麼根據電量的多少對行為進行補償。我們測試時發現機器人在運行兩三個小時後行為就開始出現偏差,就得充電瞭。

第四,機器人會偶爾出現死機,讀數不準等硬件錯誤。比如我們發現 EV3 的陀螺儀有時候會突然出錯,在靜止狀態下讀數也會改變,必須重啟機器人才能恢復。控制器本身可能會死機,也必須重啟才能恢復。

做軟件測試,一次通過次次通過 。而機器人,前 5 次都成功瞭,第 6 次還是需要祈禱才行。 復雜的世界,需要復雜的程序讓他去實現簡單的事。我想這也是機器人編程教給孩子很重要的一點。

3

機器人設計的原則

軟硬件都打瞭點基礎,現在有資格說說機器人的設計要註意什麼。

1. 專註於需要完成的任務。沒有規定機器人一定需要做成什麼樣子,得具備什麼樣的功能。不管黑機器白機器,能完成任務的就是好機器。機器人的設計隻為這個目標服務,其他都不用考慮。

2. 盡量簡單。和所有事一樣,越簡單越不容易出錯,每一個部件都應該是有用的為目標服務的,否則就把它扔掉。孩子們喜歡給機器人加許多花哨的裝飾,想象力應該用在怎麼樣做的更簡單,每一個裝飾都是有代價的。

3. 他山之石可以攻玉,網上資源很多,看看其他人是怎麼做的。

對於一個有 10 多年編程經驗的理科生來說,熟悉最初步的機器人編程都需要時間,何況一個孩子。所以機器人編程必須要有大人的引導,希望你也有興趣,能帶著孩子一起用工程師的視角去看看這個世界。能想象十年之後我們身邊會有多少機器人嗎?今天孩子們完成的那個簡單的任務,也許就是一個偉大的開始。

<END>

相關閱讀

美國課堂

【思維】孩子有無邏輯思維,註定是截然不同的命運 | 一文談透邏輯能力培養

【數學】數學啟蒙,關鍵要從這 4 個維度培養孩子的 " 數感 " | 來自斯坦福教授的建議

【閱讀】美國老師發給傢長的親子閱讀卡片:讓孩子的學習超越記憶、理解和應用

【英語】自然拼讀究竟怎麼學?沒搞懂這三步就別急著開始!

育兒經驗

【心理】原來孩子有個撒謊敏感期?真的! (顛覆認知的深度研究)

【溝通】紮克伯格父母和他的聊天模式,趕快用到你孩子身上

【幼兒園】把孩子放幼兒園後會發生什麼?這些信號告訴你孩子在幼兒園過得好不好

【小學】一年學費 20 多萬的國際學校教什麼?掌握瞭這些教育精髓完全可以在傢教娃!

公眾號後臺回復上方 8 個【關鍵詞】獲取更多

作者:逃媽,坐標美國達拉斯,分享原汁原味的美式教育理念和實踐資源。

精彩圖片
文章評論 相關閱讀
© 2016 看看新聞 http://www.kankannews.cc/