如果浏览5—10年前的电子制作资料,你一定可以看到五花八门的单片机选型、各种手工焊制的电路板、纷繁复杂的飞线……而近几年的各种基于单片机的电子制作,则统一了许多,各种不同领域、不同功能的电子DIY作品,大都采用了同一种控制模块为核心——Arduino。
那么Arduino到底是什么呢?是一种新的控制芯片,还是一种新的开发软件呢?它又有什么优势,可以在短短几年时间内几乎一统了电子DIY的江湖呢?
图1 最常见的Arduino控制板——Arduino UNO
首先我们看看Arduino的实物图,图0.1所示是最常见的一种Arduino实物。图中已经根据功能将各个模块区分出来,相信对单片机开发稍有了解的朋友一定已经发现,这不就是一个以ATmega单片机最小系统为核心的控制板吗?不错,Arduino就是以ATmega单片机为控制核心的单片机控制板,板上除了ATmega328最小系统电路外,还包含了稳压电路、USB转串口电路、一些指示用的LED,以及一些扩展用的电路插座。
仅仅一个单片机最小系统,为何能风靡全球呢?
下面我们以图表的形式来比较一下单片机裸机、市面上一般的单片机开发板和Arduino。
表中列出了3种选择方案的最直观比较(表中没有比较购买渠道的便利性,随着网络购物的普及,这一点已经不再成为爱好者们需要特别关注的问题),看起来似乎Arduino并没有特别的优势,那么为什么Arduino会得到如此热度的追捧呢?
要回答这个问题,我们必须首先回顾一下Arduino的发展历程。2005年,意大利北部小镇伊夫雷亚(Ivrea)一家高科技设计学校的老师Massimo Banzi(国内创客把他亲切地称为“板子大叔”),为了能给学生们提供一种便宜、好用的微控制器平台,与当时在这所学校做访问学者的西班牙籍芯片工程师David CuarTIelles合作设计了最初的Arduino控制板。随后Arduino便开始迅速地在欧洲流行起来,并且逐渐将春风吹到了世界各地。
Arduino独有的优势
Arduino独有的几种优势表现在下列方面:
开放性:Arduino是起步比较早的开源硬件项目。各种开源项目目前已经得到广泛的认可和大范围的应用。它的硬件电路和软件开发环境都是完全公开的,在不从事商业用途的情况下,任何人都可以使用、修改和分发它。这样不但可以使用户更好地理解Arduino的电路原理,更可以根据自己的需要进行修改,比如由于空间的限制,需要设计异形的电路板,或是将自己的扩展电路与主控制电路设计到一起。
易用性:对于稍微有心的人,不论基础如何,只要他有兴趣,拿到Arduino之后的1个小时之内,应该就可以成功运行第一个简单的程序了。Arduino与PC的连接采用了当下最主流的USB连接,你可以像使用一台智能手机一样,把Arduino与电脑直接连起来,而不需要再额外安装任何驱动程序。而且Arduino的开发环境软件也非常简单,一目了然的菜单仅提供了必要的工具栏,除去了一切可能会使初学者眼花缭乱的元素,你甚至可以不阅读手册便实现例程的编译与下载。
交流性:对于初学者来说,交流与展示是非常能激发学习热情的途径。但有些时候,你用AVR做了个循迹小车,我用PIC做了个小车循迹,对单片机理解还不是特别深刻的初学者,交流上恐怕就会有些困难。而Arduino已经划定了一个比较统一的框架,一些底层的初始化采用了统一的方法,对数字信号和模拟信号使用的端口也做了自己的标定,初学者在交流电路或程序时非常方便
丰富的第三方资源:Arduino无论硬件还是软件,都是全部开源的,你可以深入了解底层的全部机理,它也预留了非常友好的第三方库开发接口。秉承了开源社区一贯的开放性和分享性,很多爱好者在成功实现了自己的设计后,会把自己的硬件和软件拿出来与大家分享。对于后来者,你可以在Arduino社区轻松找到自己想要使用的一些基本功能模块,比如舵机控制、PID调速、A/D转换等。一些功能模块供应商也越来越重视Arduino社区,会为自己的产品提供Arduino下的库和相关教程。这些都极大地方便了Arduino开发者,你可以不必拘泥于基本功能的编写,而把更多的精力放在自己想要做的功能设计中去。
是的,从专业嵌入式开发的技术角度来说,Arduino并不是第一选择,为了尽可能地照顾初学者甚至是电子开发的门外汉,Arduino定制了很多底层的设计,自然也损失了很多嵌入式开发的灵活性和效率性,这也是许多经验丰富的嵌入式设计人员对Arduino嗤之以鼻的原因之一。那么Arduino的定位究竟在何处呢?
Arduino的定位
Arduino最初确实是为嵌入式开发的学习而生,但发展到今天,它已经远远超出了嵌入式开发的技术领域。有些人将Arduino称为“科技艺术”,很多电子科技领域以外的爱好者,凭借丰富的想象力和创造力,也设计开发出了很多有趣的作品。在国内,Arduino更多还是作为一种嵌入式学习工具和电子开发原型模块出现,但是它的魅力绝不仅仅如此,它完全可以作为一种新“玩具”,甚至新的艺术载体,来吸引更多领域的人们加入Arduino的神奇世界。
永远不要相信任何人对我们的任何评价,这样的你,不会在不知不觉中跟魔鬼们签下限制自己的契约。......