張祿 趙曉卿
近幾年來,中小學(xué)創(chuàng)客教育的發(fā)展如火如荼,作為創(chuàng)客們的一把利器,Arduino在國內(nèi)早已盛行。但在早期,Arduino進(jìn)入中小學(xué)遇到了一個(gè)麻煩——學(xué)生普遍沒有編程基礎(chǔ)。為了降低學(xué)習(xí)門檻,最早的Arduino圖形化編程軟件之一,ArduBlock便應(yīng)運(yùn)而生。ArduBlock的產(chǎn)生,改變了Arduino在圖形化編程方面主要依靠Scratch的局面。
● ArduBlock
Ardublock是一個(gè)開源項(xiàng)目,使用Java語言開發(fā),通過積木搭建的方式對(duì)Arduino進(jìn)行編程,可視化和交互性強(qiáng),編程門檻低,即使沒有編程經(jīng)驗(yàn)的人也可以輕松編寫Arduino的程序。使用前,一般先下載它的壓縮包,名字通常為“ardublock.jar”或“ardublock-all.jar”,然后在Arduino安裝的根目錄下找到“tools”文件夾,打開后新建文件夾“ArduBlockTool”,在此文件夾中再新建文件夾“tool”,目錄結(jié)構(gòu)為“…tools\ArduBlockTool\tool”,將壓縮包放在“tool”文件夾中便完成了安裝工作。安裝完成后,打開Arduino IDE編程環(huán)境,在菜單欄中找到工具“Tools”,就可以看到ArduBlock了,如圖1所示,點(diǎn)擊進(jìn)入即可打開其編程界面。
● ArduBlock教育版
教育版是ArduBlock眾多版本中的一款,是為教育教學(xué)專門定制的版本。它對(duì)Arduino IDE版本的要求是1.5或更高版本(但是對(duì)一些較新的版本兼容性并不是很好),如果使用較低的版本,ArduBlock教育版則顯示的是英文。軟件的安裝與使用也很簡單,只要將下載的壓縮包(下載地址:http://blog.sina.com.cn/s/blog_6611ddcf0101kfs7.html)中的libraries和tools文件夾復(fù)制到Arduino的安裝目錄下即可。另外,為方便初學(xué)者,也提供了已經(jīng)集成的ArduBlock的Arduino IDE(網(wǎng)址:http://pan.baidu.com/s/1qWFJ0EK),直接解壓就可使用。相對(duì)于其他版本,教育版的功能劃分清晰,且更強(qiáng)大,兼容Arduino的任何開源產(chǎn)品。啟動(dòng)ArduBlock后,可以發(fā)現(xiàn)其界面(如圖2)主要分為三大部分:工具區(qū)(上),積木區(qū)(左),編程區(qū)(右)。
● ArduBlock教育版的應(yīng)用案例
1.設(shè)計(jì)定制版的ArduBlock
ArduBlock教育版仍然遵循開源精神,用戶完全可以定制專屬的版本。在開發(fā)時(shí),先找到“…tools\ArduBlock-Tool\tool”文件夾下的“ardublock.jar”文件,并對(duì)其進(jìn)行“解壓—修改文件—編譯—打包.jar文件”等操作,這一系列操作可以使用eclipse軟件實(shí)現(xiàn)。下面,以在ArduBlock教育版中添加文字Logo為例,做簡單介紹。
首先將“ardublock.jar”文件解壓,在解壓的文件夾中按照路徑“…com\ardublock\block”找到“ardublock_zh_CN.properties”文件,此文件是Arduino IDE語言選擇簡體中文時(shí)的版本,若英文版本則對(duì)應(yīng)的是“ardublock.properties”文件;用eclipse將此文件打開(如圖3),找到“ardublock.ui.version=”開頭的一行代碼,若沒有找到可手動(dòng)添加,將該條語句修改為“ardublock.ui.version=\u65E0\u9521\u5E02\u7B2C\u4E00\u4E2D\u5B66\u5B9A\u5236\u7248 2019.09.10”,其中“\u65E0\u9521\u5E02\u7B2C\u4E00\u4E2D\u5B66\u5B9A\u5236\u7248”為UTF-8編碼對(duì)應(yīng)的漢字“無錫市第一中學(xué)定制版”,修改之后保存(此處省略了編譯的過程)。
接下來是將整個(gè)文件夾再打包成“ardublock.jar”文件,有兩種方法:一種是通過jar軟件打包,另一種方法則相對(duì)簡單,使用壓縮軟件將原來的“ardublock.jar”文件打開,找到“ardublock_zh_CN.properties”文件對(duì)應(yīng)的位置,將修改過的文件替換掉此文件,再保存即可。此時(shí)重啟ArduBlock,就可以看到專屬的定制版了(如圖4),在軟件下方出現(xiàn)了“無錫市第一中學(xué)定制版2019.09.10”的字樣。
2.在虛谷號(hào)上安裝ArduBlock教育版
作為開源硬件,虛谷號(hào)為國內(nèi)中小學(xué)創(chuàng)客教育的開展提供了良好的平臺(tái),虛谷號(hào)自帶的IDE集成了ArduBlock,但并不是教育版,于是筆者嘗試在虛谷號(hào)上安裝ArduBlock教育版。
首先,虛谷號(hào)自帶的IDE版本為1.8以上,這個(gè)版本并不兼容ArduBlock教育版,需要到Arduino官網(wǎng)下載低版本,這里使用的是Linux ARM的1.6.10版本。接下來,將下載好的Arduino安裝包解壓到系統(tǒng)桌面,再利用LX終端進(jìn)入此文件夾(進(jìn)入文件夾的命令為cd Desktop/arduino-1.6.10)進(jìn)行安裝,如圖5所示。
安裝完成Arduino
IDE后,只需要將ArduBlock教育版的壓縮包“ardublock.jar”拷貝到對(duì)應(yīng)的“…tools\ArduBlockTool\tool”文件夾下即可使用教育版了,如圖6所示。
3.呼吸燈
呼吸燈是Arduino教學(xué)中常見的案例,在編寫程序時(shí),通常將呼吸的速度設(shè)定為固定的值,因此出現(xiàn)了如圖7所示的呼吸燈程序。其中,LED連接數(shù)字針腳3。
事實(shí)上,上述這種呼吸燈效果并不是很好,燈光強(qiáng)弱的過渡不夠柔和。觀察k值的變化很容易發(fā)現(xiàn)問題所在:LED的亮度變化是呈折線形的,如圖8(左)所示,這樣的數(shù)據(jù)變化當(dāng)然很難體現(xiàn)出“呼吸”這一張一弛的自然變化。正常的呼吸形態(tài)如圖8(右)所示,很像是一個(gè)正弦函數(shù)的波形,這樣就可以利用三角函數(shù)編寫呼吸燈的程序,如圖9所示。
4.自動(dòng)變速風(fēng)扇
自動(dòng)變速風(fēng)扇利用超聲波測(cè)量距離,根據(jù)距離使風(fēng)扇自動(dòng)調(diào)節(jié)速度,程序如圖10所示。其中,超聲波傳感器連接數(shù)字針腳8和9,風(fēng)扇連接數(shù)字針腳5。
● ArduBlock教育版在教學(xué)中的定位
在ArduBlock教育版開發(fā)時(shí),用于Arduino編程的圖形化軟件并不多,雖然現(xiàn)在已經(jīng)有許多圖形化軟件了,功能也更強(qiáng)大,但是筆者對(duì)ArduBlock教育版仍然情有獨(dú)鐘。在筆者看來,ArduBlock教育版并沒有過時(shí),在教育教學(xué)中仍然有其特殊的意義。
在教學(xué)中,ArduBlock教育版更多地是擔(dān)任編程入門的角色。值得注意的是,《普通高中信息技術(shù)新課標(biāo)(2017年版)》中新增了一個(gè)選擇性必修模塊——開源硬件項(xiàng)目設(shè)計(jì),Arduino正式進(jìn)入高中教材,可見其重要性。另外,由于ArduBlock教育版是基于Arduino IDE的插件,它可以將圖形化模塊直接與代碼對(duì)應(yīng)起來,如果學(xué)生在使用IDE編寫程序的時(shí)候遇到了困難,可以先通過ArduBlock編寫出相應(yīng)的程序或者部分程序段,生成代碼后,在此基礎(chǔ)上再進(jìn)行其他程序代碼的編寫。所以,對(duì)于沒有編程基礎(chǔ)的學(xué)生來說,ArduBlock教育版是一款值得推薦的平臺(tái),它不僅有助于快速入門Arduino,也能較容易地從圖形化編程過渡到代碼編程。