2014-12-24

Scratch, Arduino and mBlock (Scratchbot) 現況大分析

前言

最近網路上一片程式設計熱潮,『從小紮根學習寫程式』變成一些人(包含玩家,家長,老師)的熱門觀念。


(其實這是『物以類聚』的現象,每個人的社群網站都是自己選擇的資訊來源,所以社群網站的消息對個人產生很大的影響力,加上搜尋網頁使用『灌迷湯』的方式,非常智慧地提供你所需要的結果,於是你的周圍都是相似的訊息。讓你誤以為現實社會就是如此。)

姑且不論是否淹沒於各種媒體資訊中所造成的觀念偏差。對我來說,『撰寫程式』,就是提供大家一個發現問題,解決問題的能力訓練方式。

Code.org 這個團體最近也大力疾呼學習程式的重要性,許多名人(包含歐巴馬總統)都出面代言,還推出The Hour of Code活動,讓大家體會撰寫程式的樂趣。

在MIT媒體實驗室 (Media Lab) 大力推動下,自由軟體 Scratch 變成大人小孩的最佳入門程式設計軟體。透過簡單的圖控程式,人人能控制電腦上的各種角色,做出許多有趣的效果。(Scratch設計給中年級以上的國小學童使用,最新的 Scratch Jr. 更是針對5-7歲的孩子而開發。)


電腦程式設計

在台灣,雖然中央政府的教育部門沒有這種推動程式教育的明確作法。但是除了巨匠電腦之類的補習班。仍然有許多以孩子為主的程式設計推廣方式,例如微軟公司與新北市的合作計畫

或是有一些單位,例如:橘子蘋果程式設計學苑彩虹牧場Program the world兒童與少年程式設計教學計劃兒童程式設計 KidsCoding(在FlyingV有募資計畫:Coding for fun 快樂寫程式)。

當然還有更多學校及縣市政府,在熱情的老師推動下,舉辦許多Scratch研習跟比賽。

例如:
宜蘭縣:宜蘭縣中小學Scratch 競賽官方網站 - 宜蘭縣教育資源平台
花蓮縣:花蓮縣Scratch交流網
新北市:新北市國中小自由軟體Scratch程式設計比賽網站
台北市:台北市Scratch網站

這些地區的孩子在學校及縣市政府協助下,有了更多的學習資源。

但是,這些都是只在電腦上操作的程式設計方式。電腦的虛擬世界。


跳脫電腦之外的實體世界

探奇邱老師認為很多迷上電動遊戲的孩子需要回歸現實,畢竟我們還是活在實體世界,這個可愛的世界。

所以我選擇使用樂高機器人(NXT, EV3)當作教具,除了程式之外,還有積木組裝的樂趣。



樂高機器人套件是很好的教具,但是樂高機器人套件單價比較高,邱老師發現許多國中小沒有充足的經費準備足夠的組件供給孩子使用,所以想研究是否可能使用其他替代教具進行類似的程式設計及機構組裝課程。

我們需要從電子零件及積木構件著手。

最近在自造者(Maker創客)間很流行的各式各樣控制板(單晶片,卡片電腦),就是替代教具的選擇。

(圖片來源:Arduino)


電子零件部份先以Arduino為主要考量,有許多團隊修改Scratch,使之能控制Arduino系統的馬達及各種感應器。例如:S4AS2A......。

S4A社群:S4A社群簡介

接著出現的是ArduBlock,A GRAPHICAL PROGRAMMING LANGUAGE FOR ARDUINO,這是大陸上海新車間的作品,也是利用圖形化的方式撰寫程式控制Arduino硬體。

Ardublock是屬於Arduino IDE的外掛,可以將圖形化程式轉換成C語言程式,再依照正常編譯程序,下載執行。

其實已經有很多廠商提出類似的想法及商品,網路上有一大堆藍牙遙控Arduino車。更進一步將感應器,馬達,擴充版(Shield)模組化,方便玩家接線使用。

例如:Grove SystemMotoDruinoMakeblock

在FlyingV也有更多這類的募資計畫,例如:狗狗板-程式教學機器人套件!精靈魔法學苑

其中比較特殊的是meArm.Joystick,它原本是一台Arduino機器手臂,加上搖桿設計,搭配科技下鄉活動,在FlyingV獲得很大的支持。

(圖片來源:phenoptix)

MeArm原創作者Benjamin Gray應該是受到激勵,除了在自家公司phenoptix販售,也在KickStarter募資。MeArm - Pocket Sized Industrial Robotics for Everybody

智高公司與東勢高工賴老師研發一套『智高 Scratch(S4A) 互動智能積木:動手玩創意20堂課#1247-CN』,搭配智高積木的教具『 
S4A (Scratch for Arduino)互動智能積木』,由台科大販售。

賴老師最近除了另外一本書『Arduino積木應用(iPOE P1積木機器人)與專題製作』,還有一個新產品,我想是用智高為主體完成的iPOE P1創意積木機器人

(探奇曾經整理過這類書籍,請參考舊文章『Scratch 中文書籍整理』)


Scratch類型程式離線控制-Scratchbot (已正式改名為mBlock)




使用S4A程式控制Arduino裝置時,電腦端需要以USB連線Arduino,或是使用藍牙連線方式"遙控"Arduino。無法直接讓Arduino獨立執行程式。

現在MakeBlock團隊將Ardublock的功能移植為Scratchbot,在Scratch 2.0環境下,拖拉專屬的Arduino圖形命令,再轉換為C語言程式,編譯下載執行。

如此一來,電腦端下載程式到Arduino後,就不需要連接USB或是藍牙,Arduino裝置可以獨立執行程式。

孩子可以使用Scratch在電腦執行,也可以使用USB連線控制Arduino裝置,更能讓Arduino裝置離線單獨執行。這三種方式使Scratch有更多變化。

(請參考探奇舊文章:Scratchbot - 可以下載程式到 Arduino 的 Scratch


從Makeblock著手實驗


雖然知道還有很多類似 VEX IQ 或中鳴的廠商在開發教具,但是心裡明白不太可能找到能夠完整替代樂高機器人套件的產品。

我的想法及目標是替代樂高的教具,包含控制器,電子零件(馬達感應器),加上建構積木。使用Scratchbot軟體。課程編排為一學期16堂課,一班30人計算,準備15套(2人一組),如果單價能在一套3000,只要75000元.....

實際研究各家產品,彙整硬體價格資訊,還跟范運平老師電話聯繫討論(感謝他的開導),才發現原來那不是一件簡單的事。

為了小朋友容易使用,也為了新手老師容易教學,以樂高機器人的作品為需求考量,考慮了:電線連接硬體的方便性,多種變化模型的組裝方式,還要在預算內提供多種感應器,馬達連接齒輪,第三顆馬達的電力供應。

結果終於瞭解,原來樂高機器人套件是多麼方便,有著最高的CP值。

考慮很多之後,我還是買了一套Makeblock starter robot kit (IR version),測試是否可以跟樂高積木結合。也測試Scratchbot的使用狀況。有新的消息我會再發文與各位分享。

下面是原廠示範影片:



未結之語-努力尋找,努力嘗試

從源頭開始思考,讓孩子不用擔心語法架構規則,而是開發他們的邏輯思維及對應能力。

孩子需要學習什麼?是工具的基本學習?還是應用的創意學習?

不同的事物有不同的學習方式,不同的孩子,不同的環境,學習方式也不盡相同。不能以一蓋全。

但是各種學習的本質用意都是相同的:
培養個人的解決問題能力,這是跟著孩子一輩子的能力。

我們希望每個孩子都能成為我們所希望的模式,但是每個孩子都有他們自己的特性。應該如何配合各個孩子特性,建立他們的模式呢?

我想到牛頓的話:「我看得比別人更遠,那是因為我站在巨人的肩膀上。」(If I have seen farther than others, it is because I was standing on the shoulders of giants.)

創新的新意何來?讓我們站在前人的肩膀,繼續向前。


歡迎提供資訊討論,謝謝!