1.1 什么是Arduino
1.1.1 Arduino与单片机
在了解Arduino之前,我们有必要先来了解一下单片机。那么,什么是单片机呢?单片机是指一个集成在一块芯片上的完整计算机系统。尽管它的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分单片机还会具有外存。同时集成诸如通信接口、定时器、实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入/输出系统集成在一块芯片上。
Arduino是单片机的最小系统,是一块基于开放源代码的USB接口的简单I/O接口板,并且具有简单易用的类似Java、C语言的IDE(集成开发环境)。Arduino可以用作独立项目开发的控制核心,也可以与PC进行直接的USB连接,完成与PC上软件的交互。Arduino电路板可以自己加工或者购买成品,开源的IDE可以免费下载。
然而,Arduino又不同于其他可以在市场上找到的单片机平台,因为它具有下述独有的特性:
Arduino来自一个教育环境开发项目,所以非常适合新手快速地开始自己的工程
项目。
Arduino可以运行在多种平台下,支持支持Windows、Linux、Mac OS系统。
Arduino可以通过USB端口进行编程,非常方便。
Arduino有非常易用的IDE。
Arduino的硬件和软件都是开源的,可以免费下载原理图、PCB图,自己购买元器件制作Arduino电路板。
Arduino有非常大的用户群,所以可以找到非常多的资源,包括接口板卡、软件程序以及应用项目。
1.1.2 Arduino的开发团队及起源
Arduino的核心开发团队成员包括:Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nicholas Zambetti。
Massimo Banzi之前是意大利伊夫雷亚(Ivrea)一家高科技设计学校的老师。他的学生们经常抱怨找不到便宜好用的微控制器。2005年冬天,Massimo Banzi 跟David Cuartielles 讨论了这个问题。David Cuartielles是一个西班牙籍芯片工程师,当时在这所学校做访问学者。两人决定设计自己的电路板,并邀请了Banzi的学生David Mellis为电路板设计编程语言。两天以后,David Mellis就写出了程序代码。又过了三天,电路板就完工了。这块电路板被命名为Arduino。几乎任何人,即使不懂电脑编程,也能用Arduino做出很酷的东西,比如对传感器作出回应、闪烁灯光,还能控制电动机。随后Banzi、Cuartielles和Mellis把设计图放到了网上。为了保持源码设计的开放性理念,而版权法可以监管开源软件,却很难用在硬件上,他们决定采用共享创意许可。共享创意是为保护开放版权行为而出现的类似GPL的一种许可(license)。在共享创意许可下,允许任何人生产电路板的复制品,还能重新设计,甚至销售原设计的复制品。你不需要支付版税,甚至不用取得 Arduino团队的许可。然而,如果你重新发布了引用设计,你必须说明原始Arduino 团队的贡献。如果你调整或改动了电路板,你的最新设计必须使用相同或类似的共享创意许可,以保证新版本的Arduino电路板也会一样的开放。唯一被保留的只有Arduino这个名字。它被注册成了商标。如果有人想用这个名字卖电路板,那他们可能必须付一点商标费用给 Arduino 的核心开发团队成员。