CN106339216A - 一种基于事件处理的实物编程工具 - Google Patents
一种基于事件处理的实物编程工具 Download PDFInfo
- Publication number
- CN106339216A CN106339216A CN201610686180.2A CN201610686180A CN106339216A CN 106339216 A CN106339216 A CN 106339216A CN 201610686180 A CN201610686180 A CN 201610686180A CN 106339216 A CN106339216 A CN 106339216A
- Authority
- CN
- China
- Prior art keywords
- block
- programming
- event
- material object
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
Abstract
本发明公开了一种基于事件处理的实物编程工具,包括实物编程处理和输出单元和若干实物编程块;其特征在于,所述实物编程块包括:能量块、事件编程块和行为编程块;其中,能量块作为利用实物编程块进行一段程序序列编程的初始实物编程块,确认一段程序序列的开始并在结束该段程序序列的编程时向该实物编程处理和输出单元发出信息保存该段程序序列对应的程序;每一段程序序列依次由能量块、事件编程块、行为编程块构成。本发明降低了编程系统的成本和需要的编程块数量。
Description
技术领域
本发明属于人机交互领域,具体涉及到一种基于事件处理的实物编程工具。
背景技术
现今的信息技术高速发展,人们的日常生活,包括工作和娱乐都已经离不开计算设备的使用。在这样的环境下,儿童也有机会较早的接触到计算设备,特别是电脑、平板和手机。并且,计算设备不仅可以作为儿童娱乐的工具,也可以用来进行儿童教育。让儿童学习计算机编程也越来越受到学校、家长以及儿童教育领域人员的重视。
让儿童学学习编程不仅对儿童的数学和科学知识方面有帮助,而且对语言、创造力和社交能力等方面的培养都有着积极的作用。另一方面,实物交互技术旨在利用人们与真实的物理世界互动形成的技能直接操纵和控制数字信息。通过实物交互,儿童可以直接通过操作与计算设备进行交互,对于儿童学习编程而言,可以减少复杂的语法规则对儿童造成的障碍,而且简化了编程的过程使得程序的结构更加直观、具体。因此,实物编程为儿童学习计算机编程提供了一条可行的途径。
专利一种便携式实物编程系统(申请号:2013104147570)公开了一种便携式的实物编程系统,其输入和输出均采用实物的方式,完全独立于电脑。但是,其实物编程块是简单的线性连接方式。专利一种基于多语义的实物编程系统(申请号:2015106958930)公开了一种具有多语义和二维连接特性的实物编程工具,在前者基础上丰富了编程概念,支持了“与”、“或”、“IF”分支编程块,每种编程通过三轴加速度计可以代表多种语义,并且可以支持二维连接的方式。以上专利均采用了输入和输出完全实物化的方式,简化了儿童的操作和编程过程。但是,以上专利有以下不足之处:编程需要的实物编程块数量较多且不能复用。
发明内容
针对上述问题,本发明提出一种基于事件处理的实物编程工具。该编程工具包括自制的机器人小车和实物编程块(见专利一种便携式实物编程系统,申请号:2013104147570),本发明主要向用户传达事件处理的编程概念;此外,该实物编程工具支持将程序分段保存,以此来达到将编程块复用的目的。机器人小车可以给用户提供实时声音反馈,方便用户的编程输入。
本发明中每个任务分为两个阶段,编程阶段和运行阶段。编程阶段,摆放实物编程块构建事件处理的规则,机器人小车记录编写的规则并保存。运行阶段,机器人小车根据保存的规则,在遇到相应的触发条件时,做出规则内指定的运行反馈。
本发明的系统框架如图1所示,包括交互层、内部处理层、数据资源层。这三者的关系是:交互层是用户与系统交互的用户界面,其中交互输入的数据会通过内部处理层中的传感器、开关、无线模块进行采集。数据采集之后发送给内部处理层的实物编程处理模块和数据采集和处理模块根据数据资源层中的数据进行处理,最后在交互层进行信息输出和反馈。
本发明的技术方案为:
一种基于事件处理的实物编程工具,其包括实物编程处理和输出单元—机器人小车以及若干实物编程块。其中,机器人小车包括无线处理模块、实物编程处理模块、传感器模块、数据采集和处理模块、输出模块、运行状态控制开关等组成。每个实物编程块包含一个单片机处理器、无线通信模块、三轴加速度计、红外发射及接收模块。其中,只有实物编程模块中的红外发射模块处于开启状态,用于激活后续实物编程块的红外发射模块,以此来防止未加入编程队列的实物编程块的红外发射模块处于开启状态,避免其无线发射模块向机器人小车传输非正常信息。
1)机器人小车中的无线处理模块用于接收实物编程块发送的无线信息,识别编程块当前的语义,并根据收到的无线信息对编程块语义进行排序,得到一实物语义序列;本方法中无线处理模块根据实物编程块发送的前一个实物编程块的信息和自身信息对编程块语义序列进行排序。
2)实物编程处理模块是用于处理用户编写的程序。即根据对应关系转换规则将实物语义序列转换成程序功能语义序列,并判断实物编程块是否合法,并给出相应的正误和连接上的声音反馈。包括在用户移除编程块的时候给出是否正确移除的提示音;在正确连接的时候给出编程块的名字信息;在保存成功的时候,给出“保存成功”的提示音。
3)机器人小车中的传感器模块用于采集环境中的数据,并发送给数据采集和处理模块。传感器模块包括光敏传感器、加速度传感器和颜色传感器。
4)数据采集和处理模块是用于采集各个传感器收集的数据并进行相应的处理。
5)输出模块包括一个mini MP3扬声器,是用于提供给用户相应的声音反馈。包括播放音乐、语音提示等。
6)机器人小车顶部有一个运行状态控制开关,用于供用户选择编程/运行状态。实物编程处理模块检测用户当前的选择并控制机器人小车进入相对应的状态。
7)实物编程块是系统的主要输入工具,实物编程块的组成和功能可参见上述引用的专利。本次发明中实物编程块主要介绍的是“能量块”、“事件编程块”和“行为编程块”三种实物编程块,用于向儿童传递事件处理的编程思想。其中,“能量块”没有具体的语义,主要的功能是作为一段程序序列的开始并向机器人小车发出信息保存这段程序序列对应的程序。每段程序作为用户输入的一条事件处理的规则。
其中,机器人小车作为主要的处理和输出设备。在系统中负责处理实物编程块的无线模块发来的无线程序信息,同时提供相应的反馈。当编程块摆放正确或者错误时,机器人小车的MP3模块会发出相应的声音提示。
其中,运行状态控制开关有两个状态:编程状态和运行状态。对应于系统的两个阶段:编程阶段和运行阶段。编程阶段,系统接收实物编程块的输入,并根据其序列是否符合设定的编程规则并对编程语义进行排序,并向用户提供实时的语音反馈。在运行阶段,系统会定时采集传感器的状态,并根据用户编入的规则进行比对,一旦触发了规则中的事件则做出规则中的行为反馈。
其中,基于事件编程的每一段程序都是由能量块+“事件编程块”+“行为编程块”构成的程序序列得到。对于每一段程序序列,能量块和“事件编程块”数量均为1,“行为编程块”的数量可以为1个或者多个。语义为,当机器人小车触发了“事件编程块”所代表的事件则会执行“行为编程块”所代表的行为。
其中,“事件编程块”包括:颜色传感器块、光敏传感器块、震动传感器块。包含的事件有:检测到红色、蓝色、绿色、黄色地面;检测到强光和弱光;检测到震动和平缓。“行为编程块”包括:前进块、亮灯块、闪烁灯块、关灯块和音乐块。包含的行为有:快速前进、慢速前进、点亮/闪烁/关闭左前、右前、左后、右后四个方向的等、播放1,2,3,4四种音乐。
其中,每次编写完一段程序,可以按下能量块顶部的保存按钮来保存这一条规则,系统会将此条规则进行保存。这条规则中的实物编程快可以得到释放,在编写下一条规则的时候继续使用。系统通过这种方式来实现实物编程块的复用。
其中,实物编程块是系统的主要输入工具。本系统中实物编程块除能量块之外均为多语义编程块。多语义实物编程块通过内部的三轴加速度计模块来识别当前实物编程块的朝向。每个实物编程块除了前后两个面是正负极用来连接前后的实物编程块,其余四个面分别会通过三轴加速度计根据编程块不同的朝向而得到不同的值来发送相应的无线信息,从而一个实物编程块可以代表4种不同的语义。其中,光敏传感器块相对的两个面表示同一个语义,所以四个面分别为:强光、弱光、强光、弱光。
与现有技术相比,本发明具有如下的优点和技术效果:
1.本发明的实物编程系统支持事件处理的编程方式
本发明是基于事件处理的编程方式,可以让儿童学习到事件处理的概念。
2.本发明的实物编程块可复用
通过事件处理的编程方式,系统会保存用户编写的每一条事件处理的规则并释放当前使用的实物编程块,使得系统的实物编程块可以复用在多条规则当中。降低了系统的成本和需要的编程块数量。
本发明通过机器人小车对儿童编写的程序进行相应的反馈。
附图说明
图1本系统的系统架构图;
图2系统的系统流程图;
图3编程块的基本处理流程图。
具体实施方式
为了使本技术领域的技术人员更好的理解,下面结合附图和实施方式对本交互方法作进一步的详细说明:
本发明的机器人流程如图2所示。主要分为状态控制、编程阶段和运行阶段三个阶段。其中,状态控制阶段主要负责机器人小车的初始化以及检测状态控制开关,并根据用户的输入控制机器人小车进入相应的阶段。
1.初始化。在程序开始时,对机器人小车的无线模块、通信协议、引脚、定时器和状态进行初始化。包括设置无线模块的发送和接受地址、通信的频道;LED灯、蜂鸣器、电机等所有硬件设备的引脚初始化。
2.用户输入监听。在程序循环的入口会监听按钮来对用户的输入进行监听和判断,以此来判断机器人小车是在编程状态还是运行状态。
编程阶段是系统的重要阶段,在该阶段中用户通过摆放实物编程块编写相应的规则程序。下面将详细说明编程阶段的系统处理流程:
1.编程状态初始化。在判断用户的输入为进入编程状态之后,会将机器人小车的状态切换为编程状态。具体包括:关闭机器人小车的四个电机、打开小车中的无线模块准备接收实物编程块的无线信息、关闭定时器、关闭外部中断、关闭LED灯。
2.无线信号监听和解析。由于Arduino循环运行程序的机制,设置一个等待时间变量来判断收到的无线数据的有效性,当变量在10以内的情况,认为是一段合法的无线数据。约定的无线数据格式4个字节,分别是:操作类型、前一块的id、自身的id、自身的参数(由三轴加速度计获得)。其中,约定的操作类型包括:添加(0x05)、移除(0x50)、保存(0x55)。
3.无线模块信号处理。该实物编程处理和输出单元为该无线处理模块分配一个缓存变量和多个存储变量,缓存变量格式为“事件”+若干个“行为”,存储变量的内容为若干个“事件“以及每个“事件”所对应的若干个“行为”。其中,缓存变量根据收到的无线信号实时更新;当用户触发保存操作时,系统会将缓存变量更新至存储变量当中。首先,系统会对每一段无线信号进行验证合法性,如果当前的无线信号的前一个块的id和缓存区中的id符合则合法。然后将解析的后三个字节的数据(即前一块的id、自身的id、自身的参数)保存至缓存中,并根据第一个字节的解析结果采取相应的操作。对于添加和删除操作,则根据当前无线信号的id更新缓存变量;如果是保存操作,则根据缓存变量的“事件”id更新存储变量。其中,存储变量存储了每个“事件编程块”所对应的事件以及每个事件当前需要采取的动作,称之为程序片段,初始时,程序片段中的动作序列为空。缓冲变量和存储变量的数据格式相同,用于更新用户的输入。
4.语音反馈。在整个编程阶段,系统会提供足够的语音反馈。每次机器人小车接受到一个实物编程块添加的无线信号时,会播放这个编程块表面的内容来提示用户添加成功。当接受到一个移除的无线信号(只要是从当前编程队列中撤走一个编程块,就会发送移除的信号。)时,会播放一小段提示音来提示用户实物编程块已经移除。当接受到保存操作的无线信号时,系统会播放“保存成功“的提示音。
当系统检测到状态开关被按下并切换至运行阶段时,机器人小车会进入运行阶段。该阶段主要是通过传感器收集数据并执行用户编写好的规则程序。具体的执行步骤如下:
1.读取程序指令。首先,系统会从存储变量中读取用户编写的几段程序。并执行。
2.执行。在执行过程中,机器人小车是默认沿着黑色的地砖循迹行驶。在行驶过程中,机器人小车会不断的通过光敏传感器、颜色传感器、加速度计收集数据。系统会记录三个传感器上一次的收集的数据值,然后不断地进行采集,如果发现采集的数据和上次记录的不一样,我们就认为传感器的状态发生了变化。一旦传感器收集的数据变化触发了规则程序中某一个“事件”,小车就会执行此“事件“所对应的程序即程序对应的动作序列。对于光敏传感器,包含两个事件:强光和弱光;对于颜色传感器,包含四个事件:识别到红色地砖、识别到绿色地砖、识别到黄色地砖和识别到蓝色地砖;对于加速度传感器,包含两个事件:小车平稳和小车颠簸。对于传感器的数据收集,由于Arduino的循环运行机制,我们设置一个缓存,在一定时间内,首先在缓存里面更新,以防止噪音数据对结果的影响。以加速度传感器为例,我们通过一个SampleList的自定义数据结构来存储每次收集到的数据,并且设置缓存区间为20。每次收集到数据之后先判断当前收集次数是否达到20,如果达到就会计算在这区间内的平均数据,并与系统记录的上一次加速度传感器的值进行比较,如果两次不一样,就更新系统记录的值;反之,如果当前的收集次数没有达到20,就会把收集的次数加1。
3.执行动作序列。当传感器收集的数据与系统记录的上一次传感器的状态不一致时,系统会查询保存的用户编写的规则程序。如果当前传感器的事件符合规则程序中的规则,系统就会执行该事件所对应的“动作序列”。其中动作序列包括:开/关/闪烁左前灯、右前灯、左后灯和右后灯;播放四个不同的音乐。在执行动作结束后,系统会更新传感器的状态。
综上所述,本发明给出了一种支持事件编程的实物编程工具。用户通过“能量块”+“事件编程快”+若干“行为编程块”的形式完成一个事件处理的程序片段。当用户按下“能量块”顶部的保存按钮后,当前的程序片段会被系统中的机器人小车保存,当前程序片段中的实物编程块得到释放,并可以用于下一段程序的编写中,极大的节省了编程块并实现了编程块的复用,降低了每个任务需要的编程块数量,降低了成本。本发明通过给机器人小车与儿童进行交互,可以很好的增加系统趣味性。该实物编程工具传达了事件处理的编程概念,做到了编程块的复用,通过机器人增加了系统趣味性,提高了儿童对于编程的兴趣,促进儿童学习编程。
Claims (9)
1.一种基于事件处理的实物编程工具,包括实物编程处理和输出单元和若干实物编程块;其特征在于,所述实物编程块包括:能量块、事件编程块和行为编程块;其中,能量块作为利用实物编程块进行一段程序序列编程的初始实物编程块,确认一段程序序列的开始并在结束该段程序序列的编程时向该实物编程处理和输出单元发出信息保存该段程序序列对应的程序;每一段程序序列依次由能量块、事件编程块、行为编程块构成。
2.如权利要求1所述的实物编程工具,其特征在于,该实物编程处理和输出单元为机器人小车。
3.如权利要求1或2所述的实物编程工具,其特征在于,该实物编程处理和输出单元包括无线处理模块、实物编程处理模块、传感器模块、数据采集和处理模块、运行状态控制开关;
无线处理模块用于接收实物编程块发送的无线信息,识别该实物编程块的语义,并根据收到的无线信息对该实物编程块的语义进行排序,得到一实物语义序列;
实物编程处理模块用于将实物语义序列转换成程序功能语义序列,并判断该实物语义序列对应的每一实物编程块是否合法;
传感器模块用于采集环境中的数据,并发送给数据采集和处理模块;
数据采集和处理模块根据收到的传感器数据确定触发的事件,并根据触发的事件执行相应的程序;
运行状态控制开关,用于选择编程状态或运行状态;。
4.如权利要求3所述的实物编程工具,其特征在于,该实物编程处理和输出单元还包括一输出模块,用于提供反馈信息。
5.如权利要求1所述的实物编程工具,其特征在于,每一段程序序列包括一个能量块、一个事件编程块和若干行为编程块。
6.如权利要求1所述的实物编程工具,其特征在于,该能量块顶部设有一保存按钮,当按下该保存按钮时,该能量块向该实物编程处理和输出单元发出信息保存该段程序序列的语义信息。
7.如权利要求1所述的实物编程工具,其特征在于,每一实物编程块内包含一个单片机处理器,以及与该单片机处理器连接的无线通信模块、三轴加速度计、红外发射及接收模块。
8.如权利要求7所述的实物编程工具,其特征在于,所述行为编程块为一多语义实物编程块,通过内部的三轴加速度计识别行为编程块的朝向,行为编程块根据识别出的朝向得到对应的值发送相应的无线信息给该实物编程处理和输出单元。
9.如权利要求7所述的实物编程工具,其特征在于,所述事件编程块为一多语义实物编程块,通过内部的三轴加速度计识别事件编程块的朝向,事件编程块根据识别出的朝向得到对应的值发送相应的无线信息给该实物编程处理和输出单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610686180.2A CN106339216A (zh) | 2016-08-18 | 2016-08-18 | 一种基于事件处理的实物编程工具 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610686180.2A CN106339216A (zh) | 2016-08-18 | 2016-08-18 | 一种基于事件处理的实物编程工具 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106339216A true CN106339216A (zh) | 2017-01-18 |
Family
ID=57824518
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610686180.2A Pending CN106339216A (zh) | 2016-08-18 | 2016-08-18 | 一种基于事件处理的实物编程工具 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106339216A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106781869A (zh) * | 2017-01-22 | 2017-05-31 | 智童时刻(厦门)科技有限公司 | 一种教育机器人结合环境的实物编程方法 |
CN108228153A (zh) * | 2017-12-20 | 2018-06-29 | 中国科学院软件研究所 | 一种面向合作的实物编程方法及系统 |
CN112394913A (zh) * | 2019-08-19 | 2021-02-23 | 中国科学院自动化研究所 | 支持程序分解和复用的实物编程系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102789713A (zh) * | 2012-07-19 | 2012-11-21 | 中国科学院软件研究所 | 一种基于红外和无线传输技术的实物编程方法和系统 |
CN105302555A (zh) * | 2015-10-23 | 2016-02-03 | 中国科学院软件研究所 | 一种基于多语义的实物编程系统 |
-
2016
- 2016-08-18 CN CN201610686180.2A patent/CN106339216A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102789713A (zh) * | 2012-07-19 | 2012-11-21 | 中国科学院软件研究所 | 一种基于红外和无线传输技术的实物编程方法和系统 |
CN105302555A (zh) * | 2015-10-23 | 2016-02-03 | 中国科学院软件研究所 | 一种基于多语义的实物编程系统 |
Non-Patent Citations (2)
Title |
---|
DANLI WANG等: "A Tangible Programming System Conveying Event Handling Concept", 《IDC"15 PROCEEDINGS OF THE 14TH INTERNATIONAL CONFERENCE ON INTERACTION DESIGN AND CHILDREN》 * |
DANLI WANG等: "A TUI-based Programming Tool for Children", 《ITICSE"15 PROCEEDINGS OF THE 2015 ACM CONFERENCE ON INNOVATION AND TECHNOLOGY IN COMPUTER SCIENCE EDUCATION》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106781869A (zh) * | 2017-01-22 | 2017-05-31 | 智童时刻(厦门)科技有限公司 | 一种教育机器人结合环境的实物编程方法 |
CN108228153A (zh) * | 2017-12-20 | 2018-06-29 | 中国科学院软件研究所 | 一种面向合作的实物编程方法及系统 |
CN108228153B (zh) * | 2017-12-20 | 2021-02-19 | 中国科学院软件研究所 | 一种面向合作的实物编程方法及系统 |
CN112394913A (zh) * | 2019-08-19 | 2021-02-23 | 中国科学院自动化研究所 | 支持程序分解和复用的实物编程系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI533241B (zh) | 一種實現人工智能的方法、服務器和設備 | |
CN111341296B (zh) | 一种语音控制的响应测试方法、测试机和存储介质 | |
CN100590676C (zh) | 一种网络互动语音玩具组件的实现方法 | |
CN109344291A (zh) | 一种视频生成方法及装置 | |
CN106339216A (zh) | 一种基于事件处理的实物编程工具 | |
CN105739974A (zh) | 一种图形化编程控制电子积木的方法 | |
CN109091869A (zh) | 虚拟对象的动作控制方法、装置、计算机设备及存储介质 | |
CN109063583A (zh) | 一种基于点读操作的学习方法及电子设备 | |
CN203490821U (zh) | 智能显示遥控器和飞行控制系统 | |
CN110010125A (zh) | 一种智能机器人的控制方法、装置、终端设备及介质 | |
CN107679156A (zh) | 一种视频图像识别方法及终端、可读存储介质 | |
CN204650422U (zh) | 一种基于语言交互操控的移动智能玩具 | |
CN110489344A (zh) | 引擎测试方法及相关产品 | |
CN110531849A (zh) | 一种基于5g通信的增强现实的智能教学系统 | |
CN107621919A (zh) | 一种培养行为习惯的互动方法及用户终端 | |
CN110910874A (zh) | 一种互动课堂语音控制方法、终端设备、服务器和系统 | |
CN110652726A (zh) | 一种基于图像识别和音频识别的游戏辅助系统 | |
CN110322587B (zh) | 驾驶过程中的评价记录方法、装置、设备及存储介质 | |
CN109992261A (zh) | 一种基于人工智能的语音在线编程方法及装置 | |
CN109830141A (zh) | 一种实体指令编程方法及实体指令编程系统 | |
WO2019080900A1 (zh) | 神经网络训练方法和装置、存储介质及电子装置 | |
CN106846941A (zh) | 一种智能音乐教学系统 | |
CN105093964B (zh) | 工业电子嵌入式系统仿真用设备模型的构建方法 | |
CN112820273B (zh) | 唤醒判别方法和装置、存储介质及电子设备 | |
CN108922288A (zh) | 一种基于大数据的智能教育终端系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170118 |
|
RJ01 | Rejection of invention patent application after publication |