什么是单片机
一台能够工作的计算机要有这样几个部份构成:中央处理单元CPU、随机存储器RAM、存储器ROM、输入/输出设备。在个人计算机上这些部份被分成若干块芯片,安装在一个被称之为主板的印刷线路板上。而在单片机中,这些部份全部被做到一块集成电路芯片中了,所以就称之为单片机。现实生活很多需要计算机进行控制的场合,并不要求用于控制的计算机具备很高的性能,这个时候往往会采用单片机来完成这样的工作。
Arduino是什么
Arduino平台的基础就是AVR指令集的单片机,它是一个便捷灵活、方便上手的开源电子原型平台,包含硬件和软件。由一个欧洲开发团队于2005年冬季开发,其成员包括Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nicholas Zambetti等。主要包含两个的部分:硬件部分是可以用来做电路连接的Arduino电路板;软件部分则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,它们之间进行通信 来实现。
发展历程
Massimo Banzi之前是意大利Ivrea一家高科技设计学校的老师。他的学生们经常抱怨找不到便宜好用的微控制器。2005年冬天,Massimo Banzi跟David Cuartielles讨论了这个问题。David Cuartielles是一个西班牙籍晶片工程师,当时在这所学校做访问学者。两人决定设计自己的电路板,并引入了Banzi的学生David Mellis为电路板设计编程语言。两天以后,David Mellis就写出了程式码。又过了三天,电路板就完工了。Massimo Banzi喜欢去一家名叫di Re Arduino的酒吧,该酒吧是以1000年前意大利国王Arduin的名字命名的。为了纪念这个地方,他将这块电路板命名为Arduino。
随后Banzi、Cuartielles和Mellis把设计图放到了网上。版权法可以监管开源软件,却很难用在硬件上,为了保持设计的开放源码理念,他们决定采用Creative Commons(CC)的授权方式公开硬件设计图。在这样的授权下,任何人都可以生产电路板的复制品,甚至还能重新设计和销售原设计的复制品。人们不需要支付任何费用,甚至不用取得Arduino团队的许可。然而,如果重新发布了引用设计,就必须声明原始Arduino团队的贡献。如果修改了电路板,则最新设计必须使用相同或类似的Creative Commons(CC)的授权方式,以保证新版本的Arduino电路板也会一样是自由和开放的。被保留的只有Arduino这个名字,它被注册成了商标,在没有官方授权的情况下不能使用它。Arduino发展十几年,已经有了多种型号及众多衍生控制器推出。
Arduino的特点
价格低廉:
和其它平台相比,Arduino板算是相当便宜了。即使是组装好的成品,其价格一般也不会超过200元。
跨平台:
Arduino软件可以运行在Windows,Macintosh OSX,和Linux操作系统,而大部分其它的单片机系统都只能运行在Windows上。
简易的编程环境:
初学者很容易就能学会使用Arduino编程环境,同时它又能为高级用户提供足够多的高级应用。对于老师们来说,一般都能很方便的使用Processing编程环境,所以如果学生学习过使用Processing编程环境的话,那他们在使用Arduino开发环境的时候就会觉得很相似很熟悉。
软件开源并可扩展:
Arduino软件是开源的,对于有经验的程序员可以对其进行扩展。Arduino编程语言可以通过C++库进行扩展,如果有人想去了解技术上的细节,可以跳过Arduino语言而直接使用AVR C编程语言(因为Arduino语言实际上是基于AVR C的)。类似的,如果你需要的话,你也可以直接往你的Arduino程序中添加AVR-C代码。
硬件开源并可扩展:
Arduino板基于Atmel的ATMEGA8和ATMEGA168/328单片机。Arduino基于Creative Commons许可协议,所以有经验的电路设计师能够根据需求设计自己的模块,可以对其扩展或改进。甚至是对于一些相对没有什么经验的用户,也可以通过制作试验板来理解Arduino是怎么工作的,省钱又省事。