• 
    

    
    

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

      ?

      樂(lè)高M(jìn)INDSTORMSEV3軟件程序模塊開(kāi)發(fā)

      2018-11-19 04:42李潤(rùn)成
      中國(guó)信息技術(shù)教育 2018年20期
      關(guān)鍵詞:樂(lè)高創(chuàng)客教育

      李潤(rùn)成

      摘要:樂(lè)高M(jìn)INDSTORMS EV3機(jī)器人產(chǎn)品被廣泛用于開(kāi)展STEAM和創(chuàng)客教育,然而該產(chǎn)品的電子模塊數(shù)量相對(duì)較少,目前雖有教育者制作新的電子模塊,但因?yàn)闆](méi)有對(duì)應(yīng)的程序模塊,難以用于教學(xué)。因此,本文首先介紹了EV3編程軟件和開(kāi)發(fā)軟件,然后剖析程序模塊的組成內(nèi)容,最后對(duì)每一要素給出具體實(shí)現(xiàn)方法。

      關(guān)鍵詞:樂(lè)高;EV3;程序模塊;創(chuàng)客教育

      中圖分類號(hào):G40-057 文獻(xiàn)標(biāo)識(shí)碼:B 論文編號(hào):1674-2117(2018)20-0073-04

      前言

      樂(lè)高的MINDSTORMS EV3機(jī)器人自2013年上市后大受歡迎,其采用官方提供的直觀的圖形化編程語(yǔ)言,大大降低了使用者的門檻。EV3機(jī)器人相對(duì)DFRobot、Makeblock等其他機(jī)器人教育產(chǎn)品而言,其成熟的積木搭建系統(tǒng)能輕松制作各種復(fù)雜機(jī)械結(jié)構(gòu),然而它的傳感器等電子模塊種類少,不利于更全面的教學(xué)應(yīng)用。筆者通過(guò)剖析MINDSTORMS EV3編程軟件程序模塊研究其內(nèi)容,總結(jié)出該軟件程序模塊的開(kāi)發(fā)制作方法,希望能為廣大教育工作者針對(duì)EV3機(jī)器人定制的電子硬件模塊進(jìn)行程序模塊開(kāi)發(fā)提供借鑒。

      MINDSTORMS EV3軟件簡(jiǎn)介

      MINDSTORMS EV3軟件是圖形化的編程環(huán)境,包含EV3機(jī)器人程序需要的所有工具,該軟件基于National Instruments的WebUI Builder開(kāi)發(fā),軟件界面如圖1所示。EV3軟件中含有多類程序模塊,這些模塊有的是控制電機(jī)的,有的是采集傳感器數(shù)據(jù)的,還有一些是有其他用途的。編程的過(guò)程就是在屏幕上拖拽模塊,把它們相互連接起來(lái),再更改模塊的設(shè)置。[1]該軟件還具有很好的擴(kuò)展性,提供了程序模塊導(dǎo)入工具,通過(guò)該工具可以管理程序模塊和導(dǎo)入模塊。軟件中的每一個(gè)圖形模塊內(nèi)部有對(duì)應(yīng)的VIX文件,下載運(yùn)行程序時(shí),程序模塊先轉(zhuǎn)化成內(nèi)部的VIX文件再運(yùn)行。

      MINDSTORMS EV3 DEVELOPER軟件簡(jiǎn)介

      MINDSTORMS EV3 DEVELOPER是樂(lè)高專門為MINDSTORMS EV3開(kāi)發(fā)者進(jìn)行軟件模塊開(kāi)發(fā)而提供的開(kāi)發(fā)環(huán)境。MINDSTORMS EV3 DEVELOPER相對(duì)MINDSTORMS EV3具有更多高級(jí)功能,如程序模塊內(nèi)部的VIX文件編輯和制作。VIX文件采用圖形編程語(yǔ)言完成,把各個(gè)圖形塊按照邏輯連接起來(lái)實(shí)現(xiàn)各種運(yùn)算和功能。

      MINDSTORMS EV3程序模塊剖析

      EV3程序模塊導(dǎo)入到軟件前是以文件形式存在的,文件后綴為.ev3b,把后綴改為.zip解壓后得到根目錄文件夾,文件夾內(nèi)包含help、images、VIs、strings四個(gè)子文件夾和blocks.xml文件。help文件夾存放各國(guó)語(yǔ)言命名的文件夾和對(duì)應(yīng)的HTML文件,用于在軟件查看幫助時(shí)顯示不同語(yǔ)言的幫助內(nèi)容。Images文件夾存放程序模塊各種模式和在不同區(qū)域顯示的圖像文件。strings文件夾內(nèi)有各國(guó)語(yǔ)言命名的文件夾和對(duì)應(yīng)的blocks.xml文件,該文件用于定義用戶操作程序模塊時(shí)查看模塊的上下文幫助及模塊上的文字說(shuō)明。VIs文件夾存放程序模塊不同模式下對(duì)應(yīng)的VIX文件,即模塊對(duì)應(yīng)的程序內(nèi)容。根目錄blocks.xml用于定義程序模塊的內(nèi)部名稱、程序模塊的參數(shù)屬性、模塊不同模式的顯示圖片內(nèi)容以及各模塊對(duì)應(yīng)的VIX文件。

      MINDSTORMS EV3程序模塊制作

      對(duì)于一個(gè)新的程序模塊,help文件夾內(nèi)的幫助內(nèi)容并不是必須的,它不影響程序模塊的正常使用功能,本文僅對(duì)根目錄blocks.xml文件,images、VIs、strings文件夾內(nèi)容進(jìn)行介紹。

      1.根目錄blocks.xml

      根目錄blocks.xml定義了模塊的類別(執(zhí)行器類、傳感器類等)、模塊的功能模式以及不同模式對(duì)應(yīng)的VIX程序文件。模塊根據(jù)功能不同分為測(cè)量模式、比較模式等,具體什么功能模式由開(kāi)發(fā)者自己定義。該文件還定義了不同模式下的顯示圖像和VIX中的參數(shù)的類型、范圍等。以一個(gè)新開(kāi)發(fā)的觸摸開(kāi)關(guān)程序模塊為例,該模塊的根目錄blocks.xml內(nèi)容如圖2所示。

      (1)EditorDefinitions根元素。該元素是MINDSTORM EV3程序模塊根目錄blocks.xml文件的規(guī)范,文件必須含有該元素作為開(kāi)頭。

      (2)PolyGroups和PolyGroup元素。PolyGroups元素定義程序模塊組的內(nèi)容。ModuleName屬性定義程序模塊組名稱,ModuleVersion屬性定義程序模塊組版本。PolyGroups元素內(nèi)可以包含多個(gè)PolyGroup元素,每個(gè)PolyGroup對(duì)應(yīng)一個(gè)程序模塊,若有多個(gè)新的程序模塊同時(shí)創(chuàng)建,可以把它們都放在一個(gè)PolyGroups定義。若block.xml文件內(nèi)容有嚴(yán)重錯(cuò)誤則在使用模塊導(dǎo)入向?qū)Чぞ邔?dǎo)入時(shí)無(wú)法顯示任何內(nèi)容。PolyGroup元素設(shè)定每個(gè)程序模塊的內(nèi)容。Name屬性用于定義程序模塊組下的單個(gè)程序模塊名稱,該名稱可以和PolyGroups的ModuleName屬性不一致。BlockFamily屬性定義模塊屬于傳感器類、執(zhí)行器類或其他類別。定義屬性時(shí)應(yīng)根據(jù)模塊的功能選擇不同的類別,程序模塊會(huì)出現(xiàn)在對(duì)應(yīng)類別選擇面板中。

      (3)Parameter元素。該元素用于設(shè)定程序模塊不同模式下VIX文件公共參數(shù)的屬性,屬性包含其數(shù)據(jù)類型、默認(rèn)值、數(shù)據(jù)范圍和方向等。本文例子中的觸摸開(kāi)關(guān)模塊有三個(gè)公共參數(shù),分別為Port、State和Result。Port對(duì)應(yīng)的CompilerDirectives、Direction、DefaultValue屬性分別定義了端口是輸入口、方向?yàn)檩斎胍约澳J(rèn)值是1.3。State參數(shù)對(duì)應(yīng)的Identification、Direction、DataType屬性分別定義了該參數(shù)顯示的圖像、數(shù)據(jù)方向?yàn)檩敵鲆约邦愋蜑椴紶栃?,其設(shè)定效果如圖3所示。Result參數(shù)的定義方法和前兩個(gè)參數(shù)一樣。

      (4)Hardware元素。該部分內(nèi)容只適用于傳感器功能的程序模塊,其他類別的程序模塊不需要該部分內(nèi)容。EV3PlotColor元素為軟件數(shù)據(jù)記錄模式下線條的顯示顏色。EV3AutoID元素用于軟件對(duì)傳感器種類的識(shí)別,第三方開(kāi)發(fā)的傳感器模塊可以使用-1和官方的傳感器進(jìn)行區(qū)分,由于舉例的觸摸開(kāi)關(guān)模塊為傳感器,因此Direction元素指定方向?yàn)檩斎?。DefaultPort元素確定模塊拖拽到編程界面時(shí)的默認(rèn)端口,1.3表示為3號(hào)端口。

      (5)Block元素。該元素用于定義程序模塊每個(gè)模式對(duì)應(yīng)的VIX文件、模式特有的參數(shù)和在一些參數(shù)改變時(shí)顯示的圖像。對(duì)于一個(gè)傳感器模塊,通??梢栽O(shè)定為三種模式,即測(cè)量模式、比較模式和更改模式,對(duì)于每個(gè)模式最重要的內(nèi)容就是內(nèi)部的VIX文件。

      (6)Mode元素。該元素定義程序塊模式,注意該模式名稱與images文件夾中對(duì)應(yīng)的模式顯示圖像關(guān)聯(lián),否則對(duì)應(yīng)模式的圖像以及模塊的上下文幫助不顯示。Reference Type屬性定義VIX使用的函數(shù)庫(kù),對(duì)于第三方程序模塊函數(shù)庫(kù)為“VIlib”,Name屬性選擇對(duì)應(yīng)模式的VIX。ParameterReference元素列出VIX使用的實(shí)際參數(shù)名稱,這些參數(shù)必須已經(jīng)在PolyGroup中進(jìn)行了定義。PalttteInfo元素設(shè)定默認(rèn)模式和模塊在選擇面板中的位置,含有該內(nèi)容的模式會(huì)成為默認(rèn)模式,即程序模塊拖拽到界面時(shí)顯示的模式。Weight屬性確定模塊出現(xiàn)在選擇面板從左到右的位置。BlockInterface元素內(nèi)容可設(shè)為Measure、Compare、Change三者之一,設(shè)定值與模塊的模式對(duì)應(yīng)一致。HardwareModeInfo元素定義傳感器在數(shù)據(jù)記錄模式下的內(nèi)容。Name屬性設(shè)定為所需名稱,ID屬性標(biāo)記傳感器的類型,如果傳感器模塊為數(shù)字型的,可設(shè)為0,Range為數(shù)據(jù)范圍,數(shù)字型傳感器設(shè)為0,1。Unit為單位,數(shù)字型傳感器無(wú)單位,設(shè)為空。上述為測(cè)量模式的Block元素內(nèi)容介紹,另外的比較和更改模式的定義方法和測(cè)量模式一樣,只是它們不需定義HardwareModeInfo元素的相關(guān)內(nèi)容。

      2.images文件夾

      Images文件夾存放程序模塊的圖像文件,以新建的觸摸開(kāi)關(guān)模塊為例,其圖像文件如圖4所示。對(duì)于新程序模塊,需要設(shè)定其在選擇面板、編程面板和在端口查看硬件列表的顯示圖像。圖像的名稱要根據(jù)程序模塊的模式,以及所在面板按照一定命名方式設(shè)置,否則圖像不能顯示。

      (1)選擇面板圖像。命名方式為PolyGroup__Palette.png,圖像大小為20×20。

      (2)編程面板圖像。命名方式為PolyGroup__Diagram.png,圖像大小為34×34。

      (3)程序模塊模式圖像。命名方式為PolyGroup__Mode__Diagram.png,圖像大小為38×22。如果需要鼠標(biāo)移動(dòng)到模塊模式的圖像上方產(chǎn)生新的圖像,其命名方式為PolyGroup__Mode__Diagram_MouseOver.png。

      (4)端口查看硬件圖像。命名方式為PolyGroup__Category.png。

      3.VIs文件夾

      VIs文件夾存放程序模塊不同模式下的VIX文件。VIs目錄中有PBR和NXT兩個(gè)文件夾,一般只需在PBR文件夾中放入VIX文件即可,NXT文件夾可為空。觸摸開(kāi)關(guān)程序模塊測(cè)量模式、比較模式和更改模式三種模式的VIX文件分別為TouchSValue.vix、TouchSCompare.vix和TouchSChange.vix。雙擊程序模塊便進(jìn)入程序模塊的VIX編輯界面。VIX文件的制作通過(guò)圖形編程語(yǔ)言完成,該語(yǔ)言和LabVIEW使用的圖形化編程語(yǔ)言一樣。測(cè)量模式TouchSValue.vix內(nèi)容如圖5所示。PBrickConvertInput和PBrickInputRead為軟件內(nèi)部庫(kù)函數(shù),直接調(diào)用即可,軟件自帶的庫(kù)函數(shù)都會(huì)以帶問(wèn)號(hào)的圖形塊顯示。

      4.strings文件夾

      Strings文件夾中放有不同國(guó)家語(yǔ)言文件夾,其中有對(duì)應(yīng)的blocks.xml文件,該blocks.xml與根目錄的blocks.xml非同一文件,該文件主要提供程序模塊的可見(jiàn)名稱、上下文幫助和幫助URL,簡(jiǎn)體中文的blocks.xml應(yīng)放在命名為zh-Hans的文件夾。以新創(chuàng)建的觸摸開(kāi)關(guān)程序模塊為例,其內(nèi)容如圖6所示。該文件內(nèi)容主要對(duì)PolyGroups、PolyGroup、Parameter和Block這四元素進(jìn)行設(shè)定。注意此處Parameter和Block的內(nèi)容是分別對(duì)多個(gè)程序模塊的參數(shù)和多個(gè)模式進(jìn)行定義,它們的設(shè)定方法都相同,因此僅對(duì)其中一個(gè)Parameter元素和Block元素進(jìn)行介紹。

      (1)EditorStrings根元素。與根目錄blocks.xml文件相似,該元素是MINDSTORM EV3程序模塊strings中block.xml開(kāi)發(fā)的規(guī)范格式,文件必須含有該元素作為開(kāi)頭。

      (2)PolyGroups元素。ModuleName屬性要與根目錄的blocks.xml中的PolyGroups ModuleName屬性一致,否則兩個(gè)block.xml文件內(nèi)容無(wú)法關(guān)聯(lián),程序模塊文字內(nèi)容無(wú)法顯示。

      (3)PolyGroup元素。Name屬性也需與根目錄的blocks.xml中的PolyGroup元素Name屬性一致,DisplayName和DisplayNamePrefix均設(shè)為顯示的名稱。

      (4)Parameter元素。該部分定義參數(shù)的顯示名稱和描述,Name屬性設(shè)為參數(shù)名,DisplayName為參數(shù)顯示的文字,Description為參數(shù)的描述內(nèi)容,設(shè)定不同參數(shù)時(shí)只需修改對(duì)應(yīng)的文字內(nèi)容。

      (5)Block元素。該元素的Mode屬性要和根目錄的blocks.xml中的Mode屬性一致,DisplayName為模式顯示的文字,Description為模式的描述,對(duì)于不同模式,只需修改對(duì)應(yīng)的文字描述內(nèi)容。

      結(jié)語(yǔ)

      MINDSTORMS EV3機(jī)器人是一款優(yōu)秀的教育產(chǎn)品,其直觀易用的編程軟件界面和成熟的積木結(jié)構(gòu)搭建體系深受大家喜愛(ài),但是它的局限性在于電子模塊數(shù)量不足和對(duì)應(yīng)程序模塊缺乏。廣大教育工作者可弘揚(yáng)創(chuàng)客精神,開(kāi)發(fā)新的電子硬件模塊以及相應(yīng)的程序模塊,進(jìn)一步發(fā)掘它的潛力和豐富它的教學(xué)內(nèi)容,使學(xué)生創(chuàng)作出具有更多新功能的EV3機(jī)器人。

      參考文獻(xiàn):

      [1](美)Terry Griffin.樂(lè)高機(jī)器人EV3程序設(shè)計(jì)藝術(shù)[M].韋皓文,等,譯.北京:人民郵電出版社,2016.

      [2]潘一佩.面向教育機(jī)器人的圖形化編程模塊設(shè)計(jì)及優(yōu)化[D].廣州:華南理工大學(xué),2017.

      猜你喜歡
      樂(lè)高創(chuàng)客教育
      Building Chinese sites out of Lego 樂(lè)高積木中國(guó)風(fēng)
      樂(lè)高花園
      樂(lè)高蝙蝠俠大電影
      Making Good Choices
      農(nóng)村學(xué)校創(chuàng)客教育發(fā)展之路
      創(chuàng)客教育
      淺談創(chuàng)客教育下的小學(xué)信息技術(shù)教學(xué)實(shí)踐研究
      創(chuàng)客教育中教師創(chuàng)新實(shí)踐教學(xué)的應(yīng)對(duì)和改進(jìn)
      金工實(shí)習(xí)教育對(duì)工科院校創(chuàng)客教育影響分析
      樂(lè)高世界
      东阳市| 博白县| 丹寨县| 华安县| 敖汉旗| 呼和浩特市| 阜宁县| 沈阳市| 淳化县| 广汉市| 醴陵市| 孟连| 东乌珠穆沁旗| 龙口市| 包头市| 湘西| 宣汉县| 锦州市| 南城县| 廊坊市| 开远市| 安塞县| 京山县| 普兰店市| 河西区| 阳西县| 巴东县| 鲜城| 桃园市| 乐昌市| 永安市| 江华| 乐平市| 新民市| 博罗县| 乐亭县| 隆昌县| 天峻县| 凉山| 怀安县| 武冈市|