• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

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

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

      ● 什么是ArduBlock

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

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

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

      2.積木搭建

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

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

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

      3.高度集成

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

      ● ArduBlock典型范例

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

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

      1.功能

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

      2.器材

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

      3.連線

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

      4.編程

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

      5.調(diào)試

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

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

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

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

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

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

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

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

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

      仪征市| 南乐县| 鹤山市| 田东县| 长兴县| 若羌县| 贺兰县| 交城县| 墨玉县| 水富县| 平舆县| 博乐市| 江安县| 巨野县| 芦山县| 江城| 宝清县| 冀州市| 滁州市| 龙山县| 临江市| 凤凰县| 郸城县| 社旗县| 镇雄县| 民丰县| 越西县| 秦安县| 玉溪市| 南丰县| 思茅市| 阜平县| 秦皇岛市| 丽水市| 罗甸县| 新丰县| 宁乡县| 栾川县| 桃源县| 肇源县| 克什克腾旗|