软硬件整合是今年一再被提及的话题,如今我们也可以看到不少硬件创业的成功案例,比如Jawbone Up、Pebble手表等可穿戴设备,它们可与用户的手机同步,实现软件与硬件的结合。通过硬件创新与软件整合的概念还有许多。但是如何将创意变为现实,是一个难题。许多大公司均选择硬件闭源,从而形成的技术壁垒与专利版权,阻碍着小规模创新者的发展。而开源硬件,让创业者可以更轻松地将创意转化为现实。
这篇文章由Roger Meike撰写,并在发布于Digital Dinner上。文中对比了三款最流行的,也是最具代表意义的开源硬件平台Arduino Uno、BeagleBone和Raspberry Pi。Roger从性能以及可扩展性等方面对它们进行对比,帮助开发者了解如何选择适合自己的开源硬件平台。
以下是译文:
从左到右: Arduino Uno, BeagleBone, Raspberry Pi
我们喜欢在Digital Dinner制作一些新奇玩意。这里总是时刻进行着各种项目。这些天以来,我们大部分的项目都包含了一种电子零件——微控制器。如果你还没被“创客” (Maker)灵魂附体,我们强烈建议你动起手来试一试,它会让你非常有成就感!如果本身在编程方面有一定基础,那么一些网站、平台和工具可以帮助你获得硬件开发的所需知识,逐步让你可以使用按钮、旋钮和从动系统,做出实际可用的产品。软件开发固然乐趣无穷,但如果能将你的创意变为实际产品就更赞了!
然而,目前有许多优秀的平台可供创造数字设备,这让我们有些举棋不定。举例来说,现在我们正在制作一个“水培花园”项目,需要一款控制器来驱动水泵、读取传感器数据。但是,现在有许多种选择都可以实现这些功能。而这对于初步接触开源硬件的开发者来说,可能会有些无所适从。所以我们选择其中三款最流行的开源电子原型平台,加以对比,希望可以便于大家选择,当然,这三款平台都非常值得推荐。
三款开源平台分别是Arduino、BeagleBone和Raspberry Pi。之所以选择他们,原因在于他们唾手可得,价格实惠,而且大小规格相似(大约2*3寸),更重要的是,他们可以广泛应用于电子产品开发工作中。在比较前,我们先进行简单的介绍。
Arduino Uno在Maker的圈子里很常见。Arduino有许多不同尺寸和特性,但是在此我们选择Arduino Uno作为其中的代表。它是一个非常易于开发的平台,有很多开发者也都选择它作为开发环境,而且它的设计让它易于和其他设备相连。
与Arduino相比,Raspberry Pi是一个比较新的成员。它实际上是一个嵌入式电脑。它也是一个并不昂贵的全功能桌面电脑。它是一个准系统,而作为$35的电脑,它在很多项目中都是一个很好的平台。
BeagleBone可能是三个平台中最鲜为人知的一种,但它有很好的兼容性,许多项目都可使用。它是一款强大的Linux电脑,而且可以安装到Altoid’s的容器中。
Arduino背面
Raspberry Pi背面
BeagleBone背面
这三款平台各有所长,对于爱好者来说都非常有价值。下表是三款平台的规格与特色。
首先,Arduino和Raspberry Pi非常便宜,不到40美元,BeagleBone的价值几乎是Arduino Uno的三倍,而Arduino的每秒周转速率大约比另外两款慢40倍,RAM则是其他两款的1/128000。从中你可以发现他们的差异逐渐产生了,Arduino和Raspberry Pi价格较低,而Rasphberry Pi与BeagleBone功能较强。从这点来看的话Rasphberry Pi似乎是最好的选择,但事情没有这么简单。首先它的价格并不如第一眼看到的那么美好,因为运行Raspberry Pi,你需要提供SD卡,而这额外增加了5%到10%的成本。
此外,抛开每秒运转速率的相似性能不谈,在我们的测试中,BeagleBone的运转速度几乎是Raspberry Pi的两倍。也许有悖常理,对于初学者来说,Arduino也许性能更好。这是因为Raspberry Pi和BeagleBone都是基于Linux系统。这个系统让它们可以在小型电脑上,运行多个程序,并支持使用多语言编程。Arduino的设计非常简单,它一次只能运行一个程序,而且只支持低阶的C++语言编程。
BeagleBone和Raspberry Pi还有一个有意思的特性,就是他们可以在Flash卡上运行(Raspberry Pi使用SD卡,BeagleBone使用microSD)。这就意味着,你可以通过换存储卡来实现系统移植。在不同的储存卡上,你可以储存不同的设定值,只要更换储存卡,你就可以继续之前正在开发的项目。因为这两个板非常的复杂,这意味着你可以通过换卡而轻松的换操作系统。
那么,你如何从中选出一款适合你的平台呢?
对于初学者来说,我们推荐Arduino。它拥有庞大的社区用户、大量的示例项目和教程,并且可以轻松地与其他外部设备连接。对于初学者来说,学习使用Arduino的方法有许多。
这块板的设计初衷,就是方便与不同的传感器进行交互,而且不需要设计其他电路,所以你不需要太多电路相关的支持,就能轻松上手。如果还没有尝试过这玩意,不妨试一试(价格并不贵),相信可以得到有趣的经验。
Arduino Uno是一款令人赞赏的工具,除了拥有开源的微控制器,软件开发环境也是免费的。
Raspberry Pi只有信用卡大小,可以直接插入到电视中。许多传统电脑上的功能,例如文字处理、电子表格和游戏,都可以在Raspberry Pi中运行。
价格低廉,硬件扩展性强,BeagleBone是为喜爱嵌入式Linux系统的玩家量身打造的产品。BeagleBone还可以当做BeagleBoard或Beagleboard-xM的外接USB或网络扩展模块。
如果开发的产品需要保证尺寸较小,我们推荐Arduino。这三款平台的尺寸相似,不过Raspberry Pi的SD储存卡会让它看起来更大。Arduino的款式躲让,但让Arduino区别于其他平台的特性在于,它拥有特别的微处理器,以及一些软件。它使用Atmel公司的一款微处理器嵌入式系统,体积小,价格实惠。对于那些需要尺寸非常小巧的项目来说,你可以花费1到2美元购买Atmel的这些芯片,并使用Arduino Bootloader(一个赋予Arduino基本功能的程序),安装后,你就又拥有了一个Arduino。
各种尺寸的Arduino
BeagleBone旁边是它的大哥BeagleBoard
BeagleBoard有一个更大,性能更强的版本——BeagleBoard。如果你需要更强的扩展性,那么BeagleBoard是一个不错的选择。
Arduino Uno、BeagleBone 和 Raspberry Pi,后两者都有网络接口
如果你的项目需要连接网络,我们比较推荐BeagleBone或Raspberry Pi。这两款都是真正的Linux电脑。他们都内建以太网接口和USB,便于用来连接网络。通过USB接口,你可以连接一个无线模块,那样就可以无需网线就能接入网络。另外,Linux系统拥有很多内置组件,提供高级的网络特性。
只需将USB WiFi设备连接到BeagleBone或Raspberry Pi上,Linux系统即可支持这些外接设备
Arduino支持外设,叫做“shields”,它虽然拥有连接网络的能力,但其网络功能十分有限。如果花时间去购买扩展,其实与直接购买功能比较完善的高阶电路板一样。
如果你的项目需要接入外部感应设备,我们推荐Arduino和BeagleBone。Arduino相对于其他设备,更容易连接外部感应器。不同版本的Arduino使用的电压不同(3.3V 或者 5V),这样就可以轻易的连接到不同的外部设备。而BeagleBone只能连接3.3V的外部设备,并在某些情况下,还需要加入电阻或者其他外部电路才能连接外部设备。Arduino和BeagleBone都有模拟数字信号接口,这让你轻松的连接输出不同电压的设备。BeagleBone拥有更高的模拟数字信号的分辨率,这对于某些项目来说是最好的选择。
就如上面所说的,你必须注意你将要连接的设备,包括小型的感应器,是否拥有叫做I2C或者SPI的数字接口。这三款平台都支持这些外接设备,所以通信方面不成问题。
对于需要电池供电的项目,我们推荐Arduino。Arduino功耗是最低地。如果按照每瓦的性能来比较,BeagleBone的能耗是最高的。但是Arduino拥有更广泛的空间,因为他可以和很多不同的输入电压的设备一起工作。这样就要求Arduino需要使用不同型号的电池,并且就算电池没电也能继续运转。
如果需要支持用户界面,我推荐使用Raspberry Pi。Raspberry Pi独树一帜,因为它拥有一个HDMI输出。这意味着,你可以接入键鼠和直接接入到你的电视。在这点看来,你拥有了一台功能全备的电脑,并且拥有用户操作界面。这样使得Raspberry Pi可以用于在需要与用户交互的项目中,以低成本构建web浏览设备。事实上,只是出于娱乐性质,我们把Arduino开发工具安装在Raspberry Pi上,并在Raspberry Pi写以一个简单程序并下载到Aruduino上。它并非是一台高性能的电脑,但是它确实是一台电脑。
总结
Arduino是一个扩展性很好的平台,便于与各种设备交互。对于初学者来说,在进行一些小型项目时,它是绝佳的选择。Raspberry Pi适合用于需要用户界面和需要网络支持的项目,其性价比较高。
BeagleBone拥有Arduino良好的可扩展性,兼具Raspberry Pi快速处理器和Linux灵活的开发环境。所以,如果你想做与水培花园类似的项目,我们推荐BeagleBone。因为它的输入输功能完善,并便于接入网络,所以我们可以通过Web端监测它回传的数据。
所有这3种设备是我们数字化项目的基石。当然,还有其他平台可用,例如,我们使用Sun SPOTs监测我们的番茄花园,这三种设备已基本能满足我们所需,除非你需要更高级的功能。