CN113900637B - 一种基于Web的Arduino智能硬件控制方法及*** - Google Patents
一种基于Web的Arduino智能硬件控制方法及*** Download PDFInfo
- Publication number
- CN113900637B CN113900637B CN202111166878.9A CN202111166878A CN113900637B CN 113900637 B CN113900637 B CN 113900637B CN 202111166878 A CN202111166878 A CN 202111166878A CN 113900637 B CN113900637 B CN 113900637B
- Authority
- CN
- China
- Prior art keywords
- intelligent hardware
- web
- arduino
- graphical programming
- programming tool
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种基于Web的Arduino智能硬件控制方法及***,该方法包括步骤:封装Web Serail API的接口;在图形化编程工具虚拟机中设置支持Arduino智能硬件的扩展插件;通过Arduino编辑器设置支持所述Web浏览器与Arduino智能硬件通信的串行协议,编译为二进制文件并烧录到Arduino智能硬件中;通过Web浏览器上的图形化编程工具编辑控制指令,由所述扩展插件将控制指令发送至Web Serail API的接口,Arduino智能硬件通过Web Serail API的接口获取并执行控制指令。本发明能够使得在通过图形化编程工具控制Arduino智能硬件时可以不再需要安装和更新第三方硬件助手,在教育和培训场景下,特别是带有自动还原***的学校机房,简化了安装流程,提高了Arduino教学的效率,降低了学生的操作门槛和复杂度。
Description
技术领域
本发明涉及智能硬件控制技术领域,尤其涉及一种基于Web的Arduino智能硬件控制方法及***。
背景技术
为了方便儿童或成人编程初学者学***台,包含硬件——各种型号的Arduino板和软件——ArduinoIDE,Arduino能够通过各种各样的传感器来感知环境,通过控制灯光、马达和其他装置来反馈、影响环境。传统的Arduino编程需要通过官方的Arduino软件编写C++程序后烧录,或者通过官方的Web editor编写C++程序,但是烧录需要用户先安装Arduino Create Agent硬件主手,在简易图形化编程工具中以实时模式控制Arduino智能硬件,官方并不支持。而许多基于简易图形化编程工具进行二次开发的项目中,是将Arduino硬件连接到计算机上,并需要用户安装自行开发的硬件连接助手,如图1所示。可见不管是Arduino官方烧录上传控制Arduino的方式,还是其他对于简易图形化编程工具二次开发的项目中控制Arduino的方式,都需要用户安装Arduino Create Agent或硬件助手,对于学校的教学场景会带来巨大的麻烦,由于学校机房普遍都有电脑还原***,重启电脑所有新装的软件和数据会丢失,所以安装更新Arduino Create Agent或硬件助手本身就变得极为困难。
发明内容
鉴于此,本发明的目的在于提供一种基于Web的Arduino智能硬件控制方法及***,以克服或至少部分解决现有技术所存在的上述问题。
为实现上述发明目的,本发明第一方面提供一种基于Web的Arduino智能硬件控制方法,所述方法应用于基于Web的Arduino智能硬件控制***,所述***包括安装有WebSerail API和图形化编程工具的Web浏览器、带有固件的Arduino智能硬件,所述方法包括以下步骤:
S101、封装Web Serail API的接口;
S102、在图形化编程工具虚拟机中设置支持Arduino智能硬件的扩展插件;
S103、通过Arduino编辑器设置支持所述Web浏览器与Arduino智能硬件通信的串行协议,编译为二进制文件并烧录到Arduino智能硬件中;
S104、通过Web浏览器上的图形化编程工具编辑控制指令,由所述扩展插件将控制指令发送至Web Serail API的接口,Arduino智能硬件通过Web Serail API的接口获取并执行控制指令。
进一步的,所述在图形化编程工具虚拟机中设置支持Arduino智能硬件的扩展插件,具体包括以下步骤:
S201、在图形化编程工具虚拟机的源码目录下的扩展工具目录中创建支持Arduino智能硬件的扩展插件文件夹;
S202、在扩展插件文件夹中创建index.js文件;
S203、在图形化编程工具虚拟机的扩展管理器中注册所述扩展插件。
进一步的,所述图形化编程工具包括:
界面构建模块,用于构建图形化编程工具的人机交互界面;
图形定义模块,用于定义图形化的程序代码和不同图形之间的拼接;
虚拟机,用于管理状态、执行程序逻辑和定制扩展插件;
多语言翻译模块,用于实现图形化编程工具对多语言环境的支持;
渲染模块,用于根据程序逻辑实现动画渲染;
声音处理模块,用于实现程序所附带音频的管理和控制。
进一步的,所述图形化编程工具采用Scratch软件。
进一步的,所述Arduino智能硬件通过USB连接安装有所述Web浏览器的计算机设备。
进一步的,所述步骤S103具体包括以下步骤:
S301、判断安装有所述Web浏览器的计算机设备是否连接Arduino智能硬件,若连接则执行步骤S302,否则执行步骤S303;
S302、导出已编译的二进制文件,通过USB直接烧录到Arduino智能硬件中;
S303、导出已编译的二进制文件,将其保存为hex固件。
进一步的,所述Web Serial API向Arduino智能硬件的输出流通过WritableStreamDefaultWriter接口实现。
本发明第二方面提供一种基于Web的Arduino智能硬件控制***,所述***用于实现前述第一方面所述的方法,所述***包括安装有Web Serail API和图形化编程工具的Web浏览器、带有固件的Arduino智能硬件。
与现有技术相比,本发明的有益效果是:
(1)本发明基于浏览器Web Serial API构建简易图形化编程工具的Arduino智能硬件扩展插件,使得在通过图形化编程工具控制Arduino智能硬件时可以不再需要安装和更新第三方硬件助手,在教育和培训场景下,特别是带有自动还原***的学校机房,简化了安装流程,提高了Arduino教学的效率,降低了学生的操作门槛和复杂度;
(2)通过封装Web Serial API的接口实现图形化编程工具与Arduino智能硬件之间的通信,相较于传统硬件助手作为通信桥梁,大大提高了上位机计算机设备与Arduino智能硬件之间的通信效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的优选实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中图形化编程工具控制Arduino智能硬件的连接原理示意图。
图2是本发明实施例提供的一种基于Web的Arduino智能硬件控制方法整体结构示意图。
图3是本发明实施例提供的扩展插件安装流程示意图。
图4是本发明实施例提供的串行协议烧录方法流程示意图。
图5是本发明另一实施例提供的一种基于Web的Arduino智能硬件控制***原理示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所列举实施例只用于解释本发明,并非用于限定本发明的范围。
参照图1,本实施例提供提供一种基于Web的Arduino智能硬件控制方法,所述方法应用于基于Web的Arduino智能硬件控制***,所述***包括安装有Web Serail API和图形化编程工具的Web浏览器、带有固件的Arduino智能硬件。所述方法包括以下步骤:
S101、封装Web Serail API的接口,以便于图形化编程工具或Arduino智能硬件调用。所述Web Serail API的接口用于实现Web浏览器与Arduino智能硬件之间的通信。
用户尤其是教育***、业余爱好者和工业部门,连接外部设备到他们的电脑,通常需要独立软件来控制,比如,机器人经常用来在学校教授计算机编程和电子,这就需要独立软件通过串口连接来上传代码到机器人进行远程控制。
一些web站点要与外部设备通信,通常需要用户手工安装一个本地化助手程序,或者通过Electron这样的框架将web站点和助手程序一起打包成一个离线本地程序。无论哪种方式,都导致操作繁琐、用户使用体验很差。
Web Serial API给网站提供了一种通过web脚本读写串行设备的路径,这些API能够充当web和物理世界的桥梁,允许web文档和微控制器、3D打印机等其它串行设备通信。
S102、在图形化编程工具虚拟机中设置支持Arduino智能硬件的扩展插件。
S103、通过Arduino编辑器设置支持所述Web浏览器与Arduino智能硬件通信的串行协议,编译为二进制文件并烧录到Arduino智能硬件中。
S104、通过Web浏览器上的图形化编程工具编辑控制指令,由所述扩展插件将控制指令发送至Web Serail API的接口,Arduino智能硬件通过Web Serail API的接口获取并执行控制指令。
作为一种优选的实施方式,参照图3,步骤S102中,所述在图形化编程工具虚拟机中设置支持Arduino智能硬件的扩展插件,具体包括以下步骤:
S201、在图形化编程工具虚拟机的源码目录下的扩展工具目录中创建支持Arduino智能硬件的扩展插件文件夹。
S202、在扩展插件文件夹中创建index.js文件。
S203、在图形化编程工具虚拟机的扩展管理器中注册所述扩展插件。当扩展插件注册完成后,图形化编程工具即可通过调用该扩展插件来实现与Arduino智能硬件之间的通信。
作为一种优选的实施方式,所述图形化编程工具包括:界面构建模块、图形定义模块、虚拟机、多语言翻译模块、渲染模块和声音处理模块。
其中,所述界面构建模块用于构建图形化编程工具的人机交互界面。
所述图形定义模块用于定义图形化的程序代码和不同图形之间的拼接。
所述虚拟机用于管理状态、执行程序逻辑和定制扩展插件。
所述多语言翻译模块用于实现图形化编程工具对多语言环境的支持。
所述渲染模块用于根据程序逻辑实现动画渲染,通过动画效果表现程序运行结果。
所述声音处理模块用于实现程序所附带音频的管理和控制。
示例性地,所述图形化编程工具可以采用Scratch软件。
具体的,所述Arduino智能硬件可以是通过USB连接安装有所述Web浏览器的计算机设备,也可以是采用其他串口总线标准连接计算机设备,本领域技术人员在实施本实施例所述的方法时可以根据实际需要进行选择。
作为一种优选的实施方式,参照图4,所述步骤S103具体包括以下步骤:
S301、判断安装有所述Web浏览器的计算机设备是否连接Arduino智能硬件,若连接则执行步骤S302,否则执行步骤S303。
S302、导出已编译的二进制文件,通过USB直接烧录到Arduino智能硬件中。
S303、导出已编译的二进制文件,将其保存为hex固件。
本实施例中,在支持所述Web浏览器与Arduino智能硬件通信的串行协议设置完成后,若安装有所述Web浏览器的计算机设备与Arduino智能硬件正处于连接状态,则直接将基于所述串行协议所编译的二进制文件烧录到Arduino智能硬件中,否则将已编译的二进制文件保存为hex固件,以备将来用于烧录Arduino智能硬件的固件。
作为一种优选的实施方式,所述Web Serial API向Arduino智能硬件的输出流通过WritableStreamDefaultWriter接口实现。本实施例借助Web Serial API输出流WritableStreamDefaultWriter的背压机制,相较于传统硬件助手作为通信桥梁,能够大大提高上位机电脑与Arduino硬件的通信效率。
本发明另一实施例还提供一种基于Web的Arduino智能硬件控制***,参照图5,所述***包括安装有Web Serail API和图形化编程工具的Web浏览器、带有固件的Arduino智能硬件。所述***用于实现前述方法实施例所述的方法,其工作原理和技术效果均可参照前述方法实施例,在此不再赘述。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种基于Web的Arduino智能硬件控制方法,其特征在于,所述方法应用于基于Web的Arduino智能硬件控制***,所述***包括安装有Web Serail API和图形化编程工具的Web浏览器、带有固件的Arduino智能硬件,所述方法包括以下步骤:
S101、封装Web Serail API的接口;
S102、在图形化编程工具虚拟机中设置支持Arduino智能硬件的扩展插件;
S103、通过Arduino编辑器设置支持所述Web浏览器与Arduino智能硬件通信的串行协议,编译为二进制文件并烧录到Arduino智能硬件中;
S104、通过Web浏览器上的图形化编程工具编辑控制指令,由所述扩展插件将控制指令发送至Web Serail API的接口,Arduino智能硬件通过Web Serail API的接口获取并执行控制指令;
所述在图形化编程工具虚拟机中设置支持Arduino智能硬件的扩展插件,具体包括以下步骤:
S201、在图形化编程工具虚拟机的源码目录下的扩展工具目录中创建支持Arduino智能硬件的扩展插件文件夹;
S202、在扩展插件文件夹中创建index.js文件;
S203、在图形化编程工具虚拟机的扩展管理器中注册所述扩展插件。
2.根据权利要求1所述的一种基于Web的Arduino智能硬件控制方法,其特征在于,所述图形化编程工具包括:
界面构建模块,用于构建图形化编程工具的人机交互界面;
图形定义模块,用于定义图形化的程序代码和不同图形之间的拼接;
虚拟机,用于管理状态、执行程序逻辑和定制扩展插件;
多语言翻译模块,用于实现图形化编程工具对多语言环境的支持;
渲染模块,用于根据程序逻辑实现动画渲染;
声音处理模块,用于实现程序所附带音频的管理和控制。
3.根据权利要求1所述的一种基于Web的Arduino智能硬件控制方法,其特征在于,所述图形化编程工具采用Scratch软件。
4.根据权利要求1所述的一种基于Web的Arduino智能硬件控制方法,其特征在于,所述Arduino智能硬件通过USB连接安装有所述Web浏览器的计算机设备。
5.根据权利要求1所述的一种基于Web的Arduino智能硬件控制方法,其特征在于,所述步骤S103具体包括以下步骤:
S301、判断安装有所述Web浏览器的计算机设备是否连接Arduino智能硬件,若连接则执行步骤S302,否则执行步骤S303;
S302、导出已编译的二进制文件,通过USB直接烧录到Arduino智能硬件中;
S303、导出已编译的二进制文件,将其保存为hex固件。
6.根据权利要求1所述的一种基于Web的Arduino智能硬件控制方法,其特征在于,所述Web Serial API向Arduino智能硬件的输出流通过WritableStreamDefaultWriter接口实现。
7.一种基于Web的Arduino智能硬件控制***,其特征在于,所述***用于实现权利要求1-6任一项所述的方法,所述***包括安装有Web Serail API和图形化编程工具的Web浏览器、带有固件的Arduino智能硬件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111166878.9A CN113900637B (zh) | 2021-09-30 | 2021-09-30 | 一种基于Web的Arduino智能硬件控制方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111166878.9A CN113900637B (zh) | 2021-09-30 | 2021-09-30 | 一种基于Web的Arduino智能硬件控制方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113900637A CN113900637A (zh) | 2022-01-07 |
CN113900637B true CN113900637B (zh) | 2023-08-01 |
Family
ID=79190163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111166878.9A Active CN113900637B (zh) | 2021-09-30 | 2021-09-30 | 一种基于Web的Arduino智能硬件控制方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113900637B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111190588A (zh) * | 2018-11-14 | 2020-05-22 | 巴赫曼有限公司 | 用于借助于图形化开发界面操作和控制机器设施和产生现场总线配置的方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103197929B (zh) * | 2013-03-25 | 2016-03-30 | 中国科学院软件研究所 | 一种面向儿童的图形化编程***和方法 |
GB201407539D0 (en) * | 2014-04-29 | 2014-06-11 | Easysharepoint Ltd | Web site deployment system and method |
CN105511860A (zh) * | 2015-11-30 | 2016-04-20 | 大连文森特软件科技有限公司 | 在线图形化编程*** |
CN107423049A (zh) * | 2017-04-18 | 2017-12-01 | 南京凯蒙教育科技有限公司 | 实现在线编程的方法、浏览器和终端设备 |
CN109032573A (zh) * | 2018-06-20 | 2018-12-18 | 深圳市编玩边学教育科技有限公司 | 一种硬件编程***和方法 |
-
2021
- 2021-09-30 CN CN202111166878.9A patent/CN113900637B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111190588A (zh) * | 2018-11-14 | 2020-05-22 | 巴赫曼有限公司 | 用于借助于图形化开发界面操作和控制机器设施和产生现场总线配置的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113900637A (zh) | 2022-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112035101B (zh) | 结合rpa及ai的命令库创建方法、装置、介质及设备 | |
WO2020134633A1 (zh) | 一种应用程序的开发方法、装置及集成开发工具 | |
CN103257925A (zh) | 列车运行监控记录软件自动测试装置、***及其方法 | |
CN112149399A (zh) | 基于rpa及ai的表格信息抽取方法、装置、设备及介质 | |
CN106484403A (zh) | 一种机器人跨平台的图形化开发*** | |
CN104536400A (zh) | 核电站dcs仿真建模方法 | |
CN116859850A (zh) | 一种模块化的工业数字孪生*** | |
CN111367579A (zh) | 一种v-rep插件及基于v-rep插件的处理器在环仿真方法 | |
CN113900637B (zh) | 一种基于Web的Arduino智能硬件控制方法及*** | |
Smutný | Visual programming for smartphones | |
US20230011461A1 (en) | Method and system for generating engineering diagrams in an engineering system | |
CN104809534A (zh) | 业务流程管理*** | |
KR20150066377A (ko) | Devs 기반의 시뮬레이션 프레임워크 시스템 및 이를 이용한 시뮬레이션 방법 | |
WO2021140176A1 (en) | Method and system for managing engineering workflow in a cloud computing environment | |
WO2023033420A1 (ko) | 비주얼 스크립트를 이용한 디지털 트윈 구축 시스템, 방법 및 이를 위한 장치 | |
CN111159032A (zh) | 一种信号驱动的通用自动测试开发***及***建立方法 | |
CN115344248A (zh) | 一种rpa开发字段编辑多样化方法 | |
CN114218745A (zh) | 一种模型驱动自主演进智能设计方法 | |
CN114692055A (zh) | 表单处理方法、装置、存储介质与电子设备 | |
CN106874014A (zh) | 基于模型和框架的三层代码生成方法 | |
Safa | The making of user-interface designer a proprietary DSM tool | |
CN105335153A (zh) | 一种自动生成动态脚本的方法 | |
CN108008945A (zh) | 一种linux***下pci设备驱动开发方法 | |
CN111596952B (zh) | ***全局名称配置处理方法、装置、设备及介质 | |
WO2022190418A1 (ja) | 開発支援装置、開発支援方法および開発支援プログラム |
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 |