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