树莓派[Raspberry Pi 2 Model B]测评(三)——树莓派2B的软实力


几天前拆摸Boy简单的观摩了树莓派2B的计算与控制相关的硬件配置。

成本上的考虑使得树莓派2B的器件配置不算突出,可是看在35美元就可获得一个做工精美的卡片电脑的情况下,这样的制约也显得无足轻重。另一方面,博通官方和树莓派基金会给出的硬件资料也不算丰富,甚至在落笔的时候树莓派2B的原理图仍然没有出现在基金会官网上。

种种限制和不足的情况下,为什么树莓派仍然风靡全球?35美元的售价是它在市场中的最大吸引力吗?如果其他卡片电脑能做到35美元,且提供更开放详实的官方资料,会出现树莓派的衰落吗?

未来的答案未可知。那就再和拆摸Boy一起概览一下树莓派2B提供的软能力,感受它对一个技术员的引力吧。

一、OS支持

树莓派社区确实得到了大量开源操作系统社区和商业操作系统制造商的鼎力支持。BCM2835/6这种量级的处理器和博通对器件资料的态度,不太可能采用单片机的使用方式推向市场。树莓派的流行与OS支持似乎成了一个鸡和蛋的问题:到底是由于树莓派的流行导致操作系统纷纷予以支持,还是各种操作系统的纷纷支持而导致树莓派的流行?“流行”应该怎么样做定义?

树莓派基金会官方以树莓派的debian移植作为官方平台:Raspbian。如同debian官方支持的arch port一样,很自然的可以期待从基本命令到使用和配置方式,raspbian是一个完整的debian系统环境。

简单说Raspbian是armhf体系的debian + vcgencmd等BCM2836特定命令 + 一堆第三方产品如mathematica + 树莓派驱动。很强大的适配组合。据说树莓派社区花费数百万英镑为这个平台做系统适配和优化。

debian系统的学习可以去www.debian.org,这里就不啰嗦了。需要提醒的是这一版本的raspbian并没有跟进debian8.0采用systemd进行系统管理。沿用老的管理系统,拆摸Boy表示很习惯。

另外还有几个官方推荐的系统,包括ubuntu,riscos,还有媒体优化的OPENELEC,OSMC,当然少不了适合孩子们的PINET。

由于时间和精力关系,拆摸Boy并没有依次尝试这些第三方系统。网上有大量文章描述,有兴趣的朋友可以装上尝试一下。

这里插一句,拆摸Boy觉得raspbian中最有价值的应属mathematica,简单翻了翻它对树莓派的支持,既可以用于通用计算,数学学习,还可以用于外设的输入输出。做算法的朋友应该十分喜欢这套免费的礼物:输入->计算->输出->反馈,这个经典的自动化流程和谐的涵盖在一套平台中,在更高层面上对你的应用建模,省去了自己编写算法实现的麻烦。如果哪天matlab也给树莓派免费支持了,那真是更适合中国国情的福利。

除了Linux,还有UNIX系统的树莓派移植。拆摸Boy最喜欢的FreeBSD和NetBSD也被移植到树莓派。不过这些系统在树莓派上的表现(或者说在操作系统生态上的表现)不如Linux,因此它们在树莓派上的移植,更多的感觉应该是“可行性证明”的,并没有比Linux有明显优势。从社区到文档到资料到软件,都显得冷清很多。

最后当然不可以忘记今年微软在物联网市场布局中的大手笔:Windows10 IOT Core,同样免费提供给创客们。刚刚不久前发布了第一个正式版。

给拆摸Boy留下深刻印象的是,商业公司果然大手笔,资源的建设上确实比社区来的更系统更体系。从工具,到文档,到调试,到管理,都可以获得详实的资源描述。

虽然Unix下的man和gnu info是很优秀的资源,可是比较微软的MSDN,还是稍显简单、凌乱,且一些时候手册和实际系统不能保持一致;虽然vim/emacs等编辑器确实很神很能体现一个黑客的啪啪啪精神,可是比较visual studio这个IDE来说,显得就太原始,太费脑;虽然gdb等工具链构建了整个linux世界,可是比较vs的调试器,显得太不贴心。这不是赞歌,是差距。

为了证明Win10 IOT的可用性,官方给了几个比较高级的典型项目,有机器人,有气象站。更多的官方推荐项目可以去这里扫描一下。

为了平坦化Win10 IOT的入门过程,官方给了几个入门级项目带领大伙慢慢入门。

官方还给大伙准备了step by step的入门材料,拆摸Boy照着做了一遍,确实比Linux社区提供的材料更集中,很快便可以弄出小成果。

文档。

示例。

先不说质量,仅从数量和布局上看,比linux上的组织有规范。从示例上可以看到已经涵盖了spi,i2c,serial,gpio这些常见外设,也给出流行的node.js和python等上手资料。

更多的example可以在github里找到。拆摸Boy已经把它check下来到本地。

可以看出从点灯到OLED显示,到蓝牙,到摄像头,都有相关示例,还有比较流行的ADXL345,HMC5883等器件的基本操作实现,也有x宝上很容易买到的OLED显示屏的基本操作实现,这些流行器件的例子也减轻了使用Win10 IOT的额外负担。

这些示例涵盖范围比较广,跟着走一遍的话,应该很快的可以了解大部分Win10 IOT的操作方式。

二、语言和平台支持

Raspbian方面,树莓派上可以使用的开发语言十分丰富。除了专用平台语言比如visual basic,objc之外,其他通用语言都很好的得到支持。毕竟它是完整的Linux。

拆摸Boy关注的,大众语言比如C/C++,Python,Javascript,PHP,Java一个都不少的支持。这种支持可以到什么程度,拆摸Boy并没有一一进行验证。比如Java语言平台下,用于服务器的jar包是否可以在raspbian中使用?Java EE 的服务器到底有哪些可以在raspbian上部署?连接池是否和服务器上的表现一致?等等。喜欢C/C++的也能够直接使用苹果弄的LLVM编译器。

C#的Unix移植:mono也可以使用,但是在Win10 IOT免费的情况下,用C#不如直接装Win10 IOT划算。

还有很多小众语言也得到支持。比如万恶资本主义国家用来教学很多年的scheme,用于自动化公理证明的ml,配置界很流行的guile,lua,统计和大数据界很流行的r。啊,不要忘了还有mathematica脚本支持。

SQL(数据库)可以看到mysql5.5和postgresql9.1,都算是比较新的版本。

Web服务器里流行的apache和nginx毫无疑问的在raspbian中供你差遣。

对单片机的支持呢?openocd,avr,gcc-msp430,mspdebug,sdcc等工具也和pc/server版的debian版本大致上一致。不过jlink驱动等非开源的东西,似乎缺乏arm体系的支持。

不一一列举,总之树莓派的raspbian是一个相当齐全的平台。由于体系差异,虽不能期待它和pc/server版的debian完全一致,至少大部分一致。你只需要纯熟的操作apt/dpkg系列工具即可。

这部分基本就是debian的操作,虽然如此,还是配个图吧,否则显得字太多,缓和一下。

再来看Win10 IOT。

很久之前微软也慢慢学乖了,给了免费的visual studio 社区版。针对树莓派,支持四种原生语言平台:C/C++,C#,javascrpit(nodejs),python。

得益于强大的IDE能力和商业公司的全局设计能力,省去了部署C,C#,JS,Python的麻烦,却也少了使用其他语言支持的手段(或者想要在Win10 IOT上使用其他语言会麻烦的多)。

其他库支持,比如QT,OpenCV等的支持,拆摸Boy并没有尝试集成在应用中会不会配置很复杂。

三、最后

拆摸Boy不怀疑raspbian作为一个完备debian系统:它提供几乎和pc/server版debian一致的软件和操作,再结合树莓派比较完备的外设接口:SPI,I2C,Serial,GPIO,PWM,Camera,USB等,它可以为创客们提供强大的计算和控制能力。看来不太充足的是这些外设和其他开发板相比显得有些少,毕竟BCM2836本质是一颗面向手机市场的处理器。

Win10 IOT无疑给树莓派的生态系统注入一只强心针。习惯微软生态下的创客们也有机会接触过去显得底层而神秘的嵌入式/物联网。依托商业公司强大的开发工具和完备的资源建设,拆摸Boy不怀疑微软可以在Linux绝对把控的地盘上分一杯羹的可能。希望后面有机会深入的在树莓派上用Win10IOT试试手感。

(0)

相关推荐