APP下载

基于软硬件集成的电子积木创意平台的设计

2015-01-29姚晓平

电子设计工程 2015年23期
关键词:图形化图标语句

姚晓平 ,王 强

(1.江苏联合职业技术学院 江苏 南京 211135;2.中科院计算所 北京 100190)

现代电子技术如智能仪表、实时控制、通信、汽车电子等等,对技术人员的要求越来越高,特别是软硬件集成能力。以上应用经常要用到单片机和可编程器件,这些器件的应用需要除了硬件知识还要具有软件技术。但要掌握软件编程是非常困难的。编程技术的繁琐、拼写容易出错、语法难于理解、而且不能实时反映现状。如果要与时俱进就要不断地在学习硬件和软件技术,时常让人顾此失彼。经过我们的探索,通过LinkBoy软硬件集成的图形化电子积木创意设计平台,实现了学习的简单化,设计的原创性。

1 图形化语言编程

众所周知,计算机只能识别布尔量T或F,用数字表示就是1或0。所谓计算机语言即是1或0构成的特定序列,这就是程序。但是人对这些序列,常常是无法理解和记忆,使人头痛。程序是由机器认识的语言描述的现实世界,而空间解析则是由程序代码表示的计算机应用。由于两者所对应问题及表达方式不同,使程序开发变的复杂。在工程中图形化设计分析方法如流程图、框图、表格、文字等方式,没有语法及语义定义,属于非形式化方法。与具有精确语法及语义定义的编程语言很难对应。主要因为编程语言只有“一维”特性,由一系列字符组成;而图形化设计分析,具有“二维”特性。要解决这一问题基本上有二种方法,一是将图形化设计分析转换成线性表示,使设计方法形式化;二是使编程语言具有“二 维”特性,简化与设计结果之间的对应。实际上,图形化编程语言就采用了这种编程方式。图形化的程序代码,包括图标和连线,图标是相当于文本语言中的编码,编码间的相互传输是由连线完成。图形化程序设计像一个由图标和连线构成的流程图或网络图,而不再是一个顺序指令文件,所以具有二维特征。图形化编程软件具有可视化界面,有封装的可视化控件。流程图或网络图描述的是系统的运行过程,并且每个部分在运行中会执行一定的操作;流程图中的图标可以设定参数或变量值,动态修改程序的结构和运行的流程。

设计工程师的习惯,要找到非常适合自己理解和观察的图形化代码。这些图形化代码本身隐含着需要计算机专业知识支持的概念或一个特定的编程语言的语法。这样就减少了程序设计的复杂性,提高了程序设计的效率。也就是说图形代码,将由控制和管理的计算机软件处理,对于非计算机专业人员非常重要。图形可以被视为一种视觉语言,可以直接对某些事物的表达。同时,因为图像的特征更加生动和形象,因此更容易记住和理解。用户可以自由增加不同类型的程序模块和图标,对其进行参数的调用,实现信息的传递,而这也是对象编程(OOP)的核心思想之一。用图标代替编码,编程者只要调用图标,按规定连线。就可实现编程,整个过程就象把设计思路写在纸上,在画程序框图,直观、简捷而有趣,可以立刻把你的创意变为现实。

2 图形化编程原理

目前,最普遍使用的编程范式还是冯诺依曼机的操作机制,对于图形化语言编程主要还是纯数据流的动态模型。由于图形化程序具有二维特性,在执行程序时,只有当模块的入口数据全部到达时,该模块才被执行,不能很好地与事件驱动的操作系统协调。因此系统的响应速度和运行效率不高。LinkBoy图形化编程平台是一个协作式调度内核、触发事件的面向对象模型,软件和硬件集成环境的电子元件形成的积木模块,利用定义的函数库和图形化语法,完成产品项目的调试和运行。

和其他编程语言不同,平台中的程序不是从“main()”开始,用户编程的过程,就是编写各个事件的响应代码,而每个事件都是由系统后台自动检测触发的,如红外线接收器,用家里的彩电遥控器对着它按下按键会触发 “红外线接收事件”;开关,当被人按下的时候就会触发“打开事件”等等。在后台有一个专用的嵌入式操作系统,既执行各个组件的底层驱动程序,又对各个组件触发的事件进行分发。用户只要做补全事件的处理代码即可[1-3]。

3 图形化编程特点

LinkBoy创意平台,是一个软硬件集成的开发环境。用户的设计界面非常简洁如图一所示,设计完成后程序代码、电路连接和机械布局等全部保存在记事本文件中,直接打开记事本文件可以看到类C语言等内容;用编程软件打开后会自动解析出图形,并且以图形化的方式显示,可以看到电路模块及电路连接关系等。只要你确定程序所要执行的任务,然后选择所需的图标就可以实现图形化程序设计。图标就象电子元件,连线板就向原理图中的元件间的连线,同时又是程序中数据流进、流出的路径。创意平台具有以下特点[4]:

1)它是一个交互式的窗体。多视图的主子程序结构,可以同时观察主程序与子程序,使得语言具有直观与可读性。以事件触发为模型的图形化语言,经过编译器的编译、可以生成计算机可执行的代码。

2)纯协作式调度内核。你写入的各个事件响应代码,都是相互独立的,由内部嵌入式操作系统进行调度。内置的OS是纯协作式的,不需要考虑该资源是否有人访问,不会发生冲突问题。

图1 LinkBoy用户设计界面Fig.1 LinkBoy User interface design

3)加入运算、数据组合、组件功能、控制结构、接口函数、模块封装等各方面的功能。可以完成条件转移、循环等复杂的数学计算。

4)支持硬件驱动程序,支持在线烧录。可以将新的程序通过串口或者USB口烧入到单片机芯片内,也可依需求自己修改各参数。与多种程序兼容。可简单地与传感器,各种电子元件:热敏电阻,遥控器,伺服马达等连接,实现你的创意。可以方便的使用鼠标、键盘等输入装置的互动。

5)对编程思想的培养和程序设计能力的提高有着极大的好处。利用创意平台,给学习程序设计带来了便利,不必要再面对繁琐的程序语句。通过接入插件,可以直接生成C程序代码,保存C程序文件,直观生动。图形化编程方式使得编程的可视化和交互性大大增强,达到了编程训练的重点放在专业应用问题的程序化思维方法和编程技能的训练的目的[5]。

4 图形化编程系统结构

4.1 编程系统结构

LinkBoy是集软件、电子、机械等部分为一体的平台,整体系统结构如图2所示。在用户界面设计好软件后,通过下载线将程序烧录到控制板上,并控制外围的电子插件,形成最终的产品。

图2 LinkBoy系统结构Fig.2 LinkBoy The structure of the system

4.2 图形化编译器

编译系统主要负责将图形化程序转换成,能被控制器识别的图形化指令代码,即类C语言代码。编译器将图形化程序翻译成图形化程序由二维空间的图片对象组成,图片对象之间按照一定的逻辑顺序连接。一个图片对象包括图片属性信息、语法属性信息和语义属性信息三种信息。其中图片属性信息定义图片固有的属性,如:空间位置、大小形状等;语法属性信息定义图片与图片之间的逻辑关系,例如选择、循环等控制结构的图片对象;语义属性信息定义图片对象的含义,例如获取采样值、设置传输关系等。编译过程为选择编译事件;从该事件所对应程序的类C代码中读取字符;产生对应的目标代码;保存、编译完成[4,6-8]。

4.3 图形化流程控制

流程控制包括条件判断和循环操作两种,如下流程图:

1)如果表达式,语句序列否则语句序列

2)反复执行(n次)(首先语句 A)(每次语句 B)(直到语句C)语句序列

图3 图形化流程图Fig.3 Graphical flow chart

对于“反复执行”流程而言,在“反复执行”后边可以有“n次”“首先”“每次”“直到”这几个辅助词。当计算机开始执行一个“反复执行”流程时,先执行“首先”语句,然后执行用户自己的语句列表部分,最后执行“每次”语句;然后开始判断“直到”语句的条件是否成立,如果成立了就会终止流程,走向C点;如果不成立再进一步判断“n次”语句,看看是否到了指定的次数,如果到了也是终止流程,走向C点;如果次数没到的话,会走向A点,开始一次新的循环。我们看到上边的流程图中有3个点:A、B和C。要想直接到达这3个点,我们可以用3个特别语句:“重做”“跳过”“终止”,这3个语句是写在图中的“用户语句列表”里的,当程序在“用户语句列表”中顺序执行时,只要遇到“重做”语句,就会立刻跳转到A点重新来;只要遇到 “跳过”语句就会跳过剩下的语句部分,直接到达B点;要是遇到“终止”语句,那就什么都不做,直接跳到C点,结束“反复执行”流程。

4.4 图形化编程模块

LinkBoy每个模块可以看作是硬件对应的图标,可以直接使用。每个电子模块被放入图形用户界面后,系统会自动导入相应的驱动,甚至每个模块的初始化将被系统自动执行,用户可以直接对各模块进行操作,可以拖动模块,改变电路连接关系;添加、删除模块。各电子模块按照功能可分为硬件模块类、软件模块类、数据类3种大类,每个大类中包括一系列具体模块,如输入类中包括单个按钮、双按钮、游戏手柄等;通信类包括串口通信组件、485通信组件、USB通信组件、无线通信组件等。使用连线将各模块连接,系统会将连接端口自动配置生成代码。

5 LinkBoy平台应用

使用LinkBoy电子积木创意平台编写、执行程序的流程:

1)编写图形化程序,保存在记事本;

2)通过USB接口将主控制板与计算计连接;

3)清除原有程序,上传新程序;

4)LinkBoy板按照程序工作。

下面是液晶屏计时显示的实例。

图4 液晶屏计时显示项目的记事本部分内容Fig.4 LCD timer display Notepad portions of content items

图5 液晶屏计时显示项目的图形化编程界面Fig.5 LCD timer display graphical programming interface project

图液晶屏计时显示项目实物图形显示界面Fig.6 LCD timer display project real graphic display interface

6 结论

通过对电子积木平台的运行机制的分析,提出了事件触发、协作式调度内核的模型,给出了开发图形化语言环境的一种实现方法。图形化程序的二维特性,为保证软件开发中分析、设计、编程各阶段信息的一致性提供了极好的解决契机。除了将图形化分析设计结果线性化、形式化外,还可将面向对象技术引入其中。通过代码的图形化,让学习者进入了工程思维方式,让编程就像拼图一样形象的表示出来,真正地让工程师专心进入到设计状态。

[1]王瑞荣.基于事件触发并发数据流模型的可视化编程语言研究[D].杭州:浙江大学,2003.

[2]徐成.基于事件驱动的机器人图形化编程系统研究[J].机械制造,2010(9):38-40.

[3]齐大彬.智能教育机器人图形化编程系统原理及实现[J].计算机应用与软件,2014,31(3):79-81.

[4]王强.LinkBoy创意展示平台简介[EB/OL].[2013-04-25]http://blog.sina.com.cn/s/blog_694e0ad70101acvj.html.

[5]张晓盼.引入图形化方法改革非计算机专业程序开发教学模式[J].计算机教育,2011(7):57-62.

[6]徐小良.图形化编程平台的结构设计及实现[J].计算机工程与应用,2001(4):4-8.

[7]谢宣松.图形化语言结构及运行模型 [J].吉林大学学报,2006,36(2):219-223.

[8]刘昱.一种面向图形化编程的软件设计方法[J].计算机科学,1997,24(1):73-76.

猜你喜欢

图形化图标语句
重点:语句衔接
Android手机上那些好看的第三方图标包
LKJ自动化测试系统图形化技术研究
图标
中国风图标设计
有意思的厕所图标
图形化地区电网无功优化软件开发与应用
网络图形化界面在高速公路机电设施养护管理系统中的应用
如何搞定语句衔接题
作文语句实录