BeagleBone Black 上手体验

发展历史

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

在这里插入图片描述

硬件概览

在这里插入图片描述

序号 模块 描述
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 和地线连到对应的引脚上(如图所示),无需进行任何配置,立刻就能开始使用了。

在这里插入图片描述

登录用户:root

在这里插入图片描述

系统检查

板载闪存

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 接口,我们可以连接其他模块来实现更多功能。

在这里插入图片描述

访问 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 上运行的程序,除了使用 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!”。

在这里插入图片描述

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

你可能感兴趣的:(开发板测评,嵌入式Linux开发)