简化Android应用程序的开发以创建电子原型:IOIO App Inventor外文翻译资料

 2022-04-13 20:02:07

英语原文共 11 页,剩余内容已隐藏,支付完成后下载完整资料


简化Android应用程序的开发以创建电子原型:IOIO App Inventor

Slim Chtourou,Mohamed Kharrat,Nader Ben Amor,Mohamed Abid

电气部,法国国家工程师学院,路线市场

CS部,信息高等研究院和凯鲁万问题研究所

摘要:为了验证电子系统在商业用途之前的概念,需要首先开发一个原型,但是,电子和计算机科学的技术是必须的。由于这些领域在当今世界的重要性,几乎所有领域都受到技术的管制,为了向广大公众提供这些知识,出现了一些举措,在这种情况下,重点放在教育领域,已经做出了一些努力来降低电子和CS领域的入门级别,甚至让孩子们在很小的时候学习基本的概念,并有可能将他们的想法来开发出自己的原型。该研究提供了一种解决方案,以促进使用图形化编程来编程电子小配件的任务。作者认为,作为案例研究的电子系统建立在IOIO板周围,图形编程界面是使用APP Inventor创建的,这是一个用于创建Android应用程序的网络平台。使用所提出的系统,几个基本和复杂的的小工具很容易由年轻的小学生创建,他们在硬件组装和软件编程等方面的技能很低。

1介绍

物联网是目前技术发展趋势之一。它使家中的一切都变的更加智能,甚至是镜子。要验证物联网系统,必须首先完成原型设计步骤,然后进行系统测试。说到智能设备,这意味着要处理电子元件和硬件编程。这种情况下的挑战是需要电气和计算机科学的最低背景。不幸的是,普通大众不可能掌控这些领域。因此为了简化这两个科学领域,已经采取了几项措施。足以让每个人都感兴趣并参与建立自己的系统,而不需要技术知识。这些努力从模块化硬件,模块组装到用户友好的软件编程接口。

针对教育领域的其他努力还有很多,旨在实现更广泛接入CS教育的举措,几家初创公司也从这些努力中获得了成功,并努力提供足够的原型平台,可用于构建电子系统,但也可用作教育工具,帮助学生从小就学习电子和CS的基础知识。在这种情况下,我们提出了一个低成本的原型平台,以简化创建电子系统的过程,对其进行编程并通过android智能手机无线控制已开发的原型。

本文组织如下:第2部分,我们介绍一些旨在促进电子或CS教育的项目,并比较它们的特点和局限性。 在第3节中,我们定义了我们的目标并提出了创建易于使用的原型平台的方法,然后我们在第4节中确定了采用的开发该平台的解决方案。第5节介绍了系统概述及其功能原理,我们在第6部分展示了一些演示,展示了提出的解决方案所实现的新可能性。 在最后一节中,我们详细介绍了在孩子们身上进行的机器人汽车体验并讨论了获得的结果。

2一些教育平台的概述

本节介绍一小部分可用的硬件初创公司及其提供的产品。

2.1 light up

Light Up是一家提供产品的创业公司,该产品允许儿童在没有电子领域事先知识的情况下创建电子电路。 它刺激了“通过制造学习”的原则,让儿童在理解他们制作的东西的同时建立自己的电路[6]。

提供了简单的硬件套件,它们使用磁铁连接不同的部件,并通过它们传输电力,因此不需要使用电缆。 它还带有一个兼容的Android板,因此可以快速编程并建立交互式电路。

Light Up团队还开发了一款移动应用程序,用于对内置电路进行故障排查,以查找错误或显示电路中的电流。

2.2 little bits

littleBits是一个开源的硬件组件库,它们使用磁铁相互连接。 不需要焊接,不需要布线,不需要编程,只需拼接即可。 每一位都有特定的功能(光,声音,传感器,按钮,电机等)。 就像乐高一样,它可以用很少的工程知识创建复杂的结构。 littleBits是小巧,简单,直观的模块,可以使用复杂的电子设备创建将小磁铁紧贴在一起的问题[7]。

littleBits的潜力由于一个特殊的区块而扩大:云位。 该模块将互联网及其所有潜力带入现有的硬件模块,从而创建一个有趣的物联网系统[8]。

云位使得数据可以在云中访问,例如可以控制其他设备,从恒温器,门铃到自己动手的智能家居。

2.3

Micro:位是可以编程来完成多项任务的袖珍型计算机。 该器件具有5times;5 LED矩阵,运动传感器,指南针,蓝牙和多个I / O引脚[9,10]。

该设备通过基于Web的界面进行编程,支持各种编程语言,如JavaScript,Python,C 等。

尽管微型位缺乏树莓派Pi处理能力和Arduino广泛的系统,但它仍然是一种有趣的教育装置。

2.4

Blockly是一款在线开源可视化编程编辑器,它允许用户通过拖放块来将复杂代码连接起来,就像拼图11一样。 除了配置一些设置和值之外,不需要打字,这使得代码创建更容易。 MIT的Scratch,App Inventor和code studio等平台已经出现了许多平台。

2.5

Scratch是麻省理工学院(MIT)开发的免费教育编程语言。 它是一个教育平台,通过游戏,艺术,模拟启动初学者的编程基础知识。 Scratch基于Blockly,并使用图形块通过拖放创建程序[12]。

世界各地的许多学校都使用Scratch来教孩子们CS的基础。 以美国为例,它是39个CS部门用于教授入门课程的语言之一[13],截至2016年9月,在Tiobe指数中排名22 [14]。

2.6

Tynker是一个专注于教育的在线平台,通过激励孩子们创建自己的游戏和网络应用程序。 编程基于图形化编程方法,因此不需要技术知识[15]。

Tynker并不专用于软件,它能够连接其他硬件组件,从而可以对硬件进行编程(例如机器人)

2.7

表1概述了上面讨论的不同项目。

虽然上述每个项目都提供了一个有趣的产品,可以简化电子产品或CS,但所有这些产品都倾向于非常具体,专注于仅限硬件或仅限SW。 其中一些平台没有在教育领域提供具体应用,或者不适合该领域。 另外,有些产品对儿童或初学者来说可能相当昂贵,尤其是当他们提供硬件组件时。

3目标和贡献

3.1

上述解决方案是硬件聚焦还是软件聚焦。 作者的目标是创建一个硬件和软件的组合,有利于开发应用程序来控制硬件,这些硬件也更便宜和更容易构建。 我们的目标低自动化系统或教育中使用的复杂嵌入式系统。 这种系统由低成本微控制器和丰富的I / O接口管理。 图形接口用于对单片机和各种I / O引脚进行编程以获得所需的功能。 为了说明这个概念,我们采用IOIO板卡和App Inventor编程工具作为硬件平台。

3.1.1

IOIO板卡:IOIO是一款开源的板卡,旨在为PC或Android应用程序添加先进的硬件I / O功能[16]。 这里使用的电路板是IOIO OTG。 它允许连接USB设备。 这是一个有趣的功能,可以通过插入蓝牙USB适配器来实现无线传输,因此无论是通过PC还是智能手机,都可以通过无线方式对其进行编程和控制。

它还集成了一个Java库,因此,可以创建可以控制该电路板的PC或Android智能手机的应用程序。

3.1.2

App Inventor的介绍:App Inventor是一个由MIT [17]创建的在线开源平台,它将android编程过程简化为配置互连块的概念。 没有Java代码可以编写,不需要考虑Android约束,并且设计和脚本界面都是用户友好的。 有了这个平台,即使是孩子们也可以创建有趣的项目。

App Inventor还能够执行其他高级任务,如蓝牙通信,语音识别,甚至控制一些乐高头脑风暴机器人套件。

3.2贡献

当并排考虑IOIO和App Inventor时,会发现一个缺陷:虽然通过蓝牙从智能手机无线控制IOIO很有趣,但开发所需的应用程序需要最少的java和android编程专业知识,这对于小学和大学的孩子。

此外,虽然App Inventor提供了一个软件平台,可以在不编写任何代码的情况下以图形方式创建android应用程序,但它在功能方面仍然有限,在这种特殊情况下,它不提供专用模块来控制IOIO板。

因此,本文的贡献是填补这一空白,并能够用App Inventor图形化地创建可以控制IOIO板的Android应用程序。

4探索不同的解决方案

在研究将IOIO和App Inventor功能结合起来的问题时,有两种方法需要考虑。

4.1方法1:App Inventor中的IOIO代码

在为IOIO开发android应用程序时,通常的方法是使用Eclipse或Android Studio等IDE。 由于IOIO具有Java库,因此需要将其导入到当前项目中才能合并IOIO功能,使用导入命令就足够了。

App Inventor可以考虑同样的原则:将IOIO库集成到其中。 不过,这项任务并不简单,因为App Inventor是使用Google AppEngine在云端托管的整个平台。

即使使用本地版本的App Inventor,也没有多少修改空间,与每个块关联的代码不可访问。

App Inventor的源代码非常长,可以分成几百个Java文件。 另外,需要设置开发环境:用户需要安装AppEngine SDK,python,maven DB。 使用这些语言意味着最少的经验(表2)。

方法2:App Inventor调用IOIO服务

当任务过于复杂而无法集成到特定平台或特定设备时,通常的做法是在云中执行所需任务或从其他源调用所需功能并执行。 android提供了一个类似的功能:android应用程序#39;App1#39;可以通过调用#39;App2#39;中的函数来扩展它的功能。 在考虑IOIO和App Inventor案例的这种方法时,它似乎是一个很好的探索途径。

采用的方法的选择

为了确定哪种方法更适合探索,我们比较上面讨论的两种方法。

基于这些信息,我们采用第二种方法,其中包括开发App Inventor开发的应用程序可以调用的Android服务,以添加IOIO支持并扩展其功能。 下一节介绍链接IOIO和App Inventor的不同步骤

5系统概述

图1a说明了该系统的大图:

App Inventor应用程序将与称为IOIOAI的第二个应用程序进行通信,以执行IOIO命令并从IOIO引脚检索数据。

IOIOAI可作为在后台运行的Android服务提供。 如图1b所示,点击通知图标可以关闭它允许其他应用程序调用的App Inventor功能是“ActivityStarter”,与IOIOAI服务通信所需的模块如图1c所示

在开始活动之前,需要首先配置一些设置:

setActivityPackage和setActivityClass用于唯一标识要调用的应用程序,

setResultName块来确定App Inventor在从被调用的应用程序发回结果时应该读取的变量的名称,

setExtraKey和setExtraValue块定义将传递给被调用App的变量的名称及其内容,该内容在调用IOIO函数时作为参数传递。

图1系统概述

建议解决方案的全貌,(b)启动IOIOAI服务,(c)IOIOAI服务的活动启动器,(d)App Inventor块,用于调用服务并传递IOIO命令

例如,要将数字引脚2设置为LOW状态,将调用IOIO函数,并将参数#39;digitalWrite,2,true#39;传递给key_command变量。

对于每个App Inventor应用程序,应始终插入此组块以调用服务

图2用于控制加热器的App Inventor块

6 三个演示

在本节中,我们将展示如何使用App Inventor创建基于IOIO的应用程序,并突出显示难以实现的任务,还是单独使用IOIO或App Inventor无法实现的任务。

演示1:带语音识别功能的智能房屋

通常,基于微控制器的嵌入式系统不足以执行语音识别等复杂任务,并且需要Wi-Fi模块才能连接到互联网。 本部分演示智能住宅的概念,用户可以使用语音识别控制他的房屋。 本演示将重点介绍使用继电器控制连接到交流插座的加热器的情况。 继电器通过接收来自IOIO板的数字信号来激活。

应用发明者为语音识别任务整合了模块,当用户与智能手机通话时,语音将被处理并转换为文本。 然后将它与预定义的字符串进行比较:#39;建立当前#39;和#39;停止#39;。 基于匹配,继电器将打开交流电源插座并启动与其连接的加热器,或者关闭加热器。

屏幕截图和用于比较处理后的语音的块组如图2所示。

演示2:火灾探测器

本演示重点介绍家庭安全,并强调了App Inventor开发的应用程序读取IOIOAI返回的传感器值的可能性。 原则如下:

标准火焰传感器通过模拟引脚连接到IOIO板。 当它发现火灾时,SMS会发送给房主,警告他房子里可能存在火灾,并建议给消防员打电话。

在无火情况下测试传感器时,传感器返回的电压gt; 0.1 V.在有火的情况下,电压下降lt;0.1 V,因此此值将被解释为存在火灾。

要发送短信,硬件方法是使用SIM900A等SIM卡模块。 但是,这个模块可能非常昂贵,配置起来相当复杂。 因此,此应用

全文共7123字,剩余内容已隐藏,支付完成后下载完整资料


资料编号:[14028],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。