国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

ArduBlock:物理世界與虛擬世界的橋梁

2013-12-29 00:00:00陳有志
中國信息技術(shù)教育 2013年12期

編者按:在科技發(fā)展日新月異的今天,信息技術(shù)教學(xué)已經(jīng)遠(yuǎn)離了開、關(guān)機(jī)還需要反復(fù)講解的時代,三歲孩童熟練地擺弄著iPad已非奇事。自策劃了“Scratch來了”這一專題之后,編輯深刻感受到研究程序語言的老師的可愛,他們的執(zhí)著、他們的探索,使得程序教學(xué)不再那么枯燥,煥發(fā)出勃勃生機(jī)。因此,雜志特別策劃了這一專欄,將陸續(xù)刊發(fā)一些程序教學(xué)領(lǐng)域有代表性的教學(xué)實踐。也期待更多老師投身到程序教學(xué)中去,通過自身的踐行,推動程序教學(xué)的復(fù)興。

我們知道Arduino這一軟硬結(jié)合的產(chǎn)品可以創(chuàng)意出很多作品。然而,類似JAVA、C語言的Processing/Wiring開發(fā)環(huán)境,依然會讓許多人糾結(jié)于代碼中,甚至望而卻步,以至于頭腦中有了創(chuàng)意卻無法得以落實,而ArduBlock就是致力于降低Arduino愛好者的學(xué)習(xí)難度,把高級的計算機(jī)語言和專業(yè)的語法,簡化為一個個模塊,堆砌在一起,最后和Arduino開發(fā)板互動,做出激動人心的效果。由于ArduBlock是積木的編程方式,很大程度上降低了學(xué)習(xí)者的門檻,不需要專業(yè)的知識,不需要工科的背景,只要你喜歡,就可以玩,尤其是適合親子互動教學(xué)及基礎(chǔ)教育階段的課堂教學(xué)。那么,就讓我們一起走進(jìn)ArduBlock吧。

● 什么是ArduBlock

Ardublock是在上海新車間由李大維和何琪辰于2011年起針對少兒學(xué)習(xí)物理運算而開發(fā)的圖形化程序開發(fā)環(huán)境,屬于Arduino官方編程環(huán)境的第三方軟件,目前必須依附于Arduino軟件運行,當(dāng)時新車間有許多小朋友對Arduino機(jī)器人有興趣,但是文本的類C語言的入門門檻很高,所以工作室試圖透過圖形化的拖拉開發(fā)方式大大降低這個門檻。這樣的方式會使編程的可視化和交互性加強(qiáng),編程門檻降低,即使沒有編程經(jīng)驗的人也可以嘗試給Arduino控制器編寫程序。

Ardublock一直是一個開源的項目,在網(wǎng)上通過社群的力量共同開發(fā),目前有17個語言版本。ArduBlock相關(guān)資源可以訪問官方網(wǎng)站http://blog.ardublock.com/zh/。圖1為2011年發(fā)布的1.0正式版,圖2是截至發(fā)稿時,最新的內(nèi)部測試版。

開發(fā)團(tuán)隊2013年重寫了全部代碼,新版本內(nèi)部模塊的分類更加合理,執(zhí)行效率更高,增加了一些子程序功能。

● ArduBlock的特色

1.JAVA插件

ArduBlock是使用JAVA語言開發(fā)的插件,配合Arduino的IDE使用,軟件包ardublock-all.jar下載后,需要將它拷貝到“Sketchbook location”所在目錄的相關(guān)文件夾里。那么如何確定“Sketchbook location”所在目錄呢?在Arduino的IDE下,打開菜單“File”→“Preferences”(如圖3)。

筆者電腦中的位置是D:\Backup\我的文檔\Arduino,找到該目錄后,我們需要先一級一級地在這個目錄下建“子目錄”,最終目錄結(jié)構(gòu)是這樣的:D:\Backup\我的文檔\Arduino\tools\ArduBlockTool\tool\,然后將ardublock-all.jar拷貝進(jìn)去。ArduBlock軟件安裝完畢后,在Arduino IDE的菜單“Tools”下找到ArduBlock,就可以啟動ArduBlock了。需要特別提醒的是,圖3中我們選擇語言為系統(tǒng)默認(rèn)時,你的ArduBlock將為中文。

2.積木搭建

我們來看這樣一個程序,它能實現(xiàn)開關(guān)燈的功能(如圖4),具體描述就是按一次按鈕,LED燈亮,再按一次按鈕,LED燈滅。在以往的編程中,我們寫代碼一般采用“與2取余法”或者“取反法”來實現(xiàn)切換。

觀察圖4程序編寫,如搭積木那么簡單,還可以對程序進(jìn)行批注,程序中的各個模塊都是從左側(cè)的模塊庫里“拖進(jìn)”編程界面的,然后用這些模塊積木進(jìn)行拼接,拼接對了,會發(fā)出一聲“咔”的清脆響聲。如果要刪去模塊,只需要將模塊“拖出”編程界面即可。

程序中“主程序”循環(huán)結(jié)構(gòu)模塊和“如果/否則”條件判斷模塊都是從“控制”分類中提取的,“非”、“設(shè)置數(shù)字變量”來自于“變量/常量”分類,而“設(shè)定數(shù)字針腳值”來自“引腳”分類,這樣的分類條理非常清晰,方便用戶查找到所需功能模塊。

3.高度集成

ArduBlock中集成了游戲搖桿、超聲波傳感器、舵機(jī)、SD卡寫入、盾板通訊、I2C讀寫等常見卻可以控制復(fù)雜設(shè)備編程的模塊,讓創(chuàng)客們能專注于創(chuàng)意思維而不為編程所累。

● ArduBlock典型范例

我們在認(rèn)識Arduino時已經(jīng)知道編寫相關(guān)程序需要Arduino控制板及一定的硬件支持,然后將編制好的程序?qū)懭肟刂瓢逯校瑥亩鴮崿F(xiàn)感知物理世界,控制物理世界,讓虛擬世界與物理世界聯(lián)通。然而,類C語言的編寫環(huán)境讓以方塊字為工具的我們需要花大量的時間記憶各種命令及關(guān)鍵詞,在達(dá)到熟練運用的路途上歷經(jīng)艱辛。

下面我們以智能過道燈為例講解如何用ArduBlock進(jìn)行程序編寫。

1.功能

樓梯間都裝有智能燈,當(dāng)有人走到樓梯口并發(fā)出聲音時,過道燈自動亮起。這里需要兩個條件同時滿足(環(huán)境亮度不足,有人走過而發(fā)出聲音)。

2.器材

要實現(xiàn)此功能,我們除了需要Arduino控制板外,還需要感知光線和聲音變化的器材,我們選擇光敏傳感器和聲音傳感器,當(dāng)然還需要一盞LED作為過道燈。

3.連線

為了降低操作難度,可以使用成品的3p杜邦線、控制板加盾板的結(jié)構(gòu),外加成品的傳感器電子積木,這樣就省去了繁雜的面包板加電阻及一堆連接線。

4.編程

制作完的過道燈,當(dāng)環(huán)境亮度低,光敏傳感器的值大于800,且環(huán)境聲音大,聲音傳感器的值大于700時,過道燈亮起;當(dāng)?shù)陀谏鲜鰯?shù)值時過道燈熄滅。通過傳感器使過道燈具有一定的智能控制。當(dāng)然在此基礎(chǔ)上,還可以引導(dǎo)學(xué)生進(jìn)一步探究,因為漸進(jìn)的學(xué)習(xí)可以激發(fā)學(xué)生進(jìn)行深入探究。

5.調(diào)試

我們先來看所有設(shè)備連接之后的效果,從圖5中可以看出,接線非常簡單,即使是小學(xué)生也不存在設(shè)備連接上的困難。設(shè)備連接完畢后,我們需要分三步完成我們的任務(wù):

(1)記錄三個信息:聲音傳感器接在模擬針腳0,光敏傳感器接在模擬針腳5,LED燈接在數(shù)字針腳1。

(2)獲取常態(tài)下光敏傳感器及聲音傳感器的值,當(dāng)?shù)陀诖藬?shù)值時LED應(yīng)該不亮起。通過串口監(jiān)視器可以獲取此數(shù)值,如圖6所示。

(3)編寫程序,有了第二步獲得的數(shù)值,具體編程就簡單多了,唯一需要注意的是過道燈的亮起是有一個延時的,完整程序代碼見圖7。

● ArduBlock課程設(shè)置建議

筆者在江蘇省南通市港閘區(qū)進(jìn)行實驗教學(xué)時發(fā)現(xiàn),對于小學(xué)高年級的學(xué)生,因為已經(jīng)有過Scratch的學(xué)習(xí)經(jīng)歷,所以對于ArduBlock的軟件界面及使用并不感到陌生,由于ArduBlock完全與硬件結(jié)合,所以學(xué)生不會遇到代碼語言教學(xué)所遇到的如打字速度的問題;而其積木式的搭建方式也不會出現(xiàn)語法拼寫錯誤的問題。因此使用ArduBlock開展Arduino學(xué)習(xí)時,需要更多地關(guān)注硬件的連接與控制及作品的創(chuàng)意。

在部分學(xué)校六年級進(jìn)行實驗教學(xué),一學(xué)期安排共計13課時,內(nèi)容涉及:認(rèn)識ArduBlock(1課時)、點亮LED燈(1課時)、自制溫度計(1課時)、夏日清涼帽(2課時)、床頭小夜燈(2課時)、智能樓道燈(2課時)、廚房小衛(wèi)士(2課時)、學(xué)生創(chuàng)意設(shè)計(2課時)。

結(jié)合我區(qū)開展ArduBlock教學(xué)時的一些經(jīng)驗教訓(xùn),對各地開展ArduBlock課程有如下幾點建議:①這部分內(nèi)容的教學(xué)對象可以考慮小學(xué)高年級及以上學(xué)生,以主題任務(wù)的方式開展教學(xué)。②硬件器材要以模塊化的電子積木為主,盡可能不使用面包板、電阻等基礎(chǔ)電子零部件。③學(xué)生的知識儲備包括軟硬兩方面,硬件需要學(xué)生了解一定的電路知識,認(rèn)識常見的傳感器模塊。軟件需要學(xué)生掌握Scratch軟件的使用,具有初步的編程思想。④教學(xué)過程中涉及編程環(huán)節(jié)時,可以嘗試讓學(xué)生比較與Scratch的異同點,從而尋找編程語言的內(nèi)在關(guān)系。⑤以學(xué)生身邊的案例入手,尋找貼近生活的實例,如交通信號燈、床頭小夜燈、廚房小衛(wèi)士等。

總之,ArduBlock是一門比較適合學(xué)校開展的基于Arduino的物聯(lián)網(wǎng)趣味編程的教學(xué)語言,關(guān)于ArduBlock的教學(xué)嘗試和課程研究,有助于學(xué)生直觀地感受到物理世界來自虛擬世界的控制過程與方法,進(jìn)而提高學(xué)生的創(chuàng)作力。

潜江市| 格尔木市| 瑞丽市| 商洛市| 伊宁市| 石阡县| 萍乡市| 青岛市| 定陶县| 丽水市| 运城市| 甘肃省| 高州市| 霍城县| 哈尔滨市| 化隆| 佛冈县| 元谋县| 萝北县| 乃东县| 石渠县| 潼南县| 新平| 全椒县| 吉林省| 汪清县| 海盐县| 辽宁省| 山东省| 奉化市| 山丹县| 宁南县| 根河市| 伊川县| 喀什市| 乐安县| 黄大仙区| 万载县| 田林县| 门头沟区| 茶陵县|