張淼林
摘 要針對(duì)信息化教育的需要,設(shè)計(jì)了ZLRobIde圖形化編程軟件,該軟件以易字為先的原則設(shè)計(jì),引入了流程圖、函數(shù)式編程等思想,軟件由圖形化引擎、代碼生成模塊、代碼下載模塊等構(gòu)成,具有簡(jiǎn)單易用、功能全面,非常適合在教學(xué)中使用和推廣。
【關(guān)鍵詞】圖形化編程 創(chuàng)客 信息化教育 機(jī)器人
1 什么是圖形化編程?
首先什么是圖形化編程,圖形化編程是通過(guò)圖形化進(jìn)行編程的一種編程方式,圖形化編程和代碼編程的本質(zhì)是一樣的。那又為什么會(huì)產(chǎn)生圖形化編程呢?是人類對(duì)圖形感知能力相對(duì)文字容易接受和理解而產(chǎn)生的,圖形化方式編程具有對(duì)專業(yè)知識(shí)要求低、適應(yīng)群體廣等特點(diǎn),讓編程變?yōu)槿巳怂艿氖虑椤?/p>
相對(duì)代碼編程,圖形化編程其實(shí)一直存在,工業(yè)領(lǐng)域有兩個(gè)代表分支,一個(gè)是NI(美國(guó)家儀器) 的labview編程軟件, 該軟件可以幫助設(shè)計(jì)者解決問(wèn)題、提高生產(chǎn)力,還有一個(gè)分支是PLC 的圖形化編程軟件,其中以梯形圖為代表,當(dāng)然后面又?jǐn)U展到了功能模塊圖等編程方式,它們都被標(biāo)準(zhǔn)化組織規(guī)范在IEC1131-3中。在教學(xué)教育領(lǐng)域的代表是google 的blockly,還有以其思想進(jìn)化而來(lái)的scratch等,scratch在blockly的基礎(chǔ)上 加強(qiáng)了對(duì)多媒體教學(xué),互動(dòng)教學(xué)等方面的開(kāi)發(fā),使其圖形化編程在創(chuàng)客教育 信息化教育中占了一個(gè)比較大的比例。
2 ZLRobIde圖形化編程軟件的設(shè)計(jì)思想
圖形化開(kāi)發(fā)軟件在輔助教學(xué),想法快速實(shí)現(xiàn)等方面都起著越來(lái)越重要的作用,我們吸收了現(xiàn)有的圖形化編程思想,再融入自有的一些新想法設(shè)計(jì)了ZLRobIde圖形化編程軟件。
ZLRobIde設(shè)計(jì)的核心理念是易字為先,融入了以下幾個(gè)基本思想:
2.1 流程圖編程思想
程序本身是一個(gè)流程思維的實(shí)現(xiàn),以流程圖作為我們的圖形化編程框架,核心流程一目了然,無(wú)需任何背景知識(shí),非常適合在教學(xué)使用。
2.2 函數(shù)式編程思想
函數(shù)代表一個(gè)通用方法的歸類,一般函數(shù)實(shí)現(xiàn)中有輸入和輸出,我們以此為基礎(chǔ),將其成為我們編程軟件的模塊基礎(chǔ)。
2.3 一物一塊的原則
在第二點(diǎn)的基礎(chǔ)上我們將實(shí)際物件也做了一個(gè)歸類,讓實(shí)際物件對(duì)應(yīng)一個(gè)圖形單元塊,實(shí)現(xiàn)一一對(duì)應(yīng)原裝,結(jié)合硬件獨(dú)立編碼,在ZLRobIde端我們實(shí)現(xiàn)了自動(dòng)識(shí)別模塊的能力,給使用者帶來(lái)更易用的編程環(huán)境。
3 ZLRobIde圖形化編程軟件技術(shù)實(shí)現(xiàn)過(guò)程
ZLRobIde圖形化編程環(huán)境,要達(dá)到圖形化程序編寫(xiě)、修改和下載等功能,整個(gè)構(gòu)架包括如下,樹(shù)狀功能模塊、圖形引擎模塊、圖形到中間代碼的轉(zhuǎn)換模塊、中間代碼編程環(huán)境、鏈接編譯模塊和下載模塊,其中圖形引擎部分為技術(shù)為難點(diǎn),這里擇重介紹下該部分的實(shí)現(xiàn)過(guò)程。
整個(gè)軟件建立在java 的 swing 圖形庫(kù)基礎(chǔ)上,按照MVC方式 配置窗口,Model負(fù)責(zé)數(shù)據(jù),View負(fù)責(zé)界面展示,Control負(fù)責(zé)M/V之間的協(xié)調(diào)。
基本拓?fù)湓徒Y(jié)構(gòu), Cell代表基本的圖形模塊,Line 表示模塊之間的連接,復(fù)雜ifelse/while/for循環(huán)模塊由Cell和Line組合構(gòu)成,Cell中有成員,通過(guò) List
鼠標(biāo)監(jiān)聽(tīng)要點(diǎn),通過(guò)重載對(duì)象class myGraphControl 的 paintComponent(Graphics g) 方法直接在控件上畫(huà)出根節(jié)點(diǎn)cell 實(shí)現(xiàn)類GraphHandler,在myGraphControl 上增加偵聽(tīng)addMouseListener和addMouseMotionListener偵聽(tīng)各種鼠標(biāo)事件,鼠標(biāo)操作的支持整個(gè)畫(huà)布的移動(dòng),通過(guò)記錄鼠標(biāo)的移動(dòng)差,來(lái)設(shè)置setViewPosition。
4 ZLRobIde圖形化編程軟件介紹
如圖1 為整個(gè)軟件的界面, 左側(cè)部分為模塊選擇區(qū),與實(shí)際軟硬件配合,根據(jù)實(shí)際硬件選擇性的顯示需要的模塊,中間為圖形化顯示編輯區(qū),右側(cè)為代碼顯示區(qū)顯示圖形化對(duì)應(yīng)生成的中間代碼,最右側(cè)為工具條 包含基本的新建、保存 、另存、系統(tǒng)狀態(tài)刷新、回退、下載和切換等操作。
模塊的放置,可以將左側(cè)的模塊拖放到 程序去的流程圖上,也可以通過(guò)點(diǎn)放方式放置,在模塊部分具備添加子程序塊的功能,中間模塊我們可以通過(guò)右鍵添加注釋,另外也支持模塊的折疊和復(fù)制等操作。
圖1中代碼程序部分 描述的是 蜂鳴器鳴響3次 ,每次鳴響時(shí)間40毫秒,每次間隔時(shí)間1秒的一個(gè)例子程序,其中的定值部分都是可以拖入(或者點(diǎn)放)的方式放入,相當(dāng)于函數(shù)的參數(shù)。
5 綜述
以上是對(duì)ZLRobIde圖形化編程軟件從設(shè)計(jì)思想、具體實(shí)現(xiàn)和到最終使用的基本描述,我們完成了該軟件的設(shè)計(jì),圖形化編程軟件針對(duì)教學(xué)、快速實(shí)現(xiàn)是非常理想的選擇,就復(fù)雜功能實(shí)現(xiàn)方面不如直接代碼實(shí)現(xiàn)來(lái)的方便,我們將繼續(xù)思考如何將圖形化編程軟件做的更加易用。
參考文獻(xiàn)
[1]ZLTech.http://www.chgckj.com/,2017.
[2]FIRST.http://www.usfirst.org/,2017.
[3]https://en.wikipedia.org/wiki/Science,_technology,_engineering,_and_mathematics,2017.
[4]LEGO.http://www.legoeducation.com,2016.
[5]Maja J Matari?c.Robotics education for all ages.In AAAI Spring Symposium on Accessible,Hands-on AI and Robotics Education,Palo Alto,CA,March 22-24 2004.
作者單位
浙江省杭州縱聯(lián)科技有限公司 浙江省杭州市 311100