1、什么是Arduino
官方网址:http://www.arduino.cc/
Arduino是一个开源电子平台,它有灵活及易于使用的硬件和软件。是特意为艺术家、设计师、业余爱好者和对电子线路感兴趣的人创建的交互式对象和环境。
Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。Arduino主板上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是利用Arduino编程语言和Arduino开发环境(IDE)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信来实现。【1】—来自官网介绍
Arduino是意大利人发明的硬件和软件,它的核心开发团队成员包括:Massimo Banzi,David Cuartielles,Tom Igoe,Gianluca Martino,David Mellis 和 Nicholas Zambetti。
图1.1.1 Arduino 创始团队
2、Arduino的故事
据说Massimo Banzi之前是意大利Ivrea一家高科技设计学校的老师。他的学生们经常抱怨找不到便宜好用的微控制器。 2005年冬天,Massimo Banzi跟David Cuartielles讨论了这个问题。 David Cuartielles是一个西班牙籍晶片工程师,当时在这所学校做访问学者。两人决定设计自己的电路板,并引入了Banzi的学生David Mellis为电路板设计编程语言。两天以后,David Mellis就写出了程序。又过了三天,电路板就完工了。这块电路板被命名为Arduino。几乎任何人,即使不懂电脑编程,也能用Arduino做出 很酷的东西,比如对感测器作出回应,闪烁灯光,还能控制马达。
后来他们将Arduino相关设计图放在了网上,保持设计的开放源码理念,因为版权法可以监管开源软件,却很难用在硬件上,他们决定采用Creative Commons(共享创意)许可,在共享创意许可下,任何人都被允许生产电路板的复制品,还能重新设计,甚至销售原设计的复制品。你不需要付版税,甚至不用取得 Arduino 团队的许可。然而,如果你重新发布了引用设计,你必须说明原始Arduino 团队的贡献。如果你调整或改动了电路板,你的最新设计必须使用相同或类似的共享创意许可,以保证新版本的Arduino电路板也会一样的自由和开放。唯一被保留的只有Arduino这个名字。它被注册成了商标。如果有人想用这个名字卖电路板,那他们可能必须付一点商标费用给 Arduino 的核心开发团队成员。Arduino发展至今,已经有了多种型号及众多衍生控制器推出。【2】陈吕洲编著,ARDUINO程序设计基础,北京航空航天大学出版社,2014.01,第4页
上面已经提到,保留下来的只有Arduino这个名字和注册了的商标,所以官方的原版Arduino硬件板上将会有“Arduino”字样和标志性的Logo。由于版权问题,没有获得官方授权的Arduino硬件板上将不能出现“Arduino”和Logo标志,一般只会在板子上印有板子型号,这样的板子我们称作兼容版。如果你经济允许,建议使用官方的Arduino硬件板,初学者建议使用UNO。本教程中我们用到的Arduino硬件板是兼容版,在后续的课程我们将以兼容版的Arduino UNO板为例来介绍它的主要功能,并进行一些简单的创意制作。
基于上面提到的,Arduino是软硬件都是开源的平台,所以对学习者的知识储备要求很低,也就说Arduino的入门要求很低,不管你之前学没学过电子相关知识,都可以很容易的学会使用它,如果你对电子兴趣浓厚当然对你学习Arduino有很多好处。
3、Arduino的特点
跨平台
Arduino IDE可以在Windows、Macintosh OS X、Linux三大主流操作系统上运行,不管是官方的开发环境还是第三方修改的开发环境,都支持三大主流操作系统。而其他的大多数控制器只能在Windows上开发,或者只有在windows上友好的开发。
简单清晰的开发
Arduino IDE基于processing IDE开发。对于初学者来说,极易掌握,同时有着足够的灵活性。Arduino语言基于wiring语言开发,是对 avr-gcc库的二次封装,不需要太多的单片机基础、编程基础,简单学习后,你也可以快速的进行开发。再加之现在的第三方的图形化编程软件或者插件的出现,进一步的降低了编程的难度,可以实现小学生都能编程。
开放性
Arduino的硬件原理图、电路图、IDE软件及核心库文件都是开源的,在开源协议范围内可以任意修改原始设计及相应代码。
发展迅速
Arduino不仅仅是全球最流行的开源硬件,也是一个优秀的硬件开发平台,更是硬件开发的趋势。Arduino简单的开发方式使得开发者更关注创意与实现,更快的完成自己的项目开发,大大节约了学习的成本,缩短了开发的周期。
因为Arduino的种种优势,越来越多的专业硬件开发者已经或开始使用Arduino来开发他们的项目、产品;越来越多的软件开发者使用Arduino进入硬件、物联网等开发领域;大学里,自动化、软件,甚至艺术专业,也纷纷开展了Arduino相关课程。【3】陈吕洲.Arduino程序设计基础:北京航天航空出版社,2014:5-6
Arduino并不仅仅是一块小小的电路板,还是一个开放的电子开发平台。它既包含了硬件——电路板,也包含了软件——开发环境和许多开发者、使用者创作的代码、程序。
Arduino抛开了传统硬件开发的复杂操作,不需要了解硬件的内部结构和寄存器设置,也不需要过多的电子知识和编程知识,而只需要通过简单的学习,了解各个引脚和函数的作品,便可以利用它开发出各种出色的项目。【4】陈吕洲编著,ARDUINO程序设计基础,北京航空航天大学出版社,2014.01,第2页