图书前言

前言

一、 关于Arduino

2011 年 3 月举行的Google I/O 会议主题报告中,Google推出了用于 Android 基于Arduino的附件开发套件。

为什么 Google 支持微控制器开发且选择Arduino?

答案很简单: 成本、社区、发展和生态系统。Arduino技术成本低并拥有大型、充满热情和具有创造力的社区,而该平台和其授权方法被认为是创成式,它使衍生和兼容硬件、软件的生态系统日益增长。不用签署任何许可、合作伙伴或保密协议,无需支付任何费用,即可共享现有资源。在选择Arduino时,Google 可使用不受法律约束的技术,以较低的门槛进入市场,并提供互补性硬件和软件的扩展生态系统。

Arduino是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。它适用于艺术家、设计师、电子爱好者和对“互动”有兴趣的朋友们。

软件的开源在科技界有着悠久的历史。开放源码让安全漏洞更易暴露,迭代快速可满足用户需求,同时第三方还可以用它来开发新产品; 但开源硬件并不如开源软件那样为人熟知,比如Arduino。

Arduino给自己的定位是开源电子原型开发平台,其软硬件设计资料都是全面开放的,构成一个可供用户搭建机器人及各类电子项目的开发环境。为什么要做Arduino,或者说为什么要做开源硬件?“因为开源硬件使得人们更容易地开发自己的产品。”Arduino创始人Banzi表示,“人们现在能在Arduino或者BeagleBone(同类产品)上做最初的原型开发,最后如果设计想要量产,他们也可以采购对应的处理器后在产品中使用我们的设计。”

近几年里,开源已经成为一个比较流行的趋势。例如众所周知的Linux,可以算是开源软件的代名词。随着开源运动的发展,开源硬件进入了人们的视线。

那么什么是开源硬件?所谓开源硬件,是指采用与自由、开放原始码的软件相同的方式设计的计算机和电子硬件。开源硬件开始考虑对软件以外的领域开源,这是开源文化的一部分。硬件开源的出现大大节省了公司研发的时间,大家可以直接下载电路图和源代码,直接使用和DIY设计,无需大量修改即可实现自己所需要的功能。

便于使用的开源平台的出现一直以来都在为“自己动手”的模式增加动力。现在,Arduino SBC(单板计算机)已经是一个众人熟知的例子。Arduino基于Atmel 8bit MCU,而且又是小巧型的集成电路,但仅仅这些还不能激起硬件专家对其的兴趣。Arduino如此受欢迎还因为以下两个因素: 

(1) Arduino专注于灵活的使用性,它避免了不必要的工业硬件与软件技术的复杂性。有了Arduino,你不需要成为一个专业的“工程师”或者“编程人员”就能发挥科技的力量。但是,简单硬件解决方案并不是一个新的概念,真正区别于Arduino的是开源设计范式,这一范式轮流被一些诸如草根运动,或狂热者的“宽容政策”生态体系,或那些点燃全球合作热潮的供应商及附属品所推动着。甚至像Microship和Texas Instrument这样占主导地位的MCU供应商都开始关注并介绍具有它们自己风格的“兼容Arduino”的SBC。

(2) Arduino已经发布了许多不同版本的平台,有USB接口、蓝牙接口、以太网接口等,以及各种mini版本。最近Google发布了Android的配件标准(Android Open Accessory)与ADK开发工具(基于Arduino平台)。Arduino有着庞大的用户基数,开源的电路设计、IDE,无数的代码,低廉的成本; 另一方面,Android自身也有庞大的用户和开发者,当这两者结合,前途无可限量!

Arduino是基于AVR 8位MCU发展而来的,随着Arduino的影响越来越大,越来越多的MCU厂商开始关注,并推出了各种与Arduino兼容的产品。同时,随着开源硬件的发展,会有更多基于32位MCU的兼容Arduino平台出现,竞争将会越来越激烈。

二、 本书内容

本书按照循序渐进的过程编写,因此适合于各层次读者学习和参考。如果读者对于Arduino还一无所知,那么前面的理论基础篇会让读者对Arduino不再陌生; 如果读者已经有了Arduino的基础知识,那么本书将使读者对于Arduino的学习更进一步。当然,此书也很适合高校学生学习,不仅有充分的理论知识,而且大量详细的实例让学习不再感觉乏味,理论与实践结合可使学习更加得心应手。

本书共分为入门篇、基础实验篇和项目提高篇三部分。

入门篇包括第1~4章。第1章主要介绍了Arduino的起源、Arduino开源文化及未来的发展趋势; 第2章主要介绍了Arduino的硬件资源,包括主要的开发板与扩展板; 第3章主要介绍了Arduino的开发环境以及它的搭建与使用; 第4章主要介绍了Arduino编程所使用的语言以及所需要的库文件。

基础实验篇包括第5~14章,为技术入门者提供了必要的技术学习的实验,详细介绍了常用外设与Arduino平台的整合实验,包括LED、按键、LCD、步进电机、各类传感器(温度与湿度、气体等)以及无线通信模块(蓝牙、WiFi、ZigBee)等。

项目提高篇包括第15~17章。以项目研发为指导思想,详细讲解了基于Arduino平台的智慧宿舍、智能垃圾桶以及智能大棚系统的设计与实现。

三、 致谢

本书由李明亮博士(石家庄经济学院)、易劲、王雨、赵泽通、赵晓宁、蔡石磊、何俊冬、吴肖等共同完成编写工作。其中第4~14章由李明亮博士编写; 第1~3章由易劲、吴肖编写; 第15章由赵晓宁和蔡石磊编写; 第16章由赵泽通和王雨编写; 第17章由何俊冬编写。李明亮博士完成了全部书稿的统筹及审核工作。

希望每位读者在学习完本书后都能自己动手进行Arduino的开发,也希望本书能为读者带来精彩的技术人生。

衷心感谢石家庄邮电职业技术学院的李学海副教授为本书指引方向; 感谢石家庄格物电子科技有限公司的技术人员为本书的完成提供必要的技术支持; 感谢在本书编写过程中帮助收集、编辑资料的石家庄经济学院的王翠翠同学及河北师范大学的司建龙、张亚奇、张鑫同学。

最后,要特别感谢清华大学出版社的全力支持,如果没有他们的努力和辛勤劳动,这本书不会这么快出版的。

由于时间仓促,加之作者水平有限,书中难免有不足之处,欢迎广大读者批评指正,有兴趣的读者可发送邮件到workemail6@163.com。

作者

2014年10月