前 言
自2005年Arduino横空出世以来,开源硬件就像Linux一样,很快风靡全球。Arduino最初只是为学生设计的一款既便宜又易用的微控制器板,但如今在“创客运动”的大背景下取得了巨大的成功。
Arduino使用的是Atmel VAR 8位微控制器,是一个软硬件开源的平台。不仅开放软件的源代码,而且硬件电路设计图同样可以从网络上下载。任何用户都可以利用这些开放的资源,再根据自己的需要进行修改和定制,发布适合自己的软件工具和硬件设计。此外,它不像传统的微控制器程序,只有有一定电路和编程背景的人才能够灵活使用,因为采用了非常简单的编程语言,Arduino的入门变得非常容易,即使是没有理工科背景的人,也能够快速上手。
正是因为开源,让全球成千上万的教育工作者、学生、科研工作者、电子爱好者和创客组成了一个庞大的开源硬件社区。不管是个人还是公司,都被该社区的魅力所吸引。例如,英特尔、三星、微软纷纷加入了Arduino社区,推出了相关的软硬件产品。而很多在Kickstarter上进行众筹的初创团队推出的产品,其最初的原型也都是在Arduino的基础上设计的。
目前,在市场上还有很多兼容Arduino的开源硬件,各自有不同的特点和应用场景,比如Microduino、WRTNode、pcDuino,同时还配有各种扩展模块和扩展板。除了公司和团队之外,很多创客本着开源和共享的目的,在网上免费发布了自己的Arduino开源设计和DIY作品,供更多的人参与和讨论,这很有可能会碰撞出更多的创意作品,例如,开源3D打印机、无人机等。此外,网上还有大量免费的开源库、教程、电子书、视频等各种开放资源,以及友好互助的论坛问答等,这些都是这个社区中重要的组成部分。
这就是开源的滚雪球效应,刚开始开源又易上手,吸引了最初的一批人加入其中,之后产生越来越多的优秀资源,而这些资源又吸引更多人参与其中,这种正反馈的激励效应,促成了社区指数型的扩张。
作为一款兼容Arduino的微控制器平台,Microduino同样采用开源模式,公开所有的电路设计和软件源代码。它采用U型27引脚布局,模块间非常容易组装,对着U27引脚插入即可,无须担心引脚是否接错。又因为它只有硬币大小,组装后的体积非常小,所以在空间要求非常严格的应用环境下占有优势。Microduino可以看作是一种电子积木,核心模块和扩展模块互联只需要根据U型布局的引脚直接接入,便可快速搭建起一个物理系统,然后按照Arduino开发和编程方式,下载程序,即可完成自己的创意作品。因为兼容Arduino,所以Microduino保留了其易上手的特点;同时因为易组装、体积小等特点,让Microduino更具吸引力。
Microduino遵循了开源硬件的发展模式,在社区的培育上花了很大的精力。相关人员详细地制作了Microduino的维基百科,目前共有805篇文章,2405个新文件上传和8733次修订,而且全部是中英文对照,甚至还有韩文和日文的页面。同时,还精心制作了300篇以上的Microduino教程,配有文字、图片、源代码和视频,供全球来自不同国家的用户参考和使用。
Microduino的王镇山(Tiki)介绍说:“所有的模块都是玩家共同创意、设计、测试和改进的。不但有玩家共同开发的硬件,还有玩家自发编写的支持软件,并分享利用Microduino完成的作品。”这正是开源社区建设所带来的回报。与其说Microduino是一个开源硬件产品,不如说它是一个遵循“众营”理念的开源项目。
而本书能够顺利完成,很大一部分也要归功于开源力量和社区中丰富的开放资源。本书的特点是以一个个具体的示例为核心内容,提供详细的物理连接图和源代码,让读者能够通过循序渐进的实践过程,学习和掌握基本的电子元器件、Microduino核心控制器以及相关传感器的使用。希望通过本书,能让更多的人步入开源硬件和创客运动的实践中去,实现一件件自己喜欢的创意作品,然后再与更多的人进行交流和分享。
最后,感谢Microduino创始人王镇山和机械工业出版社策划编辑张国强,没有他们的支持和鼓励,本书就不可能诞生。此外,还要感谢我的父母,没有他们的理解和宽容,就没有现在的我,我也不可能安心地完成本书。
目 录
前言
第1章 开源硬件
1.1 什么是开源
1.2 为什么要开源
1.3 开源软件
1.4 开源硬件
1.4.1 Arduino
1.4.2 Microduino
1.4.3 树莓派
1.4.4 pcDuino
1.4.5 其他开源硬件平台
1.5 如何选择开源硬件
1.6 总结
1.7 参考
第2章 Microduino
2.1 Microduino系列产品
2.2 兼容Arduino系列产品
2.2.1 Microduino AVR核心系列模块
2.2.2 Microduino扩展模块
2.2.3 Microduino 扩展板
2.3 Microduino STM32核心系列
2.4 Microduino WRT系列
2.5 Microduino传感器系列
[2.6 开源项目 ]
2.7 总结
2.8 参考
第3章 Microduino入门
3.1 准备开发环境
3.1.1 下载Arduino IDE和驱动
3.1.2 安装Arduino IDE
3.1.3 安装驱动程序
3.1.4 Microduino开源资料下载
3.2 “Hello World!”——开启编程之旅
3.3 点灯——迈入物理世界
3.4 重新认识软件与硬件
3.5 I/O操作——现学现用
3.6 RGB彩色LED——彩色的世界
3.7 光敏电阻
3.8 感温杯
3.9 蜂鸣器
3.10 认识三极管
3.11 中断的使用
3.12 定时中断的使用
3.13 ADC采样的不同基准源对比
3.14 继电器的使用
3.15 数字温度计
3.16 I2C通信
3.17 Microduino 串口调试
3.18 调试的思路
3.19 总结
3.20 参考
第4章 Microduino进阶
4.1 红外发射与接收——无线通信
4.2 1602 LCD显示
4.3 超声波测距
4.4 红外遥控舵机
4.5 PWM控制直流电动机
4.6 步进电机控制
4.7 EEPROM读写
4.8 Microduino-OLED
4.9 Microduino-TFT
4.10 蓝牙控制RGB彩灯
4.11 Microduino-10DOF
4.12 总结