于方軍+岳尊龍
● BYOB介紹
BYOB的全稱是Build Your Own Blocks,它是Scratch的一個(gè)擴(kuò)展版,由Jens Monig(Enterprise Applications Development, Microsoft Corporation)和Brian Harvey(University of California at Berkeley加州大學(xué)伯克利分校)在Scratch源代碼的基礎(chǔ)上擴(kuò)展而成。
BYOB對(duì)Scratch做了改進(jìn),實(shí)現(xiàn)了真正意義上的面向?qū)ο缶幊蹋∣OP)。通過這些改進(jìn),用戶可以自由增加不同類型的程序塊,并對(duì)其進(jìn)行參數(shù)的調(diào)用,實(shí)現(xiàn)真正意義上的信息傳遞,而這恰恰是OOP的核心思想之一。
與Scratch 1.4相比較,BYOB 3增加了一些新的程序塊:控制程序部分增加了調(diào)試“命令”塊和調(diào)試“報(bào)告人”塊;偵測(cè)程序部分增加了“Object”和“attribute”程序塊;數(shù)字和邏輯運(yùn)算部分增加了“成立(true)”、“不成立(false)”,結(jié)果提供的是布爾值,還有用來檢查數(shù)據(jù)類型的程序塊;變量部分增加了“腳本變量”塊,可以用它來統(tǒng)計(jì)腳本被調(diào)用的次數(shù)。BYOB 3最顯著的特點(diǎn)是在變量部分增加了“新建程序塊”(在Scratch 2.0中也有這個(gè)程序塊,但Scratch 2.0中的新建程序塊是針對(duì)角色的,別的角色不能調(diào)用,而BYOB 3的新建程序塊是針對(duì)腳本的,任何角色都可以調(diào)用),方便實(shí)現(xiàn)遞歸程序,并且BYOB 3的新建程序塊有多種類型。
BYOB方便聯(lián)機(jī)和生成可執(zhí)行文件,在Scratch 1.4中要想實(shí)現(xiàn)兩臺(tái)計(jì)算機(jī)互聯(lián)需要借助一個(gè)外部程序和協(xié)議,而BYOB已經(jīng)把這些做到了程序內(nèi)部,通過“分享”菜單的“連接到主機(jī)”和“設(shè)置為主機(jī)”可以方便實(shí)現(xiàn)雙機(jī)互聯(lián)。同時(shí),在“分享”菜單中還有“編譯該項(xiàng)目……”選項(xiàng),通過它可以方便生成可執(zhí)行文件(.exe文件),而這些在Scratch中都要通過其他程序來實(shí)現(xiàn)。
錨點(diǎn)功能也是BYOB的一個(gè)特色。例如,我們要設(shè)計(jì)一個(gè)坦克,要求能分別控制車身和炮筒,同時(shí)車身運(yùn)動(dòng)時(shí)炮筒要“粘接”在車身上一起運(yùn)動(dòng)。在BYOB中通過錨點(diǎn)功能,很容易就可以實(shí)現(xiàn)。兩個(gè)角色組合在一起移動(dòng),同時(shí)也可以分別控制。比較典型的例子就是把一個(gè)人身體的軀干作為主角色,把四肢和頭部作為分角色,把分角色“粘接”到主角色上。BYOB允許把一個(gè)角色作為指定錨點(diǎn)的主體,而其他角色可以作為其組成部分。主角色軀體作為父程序,其他角色作為子程序(零件),從而實(shí)現(xiàn)角色的嵌套,最簡單的方法是把子角色從角色欄中拖拽至舞臺(tái)的主角色上,就完成“粘接”功能,也可以用“attribute”程序塊完成。
● S2A介紹
S2A是為Arduino用戶準(zhǔn)備的,用一個(gè)圖形用戶界面來控制Arduino板工作,而不需要編寫一行行的C語言代碼。其中的S代表Scratch 2.0和SNAP,它是一個(gè)Scratch 2.0和SNAP與Arduino板的通訊連接程序,在Scratch 2.0和SNAP中建立一些項(xiàng)目腳本,通過調(diào)用這些腳本,實(shí)現(xiàn)控制Arduino板,完成通過Scratch 2.0或SNAP來控制物理設(shè)備(如LED)、電機(jī)和繼電器等目的,還可以接收監(jiān)測(cè)設(shè)備信息,如溫度傳感器、電位器和光傳感器等。S2A的硬件擴(kuò)展是用Python編寫的,因此需要安裝Python。為了減小網(wǎng)絡(luò)環(huán)境的影響,可以使用Scratch 2.0離線版和SNAP的離線版,實(shí)現(xiàn)和Arduino微控制器的無縫通信,當(dāng)然,如果網(wǎng)絡(luò)條件好,可以選用網(wǎng)絡(luò)版,實(shí)現(xiàn)作品的網(wǎng)絡(luò)共享。
S2A使用的難點(diǎn)是安裝麻煩。為了幫助使用者,筆者設(shè)計(jì)了一個(gè)安裝包“S2A淄博定制版”,安裝使用詳見新浪博客淄博創(chuàng)客空間(http://blog.sina.com.cn/s/blog_e114ed340101hclb.html)。
用S2A可以做的工作包括:①用Scratch設(shè)計(jì)機(jī)器人。通過S2A可以使機(jī)器人教學(xué)很容易被學(xué)生接受。②降低機(jī)器人教學(xué)的技術(shù)門檻。目前S2A支持多種傳感器輸入和輸出,基本能滿足機(jī)器人教學(xué)需求。③結(jié)合S2A做STEM課程進(jìn)行學(xué)科的融合。例如,可以利用S2A實(shí)現(xiàn)物理、化學(xué)、生物等的數(shù)字化實(shí)驗(yàn)改進(jìn),也可以利用其虛擬角色和現(xiàn)實(shí)傳感器互動(dòng),改進(jìn)其他學(xué)科的課堂教學(xué)。
endprint