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

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

Info

Publication number
CN110362299B
CN110362299B CN201910638232.2A CN201910638232A CN110362299B CN 110362299 B CN110362299 B CN 110362299B CN 201910638232 A CN201910638232 A CN 201910638232A CN 110362299 B CN110362299 B CN 110362299B
Authority
CN
China
Prior art keywords
code
graphical
programming
module
program
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
Application number
CN201910638232.2A
Other languages
English (en)
Other versions
CN110362299A (zh
Inventor
花江峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Goodmicro Robot Co ltd
Original Assignee
Hangzhou Goodmicro Robot Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Goodmicro Robot Co ltd filed Critical Hangzhou Goodmicro Robot Co ltd
Publication of CN110362299A publication Critical patent/CN110362299A/zh
Priority to PCT/CN2020/092255 priority Critical patent/WO2020248811A1/zh
Application granted granted Critical
Publication of CN110362299B publication Critical patent/CN110362299B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B19/00Teaching not covered by other main groups of this subclass
    • G09B19/0053Computers, e.g. programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Educational Administration (AREA)
  • Educational Technology (AREA)
  • Stored Programmes (AREA)

Abstract

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

Description

一种基于blockly和树莓派的在线图形化编程系统及其使用 方法
技术领域
本发明属于中小学编程教学领域,涉及人工智能和创客教学,具体涉及到一种基于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电脑)。系统通过将编程结果以实物方式呈现,使得编程更具吸引力,更能激发中小学生的创造力和想象力。系统支持分享图形化代码程序给其他用户,从而使得用户间编程学习的交流更加方便便捷(如在创客教学中,老师可以将自己创建的图形化代码程序分享给学生学习,学生之间也可以互相分享学习)。

Claims (11)

1.一种基于blockly和树莓派的在线图形化编程系统,其特征在于:包括:
基于blockly的在线图形化编程平台,用户通过该编程平台可以创建图形化代码程序,并将程序发送给树莓派开发板去执行;
安装有客户端程序的树莓派开发板;客户端程序接收编程平台发送来的程序并执行;
用来跟树莓派开发板进行通信,保存用户的信息和需要保存的图形化代码程序的云端服务器;
与树莓派开发板连接的外接电子设备、显示设备、电源模块;
所述编程平台由命令区、编辑区、调试命令输出区和工具栏组成;所述的命令区由基础逻辑模块、python内置函数模块、人工智能模块、电子设备单元模块和通用软件模块组成,每个模块包含众多图形化指令,所有图形化指令录入并保存在云端服务器的图形化命令库中;每个图形化指令包括图形状态描述和python代码两部分组成的JSON数据组合;基础逻辑模块和python内置函数模块所包含的图形化指令对应的python代码是标准python代码;人工智能模块、电子设备单元模块和通用软件模块所包含的图形化指令对应的python代码是“代码解释模块”的实例名加功能函数;
所述的安装在树莓派上的客户端程序,包括:通信管理模块、基础功能库、代码解释模块,其中代码解释模块定义了一个python类实例,用来将通信管理模块接收的python代码整合到该类中,然后再执行该代码,当客户端程序的通信管理模块实例接收到编程平台通过网络发过来的消息时,会将消息内容发送给代码解释模块实例,作为响应,代码解释模块会将消息内容进行解析并运行。
2.根据权利要求1所述的在线图形化编程系统,其特征在于:所述的编程平台通过浏览器登录。
3.根据权利要求1所述的在线图形化编程系统,其特征在于:
所述的编辑区为拖放图形化指令进行编程的区域;用户可以从命令区拖动图形化指令到编辑区,按照编程逻辑以积木形式组合,形成图形化代码程序;用户可以在编辑区的某个图形化指令通过点击鼠标右键的方式,进行复制操作,从而更快的构建图形化代码程序;
所述的调试命令输出区用于显示用户执行的调试信息;
所述的工具栏有运行程序、分享代码、保存代码和代码库功能。
4.根据权利要求3所述的在线图形化编程系统,其特征在于:所述工具栏,用户可以通过分享代码功能将自己实现的图形化代码程序分享给其他用户;用户可以通过保存代码功能可以将自己在编辑区拖放的图形化代码程序进行保存;用户可以通过代码库功能查看自己保存的代码和其他用户分享的代码。
5.根据权利要求1所述的在线图形化编程系统,其特征在于:所述的外接电子设备为外接到树莓派开发板上的LED灯、摄像头或各种传感器。
6.根据权利要求1所述的在线图形化编程系统,其特征在于:所述的显示设备为支持HDMI接口或支持转为HDMI接口的显示设备;所述的电源模块为5V可充电电源。
7.权利要求1所述的在线图形化编程系统的使用方法,其特征在于:包括如下步骤:
1)编程环境初始化
首先将预先烧录了客户端程序的micro SD卡插入树莓派的卡槽中,然后将电源模块、显示设备、鼠标、键盘、网线连接到树莓派开发板上,等待树莓派开发板正常启动,正常联网;然后打开树莓派上的浏览器,登录到编程平台,将树莓派连接到服务器;客户端程序随树莓派启动而自运行的;
2)图形化代码程序的构建、运行和调试
用户在编程平台的命令区编辑一段图形化代码程序;点击运行按钮,编程平台将该段图形化代码程序对应的python代码通过网络下发到树莓派;当客户端程序的通信管理模块实例接收到编程平台通过网络发过来的消息时,会将消息内容发送给代码解释模块实例,作为响应,代码解释模块会将消息内容进行解析并运行;通过查看调试命令输出区可以看到要输出的调试信息;
3)图形化代码程序的保存
用户可以将在编程平台的编辑区构建的图形化代码程序按照自定义的名称保存到服务器上,以后可以再次加载已保存代码并进行编辑和运行;
4)图形化代码程序的分享
用户可以将在编程平台的编辑区构建的图形化代码程序分享给其他用户。
8.根据权利要求7所述的使用方法,其特征在于:步骤1)中客户端程序运行时会生成通信管理模块和代码解释模块的实例;通信管理模块实例和代码解释模块实例都是一个线程,当没有消息来时执行一个空循环。
9.根据权利要求7所述的使用方法,其特征在于:代码解释模块将消息内容进行解析时,如上一次的代码解析执行还未结束,则会先立即结束上一次的代码解析执行。
10.权利要求1所述的在线图形化编程系统信号流动过程及处理的方法,其特征在于:客户端程序运行时会生成通信管理模块和代码解释模块的实例;通信管理模块实例和代码解释模块实例都是一个线程,当没有消息来时执行一个空循环;当用户搭建完图形化代码程序并点击运行后,编程平台将该段图形化代码程序对应的python代码通过网络下发到树莓派;代码解释模块将消息内容进行解析时,如上一次的代码解析执行还未结束,则会先立即结束上一次的代码解析执行。
11.根据权利要求10的方法,添加一条新的图形化指令并运行的步骤为:
1.在客户端程序上用python代码实现具体功能;
2.手动绑定python功能函数和图形化命令,即新增了一条图形化命令到服务器的图形化命令库;
3. 编程平台命令区就可以看到新增的图形化命令;
4.在图形化编程平台编辑区调用该命令进行积木编程;
5.点击运行程序;
6.将图形化积木程序对应的python代码发送到树莓派客户端程序;
7.客户端程序的通信管理模块实例收到消息后,发送给代码解释模块实例进行解析,解析出的python代码在运行时通过代码解释模块实例本身,调用前述步骤1实现的函数。
CN201910638232.2A 2019-06-14 2019-07-16 一种基于blockly和树莓派的在线图形化编程系统及其使用方法 Active CN110362299B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/092255 WO2020248811A1 (zh) 2019-06-14 2020-05-26 一种基于blockly和树莓派的在线图形化编程系统及其使用方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910517701 2019-06-14
CN2019105177015 2019-06-14

Publications (2)

Publication Number Publication Date
CN110362299A CN110362299A (zh) 2019-10-22
CN110362299B true CN110362299B (zh) 2020-06-26

Family

ID=68219532

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910638232.2A Active CN110362299B (zh) 2019-06-14 2019-07-16 一种基于blockly和树莓派的在线图形化编程系统及其使用方法

Country Status (2)

Country Link
CN (1) CN110362299B (zh)
WO (1) WO2020248811A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110362299B (zh) * 2019-06-14 2020-06-26 杭州古德微机器人有限公司 一种基于blockly和树莓派的在线图形化编程系统及其使用方法
CN110865573A (zh) * 2019-11-14 2020-03-06 佛山科学技术学院 一种基于python的控制系统
CN111045667B (zh) * 2019-12-06 2022-01-25 中国科学院自动化研究所 基于Lua脚本的图形化编程系统
CN111047931A (zh) * 2019-12-16 2020-04-21 深圳市思天极创教育科技有限公司 一种移动编程系统
CN111522542B (zh) * 2020-03-16 2023-10-27 北京编程猫科技有限公司 一种完善图形化编程积木工具的编程方法及装置
CN111475154A (zh) * 2020-03-17 2020-07-31 北京邮电大学 程序编辑系统、方法、电子设备及存储介质
CN111475151B (zh) * 2020-04-10 2021-10-15 腾讯科技(深圳)有限公司 一种模块化编程的方法以及相关装置
CN111586490A (zh) * 2020-04-28 2020-08-25 上海商汤临港智能科技有限公司 一种多媒体互动方法、装置、设备及存储介质
CN111857697A (zh) * 2020-05-29 2020-10-30 北京编程猫科技有限公司 一种基于认知ai的图形化编程实现方法及装置
CN111651155B (zh) * 2020-06-03 2020-12-11 北京智趣工场教育科技有限公司 一种编程学习操作系统及外接交互系统
CN111862727B (zh) * 2020-07-28 2022-11-08 中国科学院自动化研究所 人工智能图形化编程教学平台及方法
CN112148277A (zh) * 2020-09-22 2020-12-29 爱德华阿拉孔加洛 一种基于图形化编程的增强现实方法
CN112463138B (zh) * 2020-11-18 2021-08-06 华南师范大学 一种软硬件结合的人工智能教育学习系统
CN112818426B (zh) * 2021-02-08 2023-09-12 南昌傲亚信息有限公司 一种通过在线编程建模在线切片的联网3d打印方法
CN112966457A (zh) * 2021-02-26 2021-06-15 严伟豪 一种图形化云开发平台
CN113406922A (zh) * 2021-06-23 2021-09-17 疯壳(深圳)科技有限公司 一种基于图形块编程控制可编程设备的方法及其系统
CN113961197A (zh) * 2021-10-19 2022-01-21 苏州科韵激光科技有限公司 一种基于对象的plc编程方法、装置和存储介质
CN116560630B (zh) * 2023-07-05 2023-09-01 北京六趣网络科技有限公司 一种逻辑积木产品及其工作方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105511860A (zh) * 2015-11-30 2016-04-20 大连文森特软件科技有限公司 在线图形化编程系统
CN107610683A (zh) * 2017-07-26 2018-01-19 同济大学 一种基于树莓派的可编程音乐播放系统
CN109118880A (zh) * 2018-08-24 2019-01-01 杭州高低科技有限公司 基于蓝牙mesh的机器人学习和协作系统
CN109240675A (zh) * 2017-05-10 2019-01-18 兰州大学 基于wifi的便携式可视化硬件编程系统及方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10719300B2 (en) * 2017-07-24 2020-07-21 Wix.Com Ltd. Segregated user-uploaded plugins to avoid affecting co-hosted websites
CN108594746B (zh) * 2018-03-21 2019-11-12 珠海优特电力科技股份有限公司 可视化编程控制系统及方法、装置
CN109522033B (zh) * 2018-09-21 2020-08-11 浙江大学 一种基于器件运行自编程和双中断向量表的ecu程序与数据升级方法
CN110362299B (zh) * 2019-06-14 2020-06-26 杭州古德微机器人有限公司 一种基于blockly和树莓派的在线图形化编程系统及其使用方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105511860A (zh) * 2015-11-30 2016-04-20 大连文森特软件科技有限公司 在线图形化编程系统
CN109240675A (zh) * 2017-05-10 2019-01-18 兰州大学 基于wifi的便携式可视化硬件编程系统及方法
CN107610683A (zh) * 2017-07-26 2018-01-19 同济大学 一种基于树莓派的可编程音乐播放系统
CN109118880A (zh) * 2018-08-24 2019-01-01 杭州高低科技有限公司 基于蓝牙mesh的机器人学习和协作系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"BlocklyPi — 树莓派可视化编程软件";开源中国;《https://www.colabug.com/3236678.html》;20180611;正文第1-2页 *
"Mixly开源项目设计29:Helo Mixgo!(一)——开启米思狗创客之路";李文俊;《中国信息技术教育》;20190101(第1期);第74-76页 *

Also Published As

Publication number Publication date
CN110362299A (zh) 2019-10-22
WO2020248811A1 (zh) 2020-12-17

Similar Documents

Publication Publication Date Title
CN110362299B (zh) 一种基于blockly和树莓派的在线图形化编程系统及其使用方法
CN105843630B (zh) 一种基于机器人图形化编程开发的方法
US10599405B2 (en) Application system having an LLVM compiler
Lanham Learn ARCore-Fundamentals of Google ARCore: Learn to build augmented reality apps for Android, Unity, and the web with Google ARCore 1.0
Ingalls et al. The lively kernel a self-supporting system on a web page
WO2010091623A1 (zh) 应用程序界面动态生成装置及方法
US20150290807A1 (en) System and method for generating contextual behaviours of a mobile robot executed in real time
CN107103810A (zh) 情境式编程教学方法
Kato et al. Programming with examples to develop data-intensive user interfaces
Dragule et al. A survey on the design space of end-user-oriented languages for specifying robotic missions
Kaswan et al. Python for Beginners
CN114594934A (zh) 一种可视化页面生成方法、装置、设备及介质
CN113010168B (zh) 一种基于场景树的用户界面生成方法
Borycki Programming for Mixed Reality with Windows 10, Unity, Vuforia, and UrhoSharp
CN117215661A (zh) 一种事件处理的方法、装置以及存储介质
Giunchi et al. DreamCodeVR: Towards Democratizing Behavior Design in Virtual Reality with Speech-Driven Programming
CN112966457A (zh) 一种图形化云开发平台
CN115203162A (zh) 一种所见即所得图数据构建方法
CN103902274A (zh) 智能电视ui开发的平台
TWI625636B (zh) 具有可視化編程功能的控制系統及其方法與內儲具有可視化編程功能的控制程式之電腦程式產品
Yang et al. ReactGenie: A Development Framework for Complex Multimodal Interactions Using Large Language Models
CN113485714B (zh) 数据处理方法、装置、计算机设备以及存储介质
CN112905165B (zh) 一种人工智能模型训练环境搭建装置及方法
Yang JavelinaCode: A Web-Based Object-Oriented Programming Environment with Static and Dynamic Visualization
Mitsunaga An interpreted language with debugging interface for a micro controller

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