自 21 世纪初以来,由于工程和微电子技术的许多进步,使得新型廉价制造工具大量涌现,全球对硬件制造重新燃起了兴趣。各种年龄的人,甚至是孩子,都开始把他们坏掉的设备、旧玩具和每一件没用过的硬件,转换成令人惊叹的新物件。这种设计和创造新事物的非传统方法的特点是表达创造力的新方式,这是创造制造商文化的关键因素。
这就是创造者革命,一场从根本上改变了我们世界的运动。开源项目提供了所有必要的工具来释放创造力来构建一些东西,而不需要强大的编程和工程知识,也不需要一套昂贵的组件。事实上,制造商革命取得的最重要的成功之一是将原型制造从小型或大型工业转移到我们家的能力。
2012 年 2 月,另一个名为 UDOO 的开源项目启动了一个以 Linux 和安卓操作系统为特色的原型板,目标是将 Arduino 和树莓 Pi 的优胜特性结合在一块单板上。在这个项目上工作了一年后,2013 年 4 月,UDOO 董事会加入了 Kickstarter 众筹平台,来自 maker 社区的反馈是压倒性的积极——这个项目仅用了 2 天就获得了资助。
世界各地的制造商都非常喜欢这个项目,他们决定不仅通过 Kickstarter 承诺,甚至通过在电路板设计阶段提供有用的想法和建议来做出贡献。制造商社区提供的帮助的结果是一个强大的原型板来构建我们一直想要的交互式和创造性的想法。
这本书将教你如何使用 UDOO 板作为快速原型工具来构建你的第一个硬件项目。从一个涉及使用基本电子元件的简单应用开始,你将完成不同的项目,让你构建电子电路,通过安卓操作系统提供的改进的交互。
第 1 章、开启引擎,带您了解 UDOO 平台的设置和所需的开发环境。它首先介绍了董事会,显示其特点和能力,以区别于其他;然后它会指导您完成 Android 操作系统的安装。最后一部分,解释如何为 Arduino 和 Android 配置开发环境,以启动第一个 Hello World Android 应用。
第 2 章、了解你的工具,讲述了安卓应用如何控制连接的设备。它首先介绍了 Arduino 的一些板载特性,然后解释了如何创建第一个能够与集成 Arduino 设备通信的安卓应用。然后,它展示了如何使用试验板创建一个全功能电路,以实现快速原型制作。
第 3 章、测试你的物理应用,解释物理应用测试背后的主要概念。第一部分展示了如何构建一个可从软件应用测试的电路。然后显示如何实施诊断模式,以测试连接的电路是否正常工作。
第 4 章、使用传感器监听环境,首先解释传感器如何工作,以及如何使用它们来感知原型上下文。然后,它展示了如何构建一个心跳监视器,编写一个 Arduino 草图来读取传感器的数据,以及一个安卓应用来可视化计算结果。
第 5 章、管理与物理组件的交互,教授如何管理用户交互。首先解释一些可以让外界与系统交互的组件。然后展示了如何构建一个带有物理控制器的网络收音机来管理原型音量和改变当前电台。最后一部分,使用安卓应用编程接口播放互联网广播流。
第 6 章、为家庭自动化构建一个 Chronotherm】,解释了如何将一些 UDOO 功能用于家庭自动化。它展示了 Chronotherm 的创建,使用电路来检测环境温度,以及安卓用户界面来可视化传感器数据和改变每个时间间隔的期望温度。
第 7 章、使用安卓 API 进行人机交互,从上一章开始为应用增加了更多功能,扩展了设置管理,存储不同的预设,使用语音识别和合成来管理用户的交互。
第 8 章、增加网络功能,再次扩展了 Chronotherm 应用,使其能够通过 RESTful 网络服务收集预测数据。在最后一部分,它展示了如何使用收集的数据来为 Chronotherm 提供更多功能。
第 9 章、使用 MQTT 监控您的设备,讲授物联网和 MQTT 协议的主要概念,用于在物理设备之间交换数据。然后展示了如何建立一个基于云的 MQTT 代理,能够接收和发送 Chronotherm 温度更新。最后一部分展示了如何编写一个独立的安卓应用来接收从 Chronotherm 发送的数据。
这是一个奖励章节,可从以下链接下载:https://www . packtpub . com/sites/default/files/downloads/1942 OS _ Chapter _ 9 . pdf
为了运行本书中演示的代码,您需要为 Android 和 Arduino 以及安装了 Android 操作系统的双或四 UDOO 板配置开发环境,如第 1 章、打开引擎中下载和安装 Android 和设置开发环境部分所述。
这本书是为那些想要应用他们的技能来构建能够与周围环境交互并与安卓应用通信的真实世界设备的安卓开发者准备的。开始构建由安卓驱动的真实世界设备需要安卓编程的基本知识。不需要原型平台或电路构建的先验知识。
这本书将教你通过原型构建过程中经常使用的一些电子组件来创建真实世界设备的基础知识,以及如何将它们与安卓用户界面集成。
在这本书里,你会发现许多区分不同种类信息的文本风格。以下是这些风格的一些例子,以及对它们的含义的解释。
文本中的码字如下所示:play()
方法设置当前活动站的流 URL,启动异步准备
代码块设置如下:
public class HelloWorld extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hello_world);
}
}
当我们希望将您的注意力吸引到代码块的特定部分时,相关的行或项目以粗体显示:
public class HelloWorld extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hello_world);
}
}
新名词和重要词语以粗体显示。您在屏幕上看到的单词,例如菜单或对话框中的单词,会出现在如下文本中:“对于这个 HelloWorld 应用,选择一个空白活动,然后单击下一步
警告或重要提示会出现在这样的框中。
提示和技巧是这样出现的。
我们随时欢迎读者的反馈。让我们知道你对这本书的看法——你喜欢或可能不喜欢什么。读者反馈对我们开发您真正能从中获得最大收益的标题非常重要。
要给我们发送一般反馈,只需向<[feedback@packtpub.com](mailto:feedback@packtpub.com)>
发送电子邮件,并通过您的消息主题提及书名。
如果你对某个主题有专业知识,并且对写作或投稿感兴趣,请参阅我们在www.packtpub.com/authors上的作者指南。
现在,您已经自豪地拥有了一本书,我们有许多东西可以帮助您从购买中获得最大收益。
您可以从您在http://www.packtpub.com的账户中下载您购买的所有 Packt 书籍的示例代码文件。如果您在其他地方购买了这本书,您可以访问http://www.packtpub.com/support并注册,以便将文件直接通过电子邮件发送给您。
尽管我们尽了最大努力来确保我们内容的准确性,但错误还是会发生。如果你在我们的某本书里发现了错误——可能是文本或代码中的错误——如果你能向我们报告,我们将不胜感激。通过这样做,你可以让其他读者免受挫折,并帮助我们改进这本书的后续版本。如果您发现任何勘误表,请访问http://www.packtpub.com/submit-errata,选择您的书籍,点击勘误表 提交 表格链接,并输入您的勘误表详情。一旦您的勘误表得到验证,您的提交将被接受,勘误表将上传到我们的网站上,或添加到该标题的勘误表部分下的任何现有勘误表列表中。通过从http://www.packtpub.com/support中选择您的标题,可以查看任何现有的勘误表。
互联网上版权材质的盗版是所有媒体的一个持续问题。在 Packt,我们非常重视版权和许可证的保护。如果您在互联网上遇到任何形式的我们作品的非法拷贝,请立即向我们提供位置地址或网站名称,以便我们寻求补救。
请通过<[copyright@packtpub.com](mailto:copyright@packtpub.com)>
联系我们,获取疑似盗版资料的链接。
我们感谢您在保护我们作者方面的帮助,以及我们为您带来有价值内容的能力。
如果您对本书的任何方面有问题,可以在<[questions@packtpub.com](mailto:questions@packtpub.com)>
联系我们,我们将尽最大努力解决。