假设你正在寻找一台微型计算机,它能够驱动一台激光炮塔向彩色气球射击——作为一名极客,你可能常会幻想到类似的场景。那么你很可能已经听说过Arduino和树莓派(Raspberry Pi)了,但是却拿不定主意——到底哪种微型计算机才适合你的个人项目呢?别担心,本文将为您解答。
区别在哪?
Arduino和树莓派看起来很相似——它们都是小型的电路板,有一些芯片和管脚在上面——但实际上它们之间的区别可大了,是完全不同的设备。Arduino实际上只是一个微控制器,并不是一台迷你电脑。微控制器只是电脑中的一个部分,与树莓派相比只能算是一个子集,提供的功能有限。
尽管Arduino可以通过一些小型的类C应用程序进行编程,但它无法运行一个全面完整的操作系统。所以想用Arduino来取代你家里的媒体中心是不可能的。另一方面,树莓派就是一台电脑,我想你应该知道我的意思。
强项弱项对比
那么Arduino就毫无用处了吗?当然不是——Arduino非常适合于电子产品项目。它包含一组输入和输出管脚,常常可以直接同相关的部件连接。可以立刻撸起袖子开干,让你觉得难以置信的简单和容易。这使得Arduino非常适合于制作产品原型。
Arduino上运行着Arduino固件程序——这是一组核心基础软件,允许Adruino通过USB同电脑通讯,并能使用到电脑上的所有特性。一般来说你不会想去换掉这个固件程序,但这么做还是可行的。一旦加载了你的应用程序,你可以将Arduino插在任何有电的地方,它就会立刻开始工作——你不需要重启,也不需要外接一个键盘,甚至也不用选择让它运行什么应用程序。Arduino只会做已经给它编程好的事情,并且会立刻去做。
树莓派则是一台功能完整的迷你电脑。它需要一个操作系统——这是你需要做出选择的第一件大事,这会极大的影响你之后的体验。一台完整的电脑所拥有的功能,树莓派全都有(只是体积变得更小)。存储空间是通过micro-SD卡来提供的,而内置的以太网接口则提供了连接到互联网的能力(Arduino也可以访问网络,但那需要一些额外的部件)。
树莓派的核心是一款Broadcom Arm-v6 CPU,它也有内存以及用来驱动HDMI输出的图形处理器。你可以外接一个键盘和显示器,加载Linux操作系统。那些非技术人员可能怎么也想不到这么小的一块电路板究竟是如何驱动这一切的。树莓派是一款体积非常小但功能却非常强大的平台——非常适合于嵌入式系统,或者那些需要更多互动能力和处理能力的项目。
也就是说,树莓派相对于简单的电子产品项目来说要复杂很多。比如,大家伙的第一个项目都是一些类似LED点灯这样的东东。在Arduino上,这包括将LED灯和电阻连接到两个管脚上,然后上传大概8行代码,搞定。而对于树莓派——假设你已经安装好了一个功能完整的操作系统,而且已经按你希望的方式设置完成——然后你需要安装一些程序库来帮助你控制GPIO引脚(那就是你连接其他组件的地方)。杀鸡不用牛刀嘛,对不对?
有很多程序库都可以选择安装,这取决于你打算用什么语言来编程——包括像Scratch这样的可视化设计工具。最后,在运行程序之前你可能还需要编译代码。关键是,在树莓派上你可以做到Arduino能做到的一切——但是更加复杂。
另一个重点是请记住对于电子产品类的项目来说,Arduino是最流行的平台。因此尽管用树莓派也能完成这些项目,但相关的初学者教程并不会太多,能帮助你的资源很少。最好把树莓派看做是一种升级版的Arduino,当你准备好解决规模更大,需求更多的项目时再考虑树莓派吧。
结论就是,树莓派是一台迷你型电脑,而Arduino不是。要理解的更清楚一点,这里是一些你可以选择安装到树莓派上的操作系统:
Raspian (基于Debian Linux,默认系统)
Android (还不成熟,但官方支持就要来了)
RiscOS
Plan 9
Xbox Media Center
对于这些操作系统,TechRadar上有一篇很棒的测试和可用性评测的文章。噢,甚至还有个应用商店。
那么这里是你可以安装到Arduino上的操作系统。
OK,你决定选择哪个了吗?很好,现在你可以开始看一些树莓派或是Arduino的教程了。
等等!干嘛还要选呢?
事实上,两极世界你都可以拥有:树莓派只是Arduino的升级版,它更加复杂,而Arduino所能做的事情不如树莓派多——但是你有考虑过将它们用在一起吗?下面这个项目——AlaMode——直接将Arduino堆叠在树莓派上,使它立刻就拥有了Adruino的所有常用功能。
或者,如果你对Python情有独钟,那么将Arduino通过USB连接到你的树莓派上,然后使用下面这个接口就好了。
希望看完这篇文章后你对Arduino和树莓派的区别有了更加清楚的认识。