一.开源硬件与BeagleBoard简介
在开源硬件渐渐盛行的时代,不少社区已经积累了很高的人气,例如大名鼎鼎的Arduino和Raspberry Pi,在众多开发者的共同努力下,已经成为了随处可见的小硬件玩具。没有玩过Arduino和Raspberry Pi都不好意思说自己在玩硬件!
Arduino-点击可进入官方网站
Rasperry Pi-点击可进入官方网站
同时,不少新的平台,新的板子也不断加入到开源硬件的大家族,如mbed,由于其方便的在线编译功能,成为了不少项目的首选硬件。
mbed-点击可进入官方网站
其中有一个平台,虽然也已经发展了一段时间,但是相对在国内受欢迎程度不如上面提及的这些平台:
从左到右的产品分别是BeagleBoard,BeagleBoardxM,BeagleBone 和BeagleBone Black。点击图片进入官方网站。
而今年距这个平台最初面世已经五年了:Beagle(猎兔犬)板。Beagle板实际是由TI支持的一个以教育(STEP)为目的的开源项目。其发布的四款板子的硬件都是由TI的工程师Gerald Coley一人设计。我们今天的主角,BbeagleBone Black(BBB),就是这一平台最新的硬件板子,或者说单板计算机/微型计算机。
二.BeagleBone Black 硬件一览
BBB今年4月首次被BeagleBoard社区介绍给大家时就受到了不少的关注,因为BBB的上一代产品BeagleBone(2011年发布的白色的板子)就因其强大的功能,丰富的外设支持赢得了不少开发者的青睐。而这一代的产品搭载更为先进TI的ARM Cortex-A8 CPU:AM335x。主频在不同的供电模式下均可以高达1GHz。主要的板上硬件可以参考下表:
主要的硬件参数可以参考下表:
在信用卡片大小的板子上能有如此强大的性能,且人民币不到400就能拿下,确实让BBB十分有吸引力。
如果觉得板上的硬件还不能满足你的项目需求,那并不用太担心,因为BeagleBoard社区也提供了不少硬件拓展模块(Capes),让其功能更加丰富强大,这和Arduino或者Raspberry Pi的模式并没有很大差异。
三.BeagleBone Black快速开始
在软件层面,BBB自带Ångström Linux,同时兼容其他版本的Linux如Android和Ubuntu等。同时支持Cloud9 IDE on Node.js w/ BoneScript library, 也就是BeagleBone自家特有的脚本语言BoneScript,开发便捷,兼容性强。
在刚刚开箱后,若没有额外的硬件如hdmi显示屏,键盘鼠标和电源的情况下,可以直接连接板子到电脑上,通过Cloud9 开发环境进行简单的开发。
下面我们就介绍一下如何快速开始。
1.将板子通过USB连接到电脑上,这个时候板子会亮灯。等待电脑识别板子为可移动存储设备。
2.打开存储设备,打开START.htm文件,这会通过浏览器将你带到一个开始页面,这个时候按照自己的操作系统选择安装相应的驱动程序:
3.安装完成之后,用Chrome或者Firefox浏览器打开地址:http://192.168.7.2:3000/,便是Cloud9 IDE,BBB自带的编程环境。你可以在进行下一步前阅读IDE的说明,熟悉一下IDE的环境。
4.接下来我们就创建一个blinkled.js的空白文件,并且保存。
5.好了,接下来我们就正式编程,在blinkled.js文件里写入如下代码,并保存:
var b = require('bonescript'); var pins=b.bone.pins; var ledPin0=pins.USR0; var ledPin1=pins.USR1; var ledPin2=pins.USR2; var ledPin3=pins.USR3; b.pinMode(ledPin0,b.OUTPUT); b.pinMode(ledPin1,b.OUTPUT); b.pinMode(ledPin2,b.OUTPUT); b.pinMode(ledPin3,b.OUTPUT); var state = b.LOW; b.digitalWrite(ledPin0,state); b.digitalWrite(ledPin1,state); b.digitalWrite(ledPin2,state); b.digitalWrite(ledPin3,state); setInterval(toggle,1000); function toggle(){ if(state==b.LOW) state=b.HIGH; else state=b.LOW; b.digitalWrite(ledPin0,state); b.digitalWrite(ledPin1,state); b.digitalWrite(ledPin2,state); b.digitalWrite(ledPin3,state); }
6.选中Run tab,选中blinkled.js,并点击Run(或者debug),这时IDE就如下图:
7.好了大功告成,这个时候你应该能够看到BBB板上的一排LED在不断闪烁。用Bone脚本语言就是这么简单!
其实这里面的语法相当简单,第一句有点类似C中的#include,紧接着声明端口和设置端口为输出,然后隔一段时间给输出写入高或者低电平以实现让LED闪烁的效果。
BBB就是这样易于上手和开发,BBB的全部威力就静待我们去开发啦。
四.BeagleBone Black 和其他板子比较
如果你还没有购买这个板子,或者正在考虑选择一款入门板子学习的话,那么你肯定会苦恼于要选择哪个平台。
说实话,各个板子有各自特长,可谓八仙过海。Arduino轻便易于上手而且拓展部件众多,社区成熟;Raspberry Pi也是拥有良好的社区支持。Beagle Bone相对来说困难在于其开发者社区主要集中在美国,如果需要查找相关的资料,没有良好的英语阅读能力是会有点吃力。但是有一点很值得注意,Arduino实际上是 8位AVR单片机(或32位ARM单片机),而Raspberry Pi用的是ARMv6 的芯片,这些都无法和BBB的ARMCortexA8 芯片相比。所以如果想了解最新的ARM CortexA系列的芯片,同时又愿意折腾的朋友,不妨选择这一款板子。另外一方面从性能来看,BBB性能远超过Raspberry Pi,至于Arduino,那更没有到达微型计算机的性能。
所以如果是初学者,不一定要选择这款板子。但是如果是有热情和兴趣的发烧友,BBB确实是一块十分难得的性价比出众的微型计算机。
那么如果你已经购买了这块板子,并且觉得BBB十分有意思,有挑战性,期待着深入学习并且乐意将BBB应用于自己的项目开发里,那么欢迎你加入BBB开发的大家庭。
Enjoy your BeagleBone!