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

?

基于圖形化編程平臺(tái)Mixly的第三方庫(kù)的研究與實(shí)現(xiàn)

2021-09-16 10:53余鵬
科技資訊 2021年15期

摘? 要:在創(chuàng)客教育理念和人工智能共同的推動(dòng)下,中小學(xué)信息技術(shù)教學(xué)計(jì)劃逐漸增加編程素養(yǎng)的訓(xùn)練內(nèi)容。作為課程指導(dǎo)老師,如何與時(shí)俱進(jìn)地為課堂引進(jìn)新技術(shù)成了亟待解決的難題。該文主要研究圖形化編程軟件Mixly圖形塊轉(zhuǎn)換為C語(yǔ)言源碼的基本原理,以及通過(guò)分析官方庫(kù)文件,總結(jié)智能器件第三方庫(kù)五步開發(fā)步驟:第一,定義第三方庫(kù)及圖形塊的基本信息;第二,定義圖形塊的樣式;第三,可編程芯片驅(qū)動(dòng)程序設(shè)計(jì);第四,實(shí)現(xiàn)圖形塊轉(zhuǎn)換成C語(yǔ)言;第五,導(dǎo)入Mixly開發(fā)平臺(tái)。

關(guān)鍵詞:圖形化編程? Arduino? Mixly? 單片機(jī)教學(xué)

中圖分類號(hào):TP319? ? ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1672-3791(2021)05(c)-0043-05

Research and Implementation of the Third Party Library Based on the Graphical Programming Platform Mixly

YU Peng

(Guangxi Vocational & Technical Institute of Industry, Nanning, Guangxi Zhuang Autonomous Region, 530000? China)

Abstract: Under the joint promotion of maker education concept and artificial intelligence, the training content of programming literacy is gradually increased in the information technology teaching plan of primary and secondary schools. As a course instructor, how to keep pace with the times for the classroom to introduce new technology has become a problem to be solved. This paper mainly studies the basic principle of graphics programming software Mixly graphics block into C language source code, and summarizes the five steps of the third-party library development of intelligent devices by analyzing the official library files: First, the basic information of the third-party library and the graph block is defined; Secondly, the style of the graph block is defined; Third, the driver design of programmable chip; Fourth, realize the conversion of graph block into C language; Fifth, import the Mixly development platform.

Key Words: Graphic programming; Arduino; Mixly; MCU teaching

隨著新技術(shù)的發(fā)展和創(chuàng)客教育理念的普及,中小學(xué)信息技術(shù)課在國(guó)家政策的引導(dǎo)下逐漸增加編程素養(yǎng)的訓(xùn)練內(nèi)容。然而,微控制器傳統(tǒng)的編程模式還是基于國(guó)外微處理器開發(fā)平臺(tái)以及C語(yǔ)言,甚至匯編語(yǔ)言等程序設(shè)計(jì)語(yǔ)言,這對(duì)中高職層次以上的學(xué)生也是一道不低的門檻[1]。教育技術(shù)研究團(tuán)隊(duì)另辟途徑,以谷歌、麻省理工學(xué)院開源圖形化編程工具為內(nèi)核,二次開發(fā)適合國(guó)內(nèi)青少年思維習(xí)慣的圖形化編程軟件,這些軟件將一條條深?yuàn)W的指令、函數(shù)、器件功能變換成圖形塊,青少年創(chuàng)客用類似搭建樂高積木的方式,通過(guò)拖拽圖形塊實(shí)現(xiàn)創(chuàng)意設(shè)計(jì)。這種設(shè)計(jì)理念有效降低了技術(shù)門檻,節(jié)約了開發(fā)者學(xué)習(xí)時(shí)間,讓青少年創(chuàng)客可以更專注于創(chuàng)意設(shè)計(jì)的實(shí)現(xiàn)[2]。

目前,圖形化編程工具領(lǐng)域主要分為兩大流派,即麻省理工學(xué)院的Scratch和谷歌的Blockly。北京師范大學(xué)傅騫團(tuán)隊(duì)以Blockly為內(nèi)核引擎,開發(fā)了Mixly圖形化編程軟件,該軟件支持以Arduino為主控板的圖形化編程,特別適合沒有編程基礎(chǔ)的初學(xué)者;該軟件也支持廠商或者有一定編程基礎(chǔ)的開發(fā)者開發(fā)電子器件第三方庫(kù)文件,這項(xiàng)功能極大地拓展了Mixly器件的普適性[3],該文主要研究Mixly第三方庫(kù)的實(shí)現(xiàn)方案。

1? Mixly第三方庫(kù)的實(shí)現(xiàn)方案

Mixly的生態(tài)系統(tǒng)是傅騫開發(fā)團(tuán)隊(duì)最重要的設(shè)計(jì)理念。Mixly實(shí)現(xiàn)圖形化編程的基本原理是把圖形塊對(duì)應(yīng)的程序轉(zhuǎn)化成C語(yǔ)言,再通過(guò)Arduino IDE下載至Arduino微處理器。筆者通過(guò)分析官方庫(kù)文件,總結(jié)了五步開發(fā)過(guò)程:第一,定義第三方庫(kù)及圖形塊的基本信息;第二,定義圖形塊的樣式;第三,驅(qū)動(dòng)程序設(shè)計(jì);第四,實(shí)現(xiàn)圖形塊轉(zhuǎn)換成C語(yǔ)言;第五,導(dǎo)入Mixly。下面以四位一體數(shù)碼管顯示模塊為例,介紹該模塊第三方庫(kù)的開發(fā)過(guò)程。

1.1 定義第三方庫(kù)及圖形塊的基本信息

開發(fā)第三方庫(kù)一般從.xml文件開始,該文件主要提供第三方庫(kù)的基本信息、導(dǎo)入Mixly的文件及其路徑、圖形塊的框架及其屬性。其開發(fā)過(guò)程具體如下。

(1)找到Mixly安裝文件夾并在mylib里新建第三方庫(kù)文件夾demo,在此文件夾下新建tm1650.xml文件。

(2)在tm1650.xml文件里編輯本庫(kù)文件的基本信息、導(dǎo)入Mixly的文件及其路徑,如圖1所示。

圖1中1~6行為注釋,提示該次庫(kù)開發(fā)定義的4個(gè)文件,7、8行為導(dǎo)入Mixly的文件及其路徑。

(3)定義圖形塊的框架及其屬性見圖2。

圖2中category標(biāo)簽定義第三方庫(kù)的ID、名稱,該名稱顯示在Mixly界面的左邊欄。block標(biāo)簽定義圖形塊的框架及其屬性,其中block type標(biāo)注圖形塊的功能名稱;value標(biāo)簽定義圖形塊的參數(shù)節(jié)點(diǎn),此次開發(fā)的四位數(shù)碼管模塊使用tm1650接口芯片與主控板通信,根據(jù)tm1650的工作原理,該圖形塊定義5個(gè)參數(shù)節(jié)點(diǎn),第1個(gè)節(jié)點(diǎn)為tm1650的命令參數(shù),第2個(gè)節(jié)點(diǎn)為最高位數(shù)碼管顯示代碼,第3個(gè)節(jié)點(diǎn)為次高位數(shù)碼管顯示代碼,第4個(gè)節(jié)點(diǎn)為次低位數(shù)碼管顯示代碼,第5個(gè)節(jié)點(diǎn)為最低位數(shù)碼管顯示代碼,其中value name定義節(jié)點(diǎn)參數(shù)名,傳遞參數(shù)值。shadow type定義節(jié)點(diǎn)類型,常見的類型有pins_digital、pins_analog、pins_pwm、pins_interrupt、inout_highlow、math_number、text等,field name為節(jié)點(diǎn)數(shù)據(jù)名。

1.2 定義圖形塊的樣式

第三方庫(kù)文件夾demo里新建文件夾block,而后在block里新建tm1650.js文件,該文件主要定義圖形塊的顏色、樣式、文字、圖標(biāo)等信息,代碼具體見圖3。

圖3中Blockly.Blocks.demo.HUE定義圖形塊顏色,取值范圍0~360,建議取值區(qū)別于Mixly其他功能模塊;appendField(Blockly.LEDSIG+' tm1650')創(chuàng)建圖形塊名稱,語(yǔ)言變量Blockly.LEDSIG的內(nèi)容設(shè)置在demo\language\tm1650\zh-hans.js(如圖4所示),' tm1650'為圖形塊直接顯示的字符串;appendTitle(Blockly.COMMAND)設(shè)置節(jié)點(diǎn)標(biāo)題名稱,Blockly.COMMAND為語(yǔ)言變量;appendValueInput('COMMAND')創(chuàng)建輸入?yún)?shù);setCheck(Number),設(shè)置輸入類型檢查。

圖3中第22行到第24行設(shè)置圖形塊的樣式,setPreviousStatement()設(shè)置是否與上一圖形塊連接,可選參數(shù)true或者false;setNextStatement()設(shè)置是否可以與下一圖形塊連接,可選參數(shù)true或者false;setInputsInline()設(shè)置圖形塊為單行或多行顯示,可選參數(shù)true或者false;除了這三者,還可以選用setOutput(Boolean, type)等其他圖形塊樣式設(shè)置函數(shù)。

1.3 器件驅(qū)動(dòng)程序設(shè)計(jì)

Mixly圖形塊對(duì)應(yīng)的源代碼實(shí)質(zhì)上還是C語(yǔ)言編寫的符號(hào)程序。器件驅(qū)動(dòng)程序應(yīng)提前通過(guò)Mixly根目錄附帶的Arduino IDE編輯、下載、調(diào)試,器件初始化程序、功能函數(shù)調(diào)試完畢后[4],將驅(qū)動(dòng)程序的頭文件以及程序文件另存至demo\tm1650,具體見圖5、圖6。

根據(jù)Mixly運(yùn)行機(jī)制,符號(hào)源代碼圖形化的頭文件應(yīng)按圖8中規(guī)定格式編制;程序文件應(yīng)包含"Arduino.h",且每個(gè)函數(shù)名前按固定格式添加"demo_tm1650:: "字段[5]。

1.4 實(shí)現(xiàn)圖形塊轉(zhuǎn)換成C語(yǔ)言

圖形塊轉(zhuǎn)化成C語(yǔ)言源碼通過(guò)demo\generator\tm1650.js文件實(shí)現(xiàn),如圖7所示。

圖7中第5行設(shè)置程序包含的頭文件;第6行設(shè)置宏定義;第7行到第11行,獲取圖形塊的參數(shù)值并賦值給對(duì)應(yīng)的變量;第12行,調(diào)取函數(shù)tm1650ioinit(),并將其設(shè)置在void setup()集合;第13行,調(diào)取函數(shù)init_tm1650,并將其設(shè)置在void loop()集合,其中'+val+','+SIG3+','+SIG2+','+SIG1+','+SIG0+'實(shí)現(xiàn)將圖形塊獲取的參數(shù)值傳遞給被調(diào)用函數(shù)的實(shí)參[6]。

至此,四位一體數(shù)碼管顯示模塊第三方庫(kù)文件全部開發(fā)完畢,文件結(jié)構(gòu)如圖8所示。

1.5 Mixly導(dǎo)入第三方庫(kù)

單擊Mixly界面下方的“導(dǎo)入庫(kù)”標(biāo)簽,在彈出的對(duì)話框中選擇并打開第三方庫(kù)根目錄的tm1650.xml文件,圖形塊及圖形塊對(duì)應(yīng)的代碼如圖9所示。該項(xiàng)操作步驟也可以提前在第三步前進(jìn)行,便于查看第三方庫(kù)開發(fā)過(guò)程中編寫的代碼實(shí)現(xiàn)的效果。

2? 結(jié)語(yǔ)

在電子信息技術(shù)高速發(fā)展的時(shí)代背景下,Mixly憑借開源和開放的態(tài)度迅速建立良好的三方生態(tài)系統(tǒng)。Mixly圖形化編程有效降低了青少年應(yīng)用Arduino實(shí)現(xiàn)創(chuàng)意設(shè)計(jì)的技術(shù)門檻,讓電子創(chuàng)客更關(guān)注創(chuàng)意的實(shí)現(xiàn),更好地培養(yǎng)青少年創(chuàng)新思維能力。

參考文獻(xiàn)

[1] 蔡金蘋.單片機(jī)技術(shù)在智能電子產(chǎn)品中的應(yīng)用探討[J].科技創(chuàng)新導(dǎo)報(bào),2019,16(28):97-98.

[2] 葉險(xiǎn)峰,李錫華,施紅軍.基于Arduino平臺(tái)的電子電路設(shè)計(jì)實(shí)驗(yàn)教學(xué)實(shí)踐[J].實(shí)驗(yàn)科學(xué)與技術(shù),2020,18(2):68-72.

[3] 傅騫,解博超,鄭婭峰.基于圖形化工具的編程教學(xué)促進(jìn)初中生計(jì)算思維發(fā)展的實(shí)證研究[J].電化教育研究,2019,40(4):122-128.

[4] 余鵬.基于STM32嵌入式微處理器的艦船網(wǎng)絡(luò)通信系統(tǒng)設(shè)計(jì)[J].艦船科學(xué)技術(shù),2020,42(24):133-135.

[5] 褚曉輝,賈文,尚國(guó)力,等.語(yǔ)音控制的可變形機(jī)器人[J].科技創(chuàng)新導(dǎo)報(bào),2020,17(14):106-108,110.

[6] 余鵬.基于工程技術(shù)教育理念的電子應(yīng)用技術(shù)課程教學(xué)改革[J].現(xiàn)代職業(yè)教育,2020(1):74-75.

庆安县| 泾阳县| 保德县| 南平市| 永春县| 临夏县| 湖南省| 乡宁县| 醴陵市| 和政县| 阜南县| 嘉鱼县| 万宁市| 枣强县| 双鸭山市| 鱼台县| 法库县| 准格尔旗| 延津县| 铁力市| 出国| 咸丰县| 长泰县| 二连浩特市| 嘉善县| 石柱| 同德县| 叙永县| 静乐县| 水城县| 阿巴嘎旗| 松潘县| 绥中县| 阿坝县| 衡水市| 洞头县| 洛宁县| 肥东县| 库伦旗| 吴桥县| 易门县|