首页> 中国专利> 一种基于blockly和树莓派的在线图形化编程系统及其使用方法

一种基于blockly和树莓派的在线图形化编程系统及其使用方法

摘要

本发明属于中小学编程教学领域,涉及人工智能和创客教学,具体涉及到一种基于blockly和树莓派的在线图形化编程系统及其使用方法。本发明公开了一种基于blockly和树莓派的在线图形化编程系统和方法。本系统包括:树莓派开发板、外接电子设备、显示设备、电源模块、云端服务器、基于blockly的在线图形化编程平台、安装在树莓派上的客户端程序。本发明可以将传统意义上的编程简化成图形块拼接的过程,并且不需要额外的PC电脑,只需要一个树莓派开发板、必要的输入输出设备以及外接的电子设备单元,大大降低了编程门槛和成本。

著录项

  • 公开/公告号CN110362299A

    专利类型发明专利

  • 公开/公告日2019-10-22

    原文格式PDF

  • 申请/专利权人 杭州古德微机器人有限公司;

    申请/专利号CN201910638232.2

  • 发明设计人 花江峰;

    申请日2019-07-16

  • 分类号G06F8/34(20180101);G09B19/00(20060101);

  • 代理机构33212 杭州中成专利事务所有限公司;

  • 代理人朱莹莹

  • 地址 310018 浙江省杭州市杭州经济技术开发区白杨街道6号大街452号2幢A605

  • 入库时间 2024-02-19 14:39:51

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-06-26

    授权

    授权

  • 2019-11-15

    实质审查的生效 IPC(主分类):G06F8/34 申请日:20190716

    实质审查的生效

  • 2019-10-22

    公开

    公开

说明书

技术领域

本发明属于中小学编程教学领域,涉及人工智能和创客教学,具体涉及到一种基于blockly和树莓派的在线图形化编程系统及其使用方法。

背景技术

目前越来越多的中小学生接触到了编程、创客和人工智能。随着学生学习的深入,现有的图形化编程系统已不能满足需求,他们希望阶梯的编程案例和创作出能应用于实际、应用于学习/生活的作品。学习编程不仅能开辟新的视野,还培训了学生的计算思维能力,最重要的是在创意物化的过程中通过编程可以把创意、各科知识、计算机、传感器、3D打印和各种物理器材有机的粘合在一起,体验到知识的力量。因此编程、创客和人工智能学习具体非常重要的价值。

而现有技术中,由MIT多媒体实验室开发的Scratch是目前图形化编程系统的代表,其面向8到16岁的用户,以制作游戏、动画等作品为应用背景。Scratch将编程语句封装成有沟槽的图形块,儿童可通过理解文字含义来判别编程块的功能。但其主要以游戏、动画等虚拟的表现形式,因此不如物理硬件的呈现方式那样更直观和容易理解程序逻辑。虽然最新的Scratch3.0通过插件的形式支持部分硬件的控制,但是Scratch还是需要在PC运行,不利于物理作品的创作。

现有技术中,还有一种图形化编程结合硬件用于编程和创客教学的方案,软件大多由blockly衍生开发,硬件基本基于Arduino/microbit等单片机开发而成。虽然这是一个较为简单的图形化编程和硬件结合教学方式,但是由于受到单片机的限制,只能完成简单的自动化控制的功能,能实现的创意有限,并且多数采用的是编译型语言(如C语言),要将代码先编译链接成可执行文件,再发送到单片机上执行,没有解释性语言的便捷。另外一方面,由于单片机类别繁多,且离开图形化编程平台后需要涉及底层知识,所以无法为学生提供阶梯的编程学习路径。

发明内容

为了解决上述问题,本发明提出一种软硬件结合的编程学习系统及方法,以解决传统方案中虚拟呈现使得编程系统理解不够直观、创意表达不够丰富的问题,同时克服了离开图形化编程平台无法阶梯学习编程的问题。

首先,本发明提供了一种软硬件结合的图形化编程学习系统。

一种基于blockly和树莓派的在线图形化编程系统,包括:

基于blockly的在线图形化编程平台(下面简称编程平台),用户通过该编程平台可以创建图形化代码程序,并将程序发送给树莓派开发板去执行;

安装有客户端程序的树莓派开发板;客户端程序接收编程平台发送来的程序并执行;

用来跟树莓派开发板进行通信,保存用户的信息和需要保存的图形化代码程序的云端服务器;

与树莓派开发板连接的外接电子设备、显示设备、电源模块。

其中,

所述的编程平台通过浏览器登录。编程平台由命令区、编辑区、调试命令输出区和工具栏组成;

所述的命令区由基础逻辑模块、python内置函数模块、人工智能模块、电子设备单元模块和通用软件模块组成,每个模块包含众多图形化指令,所有图形化指令录入并保存在云端服务器的图形化命令库中;每个图形化指令包括图形状态描述和python代码两部分组成的JSON数据组合;基础逻辑模块和python内置函数模块所包含的图形化指令对应的python代码是标准python代码;人工智能模块、电子设备单元模块和通用软件模块所包含的图形化指令对应的python代码是“代码解释模块”的实例名加功能函数;

所述的编辑区为拖放图形化指令进行编程的区域;用户可以从命令区拖动图形化指令到编辑区,按照编程逻辑以积木形式组合,形成图形化代码程序;用户可以在编辑区的某个图形化指令通过点击鼠标右键的方式,进行复制操作,从而更快的构建图形化代码程序;

所述的调试命令输出区用于显示用户执行的调试信息;

所述的工具栏有运行程序、分享代码、保存代码和代码库功能。

所述工具栏,用户可以通过分享代码功能将自己实现的图形化代码程序分享给其他用户。用户可以通过保存代码功能可以将自己在编辑区拖放的图形化代码程序进行保存。用户可以通过代码库功能查看自己保存的代码和其他用户分享的代码。

所述的树莓派开发板是为学习计算机编程教育而设计的、只有信用卡大小的微型电脑,其操作系统基于Linux。

所述的安装在树莓派上的客户端程序,包括:通信管理模块、基础功能库、代码解释模块,其中代码解释模块定义了一个python类实例,用来将通信管理模块接收的python代码整合到该类中,然后再执行该代码。

所述的外接电子设备为外接到树莓派开发板上的电子设备,如LED灯、摄像头、灯带、显示屏、打印机、手势控制板、各种传感器、语音接口、模拟数字接口等。

所述的显示设备为支持HDMI接口或支持转为HDMI接口的显示设备;所述的电源模块为5V可充电电源。

进一步的,

所述的客户端程序包括:通信管理模块、基础功能库、代码解释模块,其中基础功能库由电子模块驱动包、人工智能功能包、通用软件功能包组成,提供了基础功能。

所述的通信管理模块用来接收编程平台通过网络发过来的python代码。

所述的基础功能库用python语言封装实现了众多具体的功能,如图片操作、文件操作、数据库等功能。

所述的代码解释模块定义了一个python类实例,用来将通信管理模块接收的python代码整合到该类实例中,然后再执行该代码。

所述的编程平台,是一个通过浏览器登录的在线图形化编程平台,其图形化编程功能是基于blockly实现的(blockly是一项谷歌根据Apache2.0许可的开放源码专案,它提供了基础的图形化编程功能和自定义图形化程序命令功能。用户以拖拽拼图的方式开发出应用程序。不需要任何的代码编写)。编程平台由命令区、编辑区、调试命令输出区和工具栏组成。

所述的命令区由基础逻辑模块、python内置函数模块、人工智能模块、电子设备单元模块和通用软件模块组成,每个模块包含众多图形化指令,所有图形化指令录入并保存在云端服务器的图形化命令库中。每个图形化指令包括图形状态描述和python代码两部分组成的JSON数据组合。其中图形状态描述由“基于Blockly的图形化命令解析器”转变成图形化模块呈现到编程平台,通过图形化组合程序时会分别同时生成图形化代码和python代码两种组合。基础逻辑模块和python内置函数模块所包含的图形化指令对应的python代码是标准python代码。人工智能模块、电子设备单元模块和通用软件模块所包含的图形化指令对应的python代码是“代码解释模块”的实例名加功能函数,比如self.ledOn(),self即是“代码解释模块”的实例名,ledOn()则是基础功能库封装实现的python接口。上述这三个模块包含的图形化指令对应的python代码统称为自定义功能代码。

所述的人工智能模块由人脸识别、语言识别、文字识别、智能回答等模块组成,具体的功能由客户端程序调用已训练好的本地识别模型和在线人工智能开放平台的接口实现。

所述的电子设备单元模块由LED灯、摄像头、灯带、显示屏、打印机、手势控制板、各种传感器、语音接口、模拟数字接口等各类输入/输出设备的交互命令组成,其图形化指令对应的是客户端程序中各类设备的驱动命令,不仅可通过图形化指令读取输入设备(传感器)数据,还可以通过图形化指令控制输出设备(比如灯带)。

所述的通用软件模块由图片操作、物联网通信、数据库和文件基本操作等功能组成。其图形化指令对应的是客户端程序中实现这些功能的python函数接口。

所述的编辑区为拖放图形化指令进行编程的区域。用户可以从命令区拖动图形化指令到编辑区,按照编程逻辑以积木形式组合,形成图形化代码程序。用户可以在编辑区的某个图形化指令通过点击鼠标右键的方式,进行复制操作,从而更快的构建图形化代码程序。编辑区右下角设置有回收站图标,用户可以鼠标左键拖动想要删除的图形化指令到回收站图标上或者拖动到命令区的方式来进行删除操作。

所述的调试命令输出区用于显示用户执行的调试信息。

所述的工具栏有运行程序、分享代码、保存代码和代码库功能。用户可以通过点击运行程序按钮将当期编辑区的图形化代码程序对应的python代码发送的树莓派上执行。用户可以通过分享代码功能将自己实现的图形化代码程序分享给其他用户。用户可以通过保存代码功能可以将自己在编辑区拖放的图形化代码程序进行保存。用户可以通过代码库功能查看自己保存的代码和其他用户分享的代码。

另外本发明提供了一种软硬件结合的图形化编程学习系统的使用方法。

包括如下步骤:

1)编程环境初始化

首先将预先烧录了客户端程序的micro SD卡插入树莓派的卡槽中,然后将电源模块、显示设备、鼠标、键盘、网线连接到树莓派开发板上,等待树莓派开发板正常启动,正常联网;然后打开树莓派上的浏览器,登录到编程平台,将树莓派连接到服务器;客户端程序随树莓派启动而自运行的;

2)图形化代码程序的构建、运行和调试

用户在编程平台的命令区编辑一段图形化代码程序;点击运行按钮,编程平台将该段图形化代码程序对应的python代码通过网络下发到树莓派;当客户端程序的通信管理模块实例接收到编程平台通过网络发过来的消息时,会将消息内容发送给代码解释模块实例,作为响应,代码解释模块会将消息内容进行解析并运行;通过查看调试命令输出区可以看到要输出的调试信息;

3)图形化代码程序的保存

用户可以将在编程平台的编辑区构建的图形化代码程序按照自定义的名称保存到服务器上,以后可以再次加载已保存代码并进行编辑和运行;

4)图形化代码程序的分享

用户可以将在编程平台的编辑区构建的图形化代码程序分享给其他用户。

具体包括如下步骤:

1)编程环境初始化。首先将预先烧录了本发明所述的客户端程序的micro SD卡插入树莓派的卡槽中,然后将电源模块、显示设备、鼠标、键盘、网线(树莓派自带无线网卡,也可以通过连接wifi介入网络)连接到树莓派开发板上,等待树莓派开发板正常启动,正常联网。然后打开树莓派上的浏览器,输入云端服务器的网址,以给定的用户名和密码登录到编程平台。然后点击设备连接按钮进行设备连接,将树莓派连接到服务器。客户端程序是随树莓派启动而自运行的。客户端程序运行时会生成通信管理模块和代码解释模块的实例。通信管理模块实例和代码解释模块实例都是一个线程,当没有消息来时执行一个空循环。

2)图形化代码程序的构建、运行和调试。用户通过浏览器登录到编程平台后,在编程平台的命令区包含了了一系列图形化指令集,每个图形化指令对应一段实现其描述功能的python代码,通过从命令区拖放图形化指令到编辑区,按照编程逻辑以积木形式组合,形成一段图形化代码程序。点击运行按钮,编程平台将该段图形化代码程序对应的python代码通过网络下发到树莓派。当客户端程序的通信管理模块实例接收到编程平台通过网络发过来的消息(即一段python代码文本)时,会将消息内容发送给代码解释模块实例,作为响应,代码解释模块会将消息内容进行解析(如上一次的代码解析执行还未结束,则会先立即结束上一次的代码解析执行),并运行。通过查看调试命令输出区可以看到要输出的调试信息。

3)图形化代码程序的保存。用户可以将在编程平台的编辑区构建的图形化代码程序按照自定义的名称保存到服务器上,以便以后可以再次加载已保存代码并进行编辑和运行。

4)图形化代码程序的分享。用户可以将在编程平台的编辑区构建的图形化代码程序分享给其他用户。

另外,本发明中在线图形化编程系统的信号流动过程及处理方法为:客户端程序运行时会生成通信管理模块和代码解释模块的实例;通信管理模块实例和代码解释模块实例都是一个线程,当没有消息来时执行一个空循环;当用户搭建完图形化代码程序并点击运行后,编程平台将该段图形化代码程序对应的python代码通过网络下发到树莓派;当客户端程序的通信管理模块实例接收到编程平台通过网络发过来的消息时,会将消息内容发送给代码解释模块实例,作为响应,代码解释模块会将消息内容进行解析并运行;代码解释模块将消息内容进行解析时,如上一次的代码解析执行还未结束,则会先立即结束上一次的代码解析执行。

以下简要说明如何添加一条新的图形化指令并运行。参见图8。

1.在客户端程序上用python代码实现具体功能。

2.在云端服务器后台手动绑定python功能函数和图形化命令,即新增了一条图形化命令到服务器的图形化命令库。

3.登录到编程平台后,在命令区就可以看到新增的图形化命令。

4.在图形化编程平台编辑区调用该命令进行积木编程

5.点击运行程序。

6.将图形化积木程序对应的python代码发送到树莓派客户端程序。

7.客户端程序的通信管理模块实例收到消息(即一段python代码)后,发送给代码解释模块实例进行解析,解析出的python代码在运行时通过代码解释模块实例本身,调用前述1实现的函数,实现功能。

本发明公开了一种基于blockly和树莓派的在线图形化编程系统和方法。本系统包括:树莓派开发板、外接电子设备、显示设备、电源模块、云端服务器、基于blockly的在线图形化编程平台(简称编程平台)、安装在树莓派上的客户端程序。外接电子设备、显示设备、电源模块分别与树莓派开发板连接。基于blockly的在线图形化编程平台构建图形化代码程序,将其转为对应的python代码后发送给树莓派,安装在树莓派上的客户端程序包括:通信管理模块、基础功能库、代码解释模块,通信管理模块接收编程平台通过网络发过来的python代码,并通过安装在树莓派上的客户端程序的代码解释模块对该段python代码进行解释执行。本发明可以将传统意义上的编程简化成图形块拼接的过程,并且不需要额外的PC电脑,只需要一个树莓派开发板、必要的输入输出设备(显示器,键盘鼠标)以及外接的电子设备单元,大大降低了编程门槛和成本(一个树莓派开发板只要几百元人民币,成本远低于PC电脑)。系统通过将编程结果以实物方式呈现,使得编程更具吸引力,更能激发中小学生的创造力和想象力。

与现有技术相比,本发明具有如下的优点和技术效果:

不需要额外的电脑,本编程平台是在线编程平台,通过浏览器就可以登录到本平台。树莓派就是一台电脑,因此可以直接通过树莓派上的浏览器登录到本平台。树莓派是一台真正的电脑,几乎所有的计算机功能都可在树莓派实现,并将其封装成一条图形化模块语句。

学生只需掌握基础的编程知识,就可以通过编程平台运用人工智能模块、电子设备单元模块和通用软件模块等功能进行创客作品创作,实现非常复杂的功能。

程序执行结果直接可见。通过编程平台创建图形化代码程序并下发给树莓派来控制树莓派的外接电子设备,可以直接看到程序的执行结果。如可以通过程序控制电子设备单元模块的LED灯来做一个流水灯、红绿灯等。

锻炼青少年的动手能力。很多功能需要通过外接电子设备外接到树莓派上才能实现,因此可以锻炼青少年的动手能力。

现有的一些图形化编程工具,对于如何从图形化编程过渡到真正代码编程,并没有很好的过渡方式。而本系统由于每个图形化指令都对应一段实现其描述功能的python代码,因此用户在熟悉了树莓派和图形化编程平台后,可以在不切换硬件平台情况下,尝试了解实现这些功能的python代码,引起对python的好奇,进而学习python编程,从而真正做到由图形化编程过渡到python编程学习的无缝衔接。

可以方便的显示调试信息。用户可以在图形化代码程序中方便的添加调试指令代码,并在调试命令输出区查看。可以每完成一点图形化代码,就添加调试指令代码,查看是否符合预期。在“尝试-查看-修改-尝试”的过程中,不仅可以学到基本的编程知识,还可以锻炼分析解决问题的能力,更好的培养其逻辑思维。

交互设计更简单方便。本系统的编程主要通过鼠标左键拖拽的方式拼接图形化指令,同时可以鼠标右键点击实现复制图形化指令、折叠图形化指令、展开图形化指令等更多复杂功能,还可以通过鼠标左键拖拽图形化指令到命令区或者编辑区的回收站图标的方式进行删除操作。简单方便的操作方式可以使儿童更专注于程序的编写上,增加其创作兴趣。

代码分享功能,可以让用户之间互相学习,也更加方便编程教育的教学工作。

通过将代码解释模块实例和图形化的结合,实现了各种图形化功能模块的封装和图形化程序的解释执行。并且系统的移植性、可扩展性强,能够实现树莓派各种硬件接口与外部电子设备的交互操作。

附图说明

图1本发明的架构图。

图2树莓派开发板连接LED小灯图。

图3树莓派开发板的引脚关系对应图。

图4一个LED小灯的连接示意图。

图5编程平台上实现周期6次点亮点灭5号LED小灯并输出调试信息实施例实施例的图形化指令图。

图6编程平台上实现周期6次点亮点灭5号LED小灯并输出调试信息实施例实施例的图形化指令对应的代码图。

图7编程平台上实现周期6次点亮点灭5号LED小灯并输出调试信息实施例的调试命令输出区示意图。

图8新增一条图形化命令并执行的步骤示意图。

具体实施方式

为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。

参考图1所示,一种基于blockly和树莓派的图形化人工智能编程系统,包括树莓派开发板、外接电子设备、显示设备、电源模块、云端服务器、基于blockly的在线图形化编程平台、安装在树莓派上的客户端程序。

本发明的实现流程主要包括五个阶段:编程环境硬件准备、客户端程序初始化运行、创建图形化代码程序、运行图形化代码程序并查看调试信息、保存和分享图形化代码程序。以下以一个周期6次点亮点灭LED小灯并打印调试信息的实施例来详细说明各个阶段中各模块的功能:

1.编程环境硬件准备

此阶段中,首先将预先烧录了本发明所述的客户端程序的micro SD卡插入树莓派的卡槽中,然后将电源模块、显示设备、鼠标、键盘、网线(树莓派自带无线网卡,也可以通过连接wifi介入网络)连接到树莓派开发板上,等待树莓派开发板正常启动,正常联网。本实施例需要周期点亮LED小灯,所以还需要连接一个LED小灯到树莓派开发的的GPIO引脚。下面以点亮5号小灯为例说明如何连接。树莓派开发板及其上的40个引脚编码对应关系见图3。本实施例的5号小灯指的是GPIO5,对应的物理引脚Pin No.为29,LED小灯有两个引脚,长的引脚为正极,短的引脚为负极,见图4,正极需要连接到树莓派开发板的GPIO5,即29号物理引脚,负极需要连接到GND引脚。最终连接实际效果见图2。

2.客户端程序初始化运行

打开浏览器(树莓派上安装的浏览器,或者跟树莓派在同一局域网的电脑上的浏览器均可),输入云端服务器的网址,以给定的用户名和密码登录。然后点击设备连接按钮进行设备连接,将树莓派连接到服务器。安装在树莓派上的客户端程序是随树莓派启动而自运行的。客户端程序运行时会生成通信管理模块和代码解释模块的实例。通信管理模块实例和代码解释模块实例都是一个线程,当没有消息来时执行一个空循环。

3.创建图形化代码程序

本实施例需要实现周期6次点亮点灭LED小灯的功能,并输出一些调试信息。将命令区相关的图形化命令拖动到编辑区,进行积木编程。具体的图形化积木程序见图5,对应python代码见图6。

4.运行图形化代码程序并查看调试信息

点击运行按钮,编程平台将前述阶段3的图形化代码程序对应的python代码通过网络下发到树莓派。当客户端程序的通信管理模块实例接收到编程平台通过网络发过来的消息(即一段python代码文本)时,会将消息内容发送给代码解释模块实例,作为响应,代码解释模块会将消息内容进行解析(如上一次的代码解析执行还未结束,则会先立即结束上一次的代码解析执行),并运行。其中被解析出的代码在运行时会通过代码解释模块实例本身,调用基础功能库中各个函数模块。以本实施例的python代码中的代码self.robot_gpio_control(5,1)进行说明,self为代码解释模块实例本身,robot_gpio_control(5,1)为功能库函数,接受两个参数,robot_gpio_control(5,1)会调用树莓派预装的GPIO控制模块对GPIO5进行控制,实现点亮5号小灯。点击查看调试命令输出去,可以看到之前在图形化代码程序中添加的调试信息。见图7。

5.保存和分享图形化代码程序

点击保存按钮,输入要保存的名字,可以将编辑区的图形化代码程序保存到云端服务器上。点击分享按钮,可以将编辑区的图形化代码程序分享给其他用户。

以下简要说明如何添加一条新的图形化指令并运行。参见图8

1.在客户端程序上用python代码实现具体功能。

2.在云端服务器后台手动绑定python功能函数和图形化命令,即新增了一条图形化命令到服务器的图形化命令库。

3.登录到编程平台后,在命令区就可以看到新增的图形化命令。

4.在图形化编程平台编辑区调用该命令进行积木编程

5.点击运行程序。

6.将图形化积木程序对应的python代码发送到树莓派客户端程序。

7.客户端程序的通信管理模块实例收到消息(即一段python代码)后,发送给代码解释模块实例进行解析,解析出的python代码在运行时通过代码解释模块实例本身,

调用前述步骤1实现的函数,实现功能。

综上所述,本发明给出了一种基于blockly和树莓派的在线图形化编程系统和方法,通过本发明,可以将传统意义上的编程简化成图形块拼接的过程,并且不需要额外的PC电脑,只需要一个树莓派开发板、必要的输入输出设备(显示器,键盘鼠标)以及外接的电子设备单元,大大降低了编程门槛和成本(一个树莓派开发板只要几百元人民币,成本远低于PC电脑)。系统通过将编程结果以实物方式呈现,使得编程更具吸引力,更能激发中小学生的创造力和想象力。系统支持分享图形化代码程序给其他用户,从而使得用户间编程学习的交流更加方便便捷(如在创客教学中,老师可以将自己创建的图形化代码程序分享给学生学习,学生之间也可以互相分享学习)。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号