在交互面上用物理物体进行计算机编程的系统及方法与流程

文档序号:14685980发布日期:2018-06-14 22:28

本申请是标题为“用物体学习、创作和演奏音乐的系统和方法”、提交于2014年6月19日的国际专利申请PCT/CN2014/080317的部分继续申请;国际专利申请PCT/CN2014/080317是标题为“用物理物体运行计算机程序的系统及方法”、提交于2014年6月13日的国际专利申请PCT/CN2014/079891的部分继续申请;国际专利申请PCT/CN2014/079891是标题为“识别物体身份和相对于互动表面的位置的系统及方法”、提交于2014年3月6日的国际专利申请PCT/CN2014/072961的部分继续申请;国际专利申请PCT/CN2014/072961是标题为“识别物体身份和相对于互动表面的位置的系统及方法”、提交于2014年1月30日的国际专利申请PCT/CN2014/071850的部分继续申请;国际专利申请PCT/CN2014/071850是标题为“互动板的系统及方法”、提交于2013年3月12日的国际专利申请PCT/CN2013/072481的部分继续申请。

上述每件申请的全部公开内容以引用方式纳入。

技术领域

本发明涉及为教育、娱乐和生产的目的而创建和运行计算机程序,更具体来说,使用户可以使用物体来创建计算机程序的交互面。



背景技术:

“这个国家的每个人都应该学习计算机编程…...因为它教会你如何思考。”-史蒂夫·乔布斯。

计算机编程正在成为广泛社会中的一种思维和行为方式,已经超越了计算机编程专业的狭小范围,特别是随着互联网持续成为驱动现代生活中几乎每一个方面变化的一种变革力量。人们开始学习计算机编程不断低龄化,通过专门为儿童和初学者开发的编程工具和平台,这种趋势得到了鼓励和强化。

目前有一些编程工具和平台,可用来创建互动故事、游戏和动画,并在网络社区共享这些创作。他们声称其目的在于帮助青少年学习创造性地思考,系统地推理,并协同工作。对于通常对编写程序代码没有太多关注的群体,例如年仅4岁的儿童,在智能手机或平板电脑上运行的许多游戏的开发目的是进一步降低编程的准入门槛,并且教授逻辑思考的方式。

但是,尽管有这些努力,学习游戏编程仍然没有玩游戏那么直观且缺少乐趣,因此要求开发出使编程更直观和有趣的方法。当前,即使不是全部,但可以说大部分的编程工具和游戏都是基于屏幕的,要求用户与电子屏幕进行互动,不管是笔记本电脑,智能手机或者平板电脑。因此需要一个无屏的、基于物理构件的系统和方法,尤其是那些幼童,他们的家长愿意去激发孩子对于结构思考和逻辑推理的兴趣,但是同时也希望减少其在电子屏幕前度过的时间。



技术实现要素:

本发明披露了一种结合物理物体和交互面来创建和运行计算机程序的新颖方式。所述交互面用于识别放置在所述交互面上的物理物体,并基于所述物理物体形成的功能图案来创建计算机程序。

根据本发明实施例,用户在交互面上放置多个物理物体。每个所述物理物体包含一个带有物体身份(ID)信息的识别码。所述物理物体相互相邻或上下放置,形成一个功能图案。所述交互面用于识别所述物理物体的ID、位置和方向,从这些ID、位置和方向信息中导出功能图案,并基于此功能图案创建一个计算机程序。

根据本发明实施例,每个所述物理物体都被分配一个计算机编程符号。当多个物理物体被放置在交互面上之后,有效连接到交互面的处理器接收所述物理物体的相关信息,并从存储在有效连接到所述处理器的存储器中的识别码与编程符号之间的相关关系的数据库中得到相应编程符号。

根据本发明实施例,所述处理器从内嵌于由交互面上多个物理物体形成的功能图案的编程符号来生成计算机程序。

根据本发明实施例,所述物体可以是按钮、卡片、码块、雕像或其他2D或3D块结构,它们相邻放置形成清晰可识别的2D或3D功能图案。

根据本发明实施例,编程符号可以代表以下任何符号:运动;控制语句;布尔运算符;动作;子程序;算术运算符。

根据本发明实施例,所述物体也可以是一块放置在交互面上的物理薄片,该物理薄片上印有信息,提供所要创建的计算机程序的相关信息,物理薄片上的编程符号与其他物体的编程符号一起用于导出所述计算机程序;根据本发明的一个实施例,所述物理薄片中嵌入识别码,使所述处理器得以创建特定的计算机程序。

根据本发明实施例,感官配件有效连接到所述处理器并向用户提供交互式反馈。

根据本发明实施例,在交互面上放置多个卡片可以创建计算机程序,并且该计算机程序的执行可以控制电子装置的运转。因此,计算机编程的概念可以通过有趣而直观的方式来学习。

附图说明

图1是根据本发明的一个实施例说明系统流程的示意图。

图2是根据本发明的一个实施例创建计算机程序的系统的示意图。

图3A、3B、3C、3D、3E和3F是根据本发明的多个实施例说明被分配编程符号的各类卡片设计的示意图。

图4是根据本发明的一个实施例使用物理薄片创建计算机程序的系统的示意图。

图5是根据本发明的一个实施例创建和运行计算机程序的方法流程的示意图。

具体实施方式

在此将对本发明的多个实施例进行详细说明,并配合附图举例说明。尽管本发明将结合这些实施例来描述,这不能被理解为将本发明的范畴限制于这些特定的实施例中。本发明意图在权利要求中所定义的、在本发明的精神和范畴内,覆盖所有替代、修改和等同的内容。

此外,在对本发明的详细描述中,具体细节仅为了便于彻底理解本发明。然而,对于本领域普通技术人员而言,显而易见的是,本发明无须了解这些具体细节也可以得到实践。在其他情况下,公知的方法、过程、部件和电路等没有详细描述,以避免不必要地模糊对本发明的清晰理解。

通过参考附图,对于本领域技术人员来说,本发明可以得到更好的理解,它的许多目的和优点将变得明显。

本发明实例披露了一个用物理物体,通常为卡片,结合使用交互面来创建和运行计算机程序的系统和方法。

图1是根据本发明的一个实施例说明系统流程的示意图。系统包括有效连接到计算机系统102的交互面101,计算机系统102包括处理器103和存储器104。交互面101还包括有效连接到交互面101的计算机系统102上的传感器或探测装置105。传感器或探测装置105用于探测放置在交互面101上或者附近的物体106的位置和唯一ID。物体106的识别码可以是唯一识别码(UID),UID可以使用射频识别芯片,电容标签模式,或磁性标签模式进行编码。图1中描述的系统还包括用户反馈设备107,如有效连接到计算机系统102的音频扬声器和/或照明设备。

图2是根据本发明的一个实施例创建计算机程序的系统的示意图,说明了使用图1的系统设计创建简单计算机程序的过程。

如图2所示,两类印有编程符号的卡片202被放置在交互面201上来创建一个计算机程序,其目的是点亮交互面上的方形的四个角。具体而言,“移动”卡片203用于编程物体在不同方向上的移动,而“亮灯”卡片204被用来象征点亮交互面201的任何特定点的动作。两个功能按钮,即播放按钮205和停止按钮206,位于交互面201的底部,用来与用户互动。

为了使用图2中的系统来创建计算机程序,用户在交互面201上相邻放置多个卡片202。一旦卡片202被适当地放置于交互面201上,内嵌于交互面201的传感器或探测装置探测到卡片202的ID以及它们在交互面201的相对位置,并将此信息发送给计算机系统207,计算机系统207有效连接到交互面201,并包括处理器208和存储器209。计算机系统收到此信息,并从存储在也有效连接到所述处理器的存储器中的识别码与编程符号之间的相关关系的数据库中得到分配给卡片202的相应的编程符号。基于这些编程符号所形成的功能图案,计算机系统的处理器生成计算机程序。

用户可以通过按播放按钮205来运行其创建的计算机程序,输出通过有效连接到处理器的感官配件(此案例中为LED灯210)来产生。感官配件也可以是音频设备、视频设备、照相机或振动发生器。如果用户不满意创建的程序或者想调试时,他/她可以简单地先按停止按钮206,然后添加、删除或更换卡片来重新生成一个程序。感官配件可设置成产生一个输出,表明该计算机程序的执行。例如,每张卡片202上附一个LED灯,当特定卡片202代表的代码被执行时该LED灯可被点亮,使用户将计算机程序的执行可视化,并很容易发现未按预期执行的任何代码。

如图2所示,结合“移动”卡片203和“亮灯”卡片204,方形的四角按照顺时针方向依次点亮,而无所谓交互面201上的起始点。在本实施例中所使用的卡片202的次序为:“右移”,“右移”,“亮灯”,“下移”,“下移”,“亮灯”,“左移”,“左移”,“亮灯”,“上移”,“上移”,“亮灯”。卡片202的这个次序产生的编程代码如下所示:

main()

{

right();

right();

light();

down();

down();

light();

left();

left();

light();

up();

up();

light();

}。

本发明中,每张卡片202被分配一个不同的计算机编程符号。编程符号可以采用不同形式和图案,提供不同的功能。所述卡片可分属以下类别:运动;控制语句;布尔运算符;动作;子程序;算术运算符。

图3A、3B、3C、3D、3E和3F是根据本发明的多个实施例说明被分配编程符号的各类卡片设计的示意图。

1.移动卡片

在图2中,几张移动卡片被用于本实施例来简单代表物体在不同方向的移动。如图3A所示,物体可以向上,向下,向左和向右移动,可以向上跳和向下跳,可以保持向前移动,也可以向左和向右转。

2.控制语句卡片

程序的执行由各种功能语句来控制。图3B给出了一些例子,包括“如果(If)”,“否则(Else)”,“当(While)”,“直到(Until)”和“循环(Loop)”(以及循环的数量)。

3.布尔运算符卡片

逻辑表达中使用布尔运算符来操纵真或假的值,这些逻辑值随后将被用于决定执行计算机程序中适当的部分。基本的布尔运算符卡片,即,“否(Not)”,“和(And)”,“或(Or)”,和“异或(Xor)”,如图3C所示。

4.动作卡片

简单的动作也可以用动作卡片来代表。一张“亮灯”卡片已经在图2中展示。其他编程符号可能还包括,“喷涂(Paint)”,“点火(Fire)”,“屏蔽(ShieldUp)”,“拾起(PickUp)”,“放下(Drop)”,“推(Push)”和“拖(Drag)”等,如图3D所示。

5.子程序卡片

在计算机程序中,子程序是根据程序员的定义,打包为单元,执行特定的任务的程序指令序列。这个单元随后可以在程序中该特定任务应该被执行的任何地方使用,这减少了很多编码的工作量。通过使用子程序卡片,子程序可以简单地表示为“P1”,“P2”……,如图3E所示。

6.算术运算符卡片

算术运算符广泛地应用于计算机编程中。最简单的算术运算符卡片,例如“+”,“-”,“×”,“÷”和“=”,如图3F所示。

尽管有多种可用于交互面的编程符号,为了简化起见,根据本发明的一个实施例,将仅使用上述的部分编程符号来描述本发明如何创建计算机程序。

图4是根据本发明的一个实施例使用物理薄片创建计算机程序的系统的示意图。如图4所示,系统包括一个印有迷宫图案的物理薄片402,放置于交互面401上,以及一组被分配编程符号的卡片403,整齐地排放在物理薄片402的编码区域410。在这个特定实施例中,计算机程序是由分配给该物理薄片402和放置在薄板402上的卡403的编程符号所形成的功能图案创建的,以引导被困在迷宫中的机器人404从迷宫中走出。

除了在前面实施例中使用过的移动卡片外,此实施例也使用了其他类别的卡片。例如,子程序卡“P1”,其被定义为特定的卡片序列,用于调用一个子程序,以减少所使用卡片的数量。

如图4所示,一个用户放置一个印有迷宫布置图的物理薄片402,在物理薄片402的编码区域410放置彼此相邻的卡片403。嵌入交互面401的传感器或探测装置,探测卡片403和物理薄片402的ID和在交互面401的表面上的相对位置,将这些信息发送给有效连接到交互面401的计算机系统407,计算机系统407包括处理器408和存储器409。计算机系统收到此信息,并从存储在有效连接到所述处理器的存储器中的识别码与编程符号之间的相关关系的数据库中得到分配给卡片403和物理薄片402的相应的编程符号。基于这些编程符号所形成的功能图案,计算机系统的处理器生成计算机程序。

该程序是通过有效连接到处理器408的电子装置来执行的。在本发明的此实施例中,该电子装置是一个机器人,其动作由计算机程序来控制。在本发明的另一实施例中,该电子装置可以是计算机,计算机程序由该计算机执行。

该系统还可以包括感官配件(未示出),其可以产生一个输出,来指示该计算机程序的执行情况。例如,每张卡片403上可附有一个LED灯,当特定卡片403代表的代码被执行时该LED灯可被点亮,使用户将计算机程序的执行可视化,并很容易发现未按预期执行的任何代码。

如图4所示,创建的程序的执行引导被困在迷宫的机器人404走出迷宫。在本实施例中,用于主程序代码的卡片次序如下,“子程序1”,“子程序1”和“前进”。卡片次序所定义的子程序P1如下,“前进”,“左转”,“前进”,“右转”。从卡片403的序列中产生的完整代码可以表示为如下:

main()

{

proc1();

proc1();

moveForward();

}

proc1()

{

moveForward();

turnLeft();

moveForward();

turnRight();

}。

图5是根据本发明的一个实施例创建和运行计算机程序的方法流程的示意图。如图5所示,该方法包括以下步骤。

步骤501:放置多个物体在交互面上或者附近来形成一个功能图案。每个物体包括识别码,并被分配一个编程符号。

步骤502:交互面识别物体的识别码和位置信息。交互面包括有效连接到计算机系统的传感器或探测装置,传感器或探测装置用于探测在交互面上或者附近的物体的位置及其唯一ID。

步骤503:从物体的识别码中获取编程符号。一个识别码与编程符号之间的相关关系的数据库被存储在一个存储器中,处理器用于获得每个物体识别码的编程符号。

步骤504:从功能图案中获得计算机程序。处理器用于获得基于形成功能图案的物体的位置信息以及编程符号的计算机程序。该计算机程序是由一系列编程符号所代表的程序代码。

步骤505:执行计算机程序去控制电子装置。例如,用户可以按播放按钮来执行计算机程序,该计算机程序可被用来控制一个电子装置,例如图4中所示的机器人的移动。该电子装置也可以是计算机。

步骤506:控制感官配件产生输出来指明计算机程序的执行。系统可能还包括感官配件,如LED灯。例如,每个物体可附有LED灯,当特定物体代表的代码被执行时,其LED灯可被点亮,使用户将计算机程序的执行和电子装置的运行可视化。

步骤507:如果电子装置未按预期运行,将停止执行计算机程序。例如,如果图4中的机器人不能按照预设路径移动,用户可以通过按停止按钮停止程序代码的执行。

步骤508:通过重新排列功能图案中的物体来调试计算机程序。用户可以很容易调试程序,因为LED灯可以指示他引起该程序的物体。

根据本发明的实施例,一个计算机程序可以通过放置多个物体在交互面上来创建,该计算机程序的执行控制电子装置的运行。因此,计算机编程的概念可以通过有趣和直观的方式来学习。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1