編程&創客工具及應用分解

编程&创客工具及应用分解

本期分享嘉賓:張龍,諾丁科技CEO,開發圖形化編程工具。

在本期【智囊分享】中,張老師分享了編程和創客裡面三個重要組成部分,硬件、課程和軟件。

  • 硬件分為沒有操作系統和有操作系統兩大類,比較有代表性的無操作系統硬件是arduino ide,它能對自己進行開發。有操作系統硬件是microbit,它的開發工具比較豐富,有BBC開發的,有微軟開發的。

  • 課程按照學習方式分成兩種不同類別,互聯網引導式學習和案例式學習。互聯網引導式學習,他實際上很像闖關遊戲,完成一個任務,再完成另外一個任務。比較知名的是code.org,Blockly games。案例式的講解,這種大部分是以應用軟件的應用為學習方向。比較出名的有scratch、Blockly、Blockly for arduino,編程貓。

  • 軟件按照功能分類,分為文本編程類、動畫編程類、純硬件編程類。

大家好,今天主要和大家分享編程和創客裡面三個重要組成部分,硬件、課程和軟件。但是本次分享不涉及課程授課方法這類內容,相對於這些,我更擅長技術。

一、硬件

當前市場上創客類的硬件有很多,琳琅滿目,為幫助大家理解,我簡單做了個小分類,把它分成沒有操作系統和有操作系統兩大類。

编程&创客工具及应用分解

1.沒有操作系統

2.有操作系統的

有操作系統的硬件芯片比較特別。相對單片機的芯片它裡面包含了一個操作系統,價格會稍稍貴一些。

它包含的操作系統也分成兩類。

第一類是嵌入式操作系統,它是非實時操作系統,比較代表性的就有樹莓派,類似於一個小電腦一樣,我們可以把它看成一個手機板子。此外還有樂高,樂高EV3大主機裡面,實際上是集成了一個Linux操作系統,也屬於嵌入式,內核會比較大一些,但和PC比起來,功能相對較弱,我們可以把它看成手機。

第二類是實時操作系統,內核較小,很精簡。目前我見到的實時操作系統硬件類產品只有一個,BBC公司開發的microbit,它的開發工具比較豐富,有BBC開發的,有微軟開發的,有德國人開發的,還有其他。它的實時操作系統是應用micro python的實時操作系統,也是一個開源操作系統。對micro python支持的有諾丁。microbit是在microPython的基礎上開發的。

除了Linux操作系統以外,還有一類帶著安卓操作系統的。這種就是手機直接用的操作系統,它也被用到了創客套件裡面,但比較少見。舉個例子說明一下,像市面上我們容易見到的,帶著視頻、會走、會說話、帶著語音識別功能的,大多數都是這類安卓操作系統在後臺做支撐開發的。它的開發版功能會強大一點,芯片比較不同。這類有操作系統的芯片大部分都是ARM芯片,它的性能會比較好一些,價格會比較高一些。

二、課程

按照學習方式來分類,我們把課程分成互聯網引導式學習和案例式學習。

编程&创客工具及应用分解

1.互聯網引導式學習

第一種學習方式很像闖關遊戲。這種方式是按照編程思路來學習的,比如我們先學習它怎麼動,然後再學習它的條件,再學習循環和學習嵌套循環,之後學習函數,一步一步引導式學習。比較知名的是code.org,Blockly games、諾丁,還有codemonkey都是採用這種形式學習。

2.案例式講解學習

另外一種是案例式的講解,這種大部分是以應用軟件的應用為學習方向。比較出名的有scratch、Blockly、Blockly for arduino, microbit、編程貓和一些其他的東西。這種方式一般開場的第一堂課,都是講解這個軟件的界面是什麼樣、什麼地方是舞臺、什麼地方是編程欄、角色是什麼樣的、如何使用拖塊?大部分的形式是這樣,之後會以案例形式來講解,比如說我們今天做一個案例,憤怒的小鳥。這個遊戲是怎麼樣的?然後我們來分解它,先做什麼後做什麼,都是以項目驅動式為主。 比如做一個小車,先搭建什麼,後搭建什麼,然後給它編程,哪一個馬達轉、哪個馬達停下,大部分都是這樣的。

雖然分成了兩個不同類別,但是我認為兩種方式都需要。嚮導式,更適合低幼段的兒童,比較遊戲化,比較循序漸進。他對這個軟件還沒有思路的時候,我們可以一步一步來引導他,這種方式多適合於在線上來操作。案例講解的這種形式,在線上有個問題,互動交流不是很好,建議放到線下來做會更好一些,氣氛和小朋友的學習心態等各方面都會好很多。

三、軟件

我們按兩個不同的分類區分,第一個是按照功能分類,第二個是複雜分類。

编程&创客工具及应用分解

1、按照功能分類

功能分類,實際上就是看他是不是可以進行動畫編程、可不可以對硬件進行控制?有沒有舞臺,有沒有動畫角色,能不能敲文字? 是不是可以通過網絡進行通訊?來進行分類。

我粗略地把它分成了三類。

  • 文本編程類:這個比較經典,最早的小海龜編程就是這種方式。它的上面是小海龜,下面是代碼。這種代碼比較特別,它不完全是編程代碼,它裡面加載了特定的庫。還有codemonkey也是這種形式。之後我們可能在網上看見的學Python、JS,還有成人的一些課程裡大部分都是用這種文本編程的形式。

  • 動畫編程類:動畫編程以scratch為主要特徵,帶有舞臺、卡通效果,有各種角色,動畫能夠互相交互,很像以前的flash。但是它不是通過調整畫面幀來實現動畫效果,而是通過圖形化編程語言來實現,使用面也比較廣。此類軟件國內常見的就是scratch,以及諾丁、編程貓。

  • 純硬件編程類:它的軟件有很多,我列幾個比較流行的。像手機上能夠拖快的、小汽車能跑、機器人能動等這類都是硬件編程工具來實現的,比較出名的是微軟開發的makecode、北師大副教授開發的米思奇、以及makeblock等等。

2、按複雜分類

按照比較有代表性的軟件生態圈,進行了分類。

编程&创客工具及应用分解

首先講的就是scratch,它2.0版以後是用Blockly開發的,把之前的代碼都拋棄掉了。但是我們目前用得最多的還有scratch1.0和2.0。它由MIT獨立研發,它的形式就是在左側/右側有舞臺,都是基於圖形化的拖塊形式。可以給動畫人物編程,同時也可以給硬件編程。但是硬件編程大部分都是由第三方來提供。比如scratch 1.0比較出名的第三方工具叫S4A,它是由伯克利大學的一個軟件團隊來開發的,只是對arduino進行了兼容。

scratch2.0在國外的第三方硬件插件就很多了,但是scratch2.0原是支持硬件的。國外的第三方插件有S2M、scratch for arduino、scratch for microbit,實際上scratch也可以對micro python的操作系統編程,也可以對C語言的單片機進行編程,但它中間都是通過通信插件來結合的。國內做得比較好的有很多,我們在市面上看見帶著舞臺、又可以給硬件編程的,基本上都是scratch。

我們先跳過Blockly,我們先講下面的!snap。!snap跟scratch有千絲萬縷關係,實際上scratch是由adobe公司的ActionScript這個語言來開發的,必須用flash這個插件來支持。所以後來伯克利大學的教授覺得這種方式不是很好,就用了html方式重新把scratch的所有功能都實現了一遍,它的名字就叫!snap。它本身不支持硬件,後來有個國外團隊,把arduino的硬件植入到了!snap裡面,它的軟件又做了一個離線的封裝,它叫snap4arduino,大家都可以到github上面去找,國內用!snap的其實不多。

最下面是小海龜編程,這個分類主要是用代碼來實現教小朋友編程。這種方式,年齡大一點的小孩比較容易接受,這個分支其實比較多,有很多的軟件也運用這種形式,但是代碼就不再是當年小海龜編程的那套代碼。改寫的人蠻多的,大家可以到36Kr上面教育板塊去看編程類的公司,用這類方式來做的還是蠻多的。這種形式比較出名的就是codemonkey。它們也是用這種形式來教的,教Python、JS、C等。

Blockly這個分支比較特別,實際上Blockly本身不是教編程的具,它是一個圖形化編程框架。谷歌公司把這個框架提供給大家,大家在這個框架上來堆東西,堆出來各種各樣的東西。

支持用這種形式來堆的硬件公司就比較多了。像國外的微軟的makecode、PXT formicrobit等。剛才我們提到過,scratch還有一個新的版本——scratch3.0, scratch改換了兩種不同的語言開發,現在是第三種。他基本把以前的工具都放棄掉,然後重新在blockly的基礎上構建了scratch3.0,應該會在18年的中旬或者年底發行這款軟件。

基於谷歌這個框架,這種遊戲情節嚮導式學習方式有三個,我上面只寫了兩個,第一個是code.org,這個大家都知道,第二個是谷歌自己的學習工具叫Blockly games,也是在它這個框架上二次開發的。這種方式費時間,但是效果會很好,大部分都是以學編程的邏輯為主。

我們再講講國內的,國內的支持基於Blockly來開發。實際上我們知道有圖形化界面,有舞臺效果的,應該就是編程貓了,諾丁也同時支持。不過諾丁比較特別一些,諾丁支持arduino的硬件和micro python,同時支持多個硬件互動,加入了一些物聯網功能。這兩款軟件是國內開發的,算是比較少見的。

然後最後一類就是國內開發的,基於blockly開發可對開源硬件及單片機進行編程的,比如:腦力風暴、米思奇,makeblock手機版等等,只要你在手機上看見能用的,有一個左側的變量或者是右側變量可以通話,運行生成後直接對硬件進行控制。這種形式基本上都是對Blockly進行二次開發。支持硬件的軟件比較多,也比較常見。

本次分享的內容大概就這些,如果有我沒提到的,大家想要補充的可以在文章底部留言區告訴我,我來補充一下,謝謝大家!

相關專輯:

  • 智囊分享專題| 聽君一席話 省我十本書


分享到:


相關文章: