发展历史

第一代 BeagleBoard 开发板推出于2008年,第三代开发板被命名为 BeagleBone,从这一代开始将 GPIO 口统一放置到开发板的两侧了。BeagleBone Black 诞生于2013年,它是继 BeagleBone 后的新版本,中国版的价格是 399 RMB。BeagleBoard 家族的开发板均采用德州仪器的 ARM 处理器,BeagleBoard 系列开发板的一大优点是它的开源硬件设计及默认运行开源软件。这意味着 BeagleBoard 所有版本的设计原理图都是开放的,这些设计可以被任何人复制、修改和使用。

BeagleBone Black 上手体验_BoneScript

硬件概览

BeagleBone Black 上手体验_开源硬件_02

序号

模块

描述

1

处理器

德州仪器 Sitara AM3358 ARM Cortex-A8@ 1 GHz

处理器下面的是 512MB DDR3 RAM

2

电源接口

BBB 需要 5V/1000mA 的直流电

大部分的 5V DC电源适配器都可以给 BBB 供电

在电源插口附近有一个电压保护器

如果接入 5~12V 的电源,它可以保护你的板子不被烧坏

但是,最好保证你给板子的是 5V 电源

3

以太网口

标准的 RJ45 以太网端口

你可以用网线连接板子,也可连接 WiFi

4

复位按钮

复位键

5

USB Host

就像电脑一样,可以通过 USB Host 连接键盘鼠标、WiFi 适配器

6

板载 LEDs

板子上有几个 LED 灯

其中靠近电源插口的是用来指示有电源供电

而靠近reset的4个led你可以用程序控制他们

默认情况下

led 0 代表你的系统正在运转,以心跳模式闪烁

led 1 代表 micro SD 卡在使用中

led 2 闪烁表示 CPU 正在活动

led 3 闪烁代表板载闪存正在被使用中

7

GPIO 扩展口

可以直接插入其他硬件插件板实现更多功能

最多连续叠加4块插件板

8

Mini USB 接口

当通过这个 USB 口连上电脑时,可以像一个设备那样被电脑识别

电脑可以通过这个端口给板子供电,也可以通过这个端口与板子通信。

同时,在电脑上的板子就像一个存储设备一样

不过,用这个端口给板子供电时,处理器速度会变慢来减少板子的耗电

9

Micro SD card 插槽

BBB 没有硬盘驱动器,取而代之的是 Micro SD 卡,

可以用来存储操作系统,程序以及你的数据,

在 BBB 上操作系统存储在板载闪存上

可以通过 Micro SD 卡来升级

10

Micro HDMI 接口

可以用 micro HDMI 接口来把 BBB 连接到显示器或者电视上

这个接口看上去和 Mini USB 接口很相似,所以你最好看清楚

11

调试串口

可以通过 USB 转串口装置连接电脑和这个调试串口,从而登录终端控制台

12

板载闪存

2 GB eMMC Flash 存储器

13

Boot Switch 按钮

长按这个键可以让你的板子从 Micro SD 而不是板载闪存启动

登录控制台

BeagleBone Black 比上一代 BeagleBone 新增了串口调试引脚,我们直接把串口转 USB 模块的 TXD,RXD 和地线连到对应的引脚上(如图所示),无需进行任何配置,立刻就能开始使用了。

BeagleBone Black 上手体验_BoneScript_03

登录用户:root

BeagleBone Black 上手体验_BeagleBone_04

系统检查

板载闪存

BeagleBone Black 中国版配置的板载闪存大小为 2GB,这类似于电脑配置一个 2GB 的硬盘的概念。

root@beaglebone:~# df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 1.7G 1.4G 237M 86% /
udev 10M 0 10M 0% /dev
tmpfs 100M 556K 99M 1% /run
/dev/disk/by-uuid/7dcc1ad1-bbf5-4d1d-acb9-5bbfd7e4630f 1.7G 1.4G 237M 86% /
tmpfs 249M 0 249M 0% /dev/shm
tmpfs 249M 0 249M 0% /sys/fs/cgroup
tmpfs 100M 0 100M 0% /run/user
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/mmcblk0p1 96M 72M 25M 75% /boot/uboot

以太网

BeagleBone Black 配置了以太网口,该网口允许通过以太网将 BBB 连接到网络中,最大速率为 100Mbit/s

root@beaglebone:~# ifconfig eth0
eth0 Link encap:Ethernet HWaddr c8:a0:30:aa:45:33
inet addr:192.168.3.2 Bcast:192.168.3.255 Mask:255.255.255.0
inet6 addr: fe80::caa0:30ff:feaa:4533/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2867283 errors:0 dropped:7770 overruns:0 frame:0
TX packets:41726 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:224632977 (214.2 MiB) TX bytes:3013218 (2.8 MiB)
Interrupt:40

也可以通过 USB Host 口外接 WiFi 适配器来提供无线网络,这种连接方式会更加方便。

GPIO 接口

BeagleBone Black 的两侧是 GPIO 接口,在物理上分为两个集群,分别是 P8 和 P9,每个集群又分别有46个接口,可以插入连接线。通过这些 GPIO 接口,我们可以连接其他模块来实现更多功能。

BeagleBone Black 上手体验_Linux_05

访问 Web 服务器

我们可以将 BeagleBone Black 通过 USB 线连接到电脑,为了和 BBB 通信,需要在你的电脑中安装相应的驱动程序。如果你的电脑是 Win7,只需通过 USB 接口将 BBB 连接到电脑,预先存储在 BBB 上的驱动程序将自动安装,所以不需要花费额外的时间去寻找这些驱动。大伙也可以从 BeagleBoard 的​​网站​​下载相应的驱动程序。

因为我手头上没有 mini USB 线,所以我准备直接通过网口访问。

根据工作环境的情况,我将修改 /etc/network/interfaces 文件,为 eth0 网卡设置静态 IP:

auto eth0
iface eth0 inet static
address 192.168.3.2
netmask 255.255.255.0
network 192.168.3.0
gateway 192.168.3.1

打开 Chrome 或 Firefox 浏览器,输入 ​​http://192.168.3.2​​​ 即可访问 BeagleBone Black 的 Web 服务器。如果你使用 USB 连接,默认情况下则应该输入 ​​http://192.168.7.2​

BeagleBone Black 上手体验_Linux_06

编程:点灯实验

想编写可以在 BeagleBone Black 上运行的程序,除了使用 C/C++ 之外,还可以使用 Python 和 BoneScript 语言。

在上面打开的网页中,左边导航栏找到 “Cloud9 IDE”,点击进去按提示操作即可在新标签页中打开一个 Cloud9 在线编程环境,这是一个强大的、直接运行在 BeagleBone Black 上的 Web 版本的 IDE。接下来,我们将在这里实现点灯实验。

首先点击 Cloud9 IDE 主窗口中的 “+” 按钮,选择 “New File” 打开一个空白文件,保存为 blink.js。然后,编写如下代码:

var bbb = require('bonescript');
var state = bbb.LOW;

bbb.pinMode('USR1', bbb.OUTPUT);
setInterval(blink, 1000);
console.log('Hello, World!');

function blink() {
if(state == bbb.LOW) {
state = bbb.HIGH;
} else {
state = bbb.LOW;
}

bbb.digitalWrite('USR1', state);
}

保存代码,点击 “Run” 即可运行,你会在 Cloud9 IDE 的页面底部标签 “/blink.js - Running” 中看到打印出来的 “Hello, World!”。

BeagleBone Black 上手体验_Linux_07

这个实验是通过 BoneScript 库来控制 LED 灯闪烁及打印消息到控制台。需要注意的是,BoneScript 只在 bonescript 库中做了定义,底层的语法和结构是用 JavaScript 编写的。可以看到,使用 BoneScript 编程非常方便,但也有它的局限性。如果面对更复杂的代码和功能,还是建议使用 C/C++ 和 Python 来编写。