专利名称:一种基于红外和无线传输技术的实物编程方法和系统的制作方法
技术领域:
本发明属于人机交互领域,具体涉及到一种通过实物进行编程的方法和系统。
背景技术:
伴随着科学技术的高速发展和个人计算机的广泛普及,计算机已经遍布我们生活中的每个角落,各种数字化设备也已经成了我们生活的必需品,我们可以使用它们更好地认识世界,了解世界。同时对于儿童来说,随着儿童使用计算机的深入,他们会不仅仅满足于使用计算机玩游戏,浏览网页和观看视频,他们希望能够自己编写程序来控制计算机。然而对于儿童来说,他们并不能很好的理解和接受传统的编程方式。相关研究者曾指出,儿童并没有很好的知识储备来学习传统的编程方式(即通过键盘输入一段代码),他们不仅会在写代码的时候遇到若干问题,也会在使用编程环境时遇到许多困难。他们很难理解复杂的程序语言、逻辑关系、系统架构等非常专业的知识,同时也会遇到语法、复杂指令以及大量输入工作等问题。近些年出现了许多的实物编程系统,儿童可以通过和实物进行交互来 编写出同传统编程方式一样功能的代码,这样的编程方式更能吸引儿童,也更方便儿童学习和理解。实物编程方式向儿童提供了一种学习编程的可行途径。专利一种实物编程方法和系统(公开号CN102136208A)公开了一种实物编程系统,这套系统基于摄像头捕捉实物语义通过识别理解来实现与程序语义的映射。但该系统有如下问题图像采集单元只能采集到固定区域范围内的编程块信息,有时儿童摆放编程块会不自觉的超出范围;同时此系统要求编程块上的计算机视觉识别码必须无遮挡,而儿童在使用编程系统时总会把手放在编程块上,这样就遮挡了识别码造成错误的反馈;另外,编程块上计算机视觉识别码的图案也会对儿童造成一定的困惑。
发明内容
针对上述问题,本发明的目的在于提出一种新的实物编程方法,此方法基于红外和无线传输技术,用户无需再担心由于使用摄像头而产生的一些列问题。不仅如此,此方法提供了在编程块上的反馈功能,若编程块摆放错误,则相应编程块表面的LED灯会开始闪烁,帮助儿童快速定位错误编程块。本发明通过编程块本身提供一定的反馈,使得儿童和新手可以摆脱编程繁冗的语法、大量的输入和复杂的编程环境,降低儿童和新手学习编程的门槛。本发明的技术方案为一种实物编程方法的实现,其步骤为I)选取或建立一套实物编程显示环境,并将该实物编程显示环境的语法语义判定规则存储到实物编程处理模块中(参见专利公开号CN102136208A);2)用户根据所选实物编程的任务及任务执行规则摆放实物编程块;其中,每一个编程块的内部都包含有一个单片机,用于进行通讯及数据传输。每个编程块的表面都有一个语义图形和一个用来进行反馈的LED灯;
3)每个编程块都有一个唯一的二进制标识码,每个编程块都包含有一个无线模块和一个红外模块,相邻编程块通过红外模块传递信息;前一个编程块的标识码直接通过红外编码解码即可,红外模块是一对一进行数据传输,每个编程块都只有一个发射一个接收,接收在左边发射在右边,这样就只能接收到左边发来的信息,并且自身信息只能发射到右边。4)与电脑相连的无线处理模块与每个编程块的无线模块通过地址轮询进行一对多双向通信,无线处理模块根据接收到的每个编程块的无线模块发出的无线信息(前一个编程块的二进制标识码和自身的标识码),并将编程块的二进制码排序,得到编程块序列信息并通过串口通信将其发送给电脑中的实物编程处理模块;其中,无线处理模块中有个单片机,其包含一个无线模块和一个地址轮询模块,地址轮询模块设置了地址数组,数组中存放了每个编程块的识别码,根据识别码,来轮询具体的编程块。5)实物编程处理模块根据对应的转换关系表将二进制序列信息转换为对应的功能语义序列;
6)实物编程处理模块判断当前功能语义序列是否满足该实物显示环境的语法语义规则,并根据正确和错误情况提供相应的反馈;7)当根据所选实物编程的任务及任务执行规则应摆放的所有实物编程块对应的功能语义序列满足该实物编程显示环境的语法语义判定规则时,完成该实物编程的任务。所述实物编程处理模块依次执行功能语义序列中的指令,判断当前指令是否满足实物编程显示环境的语法语义规则;如果满足,反馈程序正确的提示信息;如果不满足,则反馈用户相应的错误提示。所述实物编程显示环境经一显示器和相关编程块输出。所述程序正确的提示信息或错误的提示信息采用所述显示器输出,同时摆放错误的编程块会通过无线得到信息,使该编程块上的LED灯开始闪烁。一种实物编程系统,其特征在于包括若干实物编程块、无线处理模块、实物编程处理单元、实物编程显示环境的输出设备;所述实物编程处理单元分别与所述实物编程显示环境的输出设备、与所述无线处理模块连接;所述实物编程处理单元用于将二进制序列信息转换为功能语义序列,判断当前采集的实物编程块序列是否满足所述实物编程显示环境的语法语义判定规则,并根据判断结果提供反馈信息。其中,每一所述实物编程块包括一单片机、一语义图像和反馈灯、一标识码,单片机包含无线通信模块和红外模块,用于与相邻编程块通过无线处理模块进行通信。无线通信模块同单片机连接,单片机控制无线模块。所述系统还包括一中间控制平台,所述实物编程处理单元经所述中间控制平台与一个传感器连接;所述传感器用于执行所述中间控制平台转换后的所述实物编程处理单元的指令,以及将传感器信号经所述中间控制平台发送给所述实物编程处理单元(参见专利公开号CN102136208A)。所述系统还包括语音输出装置、鼠标或笔,所述实物编程处理单元分别与所述语音输出装置、鼠标或笔连接。本发明的系统如图I所示,包括I)若干实物编程块,是儿童用来编程的最主要工具,每个编程块表面都有一个LED灯和编程语义图形,LED灯用来提供实时错误反馈,便于儿童判断编程的正确与否,编程语义图形是为了方便了儿童理解和记忆不同的实物编程块的语义。每个编程块内部都包含有一个单片机,用来进行数据传输和处理。编程块的红外接收模块接收前一个编程块的红外信息,并解码得到前一个二进制的标识码,并通过无线模块与电脑端无线控制模块进行数据传输,将前一个编程块和自身的二进制标识码传送给无线处理模块,无线处理模块可以根据前一个编程块位置确定该编程块的位置,进行数据处理,完成编程块序列排序。2)无线处理模块,同编程块进行无线通讯,并将数据结果处理后通过串口传送至实物编程处理单元。3)实物编程处理单元,是整个实物编程系统的操作控制核心,包含对应功能语义序列转换、语义分析、传感器交互、迷宫游戏控制和结果显示等。4)Arduino单片机平台,传感器与计算机进行交互的中间控制平台。
5)传感器,用来控制系统的状态和在程序执行某些阶段与系统进行交互。
6)计算机,包括主机、显示器、鼠标或笔和键盘等。 其中,实物编程处理单元的语义分析、传感器交互、迷宫游戏控制和结果显示等功能,Arduino单片机平台的功能,传感器的功能和计算机的功能可参考见专利一种实物编程方法和系统(公开号CN102136208A)。每个实物编程块都有一个唯一标识的八位二进制码,每个码分别与程序中特定的语义命令相对应。实物编程块分为三大类第一类是开始结束编程块。有开始和结束两种编程块,表示程序的开始和结束;第二类是传感器编程块,光线传感器块、按钮传感器块、温度传感器块,分别与系统中的传感器类型对应;第三类是方向编程块,共有左上、左下、右上、右下四个方向的四种编程块,表示迷宫中虚拟人物行走的四个方向。每个实物编程块中都包含有一个单片机,相邻编程块通过红外通信,同时每个编程块都和无线处理模块通过无线进行信息传递。若编程块摆放错误,则相应编程块会收到无线信号使编程块上的LED灯开始闪烁。无线处理模块通过串口与计算机相连,无线处理模块通过地址轮询的方式依次同每个单片机通过无线模块进行通讯,并将反馈得到的信息排序得到编程块的二进制序列码。每隔一段时间,无线处理模块通过串口将排序好的序列传给计算机上的实物编程处理模块。实物编程处理单元的对应语义序列转换,当实物编程处理单元接收到无线处理模块发来的二进制序列后,会根据内部所存储的语义序列转换图(图3),将二进制码转换为对应的语义序列。整套系统的连接结构图如图4所示。本系统利用单片机系统,实现了一套支持单人或者多人协作编程的实物编程系统。和传统的编程方式相比,繁冗的语法,大量的输入和复杂的编程环境阻碍了儿童和新手学习编程的过程,这套实物编程系统极大的简化了这个过程,使得儿童和新手可以将精力集中在解决问题和处理程序逻辑本身,同时也通过用户与传感器的交互吸引儿童注意力,提高儿童学习的兴趣,学习到编程相关的知识。与现有技术相比,本发明具有如下的优点和技术效果I.本发明给出一种基于无线和红外通信的实物编程方法本发明中,相邻编程块通过红外传输数据,每个编程块同无线处理模块之间通过无线进行多对一双向通讯。本发明通过使用电子元件之间数据传输,最终完成实物语义向编程语义的映射。2.和基于摄像头实现的实物编程方法相比,儿童不用再担心自己是否遮挡住了摄像头。由于使用摄像头的编程方法需要实时捕捉编程块上的标识码,因此若当标识码被遮挡住后摄像头会由于无法识别编程块而造成与预期结果不同的反馈输出,给儿童造成困惑。本发明的实物编程方法完全使用单片机来进行数据传输,避免了摄像头遮挡的问题。和基于摄像头实现的实物编程方法相比,儿童不用再考虑编程块是否摆放在摄像头范围内。由于使用摄像头的编程方法需要通过摄像头拍摄编程块上的信息,因此所有的编程块必须摆放在摄像头能够采集到的区域范围内,但由于没有明确的标注范围,儿童有时不小心就会摆放出去,同时看不到预期的反馈。本发明的实物编程方法完全杜绝了这个问题,儿童可以在沙发上、地板上、桌子上等任何地方摆放编程块,完全不受摆放区域的限制。和基于摄像头实现的实物编程方法相比,取消了一种实物编程方法和系统专利 (公开号CN102136208A)中编程块上的图形识别码,从而使编程块更加简洁容易理解。3.在基于摄像头的编程方法中,每个编程块上都有一个图形码供摄像头采集并识另IJ,但对于儿童来说图形码太抽象,从而会给他们造成一定的困惑。本发明的编程方法在编程块表面只有一个语义图片和一个用于反馈的LED灯,清晰明了,更加简洁容易理解。4.和一些基于带有电子设备的实物编程方法相比,本发明操作起来更为灵活方便。在一些基于电子设备的实物编程方法中,往往需要通过一些有线设备进行供电和数据传输,从而增加了环境的限制。本发明使用电池供电,不需要电源线。同时本发明在使用中只需把两个编程块摆放在一起即可,并不需要插拔等较为困难的操作,使用起来灵活方便,同时由于每个块相邻的两面有磁铁,方便了编程块的连接。5.支持多人协作编程。实物编程本身是在开放的空间中完成编程,这个特点也使得多用户协作编程成为可能。此编程块的尺寸约为7cm的正方体,方便两人同时进行摆放,而且儿童可以在游戏中可以互相商量,从而增进友情,培养表达能力和团队协作能力。6.增加了编程块本身的反馈。编程块上有一个LED灯,当编程块摆放错误时,编程块上的LED灯会开始闪烁,帮助用户快速定位错误的编程块,简化调试的过程。
图I本系统架构图;图2本系统的基本处理流程图;图3本系统的语义序列转换图;图4本系统的系统连接结构图。
具体实施例方式为了使本技术领域的技术人员更好的理解,下面结合附图和实施方式对本交互方法作进一步的详细说明本发明的实现流程如图2所示。主要分为状态控制、编程调试和程序执行三个阶段。其中,状态控制和程序执行部分的详细信息可参考见专利一种实物编程方法和系统(公开号CN102136208A),下面将详细说明在编程阶段各个模块的详细功能编程调试阶段是整个系统最重要的阶段,在这个阶段中用户需要通过实时调试和编译来编写程序,控制游戏中的虚拟人物从迷宫开始单元格走到迷宫结束单元格。下面将详细介绍这一部分的各个功能模块和步骤I.初始化。在编程阶段,编程块内的单片机和无线处理模块首先需要进行初始化工作,设定好定时器和中断的相关参数。 2.红外传送数据。在这套编程系统中,每个编程块都有一个唯一标识的八位二进制标识码,相邻编程块会通过红外发送接收模块传递自己的二进制标识码。当编程块接收到前一个编程块发送来的红外信号后,会在解码后将前一个编程块的标识码和自己的标识码发送给无线处理模块。红外信号使用脉冲宽度调制进行编码和解码,编码和解码由编程块中的单片机完成。3.无线多对一双向通信。无线处理模块同编程块并行工作。在编程块发送和接收红外信号的过程中,无线处理模块通过地址轮询的方式依次询问每个编程块并等待反馈。对于编程块来说,首先会检测是否收到红外信号,收到红外信号的编程块会等待无线处理模块进行询问,若收到无线处理模块的信号则先检验是否是通知此编程块错误,是则使编程块上的LED灯开始闪烁,否则将前一个编程块和自身编程块的标识码通过一定格式反馈给无线处理模块。对于无线处理模块来说,首先会询问地址数组中识别码所标识的第η个单片机(某个实物编程块),并等待一定时间,若没收到反馈则询问下一个单片机,若收到反馈则进行进一步处理。4.无线处理模块数据处理。无线处理模块首先确定开始块(每个编程块都会发来上一个编程块的标识码和自身标识码。例如如果开始块的标识码是01,无线处理模块会找发来的前一个标识码是01的数据,确定出开始实物编程块),当无线处理模块收到编程块反馈的无线信息后(无线信息为前一个编程块的二进制标识码和自身的二进制标识码),无线处理模块首先会查找前一个编程块(单片机)的标识码在该序列中的位置(确定开始块之后,编程块发来前一个编程块的信息和自身编程块信息,如果前一个编程块是开始块,那么就把这个编程块放到开始块后面,就确定了第二个编程块;例如找到了(01,05),那么就将05放在01之后,即第二个,如果之后又接收到了一些数据例如(02,03),(04,06),(05,07)则将07放在第三个,依此类推,确定整个序列顺序),若该位置之后无编程块,则直接在该位置后加入新的编程块(即当前实物编程块)。若该位置之后有编程块,则表示之前放过其他的编程块,此时要将其更换为新的编程块,因此要消除该位置以及该位置之后的所有编程块,并加入新的编程块。以此类推处理每一个编程块的无线消息,最终得到编程块的二进制序列信息。5.信息传递与转换。当轮询一遍后,无线处理模块会将编程块二进制序列信息通过串口传递至实物编程处理单元,实物编程处理单元会通过之前定义的语义转换对应关系表,将二进制序列信息转换为对应的程序语义序列信息。
6.语义理解。结合着迷宫地图的相关信息,进行语义理解步骤并给出相应的反馈。具体的过程是,依次从第5步保存的功能语义代码序列中取出相应的命令,每取到一个命令后,判断是否符合当前迷宫状态。如果不符合,则直接进行反馈,不执行剩下的语义命令。如果正确,则继续从功能语义代码的容器中取出命令,重复执行此步,直到取出所有命令或某个命令不符合迷宫状态返回。具体的,在每一步判断某个命令是否符合当前迷宫状态不同的时候,也会根据命令的不同,而判断的过程也不一样。命令主要有三种方向命令、传感器命令和开始结束指令。7.多媒体输出。在第6步中,会根据迷宫状态理解的结果,给出相应的反馈信息。反馈主要有图像和单片机自身的输出反馈。a.图像输出。主要是通过卡通脸表情的变化来给用户以直观的提示。微笑的卡通 脸表示第6步中迷宫状态理解正确。沮丧卡通脸表示迷宫状态理解有错误。b.编程块自身输出。若程序存在错误,无线处理模块会通知相应的编程块使其LED灯开始闪烁,使用户迅速定位错误编程块。这部分是系统实时调试的一个重要组成部分。用户可以根据图像和编程块上的提示来综合判断所编写程序的出错位置。很大程度上方便了程序调试的整个过程。在编译调试阶段的最后部分,会判断是否继续进行编译调试。如果继续编程,则继续重复上述行为。如果选择不继续进行编程,则返回操作理解阶段,判断用户的意图。通常有两种情况,一种是,用户在编程过程中,点击退出按钮,退出程序的执行;另一种是,用户通过迷宫块编程成功选择了一条从开始单元格到结束单元格的路线,并且触发了操作理解阶段中的按钮传感器,从编程调试阶段进入到了程序运行阶段。综上所述,本发明给出了一种通过实物编程块来进行编程的方法并实现了实物编程系统,有效的简化了编程语言的语法,优化了之前的系统,并使得编程块本身可以提供一定的反馈,儿童可以集中精力在解决问题本身的逻辑上,极大的提高了儿童对于编程的兴趣,方便儿童和新手学习编程。
权利要求
1.一种基于红外和无线传输技术的实物编程方法,其步骤为 1)选取或建立一套实物编程显示环境,并将该实物编程显示环境的语法语义判定规则存储到实物编程处理模块中; 2)用户根据所选实物编程的任务及任务执行规则摆放实物编程块;其中,每一个实物编程块包含有一单片机,所述单片机包括一无线模块和一红外模块;实物编程块的表面设有一个语义图形和一反馈指示灯;每一实物编程块具有唯一的一二进制标识码; 3)实物编程块通过红外模块将其二进制标识码经单片机编码后发送给相邻实物编程模块,实物编程模块的的单片机收到二进制标识码后对其进行解码; 4)服务器上的无线处理模块轮询每个实物编程块的无线模块,进行一对多双向通信,无线处理模块根据无线模块发出的无线信息对实物编程块的二进制码排序,得到实物编程块序列信息并将其发送给实物编程处理模块;所述无线信息包括前一个实物编程块的二进制标识码和当前实物编程块的二进制标识码; 5)实物编程处理模块将二进制序列信息转换为对应的功能语义序列; 6)实物编程处理模块判断当前功能语义序列是否满足该实物显示环境的语法语义规贝U,并根据正确或错误情况提供相应的反馈; 7)当根据所选实物编程的任务及任务执行规则摆放的所有实物编程块对应的功能语义序列满足该实物编程显示环境的语法语义判定规则时,完成该实物编程的任务。
2.如权利要求I所述的方法,其特征在于所述无线处理模块中包括一地址数组,该地址数组中存放了每个实物编程块的识别码。
3.如权利要求2所述的方法,其特征在于所述双向通信过程中,对于实物编程块,首先检测是否收到相邻实物编程块的红外信号,收到红外信号的实物编程块等待无线处理模块进行询问,若收到无线处理模块的信号,则先检验是否是通知此实物编程块错误,如果是,则使此实物编程块上的反馈指示灯闪烁,否则此实物编程块将其红外模块接收的前一个实物编程块的标识码和自身编程块的标识码反馈给无线处理模块;对于无线处理模块,首先实物编程块的标识码确定开始实物编程块,然后询问所述地址数组中识别码所标识的某个实物编程块,并等待设定时间,若没收到反馈则询问下一个实物编程块,若收到反馈,则所述无线模块,根据当前实物编程块的无线信息查找其前一个实物编程块的标识码在该序列中的位置,若该位置之后无实物编程块,则直接在该位置后加入当前实物编程块;若该位置之后有实物编程块,则消除该位置以及该位置之后的所有实物编程块,并加入当前实物编程块,得到实物编程块序列信息。
4.如权利要求I所述的方法,其特征在于所述实物编程处理模块判断当前功能语义序列是否满足该实物显示环境的语法语义规则的方法为所述实物编程处理模块从所述功能语义序列中取出命令,每取到一个命令后,判断是否符合所述语法语义规则,如果不符合,则反馈提示信息,不执行剩下的语义命令;如果符合,则继续从所述功能语义序列中取出命令,直到取出所有命令或某个命令不符合所述语法语义规则。
5.如权利要求I所述的方法,其特征在于所述单片机对红外信号使用脉冲宽度调制进行编码和解码。
6.一种基于红外和无线传输技术的实物编程系统,其特征在于包括若干实物编程块、一服务器,所述服务器包括一无线处理模块、实物编程处理单元、实物编程显示环境的输出设备;所述实物编程处理单元分别与所述实物编程显示环境的输出设备、所述无线处理模块连接;所述无线处理模块用于与每个实物编程块的无线模块通过地址轮询进行一对多双向通信,得到实物编程块构成的二进制序列信息;所述实物编程处理单元用于将所述二进制序列信息转换为功能语义序列,判断当前采集的实物编程块序列是否满足所述实物编程显示环境的语法语义判定规则,并根据判断结果提供反馈信息;其中,每一所述实物编程块包括一单片机、一语义图像和反馈灯、一标识码;所述单片机包含无线模块和红外模块,相邻实物编程块通过所述红外模块进行通信,所述无线模块用于与所述无线处理模块通信。
7.如权利要求6所述的系统,其特征在于所述无线模块向所述无线处理模块发出的无线信息包括前一个实物编程块的二进制标识码和当前实物编程块的二进制标识码。
8.如权利要求6或7所述的系统,其特征在于所述无线处理模块中包括一地址数组,该地址数组中存放了每个实物编程块的识别码。
9.如权利要求6所述的系统,其特征在于所述单片机对红外信号使用脉冲宽度调制进行编码和解码。
全文摘要
本发明公开了一种基于红外和无线传输技术的实物编程方法和系统,属于人机交互领域。本方法为1)用户根据实物编程的任务及任务执行规则摆放实物编程块;2)编程块通过红外模块将其二进制标识码发送给相邻实物编程模块;3)无线处理模块轮询每个实物编程块的无线模块,得到实物编程块序列信息并将其发送给实物编程处理模块;4)实物编程处理模块将二进制序列信息转换为对应的功能语义序列,并判断当前功能语义序列是否满足当前实物显示环境的语法语义规则;5)当所有实物编程块对应的功能语义序列满足该实物编程显示环境的语法语义判定规则时,完成该实物编程的任务。本发明易于实现,避免错误的反馈,效率高。
文档编号G09B19/00GK102789713SQ20121025196
公开日2012年11月21日 申请日期2012年7月19日 优先权日2012年7月19日
发明者张铖, 王丹力, 王宏安, 顾天元 申请人:中国科学院软件研究所