首页 文学文摘 时政新闻 科技科普 经济法律 健康生活 管理财经 教育教学 文化艺术 社科历史

ZLRobIde机器人图形化编程软件的设计

作者:张淼林 来源:电子技术与软件工程

摘 要针对信息化教育的需要,设计了ZLRobIde图形化编程软件,该软件以易字为先的原则设计,引入了流程图、函数式编程等思想,软件由图形化引擎、代码生成模块、代码下载模块等构成,具有简单易用、功能全面,非常适合在教学中使用和推广。

【关键词】图形化编程 创客 信息化教育 机器人

1 什么是图形化编程?

首先什么是图形化编程,图形化编程是通过图形化进行编程的一种编程方式,图形化编程和代码编程的本质是一样的。那又为什么会产生图形化编程呢?是人类对图形感知能力相对文字容易接受和理解而产生的,图形化方式编程具有对专业知识要求低、适应群体广等特点,让编程变为人人所能的事情。

相对代码编程,图形化编程其实一直存在,工业领域有两个代表分支,一个是NI(美国家仪器) 的labview编程软件, 该软件可以帮助设计者解决问题、提高生产力,还有一个分支是PLC 的图形化编程软件,其中以梯形图为代表,当然后面又扩展到了功能模块图等编程方式,它们都被标准化组织规范在IEC1131-3中。在教学教育领域的代表是google 的blockly,还有以其思想进化而来的scratch等,scratch在blockly的基础上 加强了对多媒体教学,互动教学等方面的开发,使其图形化编程在创客教育 信息化教育中占了一个比较大的比例。

2 ZLRobIde图形化编程软件的设计思想

图形化开发软件在辅助教学,想法快速实现等方面都起着越来越重要的作用,我们吸收了现有的图形化编程思想,再融入自有的一些新想法设计了ZLRobIde图形化编程软件。

ZLRobIde設计的核心理念是易字为先,融入了以下几个基本思想:

2.1 流程图编程思想

程序本身是一个流程思维的实现,以流程图作为我们的图形化编程框架,核心流程一目了然,无需任何背景知识,非常适合在教学使用。

2.2 函数式编程思想

函数代表一个通用方法的归类,一般函数实现中有输入和输出,我们以此为基础,将其成为我们编程软件的模块基础。

2.3 一物一块的原则

在第二点的基础上我们将实际物件也做了一个归类,让实际物件对应一个图形单元块,实现一一对应原装,结合硬件独立编码,在ZLRobIde端我们实现了自动识别模块的能力,给使用者带来更易用的编程环境。

3 ZLRobIde图形化编程软件技术实现过程

ZLRobIde图形化编程环境,要达到图形化程序编写、修改和下载等功能,整个构架包括如下,树状功能模块、图形引擎模块、图形到中间代码的转换模块、中间代码编程环境、链接编译模块和下载模块,其中图形引擎部分为技术为难点,这里择重介绍下该部分的实现过程。

整个软件建立在java 的 swing 图形库基础上,按照MVC方式 配置窗口,Model负责数据,View负责界面展示,Control负责M/V之间的协调。

基本拓扑元件和结构, Cell代表基本的图形模块,Line 表示模块之间的连接,复杂ifelse/while/for循环模块由Cell和Line组合构成,Cell中有成员,通过 List构成树状结构。

鼠标监听要点,通过重载对象class myGraphControl 的 paintComponent(Graphics g) 方法直接在控件上画出根节点cell 实现类GraphHandler,在myGraphControl 上增加侦听addMouseListener和addMouseMotionListener侦听各种鼠标事件,鼠标操作的支持整个画布的移动,通过记录鼠标的移动差,来设置setViewPosition。

4 ZLRobIde图形化编程软件介绍

如图1 为整个软件的界面, 左侧部分为模块选择区,与实际软硬件配合,根据实际硬件选择性的显示需要的模块,中间为图形化显示编辑区,右侧为代码显示区显示图形化对应生成的中间代码,最右侧为工具条 包含基本的新建、保存 、另存、系统状态刷新、回退、下载和切换等操作。

模块的放置,可以将左侧的模块拖放到 程序去的流程图上,也可以通过点放方式放置,在模块部分具备添加子程序块的功能,中间模块我们可以通过右键添加注释,另外也支持模块的折叠和复制等操作。

图1中代码程序部分 描述的是 蜂鸣器鸣响3次 ,每次鸣响时间40毫秒,每次间隔时间1秒的一个例子程序,其中的定值部分都是可以拖入(或者点放)的方式放入,相当于函数的参数。

5 综述

以上是对ZLRobIde图形化编程软件从设计思想、具体实现和到最终使用的基本描述,我们完成了该软件的设计,图形化编程软件针对教学、快速实现是非常理想的选择,就复杂功能实现方面不如直接代码实现来的方便,我们将继续思考如何将图形化编程软件做的更加易用。

参考文献

[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.

作者单位

浙江省杭州纵联科技有限公司 浙江省杭州市 311100