CN112394913B - 支持程序分解和复用的实物编程系统 - Google Patents
支持程序分解和复用的实物编程系统 Download PDFInfo
- Publication number
- CN112394913B CN112394913B CN201910764409.3A CN201910764409A CN112394913B CN 112394913 B CN112394913 B CN 112394913B CN 201910764409 A CN201910764409 A CN 201910764409A CN 112394913 B CN112394913 B CN 112394913B
- Authority
- CN
- China
- Prior art keywords
- program
- programming
- block
- robot
- program fragment
- 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.)
- Active
Links
- 239000000463 material Substances 0.000 title claims description 15
- 230000000875 corresponding effect Effects 0.000 claims description 43
- 238000012545 processing Methods 0.000 claims description 23
- 238000000034 method Methods 0.000 claims description 18
- 230000033001 locomotion Effects 0.000 claims description 17
- 230000009471 action Effects 0.000 claims description 13
- 230000009194 climbing Effects 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 10
- 230000000007 visual effect Effects 0.000 claims description 8
- 238000012795 verification Methods 0.000 claims description 4
- 239000012634 fragment Substances 0.000 claims description 2
- 230000001960 triggered effect Effects 0.000 claims description 2
- 230000000712 assembly Effects 0.000 claims 2
- 238000000429 assembly Methods 0.000 claims 2
- 230000003993 interaction Effects 0.000 abstract description 9
- 238000000354 decomposition reaction Methods 0.000 abstract description 5
- 230000006798 recombination Effects 0.000 abstract description 2
- 238000005215 recombination Methods 0.000 abstract description 2
- 230000006399 behavior Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 6
- 230000001276 controlling effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 3
- 239000003550 marker Substances 0.000 description 3
- 241000729176 Fagopyrum dibotrys Species 0.000 description 2
- 230000010399 physical interaction Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000004397 blinking Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Images
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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Toys (AREA)
Abstract
本发明属于人机交互领域,具体涉及了一种支持程序分解和复用的实物编程系统,旨在解决现有的实物编程系统不支持程序的分解和复用,编程难度高、效率低的问题。本发明系统包括:多个实物编程块,分别设置有对应的程序语义标识,通过多个实物编程块的排列进行程序的实物表示;多个地图组件,包括平面地图组件和/或立体地图组件,构建平面和/或立体行进地图;多个程序片段组件,用于设置对应的程序语义标识;机器人,构建并运行多个实物编程块对应的程序语义程序,若读取到行进地图中放置的程序片段组件,则执行对应程序。本发明通过分解程序分段进行编程的方式,支持程序片段的分解、复现、复用和重组,降低编程及调试的难度,提高编程的效率。
Description
技术领域
本发明属于人机交互技术领域,具体涉及了一种支持程序分解和复用的实物编程系统。
背景技术
在信息化的新时代,编程教育受到了越来越多的重视。编程作为计算机科学教育中的重要组成部分,是培养计算思维的一种有效途径。目前适合儿童的编程系统包括图形化编程系统和实物编程系统,对于年龄较小的儿童来说,实物交互方式因为符合儿童的认知习惯而被认为是一种更有效的交互方式。
目前已有的实物编程系统的交互界面可按照程序输出形式分为虚实混合界面和纯实物界面。虚实混合界面使用手机或电脑的屏幕作为输出媒介,将程序运行在虚拟世界中。一种面向合作的实物编程方法及系统[1],公开了面向合作的实物编程方式,儿童可以通过摆放编程块来完成电脑端的一个数字场景下的合作任务。基于增强现实的实物编程系统[2],公开了基于增强现实技术的实物编程方式,将数字化的视觉反馈叠加在实物交互界面,来帮助儿童更好的理解程序。纯实物界面的输入输出均采用实物的方式,一种便携式实物编程系统[3],公开了一种便携式的实物编程系统,其完全独立于电脑,基于硬件设备完成。
总的来说,现有的实物编程系统,不支持程序的分解,无法使用分解后的程序片段实现复现、复用和重组,编程难度高、效率低。
以下文献是与本发明相关的技术背景资料:
[1]王丹力、邓小舟、金乔,一种面向合作的实物编程方法及系统,2018-06.CN108228153A
[2]王丹力、邓小舟、金乔,一种基于增强现实的实物编程方法及系统,2018-07.CN108279878A
[3]王丹力、齐云凤、张洋、王宏安,一种便携式实物编程方法及系统,2013-12.CN103456203A
发明内容
为了解决现有技术中的上述问题,即现有的实物编程系统不支持程序的分解和复用,编程难度高、效率低的问题,本发明提供了一种支持程序分解和复用的实物编程系统,该实物编程系统包括多个实物编程块、多个地图组件、多个程序片段组件、机器人;
所述实物编程块设置有对应的程序语义标识;通过多个实物编程块的排列进行程序的实物表示;
所述地图组件包括平面地图组件和/或立体地图组件,用于搭建所述机器人的行进环境,构建平面和/或立体结构行进地图;
所述程序片段组件,用于设置对应的程序语义标识;
所述机器人,配置为根据所排列的多个实物编程块,获取每个实物编程块对应的程序语义,并按照实物编程块的排列顺序进行第一运行程序构建;还配置为在所述行进地图中根据所述第一运行程序执行相应的动作;还配置为获取所述行进地图中放置的所述程序片段组件的程序语义标识,并执行该程序语义标识对应的程序。
在一些优选的实施例中,所述实物编程块类别包括程序片段标记块、行为编程块、动作编程块;
所述程序片段标记块,设置有对应的程序片段起始标识,用于标记各程序片段的起始;所述程序片段由程序片段标记块、程序片段组件、一个或多个行为编程块和/或动作编程块构成;
所述行为编程块,包括点亮灯块、闪烁灯块、播放音乐块,用于所述机器人的行为程序的实物表示;
所述动作编程块,包括前进块、后退块、转弯块、爬坡块,用于所述机器人移动的方向和步数程序的实物表示。
在一些优选的实施例中,所述机器人设置有运动模块、无线处理模块、实物编程校验模块、数据采集和处理模块、状态控制模块,还设置有关卡选择模块;
所述关卡选择模块,用于接收用户指令,并依据所述指令进行任务关卡选择。
在一些优选的实施例中,所述运动模块包括电机、爬坡支架;
所述电机,配置为用于提供所述机器人平行运动以及爬上坡运动的驱动力;还配置为提供所述机器人爬下坡运动的轻微反向力;
所述爬坡支架,配置为用于提供所述机器人爬上坡运动的支撑力。
在一些优选的实施例中,所述数据采集和处理模块还设置有红外信号读取装置;
所述红外信号读取装置,配置为用于识别所述程序片段组件的ID,并将程序片段与特定的ID绑定。
在一些优选的实施例中,所述机器人还设置有显示装置;
所述显示装置,用于显示当前任务地图、预览程序运行结果、复现编程片段、显示视觉提示信息。
在一些优选的实施例中,所述机器人还设置有声音提示装置;
所述声音提示装置,用于所述实物编程系统状态切换提示、所述机器人运行阶段的状态提示、所述实物编程块是否正确移除的提示。
在一些优选的实施例中,所述程序片段标记块还设置有存储按钮;
所述存储按钮,用于在按钮被按下时,下发当前程序片段保存指令,系统依据所述保存指令保存当前的程序片段。
在一些优选的实施例中,所述程序片段组件还设置有用于区分的标记,相同标记的程序片段组件具有相同的ID。
在一些优选的实施例中,如果使用状态控制开关切换系统至运行阶段后,机器人行进中所经过的程序片段组件的ID已有对应已保存的程序片段时,判断并执行该ID所绑定的程序片段,机器人的初始位置应放置第一个即将运行的程序片段组件:
若程序片段标记块未连接新的编程块,则在显示装置上复现该片段程序;
若程序片段标记块连接新的编程块,则重新编写该程序片段。
本发明的有益效果:
(1)本发明支持程序分解和复用的实物编程系统,支持程序的分解,通过分解程序分段进行编程的方式,系统会分别保存用户编写的每一段子程序,释放当前程序片段使用的实物编程块,可以将一段长的复杂的程序分解从而降低编程的难度。
(2)本发明支持程序分解和复用的实物编程系统,实物程序片段可复现、复用和重组,当遗忘某个程序片段时,可通显示装置复现该段程序。在运行期间,可以使用具有相同标记的程序片段组件多次复用该程序片段,或者通过在地图上的特定位置摆放程序片段组件修改子程序运行顺序,重组程序。这样相同程序片段无需再次编程,降低了系统的成本和需要的编程块数量,并且通过这种方式可以更容易的进行调试。
(3)本发明支持程序分解和复用的实物编程系统,运行场景为立体环境,编程内容包括控制机器人爬上、爬下等操作,可以培养空间思维能力。
(4)本发明支持程序分解和复用的实物编程系统,支持编程期间的实时视觉反馈,通过显示装置及时给予程序提示,帮助纠正程序错误。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本发明支持程序分解和复用的实物编程系统的硬件框架示意图;
图2是本发明支持程序分解和复用的实物编程系统的数据框架示意图;
图3是本发明支持程序分解和复用的实物编程系统的运行流程示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
本发明的一种支持程序分解和复用的实物编程系统,该实物编程系统包括多个实物编程块、多个地图组件、多个程序片段组件、机器人;
所述实物编程块设置有对应的程序语义标识;通过多个实物编程块的排列进行程序的实物表示;
所述地图组件包括平面地图组件和/或立体地图组件,用于搭建所述机器人的行进环境,构建平面和/或立体结构行进地图;
所述程序片段组件,用于设置对应的程序语义标识;
所述机器人,配置为根据所排列的多个实物编程块,获取每个实物编程块对应的程序语义,并按照实物编程块的排列顺序进行第一运行程序构建;还配置为在所述行进地图中根据所述第一运行程序执行相应的动作;还配置为获取所述行进地图中放置的所述程序片段组件的程序语义标识,并执行该程序语义标识对应的程序。
为了更清晰地对本发明支持程序分解和复用的实物编程系统进行说明,下面结合图1对本发明方法实施例中各模块展开详述。
本发明一种实施例的支持程序分解和复用的实物编程系统,该实物编程系统包括多个实物编程块、多个地图组件、多个程序片段组件、机器人,各模块详细描述如下:
所述实物编程块设置有对应的程序语义标识;通过多个实物编程块的排列进行程序的实物表示。
实物编程块可以为六面体结构,也可以为卡片结构,本发明不对实物编程块的具体结构做限定。本发明一个实施例中,采用立方体的结构,六个面中两个面作为连接的正负极面,其余四个面设置有对应的程序语义标识。
在本发明的一个实施例中,实物编程块间采用红外通信的方式,红外信号不仅作为激活信号,同时也用于传递自身的二进制识别码。即每个实物编程块有两种状态:失活状态和激活状态。激活的实物编程块通过红外信号发送其唯一ID。一个未激活的实物编程块本身将不会通过红外信号传输任何信息,直到被另一个激活的红外信号激活。一旦实物编程块被激活,它将通过解码红外信号获得先前的ID,通过无线通讯将其链接信息,自身的ID和参数传递给机器人,然后准备激活另一个实物编程块。能量块为一个永久保持激活的特殊功能块,它能够在电源块之后构建一系列激活的块并一起构成程序序列。
实物编程块类别包括程序片段标记块、行为编程块、动作编程块;
程序片段标记块,设置有对应的程序片段起始标识,用于标记各程序片段的起始;所述程序片段由程序片段标记块、程序片段组件、一个或多个行为编程块和/或动作编程块构成。
本发明实施例中,程序片段标记块含有RFID Reader,可识别程序片段组件的RFID标记,每个程序片段组件带有唯一ID标记,每个ID绑定一个程序片段。程序片段标记块与机器人使用红外通讯方式,将目前的实物编程块信息实时传递给机器人的数据采集和处理模块,再从屏幕中显示出来。
如果使用状态控制开关切换系统至运行阶段后,机器人行进中所经过的程序片段组件ID已有对应的已保存的程序片段时,判断并执行该ID所绑定的程序片段,机器人的初始位置应放置第一个即将运行的程序片段组件:
若程序片段标记块未连接新的编程块,则在显示装置上复现该片段程序;
若程序片段标记块连接新的编程块,则重新编写程序片段。
在程序片段标记块的顶部设置有存储按钮,在按钮被按下时,下发当前程序片段保存指令,系统依据所述保存指令保存当前的程序片段。
行为编程块,包括点亮灯块、闪烁灯块、播放音乐块,用于所述机器人的行为程序的实物表示。
本发明一个实施例中,点亮灯块用于控制机器人小车打开左前、右前、左后、右后四个方向的LED灯;闪烁灯块用于控制机器人小车闪烁左前、右前、左后、右后四个方向的LED灯;播放音乐块用于控制机器人小车播放四种音乐。每一个块的六个面中,两个面用于连接正负极,其余四个面设置有对应的程序语义标识,点亮灯块的程序语义标识分别为左前LED灯亮、右前LED灯亮、左后LED灯亮、右后LED灯亮,闪烁灯块的程序语义标识分别为左前LED灯闪烁、右前LED灯闪烁、左后LED灯闪烁、右后LED灯闪烁,播放音乐块的程序语义标识分别为播放不同的音乐。块中设置有三轴传感器,用于识别实物编程块的旋转方向,从而选择不同的程序语义。
动作编程块,包括前进块、后退块、转弯块、爬坡块,用于所述机器人移动的方向和步数程序的实物表示。
本发明一个实施例中,动作编程块与上述行为编程块相似,包括用于连接正负极的面,其余四个面设置有对应的程序语义标识。前进块和后退块的程序语义标识分别为前进、后退1至4步;转弯块的程序语义标识分别为2个左转、2个右转;爬坡块的程序语义标识分别为2个爬上、2个爬下。块中同样设置有三轴传感器,用于识别实物编程块的旋转方向,从而选择不同的程序语义。
所述地图组件包括平面地图组件和/或立体地图组件,用于搭建所述机器人的行进环境,构建平面和/或立体结构行进地图。
地图用于构建更加有吸引力和乐趣的立体任务场景。除了装饰的功能外,这些操作物也是布置地图迷宫任务的主要素材。本发明实施例中主要提供了任务卡、彩色硬纸片、积木、格子地贴等来搭建地图迷宫场景。用户根据任务卡的要求将彩色硬纸片放置在格子地贴上模拟地图中的草坪(可行路径)以及地图中的起始点和关键点(必经点);积木斜坡用来布置立体结构。此外用户可以使用日常生活物品作为障碍物布置在地图中。
所述程序片段组件,用于设置对应的程序语义标识。
程序片段组件还设置有用于区分的标记,相同标记的程序片段组件具有相同的ID。
本发明一个实施例中,程序片段组件是一个支持RFID的磁卡,可以被RFID Reader识别,与程序片段标记块一同使用。
在编程阶段,程序片段组件用来分解一段长的程序为若干对用户来说相对较简单的子程序片段。当用户想摆放一段程序段的时候,需要把程序片段组件放在程序片段标记块顶部的凹槽里面,程序片段标记块使用RFID Reader读取该程序片段组件ID并将当前程序片段与该ID绑定。
在运行阶段,用户将多个程序片段组件放在真实的地图上,如果机器人上的RFIDReader识别到与该ID对应的程序片段组件,则触发系统加载并执行该程序片段。在编程阶段使用程序片段组件,则在运行阶段需要将相对应标记的程序片段组件放在特定的位置。
所述机器人,配置为根据所排列的多个实物编程块,获取每个实物编程块对应的程序语义,并按照实物编程块的排列顺序进行第一运行程序构建;还配置为在所述行进地图中根据所述第一运行程序执行相应的动作;还配置为获取所述行进地图中放置的所述程序片段组件的程序语义标识,并执行该程序语义标识对应的程序。
机器人设置有运动模块、无线处理模块、实物编程校验模块、数据采集和处理模块、状态控制模块。
运动模块包括电机、爬坡支架;
所述电机,配置为用于提供所述机器人平行运动以及爬上坡运动的驱动力;还配置为提供所述机器人爬下坡运动的轻微反向力;
所述爬坡支架,配置为用于提供所述机器人爬上坡运动的支撑力。
本发明一个实施例中,选用了机器人小车作为控制对象,运动模块用于机器人小车的运动,在遇到地图上的立体结构时作为支撑将车身移动至阶梯上或阶梯下时保持车身平衡,主要由电机和爬坡支架组成。当机器人小车要爬上斜坡时伸出支架,利用电机驱动力和支架的支撑力将小车移至斜坡上方。爬下斜坡时,设置电机控制车轮轻微反转,避免机器人小车在下坡使由于速度过快而发生翻车的危险。
机器人的数据采集和处理模块还设置有红外信号读取装置;
红外信号读取装置,配置为用于识别所述程序片段组件的ID,并将程序片段与特定的ID绑定。
本发明实施例中,数据采集和处理模块带有RFID Reader,可以识别程序片段组件ID,并将其与该ID下的子程序片段绑定。在运行阶段,经过地图上摆放的程序片段组件时可调取其ID对应的子程序片段执行。
无线处理模块用于接收实物编程块发送的无线信号,识别编程块当前的语义,并根据收到的无线信号对实物编程块语义进行排序,得到实物语义序列;本发明实施例中无线接收模块根据实物编程块发送的前一个实物编程块的信息和自身信息对编程块语义序列进行排序。
实物编程校验模块用于处理用户编写的程序。即根据对应关系转换规则将实物语义序列转换成程序功能语义序列,并判断实物编程块是否合法,实时给出相应的正误和连接上的视觉和声音反馈。
状态控制模块用于供用户改变编程/运行状态。修改状态由按钮开关组成,其状态实时显示在屏幕上。
机器人还设置有关卡选择模块;
关卡选择模块,用于接收用户指令,并依据所述指令进行任务关卡选择。
本发明一个实施例中,关卡选择模块由红外遥控器和红外接收器组成。用户可以使用红外遥控器选择任务关卡,选择关卡后自动进入编程阶段。
机器人还设置有显示装置;
显示装置,用于显示当前任务地图、预览程序运行结果、复现编程片段、显示视觉提示信息。
比如,实物编程块正确连接的时候在屏幕上显示实物编程块的名字信息,执行当前程序片段时在屏幕上显示当前程序片段,当前程序片段运行结果显示,当前任务地图显示等等。
机器人还设置有声音提示装置;
声音提示装置,用于所述实物编程系统状态切换提示、所述机器人运行阶段的状态提示、所述实物编程块是否正确移除的提示。
机器人还设置有LED灯,在相应的状态下点亮或闪烁相应的LED灯,比如左转时闪烁左转弯LED灯等。
如图2所示,为本发明支持程序分解和复用的实物编程系统的数据框架示意图,包括交互层、内部处理层、数据资源层:交互层是用户与系统交互的用户界面,其中交互输入的数据会通过内部处理层中的传感器、开关、无线模块进行采集,数据采集之后发送给内部处理层数据采集和处理模块,根据数据资源层中的数据进行处理,最后在交互层进行信息输出和反馈。
需要说明的是,上述实施例提供的支持程序分解和复用的实物编程系统,仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块来完成,即将本发明实施例中的模块再分解或者组合。例如,上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块,以完成以上描述的全部或者部分功能。对于本发明实施例中涉及的模块的名称,仅仅是为了区分各个模块,不视为对本发明的不当限定。
本发明第二实施例的支持程序分解和复用的实物编程系统的运行流程,包括四个阶段:创建阶段、状态控制阶段、编程阶段、运行阶段。
如图3所示,为本发明支持程序分解和复用的实物编程系统的运行流程示意图,四个阶段的具体过程如下所述:
第一阶段,创建阶段。
用户根据任务卡搭建地图场景,包括三个部分:
设置可行路径和必经点:用户根据任务卡上的要求将彩色硬纸片放置在格子地贴上模拟地图中的草坪(可行路径)以及地图中的起始点和关键点(必经点)。
设置立体操作物:用户摆放梯形积木斜坡用来布置立体结构。
设置障碍物:用户可以使用日常生活物品作为障碍物布置在地图中。
第二阶段,状态控制阶段。
状态控制阶段主要负责机器人小车的初始化以及检测状态控制开关,并根据用户的输入控制机器人小车进入相应的阶段,包括三个部分:
初始化:系统将机器人小车上面接入的无线模块、引脚等初始化,并且初始化通信协议,包括设置无线模块的发送和接受地址、通信的频道;TFT屏幕、蜂鸣器、电机等所有硬件设备的引脚初始化;打开红外、打开TFT屏幕。
任务关卡切换:在初始化工作完成之后,系统会监听红外信号,用户可以通过红外遥控器更换TFT屏幕上的数字信息。TFT数字屏幕上会显示与真实地图对应的数字地图信息以及当前机器人小车的位置,选择关卡后,系统会默认进入编程阶段。
输入监听:在程序循环的入口会监听开关按钮来对用户的输入进行监听和判断,以此来判断机器人小车是在编程状态还是运行状态。
第三阶段,编程阶段。
编程阶段是系统的重要阶段,在该阶段中用户通过摆放实物编程块编写相应的规则程序,其具体流程为:
编程状态初始化:包括关闭电机、打开无线、关闭定时器、关闭外部中断和关闭LED灯。在选择完关卡后,会将机器人小车的状态切换为编程状态。关闭机器人小车的四个电机、打开小车中的无线模块准备接收实物编程块的无线信息、TFT屏幕显示编程状态地图、关闭定时器、关闭外部中断。
RFID信号监听,处理和传输:程序片段标记块包含RFID Reader可识别程序片段标记卡片,每个卡片带有唯一RFID标记当前所处的程序片段。与机器人小车使用红外通讯方式,将目前的实物编程块信息实时传递给机器人小车的数据采集和处理模块,再从屏幕中显示出来。如果程序片段标记卡ID已有对应的已保存的子程序,且程序片段标记块未连接其他编程块时,在反馈屏幕上复现该段程序;如果程序片段标记块有新连接的编程块时,重新编写该段程序。
无线信号监听和解析:由于Arduino循环运行程序的机制,设置一个等待时间变量来判断收到的无线数据的有效性,当变量在10以内的情况,认为是一段合法的无线数据。约定的无线数据格式4个字节,分别是:操作类型、前一块的id、自身的id、自身的参数(由三轴加速度计获得)。其中,约定的操作类型包括:添加(0x05)、移除(0x50)、保存(0x55)。
无线模块信号处理:该实物编程处理和输出单元为该无线处理模块分配一个缓存变量和多个存储变量,缓存变量格式为“程序片段ID”+若干个“动作/行为”,存储变量的内容为若干个“程序片段“以及每个“程序片段”所对应的若干个“动作/行为”。其中,缓存变量根据收到的无线信号实时更新;当用户触发保存操作时,系统会将缓存变量更新至存储变量当中。首先,系统会对每一段无线信号进行验证合法性,如果当前的无线信号的前一个块的id和缓存区中的id符合则合法。然后将解析的后三个字节的数据(即前一块的id、自身的id、自身的参数)保存至缓存中,并根据第一个字节的解析结果采取相应的操作。对于添加和删除操作,则根据当前无线信号的id更新缓存变量;如果是保存操作,则根据缓存变量的“程序片段”id更新存储变量。其中,存储变量存储了每个“编程块”所对应的程序片段ID以及每个程序片段的内容,初始时,各个程序片段中的序列为空。缓冲变量和存储变量的数据格式相同,用于更新用户的输入。
视觉和语音反馈:在编程过程中,语音反馈包括添加/删除的提示音以及通过提前录入的语音播放编程块的信息,视觉反馈则主要是通过TFT屏幕完成,一旦添加/删除操作是合法的,TFT屏幕会更新小车在当前程序运行结果的预运行位置信息。如果不是,则判断当前无线信号是否为保存程序的指令,如果是则会将当前缓冲区的程序进行保存,并开辟一段新的缓冲区用来保存下一条程序。在反馈方面,系统会提供“保存成功”的语音反馈。另外,TFT屏幕上会在当前位置保存一个里程碑的标志。
第四阶段,运行阶段。
当系统检测到状态开关被按下并切换至运行阶段时,机器人小车会进入运行阶段。该阶段主要是通过传感器收集数据并执行用户编写好的规则程序。具体的流程为:
读取程序指令:系统首先会从储存区读取程序指令,然后判断RFID Reader是否读取到了数据,如果有数据则说明识别到了该程序片段。这个过程中,会对数据采集的结果进行分析和去噪保证数据的正确性。然后判断数据是否合法,如果合法则会加载相应的程序片段对应的程序片段并执行。
执行:在执行过程中,机器人小车会沿着程序设定的顺序运行。在行驶过程中,当小车下方安装的RFID Reader读取到程序片段标记卡片时,系统会查询该ID下已保存的用户编写的规则程序。其中动作包括:开/关/闪烁左前灯、右前灯、左后灯和右后灯;播放四个不同的音乐;前进/后退;左转/右转;爬上/爬下。
术语“包括”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者设备/装置所固有的要素。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
Claims (8)
1.一种支持程序分解和复用的实物编程系统,其特征在于,该实物编程系统包括多个实物编程块、多个地图组件、多个程序片段组件、机器人;
所述实物编程块设置有对应的程序语义标识;通过多个实物编程块的排列进行程序的实物表示;所述实物编程块,其类别包括程序片段标记块、行为编程块和动作编程块;所述程序片段标记块,设置有对应的程序片段起始标识,用于标记各程序片段的起始;所述程序片段由程序片段标记块、程序片段组件、一个或多个行为编程块和/或动作编程块构成;
所述地图组件包括平面地图组件和/或立体地图组件,用于搭建所述机器人的行进环境,构建平面和/或立体结构行进地图;
所述程序片段组件,用于设置对应的程序语义标识:在编程阶段,程序片段组件用来分解一段长的程序为若干子程序片段;在运行阶段,将多个程序片段组件放在真实的地图上,若所述机器人识别到对应的程序片段组件,则触发系统加载并执行;所述程序片段组件还设置有用于区分的标记,相同标记的程序片段组件具有相同的ID;
所述机器人,配置为根据所排列的多个实物编程块,获取每个实物编程块对应的程序语义,并按照实物编程块的排列顺序进行第一运行程序构建;还配置为在所述行进地图中根据所述第一运行程序执行相应的动作;还配置为获取所述行进地图中放置的所述程序片段组件的程序语义标识,并执行该程序语义标识对应的程序;
在编程阶段,程序片段组件与程序片段标记块一同使用,程序片段标记块用于读取程序片段组件的ID:若程序片段标记块未连接新的编程块,则在显示装置上复现该程序片段组件的ID所绑定的程序片段;若程序片段标记块连接新的编程块,则重新编写该程序片段组件的ID所绑定的程序片段;
如果使用状态控制开关切换系统至运行阶段后,机器人行进中所经过的程序片段组件的ID已有对应已保存的程序片段时,判断并执行该ID所绑定的程序片段,机器人的初始位置应放置第一个即将运行的程序片段组件。
2.根据权利要求1所述的支持程序分解和复用的实物编程系统,其特征在于,所述行为编程块,包括点亮灯块、闪烁灯块、播放音乐块,用于所述机器人的行为程序的实物表示;
所述动作编程块,包括前进块、后退块、转弯块、爬坡块,用于所述机器人移动的方向和步数程序的实物表示。
3.根据权利要求1或2所述的支持程序分解和复用的实物编程系统,其特征在于,所述机器人设置有运动模块、无线处理模块、实物编程校验模块、数据采集和处理模块、状态控制模块,还设置有关卡选择模块;
所述关卡选择模块,用于接收用户指令,并依据所述指令进行任务关卡选择。
4.根据权利要求3所述的支持程序分解和复用的实物编程系统,其特征在于,所述运动模块包括电机、爬坡支架;
所述电机,配置为用于提供所述机器人平行运动以及爬上坡运动的驱动力;还配置为提供所述机器人爬下坡运动的轻微反向力;
所述爬坡支架,配置为用于提供所述机器人爬上坡运动的支撑力。
5.根据权利要求3所述的支持程序分解和复用的实物编程系统,其特征在于,所述数据采集和处理模块还设置有红外信号读取装置;
所述红外信号读取装置,配置为用于识别所述程序片段组件的ID,并将程序片段与特定的ID绑定。
6.根据权利要求3所述的支持程序分解和复用的实物编程系统,其特征在于,所述机器人还设置有显示装置;
所述显示装置,用于显示当前任务地图、预览程序运行结果、复现编程片段、显示视觉提示信息。
7.根据权利要求3所述的支持程序分解和复用的实物编程系统,其特征在于,所述机器人还设置有声音提示装置;
所述声音提示装置,用于所述实物编程系统状态切换提示、所述机器人运行阶段的状态提示、所述实物编程块是否正确移除的提示。
8.根据权利要求2所述的支持程序分解和复用的实物编程系统,其特征在于,所述程序片段标记块还设置有存储按钮;
所述存储按钮,用于在按钮被按下时,下发当前程序片段保存指令,系统依据所述保存指令保存当前的程序片段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910764409.3A CN112394913B (zh) | 2019-08-19 | 2019-08-19 | 支持程序分解和复用的实物编程系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910764409.3A CN112394913B (zh) | 2019-08-19 | 2019-08-19 | 支持程序分解和复用的实物编程系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112394913A CN112394913A (zh) | 2021-02-23 |
CN112394913B true CN112394913B (zh) | 2022-09-09 |
Family
ID=74603464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910764409.3A Active CN112394913B (zh) | 2019-08-19 | 2019-08-19 | 支持程序分解和复用的实物编程系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112394913B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104991640A (zh) * | 2015-06-17 | 2015-10-21 | 施政 | 交互界面上的实物编程系统和方法 |
CN106708535A (zh) * | 2017-01-09 | 2017-05-24 | 苏州乐派特机器人有限公司 | 一种应用于实物编程模块的自定义编辑系统及方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8015141B2 (en) * | 2008-02-18 | 2011-09-06 | Microsoft Corporation | Rule-based programming languages for entities in environments |
CN103456203B (zh) * | 2013-09-12 | 2015-08-26 | 中国科学院软件研究所 | 一种便携式实物编程方法及系统 |
CN105765512A (zh) * | 2014-01-30 | 2016-07-13 | 施政 | 在交互面上用物理物体进行计算机编程的系统及方法 |
CN104898456B (zh) * | 2015-04-02 | 2018-06-19 | 苏州乐派特机器人有限公司 | 实物化编程的方法及其在机器人领域的应用 |
US10552550B2 (en) * | 2015-09-26 | 2020-02-04 | Intel Corporation | Technologies for physical programming |
CN105396295B (zh) * | 2015-11-17 | 2018-07-17 | 卢军 | 一种面向儿童的空间编程机器人玩具 |
CN106097848B (zh) * | 2016-07-27 | 2019-04-19 | 厦门石湾科技有限公司 | 一种实体编程小车及编程方法 |
CN106339216A (zh) * | 2016-08-18 | 2017-01-18 | 中国科学院软件研究所 | 一种基于事件处理的实物编程工具 |
CN108228153B (zh) * | 2017-12-20 | 2021-02-19 | 中国科学院软件研究所 | 一种面向合作的实物编程方法及系统 |
CN108279878B (zh) * | 2017-12-20 | 2020-11-20 | 中国科学院软件研究所 | 一种基于增强现实的实物编程方法及系统 |
CN108255183A (zh) * | 2018-03-29 | 2018-07-06 | 广东嘉腾机器人自动化有限公司 | 一种agv地标卡指令系统及地标卡指令设定方法 |
-
2019
- 2019-08-19 CN CN201910764409.3A patent/CN112394913B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104991640A (zh) * | 2015-06-17 | 2015-10-21 | 施政 | 交互界面上的实物编程系统和方法 |
CN106708535A (zh) * | 2017-01-09 | 2017-05-24 | 苏州乐派特机器人有限公司 | 一种应用于实物编程模块的自定义编辑系统及方法 |
Non-Patent Citations (2)
Title |
---|
Physical programming: designing tools for children to create physical interactive environments;Jaime Montemayor等;《CHI 2002: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems》;20020420;第299-306页 * |
面向儿童的图形化编程语言和工具;王婷婷等;《计算机辅助设计与图形学学报》;20130415;第25卷(第4期);第584-591页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112394913A (zh) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102136208B (zh) | 一种实物编程方法和系统 | |
US6470235B2 (en) | Authoring system and method, and storage medium used therewith | |
US7219064B2 (en) | Legged robot, legged robot behavior control method, and storage medium | |
CN206894795U (zh) | 一种实现图像处理的遥控器及无人飞行系统 | |
KR20020056949A (ko) | 오서링 시스템 및 오서링 방법과 기억 매체 | |
CN103456203A (zh) | 一种便携式实物编程方法及系统 | |
CN205899950U (zh) | 教育机器人控制套件 | |
CN111240242A (zh) | 一种实物化编程系统及方法 | |
CN2857141Y (zh) | 可编程教学智能机器人实验系统 | |
CN112394913B (zh) | 支持程序分解和复用的实物编程系统 | |
CN106097848A (zh) | 一种实体编程小车及编程方法 | |
Dragule et al. | A survey on the design space of end-user-oriented languages for specifying robotic missions | |
CN208115175U (zh) | 益智玩具 | |
CN213159402U (zh) | 一种编程语言实物化积木编程系统 | |
CN108079587B (zh) | 一种互动卡片式编程系统及其编程方法 | |
CN110102059A (zh) | 路点信息的生成方法、装置、处理器及终端 | |
US20120021732A1 (en) | Cloud computing system configured for a consumer to program a smart phone or touch pad | |
Griffin | The art of LEGO Mindstorms EV3 programming | |
Noble | Building a LEGO-based Robotics Platform for a 3 rd Grade Classroom | |
KR20200074340A (ko) | 다중 코딩 소스를 제어할 수 있는 코딩 교육용 스마트 토이 시스템 | |
CN114405019A (zh) | 一种基于数字孪生的模块化机器人玩具与教具控制系统 | |
CN112073944B (zh) | 基于物联网通信的快速系统开发的模块与组件设计方法 | |
US9465588B1 (en) | User programmable toy set | |
US10136242B2 (en) | Cloud computing system configured for a consumer to program a smart phone and touch pad | |
CN203566698U (zh) | 一种微控制单元可插换及擦写的积木型智能机器人 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |