为什么Arduino独占鳌头并站稳脚跟?

每个月,我都会在《Make》杂志上发表几篇社论形式的专栏文章。我写这些文章的目的是让您思考,从而激起讨论与辩论,没准儿还会让您发火。我第一篇专栏文章叫做“为什么Arduino在市场上独占鳌头并站稳脚跟?”。
大约一周后,一家大型芯片公司代表将路过我这儿,他会向我展示一种“类Arduino平台”,也被称作“Arduino杀手”。诸如此类的事情已经屡见不鲜,大概每月都会有某公司或某个人想制造出Arduino的替代品。多年来我对Arduino的报导已经帮助Arduino成功走进了制造者中,因此他们常常联系我。此外,在Adafruit工作时,我每天都用到Arduino。在我看来,Arduino在电子爱好者和设计师中的影响力极其深远,可能都不亚于早些年代个人电脑所带来的影响(例如家酿计算机俱乐部等等)。市场上的Arduino数量超过10万,据我估计,如果你把衍生产品中的Arduino也算在内就更多了(到2011年2月,大约就有15万)。我预测在接下来的5到10年里,每所学校都会使用Arduino来教授电子学和交互式系统原理。
大多时候,这些Arduino竞争者的市场情况调查会议是以良好祝愿来结束的,一旦他们企图重挫Arduino,那么他们将需要考虑一系列后果,这也是为何他们通常不会真正打击Arduino的原因。关于Arduino的辉煌历史,已经有一些文章进行介绍了,而我想重点谈谈Arduino似乎能永远立于不败之地的原因。但是,断言某事物将成为事实标准是冒险的,也言之过早,不是吗?断言某事物成为大赢家也必然会引发争论,但不必在意这些,因为现在新的评论系统很管用,可以避免争论。在我看来,Arduino是开发板领域的大赢家,我会告诉您为什么我这么说,并且就Arduino始终能够在市场站稳脚跟的原因进行解析。如果您正期待制造一款Arduino的替代产品,我会为您报导。下列是有关Arduino的介绍,对您而言就如同一份食谱,我们一块来烹饪吧!
Arduino 是什么?
我们先看看Arduino团队如何为其定义的:
Arduino是一个开放源码电子原型平台,拥有灵活、易用的硬件和软件。Arduino专为设计师,工艺美术人员,业余爱好者,以及对开发互动装置或互动式开发环境感兴趣的人而设的。
Arduino可以接收来自各种传感器的输入信号从而检测出运行环境,并通过控制光源,电机以及其他驱动器来影响其周围环境。板上的微控制器编程使用Arduino编程语言(基于Wiring)和Arduino开发环境(以Processing为基础)。Arduino可以独立运行,也可以与计算机上运行的软件(例如,Flash,Processing,MaxMSP)进行通信。
Arduino硬件电路板可以自行焊接组装,也可以购买已经组装好的,软件则可以从Arduino网站免费下载使用。您可以根据开源许可获得硬件参考设计(CAD文件),并自由地修改使其适应您的需求。
Arduino的定义仍然有点模糊,这也正是Arduino的优势所在。Arduino是人们连接各种任务的粘合剂。要给Arduino下一个最准确的定义,最好用一些实例来描述。
您想当咖啡煮好时,咖啡壶就发出“吱吱”声提醒您吗?
您想当邮箱有新邮件时,电话会发出警报通知您吗?
想要一件闪闪发光的绒毛玩具吗?
想要一款具备语音和酒水配送功能的X教授蒸汽朋克风格轮椅吗?
想要一套按下快捷键就可以进行实验测试蜂音器吗?
想为您的儿子自制一个《银河战士》手臂炮吗?
想自制一个心率监测器,将每次骑脚踏车的记录存进存储卡吗?
想过自制一个能在地面上绘图,能在雪中驰骋的机器人吗?
Arduino都可以为您实现。
对于不了解电子产品或微控制器的人来说,这听上去很酷,很有趣,并且会想加入这个俱乐部。这是小孩子想制作的东西,您甚至可以哄他们在此过程中学一些知识。这些项目产生于科幻小说故事,这些小装置出现在日志里。其共同之处在于这些是幻想,是一些梦寐以求的东西。但是现在,这些绝妙的点子真的被实现了,及时您不是工程师,也完全可以自制。
这是个了不起的大事,因为工程师往往为其他工程师设计开发平台,而不是为艺术家,怪咖,或者为了分享一个想法而简单地将东西连接起来的小孩子们。Arduino团队不是由“硬蕊”电子工程师组成,而是由设计师,教师,艺术家,以及我所知道的所有“技术嬉皮士”组成(嬉皮士在这儿是一种称赞,我希望没有冒犯他们)。Arduino的主要基地在意大利,每年我都会看到文章讲述意大利人努力寻找“属于自己的Google”,而事实上他们已经有了,那就是Arduino,他们尚未意识到这一点。
看看Arduino项目的实例,你将发现制造者们对于这些电子产品“是什么”更加感兴趣,而不是制作方法。这些Arduino发烧友常常表示Arduino并没有教授基本的电子产品,“呸,这哪是真正的电子产品啊,”他们说,“太容易了!”是的,的确如此。如果您是个艺术家或设计人员,在不使用Arduino情况下,想让发光二极管闪烁,或者电机转动,那么祝您好运了。当然,如果您愿意花钱并且带着您厚重的电子产品技术教材来展示一番,这也未尝不可。但是对于那儿的其他人而言,他们不过是想用发光二级管来装饰火人节服装而已。
对于一些传统微控制器社区是如何看待Arduino这一问题,我认为最佳的例子就是AVR Freaks,该官方网站专注于AVR处理器(同样用于Arduino)。您会想AVR Freaks社区可能会喜爱Arduino,因为Arduino能够将AVR微控制器带给大众。然而,该网站的很多人并不喜欢这些非工程师们制造的所有古怪玩意儿,因为这些会破坏了他们的等级制度。我最喜欢引用一句话(我希望把这句话印在T恤上)。
“Arduino编程语言,小孩都能看懂,用一次就上瘾”—— ArnoldB,AVRfreaks网站
事实上,这种错误的态度却推动Arduino粉丝去建立自己的社区,帮助了Arduino建立一个兼收并蓄,而非高高在上的社区。
Arduino是简单,但不是过于简单。它围绕这些观点来建立,即学生使用Arduino去实现目的:接收传感器信号,获得一些代码,再利用这些信号和代码。或许甚至不会写代码,那他们剪切粘贴代码后就可以开始。Arduino是热粘结剂,而非精确的焊接。因此没有人会被切掉一只手,也不会有实验室被烧毁。Arduino团队成员之一会教授工艺美术人员和设计者如何使用。每天,Arduino在学习,教授,和共享代码的工程中不断建立和完善。这些工艺美术人员和设计者正在Macs系统上使用Processing语言并修改。(Processing是Arduino的老大哥)
说到此处,Arduino就像是一个热情,没有界限,艺术氛围浓厚的集会。这就是Arduino成为“自己动手做”成功典范的原因吗?不仅仅如此,我们来了解更多具体信息。
集成开发环境——运行在Macs, Linux, and Win操作系统上
运行在Mac, Win, and Linux上的集成开发环境完全开放源代码。集成开发环境是指如何对以Processing为基础的Arduino进行编程。(Processing是一种图形程序设计语言,深受设计人员所喜欢的开发系统),已经出现了很长时间。它不仅仅可以在windows系统上使用,还能在Macs和Linux上使用,如果您想达到兼容的效果,这点就显得很重要。Processing编程环境基于提供强有力支持的后端,开放源代码,gcc工具链,并被包装在Java里,所以易携带,也能查找和纠正错误。应用集成开发环境人群里不乏精英,这些人能够保持其功能不断强大。想让那些古怪的人使用您的开发平台来制做一些精巧的玩意儿吗?那就在Macs和Linux系统上无缝运行Arduino集成开发环境吧!
实际运行在Macs, Linux, and Win操作系统上的驱动程序
和集成开发环境一样,使用Arduino开发板的驱动程序也能在Mac,Win, Linux操作系统中运行,FTDI驱动程序正常运行即可。如果坚持使用串口,那么一个易于理解(但反应缓慢)的界面是一个不错的选择。当然,HID(人机接口设备)和定制的设备是很棒的,功能也很全面,而且速度更快,但是串行接口芯片运行时,能够被用来调试及编程,并且很容易通过插槽进入诸如,Java, Python, Perl, C, NET, BASIC, Delphi, MAX/MSP, and PureData, Processing等软件工具中。
程序库——简单任务,复杂任务轻松搞定
大量的封装库被用来完成复杂的任务,例如写入SD记忆卡,写入液晶显示屏驱动程序,解析GPS。也有一些程序库用来做简单的事情,比如转动插脚或按键消抖。如果有10个芯片,我们就得将UART安装代码写10次,坦白说,这让人厌烦。如果调用Serial.begin(9600)函数来处理寄存器数据的话,那就容易多了。
轻量型,直接运行在硬件底层 上
使用一款经认证的,易于理解的编译器(我们甚至可以说avr-gcc是AVR默认或标准的编译器),代码能直接运行在硬件底层 上。其编译方式与NET 语言及BASIC语言不同。该编译器运行快,体积小,重量轻,并且您能使用HEX(十六进制)文件为成批的新芯片进行编程。
传感器
Arduino真正腾飞的原因是其能够实现将模拟输入转换为数字输入,换言之,您可以将光线,温度,声音,或者市场上已有的任何低成本的传感器信号输入,Arduino都能识别。对于数字传感器,Arduino支持 SPI( 高速同步串行口)和I2C总线。这一功能覆盖市场上99%的传感器。使用其他开发平台是不易实现的——想想如果把一块Beagleboard(伟大的产品)和Arduino绑在一起,仅仅是为了获得传感器的数据,那真是太奇怪了!
简单,但不至于太简单
传统开发板往往过于复杂,有很多附件,例如液晶显示屏,按钮,发光二级管,7段数码管等等。开发板展示了其一切功能。Arduino板上显示的功能数量是绝对最小值,如果要实现功能扩展,只需增加Shield(盾)。Arduino Shield有成百上千,从液晶显示屏到无线上网技术,但要增加多少Shield由用户自己定。扩展Shield的功能也容易,对于制作扩展Shield功能的人还会有商业上的刺激。
非芯片制造商制造
Arduino开发板不是由芯片制造商设计的。为什么强调这点呢?因为芯片制造商为了突出自己的产品与众不同,他们常常会添加一些奇怪的东西。而Arduino强调微控器间的共同性而不是差异性。这就意味着Arduino是一个绝佳的初学者平台,只要在Arduino板上可以做的事情,您在其他任何的微控制器上都可以做。这一基本特征将伴随您很长时间。
低成本
您只需30美元就能购买一个Arduino板。不久后,也许花20美元就能买到。我们发现,芯片制造商们开始意识到制定合理的定价策略极为重要,但尽管如此,我们还要花超过50美元,甚至100美元以上才能买到他们的开发板。
开放源代码
Arduino开放源代码允许用户复制,并可以用于商业用途。我认为开源并不是Arduino成功的最大原因,因此我把这点放在最后来说。但这并不意味着开源无足轻重。不用花钱或请人就可获得所需的产品。Arduino是开源硬件,所以公司和学校不需要Per-seat(每客户)许可证就能使用,还没有运行中断或软件永久消失的风险。如果您想扩展产品功能,花点时间将代码添加进去就行。随着更多人在公司或企业持有股份或所有权,他们对此更为谨慎。现在还有人去争论开源软件是不是一个好主意吗?
以上就是Arduino在众多开发板中独占鳌头的原因,至少我这样认为。没有其他平台可以完全做到以上几点。有一些平台做得很接近了(例如Netduino,一个很好的平台填补了某些空白市场),但这些平台还有很多方面需要完善。也许您同意我的看法,正在脑子里对以上几点一一核对,也许您急不可耐准备回应FPGA会如何更加出色。不管怎样,如果还没有做到以上几点,那么您的平台就还没准备好与Arduino竞争。(特别是打算自称“Arduino.杀手”的平台),
Arduino为何能在市场上站稳脚跟?
其中的门槛不是因为经济上的原因,而是思维方式上的。需要有魄力,更要避免自视甚高。芯片制造商通常需要展示其产品,不会在意其产品能否在Mac系统上运行,甚至不会在意要编写大量的软件,程序库,和集成开发环境。历来这种开发平台是由芯片公司建立的。我们看到一些大的厂商涌入市场,想用硬件补贴模式来击垮Arduino,但是如果Arduino 保持高品质和强大的功能,那么这些打击行为将起不了作用。
除此之外,让Arduino立于不败之地?Arduino社区。怎样能使10万多人集体跳槽?显然不可能。要想赶超Arduino,您需要开发类似Arduino的新产品,支持Arduino的Shield和附件,还要写入大量代码(这是很多芯片公司讨厌做的)。而Arduino团队真正想实现的是:支持多系统平台的的软件,海量程序库,有效的驱动程序,操作简单,成本低,以及开源。Arduino团队成员对技术痴迷狂热,期待看到实现这些理想的其他平台,这是他们一直在玩的游戏。我想,这种理想的平台也是我们所想要的,无论其名字是否叫Arduino。
如果您想击败Arduino团队,需要一次大的飞跃,做到Arduino已经做到的。对广大用户而言,最佳平台就是在市场上独占鳌头并站稳脚跟的平台。
Arduino国王万岁!

Tags: