首页> 中国专利> 一种软硬件结合的人工智能教育学习系统

一种软硬件结合的人工智能教育学习系统

摘要

本发明公开了一种软硬件结合的人工智能教育学习系统,包括基于blockly二次开发的图形化编程软件、为人工智能教育定制的硬件平台以及用于保存用户信息、助力教学管理的学习平台;图形化编程软件包括图形化编程Web端程序以及Python服务端程序。本发明开设了单个函数定义编程块的保存与加载、函数定义体的显示与隐藏,可在项目需要的时候随时加载用户之前所拼的函数块,并且在复杂程序的图形化编程的时候隐藏函数体定义,使得编程区简洁,用户使用体验较好;能自动生成编程块,方便在系统上开发更多的人工智能应用案例,可扩展性强;并将软件生成的python代码直接通过界面按钮运行和设置自启动,方便学生物理创意作品的创作。

著录项

  • 公开/公告号CN112463138A

    专利类型发明专利

  • 公开/公告日2021-03-09

    原文格式PDF

  • 申请/专利权人 华南师范大学;

    申请/专利号CN202011294763.3

  • 申请日2020-11-18

  • 分类号G06F8/34(20180101);G06F8/38(20180101);G09B5/08(20060101);

  • 代理机构44326 广州容大知识产权代理事务所(普通合伙);

  • 代理人潘素云

  • 地址 510006 广东省广州市番禺区外环西路378号华南师范大学信息光电子科技学院

  • 入库时间 2023-06-19 10:08:35

说明书

技术领域

本发明涉及人工智能技术领域,具体涉及一种软硬件结合的人工智能教育学习系统。

背景技术

在人工智能悄然走进千家万户的时代背景下,开展人工智能教育,让学生了解快速发展的人工智能技术,认识到人工智能技术发挥的巨大作用,形成智能化意识,对于他们确立正确的发展方向,有效地运用人工智能技术提高学习的质量,更好地适应社会潮流等,都具有极为重要的意义。在基础教育领域,人工智能教育已受到一定重视。

2019年,深圳市和广州市等市县已经分别遴选了100所左右的中小学学校作为试点学校,并于2019年秋季开学之时正式开设中小学人工智能教育课程。

在中小学人工智能教育逐步推广,普及的时代背景下,中小学人工智能课程在不断发展,也涌现出了很多经典的人工智能课程经典案例,诸如无人驾驶案例,它作为人工智能的经典应用,由于涵盖较多的人工智能知识且贴近生活,深受学生欢迎而成为人工智能课程的一大部分。无人驾驶汽车涵盖自动控制、自动避障、自动停车、路标识别、图像识别等人工智能知识,其中感知环境部分的核心技术是图像识别,而图像识别的准确率提高需要用到机器学习或者深度学习的经典模型。目前识别准确率最高的算法是计算机视觉领域中的卷积神经网络。而深度学习模型就是利用卷积神经网络搭建的模型,所以在中小学人工智能教育无人驾驶课程的设计中,图像识别等关键技术的教学,如何能让学生更好的理解深度学习基本原理,理解人工智能,一直是教学的重点与难点。由于无人驾驶技术的复杂性,需要在无人驾驶课堂上配套合适的教具,降低实现无人驾驶技术的门槛,实现无人驾驶的分模块实现,才能助力课堂,达到更好的教学效果。

然而目前市面上现有的两类人工智能教育装备,即传统的机器人教育和编程教育配套的教具均不太适合于中小学人工智能教育课堂,不利于实现中小学学生对“人工智能初感知和初体验”的教育目标。人工智能知识不仅包括机器人的运动控制,还包括图像识别,语音交互,计算机视觉,机器学习、自然语言处理等。

机器人教育类的产品人工智能元素缺乏且形式单一,基本上是对机器人上的传统硬件的控制,其与现实生活中的人工智能技术实现相去甚远,不利于学生理解现实生活中人工智能的实现过程以及深度学习、图像识别等技术的基本原理,不能满足教学需求。其硬件多为传统传感器的拼搭和组合使用,没有搭配人工智能技术必备的麦克风、摄像头、音箱等智能化类的传感器;多为以 arduino等单片机作为控制核心,运算能力存在局限性,难以部署和实现AI算法。其图形化编程软件主要是为控制机器人服务的,侧重于传感器类的编程块,几乎没有涉及语音、视觉和机器学习等人工智能类编程块,简单而言,机器人教育类的产品人工智能元素缺乏且形式单一,不利于达到中小学生对人工智能的初感知和初体验。

第二类是编程教育类的产品,其多为软件类产品,其体现的人工智能元素丰富,但其以制作游戏、动画等作品为应用背景,这种虚拟的表现形式对中小学生来说,远不如物理硬件交互的呈现方式那样直观和容易理解。其图形化编程软件涵盖了语音、视觉和机器学习等人工智能类编程块,但其必须通过网络调用API来实现AI算法的部署,对网络的依赖性高,实时性差,容易影响师生上课体验,同时还存在安全性不高的问题,用户隐私有泄露的风险。其硬件仍局限于传统传感器的组合使用,难以结合其在软件平台上人工智能库。此类产品进入线下课堂需要配备一台电脑使用,成本较高。

以上两种产品所开发的图形化编程软件不能满足课程教学连续性的需求。由于其未能实现将学生编写的单个函数的保存与加载、函数定义体的隐藏与显现,当实现的功能较为复杂时,容易造成工作空间(图形化编程软件的编程区) 的臃肿,导致用户使用体验不好。

综上所述,上述两类产品存在的不足主要有几个方面:

1、硬件端缺少与人工智能库相结合的配套硬件,不利于人工智能相关物理作品的创作;

2、图形化编程软件缺少人工智能类编程块或者AI算法部署太多依赖网络,导致存在问题。

3、单片机不足以运行AI算法,而pc机实现人工智能应用的成本较高。

4、虚拟AI的呈现方式不如软硬件交互容易理解和趣味性强。

5、图形化编程软件函数体定义无法显现和隐藏的缺陷,不利于实现教学的连续性。

因此这两类产品都不适合作为中小学AI教学的装备。

发明内容

有鉴于此,为了解决传统机器人教育硬件和编程教育硬件成本较高,人工智能元素不足的问题,同时克服了AI算法过度依赖网络导致稳定性不足的问题,本发明提出一种软硬件结合的人工智能教育学习系统。

本发明通过以下技术手段解决上述问题:

一种软硬件结合的人工智能教育学习系统,包括基于blockly二次开发的图形化编程软件、为人工智能教育定制的硬件平台以及用于保存用户信息、助力教学管理的学习平台;

所述图形化编程软件包括图形化编程Web端程序以及Python服务端程序;

所述图形化编程Web端程序包括软件界面以及编程块自动生成组件;

所述软件界面包括编程块区、编程区、python代码显示区、调试区和功能区;

所述编程块区包括多个功能模块,每个功能模块内包含众多图形化编程块,每个图形化编程块对应一段能实现其文字描述的功能的python代码;

所述编程区是用户进行图形化编程的区域;用户从编程块区的各个功能模块中拖出实现功能所需的编程块到编程区,按照一定的程序逻辑进行拼接组合,形成实现特定功能的图形化代码;用户可将实现特定功能的图形化代码拼接成函数的形式,点击鼠标右键,选择“函数块保存”,即可实现单个函数定义体的保存,保存的函数体为文本文件格式,可在任何需要的时候重新从此文本文件中加载、调用此函数体;

所述python代码显示区用于显示用户在编程区所拼接的编程块对应的 python代码,用户可查看每一个编程块对应的python代码与编程块文字描述之间的联系,便于理解此段python代码的功能;

所述调试区用于与用户进行交互,输出用户代码运行的信息,以及观看程序运行效果,以及根据报错提示进行代码调试;

所述功能区具有运行代码、停止运行、设置自启和取消自启功能;

所述编程块自动生成组件用于自动生成编程块,通过在配置文件配置编程块样式和设定对应python代码后,能自动生成编程块区内的各个编程块,并导出在图形化编程软件的编程块区;

所述Python服务端程序用于监听和接收图形化编程Web端程序发送过来的消息流,解析出command字段和param字段,根据command字段解析出用户在图形化编程web端程序点击的功能按钮。

进一步地,所述硬件平台是为中小学人工智能教育而设计的,方便各种硬件的连接以及各种人工智能应用案例的实现;包括扩展板和树莓派,扩展板和树莓派电连接;

所述扩展板包括电源电路、PWM电路、加密电路、3.3V稳压电路、电机驱动电路、蜂鸣器电路、红外遥控电路、IIC通信接口、SPI通信接口、传感器接口、电机接口、PWM接口以及电池接口;

所述电源电路分别与树莓派、电池接口电连接,通过外接电池或适配器对树莓派扩展板进行供电;

所述PWM电路分别与树莓派、电机驱动电路、PWM接口电连接,产生PWM信号,对扩展板上的电机驱动电路、PWM接口进行控制;

所述电机驱动电路分别与树莓派、电机接口电连接,使用两块芯片,每块芯片产生两路驱动,共四路驱动电流输出到所述电机接口;

所述加密电路与树莓派电连接,将生成的序列码实时发送至树莓派,当识别到正确的序列码后,用户才能进入到树莓派扩展板界面;

所述3.3V稳压电路分别与树莓派、蜂鸣器电路电连接,将所述5V供电稳压为3.3V,为所述蜂鸣器电路进行供电;

所述IIC通信接口与树莓派电连接,为树莓派扩展板提供IIC通信接口;

所述SPI通信接口与树莓派电连接,为树莓派扩展板提供SPI通信接口;

所述红外遥控电路与树莓派电连接,用户通过红外遥控对扩展板进行远距离控制;

所述传感器接口与树莓派电连接,为树莓派扩展板提供传感器接口。

进一步地,所述编程块区包括基础编程模块、IO操作模块、IO应用模块、电机舵机模块、视觉模块、语音模块、机器学习模块和具体应用案例模块;

所述基础编程模块对应的python代码是python的标准写法,包括输入输出、循环、数字、逻辑、文本和列表,是在blockly原有基础上根据教学需求进行补充;

所述IO操作模块对应的python代码是树莓派底层GPIO口操作的代码,调用树莓派GPIO库控制GPIO输出特定电平,以及获取特定口的电平值的底层硬件代码;

所述IO应用模块、电机舵机模块、视觉模块、语音模块、机器学习模块以及具体应用案例模块对应的python代码是算法库中对应类的实例化加功能代码;其中:

所述IO应用模块的python代码对应算法库中gpio.py中各种传感器类代码,可实现对输入型传感器和输出型传感器的简单使用,以及产生PWM波;所述IO 应用模块的代码可由IO操作模块的代码经过一定的逻辑拼接起来实现;

所述视觉模块充分利用计算机视觉库opencv实现了对图像数据的简单处理,使用opencv自带的级联分类器实现目标检测,使用opencv的训练器训练自己的分类器;

所述语音模块具有语音识别、语音合成和播放音频功能,可实现语音交互以及播放任意音频文件的功能;语音识别和语音合成均是集成了开源的百度语音API实现;

所述机器学习模块具有颜色检测、人脸检测、颜色追踪、数字方向识别、二维码识别、文字识别、翻译机器人、成语接龙机器人和聊天机器人功能,对应的python代码是算法库中对应类的实例化加功能函数,具体功能的实现包括调用计算机视觉库opencv中的图像处理算法、常用机器学习库sklearn算法、本地端调用已训练好的轻量级模型和通过网络远程调用百度AI开源API实现;

所述具体应用案例模块可通过其他基础模块如视觉模块、语音模块和电机舵机模块按照程序逻辑拼接组合实现;

所述算法库全部采用面向对象编程方式封装成python第三方库,并且经过代码加密处理后上传至pypi开源python第三方库网站上,运行图形化代码时,只需要用pip将最新的算法库下载到python环境中,即可成功调用算法库中各类的功能函数,实现代码功能。

进一步地,所述编程块自动生成组件包括配置模块、解析模块和编程块代码生成模块;自动生成编程块的过程由配置模块、解析模块和编程块代码生成模块实现;

所述配置模块是对将要生成的目标编程块的样式和属性进行定义,并将此模块内含的所有编程块的定义保存到同一份xml文件中,形成配置文档;编程块的定义包括编程块的颜色、连接方式、与用户交互的变量、是否可接收值和对应的python代码,依次作为xml文件中独立的节点;

所述解析模块是一段python程序,通过python-xml库实现提取配置模块生成的xml文档的各个节点的信息,从而获得所要生成编程块的样式和对应的 python代码;通过解析模块可还原编程块的样式、属性和对应的python代码信息;

所述编程块代码生成模块可将解析模块提取出的零碎的编程块配置信息,通过字符串的拼接处理,形成描述块样式的js文件、描述块对应python代码的js文件以及将块添加进软件界面的html文件。

进一步地,所述编程块代码生成模块生成的2份js文件,其中1份是块定义,描述编程块的样式和属性,另外1份是块对应的python代码生成器,描述编程块所对应的python代码;编程块代码生成模块的生成的html文件内的代码是图形化编程软件的web端程序界面代码,用于将所定义的编程块导出到图形化编程软件上;

将此html文件代码手动添加进图形化编程软件界面代码上,重启软件,即可将2份js文件中定义的编程块导出到软件上,即将编程块添加进图形化编程软件的编程块区,将此编程块拖动到编程区,即可看到此块对应的python代码。

进一步地,自动生成编程块的用户操作流程为:

定义好将要生成编程块的颜色、连接方式、与用户交互的变量、是否可接收值和对应的python代码段信息;写入xml配置文件节点的相应位置;

运行解析模块的python程序;

将编程块代码生成模块生成的三份代码文件手动添加进软件的代码上,重启软件;

在图形化编程软件界面的编程块区看到新生成的编程块,此编程块的样式为xml文件中定义的,将其拖拽至编程区,可在python代码显示区观看到此块对应的python代码。

进一步地,所述编程区函数定义体的保存的实现过程为:用户在所选函数体的函数名上右击鼠标,选择“保存函数”按钮,web端程序接收到保存的指令后,将从鼠标点击块开始,依次搜索此块下连接的各个编程块,确定此函数的函数体的组成,然后将搜索到的子块的类型,用户输入的参数保存为XML格式字符串,按照各个子块出现的顺序将所有XML格式字符串保存到同一个文本文件下;

所述编程区函数定义体的加载的实现过程为:在功能区选择“从本地加载函数体”按钮,web端程序将从保存的文本文件中顺序读取XML格式字符串,按照字符串的内容重新创建子块,并填充用户输入,实现将函数体在编程区内还原;

还原后的函数体为一个函数调用块,右击此函数调用块,即可选择展示函数块的定义体,看到函数内部的实现过程,右击鼠标,选择隐藏此函数体,就可隐藏函数体定义,实现函数体的显示与隐藏,便于在复杂程序中进行图形化编程。

进一步地,所述功能区设置自启功能具体为:在用户编好程序点击“设置自启”按钮后,可将用户所编的图形化代码设置成树莓派开机自动运行;然后启动树莓派,即可运行在图形化编程软件上所编好的代码,实现作品功能,不需桌面环境,方便各种创意作品的制作与展示。

进一步地,所述图形化编程Web端程序还包括消息编码模块以及消息发送模块;

所述消息编码模块用于接收用户在图形化编程web端程序功能区的操作,当用户点击功能区的某一个功能按钮时,消息编码模块首先会捕获用户具体操作的功能,生成对应这个功能的command字段,根据定义好的command字段需要的参数的要求获取参数,如运行和设置自启需要用户所编的python代码程序,则消息编码模块就将当前编程区的块转换为对应的Python代码,作为param 字段;若是停止运行、取消自启就不需要额外获取其他任何参数,直接将param 设置为none;然后以json格式编码成具有command字段和param字段的消息,分别表示Python服务端程序需要执行的指令以及指令所需要的参数;

所述消息发送模块用于创建一个与Python服务端程序联系的Websocket管道传输模块,将json格式的消息以流的方式发送到管道中;Websocket管道传输模块包括Websocket管道和Websocket端口,Websocket管道和Websocket端口连接;

所述Python服务端程序部署在树莓派上,Python服务端程序包括自启监测模块、消息接收模块以及解码执行模块;

所述自启检测模块用于每次树莓派开机时,Python服务端程序自动启动,自启检测模块运作,检测是否有被标记的自启程序,若有则自动运行被标记的程序;若无,则自启检测模块工作结束;

所述消息接收模块用于从Websocket端口中监听和接收消息流;

所述解码执行模块用于解析出command字段和param字段,根据command 字段解析出用户在web端程序点击的功能按钮。

进一步地,所述图形化编程Web端程序与Python服务端程序通过Websocket 管道传输模块连接;所述Websocket管道传输模块用于传输消息发送模块发送过来的流;

运行用户所编的图形化编程代码所需要经过的模块为:消息编码模块、消息发送模块、Websocket管道传输模块、消息接收模块和解码执行模块;

设置代码自启功能的实现过程为:用户拼接完图形化程序后,点击功能区的设置自启按钮,web端程序的消息编码模块获取用户设置自启的操作,生成 set_autostart的command字段,并且获得当前代码显示区的python代码作为 param字段,两者组合形成json格式的消息,传输至消息发送模块,消息发送模块指定发送和接收的websocket端口,并将编码后的消息传输至websocket管道传输模块,websocket管道传输模块将消息转换成流进行传输至Python服务端程序消息接收模块,消息接收模块在特定websocket端口接收消息流,传输至解码执行模块,由解码执行模块解析出command字段和param字段,根据解析出的set_autostart字段,将param字段的python代码标记为autostart;树莓派关机重启后,Python服务端程序会自动启动,自启检测模块工作,检测程序中是否有autostart的代码,若有,则运行被标记为autostart的程序,若无,则自启检测模块处于监听状态。

与现有技术相比,本发明的有益效果至少包括:

1、本软硬件结合的人工智能教育学习系统能自动生成编程块,方便开发更多的人工智能相关编程块,软件可扩展性强。

2、图形化编程软件结合教育需求,开设了单个函数定义编程块的保存与加载,函数定义体的显示与隐藏,可在项目需要的时候随时加载用户之前所拼的函数块,并且在复杂程序的图形化编程的时候隐藏函数体定义,使得编程区简洁,在学习时再单独显示函数块定义,可满足教学需求,保证了教学的连续性,用户使用体验较好。

3、实现了将图形化编程软件部署到树莓派系统上,并将软件生成的python 代码直接通过界面按钮运行和设置自启动,方便学生物理创意作品的创作。

4、图形化编程软件上的人工智能具体应用案例可通过视觉模块、语音模块、 IO操作模块等基础模块通过一定的程序逻辑组合实现,也可通过IO操作类的编程块拼接实现IO应用类的传感器的控制等功能,能根据不同阶段的能力水平达到不同的学习目的,适用于不同阶段的教学。

5、整套人工智能教学装备软硬件结合实现AI与现实世界的交互,所含人工智能元素丰富且形式多样,软件采用图形化编程,降低编程实现门槛,硬件为树莓派开发扩展板,简化硬件连接的繁琐,趣味性高,利于实现学生AI的初感知和初体验。

6、整套人工智能教学装备实现AI应用案例所需硬件成本低。创造性的选用了市面上仅需300元的树莓派,其运算能力较高,能运行较高性能的轻量级神经网络模型,不需要额外配备pc机,只需配备屏幕和鼠标键盘等就能实现基本图像处理算法以及AI应用案例,能满足中小学人工智能教育教学需求。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明软硬件结合的人工智能教育学习系统的结构示意图;

图2是本发明软硬件结合的人工智能教育学习系统的整个结构框图;

图3是本发明图形化编程软件上现有编程块汇总图;

图4是本发明自动生成编程块的实现流程图;

图5是本发明硬件平台的结构示意图;

图6是本发明自启检测模块工作流程图;

图7是本发明软件端自启动功能实现原理结构图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合附图和具体的实施例对本发明的技术方案进行详细说明。需要指出的是,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1-2所示,本发明提供一种软硬件结合的人工智能教育学习系统,包括基于blockly二次开发的图形化编程软件、为人工智能教育定制的基于树莓派的硬件平台以及用于保存用户信息、助力教学管理的学习平台。

所述图形化编程软件包括图形化编程Web端程序以及Python服务端程序。

所述图形化编程Web端程序包括软件界面以及编程块自动生成组件。

所述软件界面包括编程块区、编程区、python代码显示区、调试区、功能区这五个部分。

如图3所示,所述编程块区包括基础编程模块、IO操作模块、IO应用模块、电机舵机模块、视觉模块、语音模块、机器学习模块和具体应用案例模块。每个模块内包含众多图形化编程块,每个图形化编程块对应一段能实现其文字描述的功能的python代码。

所述基础编程模块对应的python代码是python的标准写法,如输入输出、循环、数字、逻辑、文本、列表等,是在blockly原有基础上根据教学需求进行补充。

所述IO操作模块对应的python代码是树莓派底层GPIO口操作的代码,调用树莓派GPIO库控制GPIO输出特定电平,以及获取特定口的电平值的底层硬件代码。

所述IO应用模块、电机舵机模块、视觉模块、语音模块、机器学习模块以及具体应用案例模块对应的python代码是算法库中对应类的实例化加功能代码。如m=gpio.led(1)/nm.open(),中的gpio为封装的其中一个算法库,led为放置在 gpio库文件中的led灯的类名,里面集成了控制led灯的代码。

其中,IO应用模块由LED、蜂鸣器、红外传感器、温湿度传感器和PWM波组成,其python代码对应算法库中gpio.py中各种传感器类代码,可实现对输入型传感器和输出型传感器的简单使用,以及产生PWM波。

所述IO应用模块的代码可由IO操作模块的代码经过一定的逻辑拼接起来实现。

所述视觉模块充分利用计算机视觉库opencv实现了对图像数据的简单处理,使用opencv自带的级联分类器实现目标检测,使用opencv的训练器训练自己的分类器。

所述语音模块具有语音识别、语音合成和播放音频功能,可实现语音交互以及播放任意音频文件的功能。语音识别和语音合成均是集成了开源的百度语音API实现。

所述机器学习模块具有颜色检测、人脸检测、颜色追踪、数字方向识别、二维码识别、文字识别、翻译机器人、成语接龙机器人、聊天机器人等功能,对应的python代码是算法库中对应类的实例化加功能函数,具体功能的实现包括调用计算机视觉库opencv中的图像处理算法、常用机器学习库sklearn算法、本地端调用已训练好的轻量级模型和通过网络远程调用百度AI开源API实现。

所述具体应用案例模块可通过其他基础模块如视觉模块、语音模块、电机舵机模块等按照程序逻辑拼接组合实现。

所述算法库全部采用面向对象编程方式封装成python第三方库,并且经过代码加密处理后上传至pypi开源python第三方库网站上,运行图形化代码时,只需要用pip将最新的算法库下载到树莓派的python环境中,即可成功调用算法库中各类的功能函数,实现代码功能。

所述编程块自动生成组件用于自动生成编程块,通过在配置文件配置编程块样式和设定对应python代码后,能自动生成编程块区内的各个编程块,并导出在图形化编程软件的编程块区。所述编程块自动生成组件包括配置模块、解析模块和编程块代码生成模块;自动生成编程块的过程由编程块区的配置模块、解析模块和编程块代码生成模块实现,如图4所示。

所述配置模块是对将要生成的目标编程块的样式和属性进行定义,并将此模块内含的所有编程块的定义保存到同一份xml文件中,形成配置文档。编程块的定义包括编程块的颜色、连接方式、与用户交互的变量、是否可接收值、对应的python代码等信息,依次作为xml文件中独立的节点。

所述解析模块是一段python程序,通过python-xml库实现提取配置模块生成的xml文档的各个节点的信息,从而获得所要生成编程块的样式和对应的 python代码。通过解析模块可以还原编程块的样式、属性和对应的python代码信息。

所述编程块代码生成模块可以将解析模块提取出的零碎的编程块配置信息,通过字符串的拼接处理,形成描述块样式的js文件、描述块对应python代码的 js文件以及将块添加进软件界面的html文件。

编程块代码生成模块生成的2份js文件,其中1份是块定义,描述编程块的样式和属性,另外1份是块对应的python代码生成器,描述编程块所对应的 python代码。编程块代码生成模块的生成的html文件内的代码是图形化编程软件的web端程序界面代码,用于将所定义的编程块导出到图形化编程软件上。

将此html文件代码手动添加进图形化编程软件界面代码上,重启软件,即可将2份js文件中定义的编程块导出到软件上,即将编程块添加进图形化编程软件的编程块区,将此编程块拖动到编程区,即可看到此块对应的python代码。

自动生成编程块的用户操作流程为:

1、定义好将要生成编程块的颜色、连接方式、与用户交互的变量、是否可接收值、对应的python代码段信息。写入xml配置文件节点的相应位置。

2、运行解析模块的python程序。

3、将编程块代码生成模块生成的三份代码文件手动添加进软件的代码上,重启软件。

4、在图形化编程软件界面的编程块区看到新生成的编程块,此编程块的样式为xml文件中定义的,将其拖拽至编程区,可在代码显示区观看到此块对应的python代码。

所述编程区是用户进行图形化编程的区域。用户从编程块区的各个模块中拖出实现功能所需的编程块到编程区,按照一定的程序逻辑进行拼接组合,形成实现特定功能的图形化代码。用户可以将实现特定功能的图形化代码拼接成函数的形式,点击鼠标右键,选择“函数块保存”,即可实现单个函数定义体的保存,保存的函数体为文本文件格式,可在任何需要的时候重新从此文本文件中加载、调用此函数体。

函数定义体的保存的实现过程为:用户在所选函数体的函数名上右击鼠标,选择“保存函数”按钮,web端程序接收到保存的指令后,将从鼠标点击块开始,依次搜索此块下连接的各个编程块,确定此函数的函数体的组成,然后将搜索到的子块的类型,用户输入的参数保存为XML格式字符串,按照各个子块出现的顺序将所有XML格式字符串保存到同一个文本文件下。

函数定义体的加载的实现过程为:在功能区选择“从本地加载函数体”按钮,web端程序将从保存的文本文件中顺序读取XML格式字符串,按照字符串的内容重新创建子块,并填充用户输入,实现将函数体在编程区内还原。

还原后的函数体为一个函数调用块,右击此函数调用块,即可选择展示函数块的定义体,看到函数内部的实现过程,右击鼠标,选择隐藏此函数体,就可以隐藏函数体定义,实现函数体的显示与隐藏,便于在复杂程序中进行图形化编程。

所述python代码显示区用于显示用户在编程区所拼接的编程块对应的 python代码,用户可查看每一个编程块对应的python代码与编程块文字描述之间的联系,便于理解此段python代码的功能。

所述调试区用于与用户进行交互,输出用户代码运行的信息,以及观看程序运行效果,以及根据报错提示进行代码调试。

所述功能区包括运行代码、停止运行、设置自启、取消自启功能。

设置自启功能:在用户编好程序点击“设置自启”按钮后,可将用户所编的图形化代码设置成树莓派开机自动运行。用户将代码设置为自启动,关闭系统,断开显示器,并且改用扩展板上的电池对硬件系统供电,然后启动树莓派,即可运行在图形化编程软件上所编好的代码,实现作品功能,不需桌面环境,方便各种创意作品的制作与展示。

如图5所示,所述人工智能学习硬件平台包括树莓派以及扩展板。

树莓派和扩展板是为中小学人工智能教育而设计的,树莓派和扩展板的设计是为了降低树莓派使用门槛,扩展树莓派资源以及简化人工智能学习过程中硬件连接,扩展板上引出树莓派GPIO口,并进行排序,提供标准化接口、便捷的PWM波输出、电机驱动、红外接收和蜂鸣器输出,方便各种硬件的连接以及各种人工智能应用案例的实现。

所述扩展板包括电源电路、PWM电路、加密电路、3.3V稳压电路、电机驱动电路、蜂鸣器电路、红外遥控电路、IIC通信接口、SPI通信接口、传感器接口、电机接口、PWM接口以及电池接口。

所述电源电路分别与树莓派、电池接口电连接,可通过外接电池或树莓派的适配器进行供电,使用电池供电时,利用TPS54540DDAR将电池的12V电压稳压成5V电压。市面上同类型的树莓派扩展板,大多通过树莓派的GPIO接口对树莓派进行供电,由于GPIO接口缺少电源保护,当向树莓派输入过大的电流或电压,极容易烧毁树莓派,造成用户的财产损失。因此本发明扩展板极度重视对电源的保护,采用了两片自动复位保险丝,分别为4A和2A,根据电流限制分别保护扩展板与树莓派。为防止电流倒灌,本发明扩展板使用了SS34肖基二极管进行保护,将大电流外设如电机模块与树莓派供电模块分隔开,提高了产品安全性。

所述PWM电路分别与树莓派、电机驱动电路、PWM接口电连接,所述PWM电路采用芯片PCA9685产生PWM信号,对扩展板上的电机驱动、PWM输出接口进行控制,具有以下优势:本发明扩展板集成了4路电机接口以及8路PWM输出接口,需要多达12路PWM信号进行控制,传统上使用树莓派的GPIO引脚产生PWM 信号,但过度占用GPIO引脚产生PWM会造成资源的浪费,故本扩展板采用性能强大的芯片PCA9685产生PWM信号。该芯片使用IIC通信进行控制,仅占用2 路GPIO接口即可产生最多16路PWM信号,精度为12位。使用独立芯片产生PWM 信号更便于检修,维护成本更低,而且在软件驱动方面已有成熟的库,缩短了软件的开发周期。

所述电机驱动电路分别与树莓派、电机接口电连接,所述电机驱动电路使用芯片为两块DRV8833,所述DRV8833与树莓派引脚进行电气连接,并与所述PWM电路的输出进行电气连接,每块芯片产生两路驱动,共四路驱动电流输出到所述电机接口。

所述加密电路与树莓派电连接,所述加密电路使用的芯片为STM32F042F6P6,芯片上烧录了序列码生成算法,扩展板将所述算法生成的序列码实时发送至树莓派,当识别到正确的序列码后,用户才能进入到本扩展板配套的软件系统,否则用户将无法进入程序界面。识别与追踪到本扩展板后,系统将通过服务器后台收集数据进行分析,获取产品使用频率、使用寿命等基本情况,为客户提供教学装备的个性化定制。

所述3.3V稳压电路分别与树莓派、蜂鸣器电路电连接,所述3.3V稳压电路将所述5V供电稳压为3.3V,为所述蜂鸣器电路进行供电,采用的稳压芯片为 AMS1117。

所述蜂鸣器电路包含无源贴片蜂鸣器、SS8050 Y1三极管、1N4148WS T4稳压二极管、电容C1、电阻R4、电阻R5。

所述IIC通信接口与树莓派的GPIO2和GPIO3进行电气连接。

所述SPI通信接口与树莓派的GPIO8、GPIO9、GPIO10、GPIO11、GPIO26进行电气连接。

所述红外遥控电路与树莓派的GPIO18进行电气连接,用户可以通过红外遥控对扩展板进行远距离控制。

所述传感器接口与树莓派电连接,为树莓派扩展板提供传感器接口。

所述传感器接口、PWM接口为ZH1.5端子。

所述电机接口、电池接口为XH2.54端子。

扩展板与树莓派通过排针排母电性相连,为AI案例应用提供硬件平台。

实现AI应用案例所需的电子设备,连接到树莓派扩展板上,如LED灯、蜂鸣器、红外传感器、温湿度传感器、摄像头、麦克风、音箱等。连接到树莓派扩展板对应标准化的接口上即可。

所述图形化编程Web端程序还包括消息编码模块以及消息发送模块。

所述消息编码模块用于接收用户在图形化编程web端程序功能区的操作,当用户点击功能区的某一个功能按钮时,消息编码模块首先会捕获用户具体操作的功能,生成对应这个功能的command字段,根据定义好的command字段需要的参数的要求获取参数,如运行和设置自启需要用户所编的python代码程序,则消息编码模块就将当前编程区的块转换为对应的Python代码,作为param 字段;若是停止运行、取消自启就不需要额外获取其他任何参数,直接将param 设置为none。然后以json格式编码成具有command字段和param字段的消息,分别表示Python服务端程序需要执行的指令以及指令所需要的参数。

所述消息发送模块用于创建一个与Python服务端程序联系的Websocket管道传输模块,将json格式的消息以流的方式发送到管道中。Websocket管道传输模块包括Websocket端口和Websocket管道,Websocket端口和Websocket管道连接;

所述Python服务端程序部署在树莓派上;所述Python服务端程序包括自启监测模块、消息接收模块以及解码执行模块。

所述自启检测模块每次树莓派开机时,Python服务端程序自动启动,自启检测模块运作,检测是否有被标记的自启程序,若有则自动运行被标记的程序;若无,则自启动检测模块工作结束。如图6所示。

所述消息接收模块用于从Websocket端口中监听和接收消息流。

所述解码执行模块用于解析出command字段和param字段,根据command 字段解析出用户在web端程序点击的功能按钮。

所述图形化编程Web端程序与Python服务端程序通过Websocket管道传输模块联系。所述Websocket管道传输模块用于传输消息发送模块发送过来的流。

运行用户所编的图形化编程代码所需要经过的模块为:消息编码模块、消息发送模块、Websocket管道传输模块、消息接收模块和解码执行模块。

如图7所示,设置代码自启功能的实现过程为:用户拼接完图形化程序后,点击功能区的设置自启按钮,web端程序的消息编码模块获取用户设置自启的操作,生成set_autostart的command字段,并且获得当前代码显示区的python 代码(其实为字符串)作为param字段,两者组合形成json格式的消息,传输至消息发送模块,消息发送模块指定发送和接收的websocket端口,并将编码后的消息传输至websocket管道传输模块,websocket管道传输模块将消息转换成流进行传输至Python服务端程序消息接收模块,消息接收模块在特定websocket 端口接收消息流,传输至解码执行模块,由解码执行模块解析出command字段和param字段,根据解析出的set_autostart字段,将param字段的python代码标记为autostart。树莓派关机重启后,Python服务端程序会自动启动,自启检测模块工作,检测程序中是否有autostart的代码,若有,则运行被标记为autostart 的程序,若无,则自启检测模块处于监听状态。

利用本发明软硬件结合的人工智能教育学习系统可实现很多典型的人工智能应用案例。可支撑实现人工智能元素多,贴近于现实生活的,且有趣的案例进行的教学活动的需求。如自动售货机和无人驾驶案例。以无人驾驶案例为例,将本学习系统装在一架普通的智能小车上,并在硬件平台的树莓派USB口上连接摄像头、麦克风,作为音频和视频输入设备,并通过蓝牙,将蓝牙音箱与树莓派连接起来,作为语音输出设备,在扩展板上连接智能小车的电机以及红外传感器,并按照现实中的无人驾驶情景建立模型,设计一个简单的包括出发区,十字路口区、红绿灯区、语音区、停车场区这五个区域的无人车赛道,在本学习系统上通过拖拽具体应用案例中的编程块实现扫描二维码,识别方向,识别颜色,识别数字,识别图标,语音合成,语音识别等功能,最后将各个功能组合,实现智能小车跑无人车赛道的全程,例如可设计的无人驾驶案例实现流程如下:

1、在本学习系统的图形化编程软件上编好无人驾驶案例的总程序后,将放在无人车赛道出发区,小车会自动打开摄像头,扫描识别出发区前方放置的二维码,若是检测到二维码的内容为“start”,小车开始寻线运动,并且程序内部开始计时。

2、当小车寻线到十字路口处的等待线上停下来,开始识别十字路口上的方向指示牌,若是识别到“左转”,则小车向左转,沿着左边的道路行驶,若是识别到“右转”,则小车向右转,沿着右边的道路行驶。

3、当小车一路寻线到红绿灯部分,在红绿灯前的等待线停下来,开始检测前方的指示牌中的颜色,若是检测到绿色,则不会继续检测旁边的数字指示牌,小车继续前行。若是检测到红色,则识别红色旁边的数字指示牌,并停止对应的秒数后继续寻线前行。

4、小车到达语音控制区的等待线前停下来,并触发语音区旁边的音箱。小车视觉识别指示牌,若识别到“语音”(喇叭指示牌),则开始录音箱发出的关于小车目标停车位的指令,小车进行语音识别,若识别到的关键词包含数字,比如“1”,则小车保存此数字作为目标停车位,语音播报目标停车位,然后关闭语音功能,继续寻线前行进入停车场。若是不包含数字关键词,则小车停在原地,继续录音,识别语音,直到包含数字关键词为止。

5、小车保存目标停车位的数字之后,寻线进入停车场,到达停车位前的等待线停止,识别停车位上方的数字指示牌,与目标停车位的数字进行匹配,若是不匹配,则小车继续前行,到达下一个停车位,继续进行匹配;若是匹配,小车左转,进入停车位。

6、小车进入停车位后,一直寻线,直到遇到停车位内的等待线,小车停止,说明小车已经停好,就打开摄像头,开始扫描停车位上的二维码,若是检测到二维码的内容为:“stop”,则小车停止计时,语音播报小车走完全程所用的总时间。

其中,扫描二维码对应的是现实生活中的扫码支付的情景,十字路口和红绿灯模拟的是无人车在道路上所遇到的路口和红绿灯,自动停车区模拟的是未来的自动停车场,此无人驾驶案例模型与现实中的无人驾驶的相似性较高,便于学生理解其中涵盖的人工智能知识,实现AI教育课程的目标。通过本发明涉及的软硬件结合的人工智能教育学习系统可达到人工智能学习的目的。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号